home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / tips2m4.awk < prev    next >
Text File  |  1998-09-23  |  2KB  |  77 lines

  1. # $Id: tips2m4.awk,v 1.6 1998/09/23 09:21:04 zeller Exp $ -*- awk -*-
  2. # Convert tips of the day to app-resource format
  3.  
  4. # Copyright (C) 1998 Technische Universitaet Braunschweig, Germany.
  5. # Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
  6. # This file is part of DDD.
  7. # DDD is free software; you can redistribute it and/or
  8. # modify it under the terms of the GNU General Public
  9. # License as published by the Free Software Foundation; either
  10. # version 2 of the License, or (at your option) any later version.
  11. # DDD is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. # See the GNU General Public License for more details.
  15. # You should have received a copy of the GNU General Public
  16. # License along with DDD -- see the file COPYING.
  17. # If not, write to the Free Software Foundation, Inc.,
  18. # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  19. # DDD is the data display debugger.
  20. # For details, see the DDD World-Wide-Web page, 
  21. # `http://www.cs.tu-bs.de/softech/ddd/',
  22. # or send a mail to the DDD developers <ddd@ips.cs.tu-bs.de>.
  23.  
  24. # This file requires GNU awk (gawk) or any other AWK according to the
  25. # Posix 1003.2(draft 11.3) definition of the AWK language - that is,
  26. # AWK as defined in Aho, Kernighan and Weinberger, The AWK Programming
  27. # Language, Addison-Wesley Publishing, 1988, (`the AWK book').
  28.  
  29. # Initialize variables.
  30.  
  31. BEGIN { 
  32.     tips  = 0;            # Next tip number
  33.     intip = 0;            # Whether we're in a tip text or not
  34.     seen  = 0;            # Whether we've seen a non-comment yet
  35.     printf("! Generated automatically from TIPS by tips2m4 -- DO NOT EDIT\n");
  36.     }
  37.  
  38. # Handle comments
  39. /^\#.*/  { next }
  40. /^!.*/   { print; seen = 1; next }
  41.  
  42. # Pass `include' unchanged, for M4
  43. /^include[(].*/ { print; next }
  44.  
  45. # Copy blank lines only when we've first seen something.
  46. !seen && !intip && $0 ~ "^$" { next }
  47. seen && !intip && $0 ~ "^$" { print; next }
  48.  
  49. # Start a tip
  50. !intip && !($0 ~ "^$") {
  51.     printf "Ddd*tip%d: \\\n@rm %s", tips, $0;
  52.     tips++;
  53.     intip = 1; seen = 1;
  54.     next }
  55.  
  56. # Continue a tip
  57. intip && !($0 ~ "^$") {
  58.     printf "\\n\\\n%s", $0;
  59.     next }
  60.  
  61. # End a tip
  62. intip && $0 ~ "^$" {
  63.     printf "\n\n";
  64.     intip = 0;
  65.     next }
  66.  
  67. # Ignore everything else (is there anything else?)
  68. /./ { next }
  69.  
  70. # Terminate with a final newline
  71. END { print ""; }
  72.