Print this page
3764 Semantic of nawk's print statement changed

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libxcurses/src/libc/xcurses/mkterm.awk
          +++ new/usr/src/lib/libxcurses/src/libc/xcurses/mkterm.awk
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15  # and limitations under the License.
  16   16  #
  17   17  # When distributing Covered Code, include this CDDL HEADER in each
  18   18  # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  19   19  # If applicable, add the following below this CDDL HEADER, with the
  20   20  # fields enclosed by brackets "[]" replaced with your own identifying
  21   21  # information: Portions Copyright [yyyy] [name of copyright owner]
  22   22  #
  23   23  # CDDL HEADER END
  24   24  #
  25      -# ident "%Z%%M% %I%     %E% SMI"
  26      -#
  27   25  # mkterm.awk
  28   26  #
  29   27  # XCurses Library
  30   28  #
  31   29  # Copyright 1990, 1995 by Mortice Kern Systems Inc.  All rights reserved.
  32   30  #
  33   31  # $Header: /rd/src/libc/xcurses/rcs/mkterm.awk 1.12 1995/07/26 17:40:26 ant Exp $
  34   32  #
  35   33  # USAGE:
  36   34  #       awk -f mkterm.awk caps >term.h
↓ open down ↓ 5 lines elided ↑ open up ↑
  42   40  print " *"
  43   41  print " * XCurses Library"
  44   42  print " *"
  45   43  print " * **** THIS FILE IS MACHINE GENERATED."
  46   44  print " * **** DO NOT EDIT THIS FILE."
  47   45  print " *"
  48   46  print " * Copyright 1990, 1995 by Mortice Kern Systems Inc.  All rights reserved."
  49   47  print " *"
  50   48  printf " * $Header%s\n", "$"
  51   49  print " */"
  52      -print
       50 +print ""
  53   51  print "#ifndef __term_h__"
  54   52  print "#define __term_h__\t1"
  55      -print
       53 +print ""
  56   54  print "#define _XOPEN_CURSES"
  57      -print
       55 +print ""
  58   56  print "#ifndef NCCS"
  59   57  print "#include <termios.h>"
  60   58  print "#endif"
  61   59  print "#ifndef STDIN_FILENO"
  62   60  print "#include <sys/types.h>"
  63   61  print "#include <unistd.h>"
  64   62  print "#endif"
  65      -print
       63 +print ""
  66   64  print "#define __TERM cur_term->"
  67   65  }
  68   66  
       67 +/^#/ || /^$/ {
       68 +        next
       69 +}
       70 +
  69   71  $4 == "bool" {
  70   72          printf "#define %-30s __TERM _bool[%d]\n", $1, BoolCount++
  71   73  }
  72   74  
  73   75  $4 == "number" {
  74   76          printf "#define %-30s __TERM _num[%d]\n", $1, NumberCount++
  75   77  }
  76   78  
  77   79  $4 == "str" {
  78   80          printf "#define %-30s __TERM _str[%d]\n", $1, StringCount++
  79   81  }
  80   82  
  81   83  END {
  82      -print
       84 +print ""
  83   85  printf "#define __COUNT_BOOL\t\t%d\n", BoolCount
  84   86  printf "#define __COUNT_NUM\t\t%d\n", NumberCount
  85   87  printf "#define __COUNT_STR\t\t%d\n", StringCount
  86      -print
       88 +print ""
  87   89  print "/*"
  88   90  print " * MKS Header format for terminfo database files."
  89   91  print " *"
  90   92  print " * The header consists of six short integers, stored using VAX/PDP style"
  91   93  print " * byte swapping (least-significant byte first).  The integers are"
  92   94  print " *"
  93   95  print " *  1) magic number (octal 0432);"
  94   96  print " *  2) the size, in bytes, of the names sections;"
  95   97  print " *  3) the number of bytes in the boolean section;"
  96   98  print " *  4) the number of short integers in the numbers section;"
  97   99  print " *  5) the number of offsets (short integers) in the strings section;"
  98  100  print " *  6) the size, in bytes, of the string table."
  99  101  print " *"
 100  102  print " * Between the boolean and number sections, a null byte is inserted, if"
 101  103  print " * necessary, to ensure that the number section begins on an even byte"
 102  104  print " * offset.  All short integers are aligned on a short word boundary."
 103  105  print " */"
 104      -print
      106 +print ""
 105  107  print "#define __TERMINFO_MAGIC\t\t0432"
 106      -print
      108 +print ""
 107  109  print "typedef struct {"
 108  110  print "\tshort magic;"
 109  111  print "\tshort name_size;"
 110  112  print "\tshort bool_count;"
 111  113  print "\tshort num_count;"
 112  114  print "\tshort str_count;"
 113  115  print "\tshort str_size;"
 114  116  print "} terminfo_header_t;"
 115      -print
      117 +print ""
 116  118  print "/*"
 117  119  print " * The following __MOVE_ constants are indices into the _move[] member"
 118  120  print " * of a SCREEN structure.  The array is used by m_mvcur() for cursor"
 119  121  print " * motion costs and initialized by newterm()."
 120  122  print " *"
 121  123  print " * The following indices refer to relative cursor motion actions that"
 122  124  print " * have a base-cost times the distance/count."
 123  125  print " */"
 124  126  print "#define __MOVE_UP\t\t0"
 125  127  print "#define __MOVE_DOWN\t\t1"
 126  128  print "#define __MOVE_LEFT\t\t2"
 127  129  print "#define __MOVE_RIGHT\t\t3"
 128  130  print "#define __MOVE_TAB\t\t4"
 129  131  print "#define __MOVE_BACK_TAB\t\t5"
 130      -print
      132 +print ""
 131  133  print "#define __MOVE_MAX_RELATIVE\t6"
 132      -print
      134 +print ""
 133  135  print "/*"
 134  136  print " * These should have fixed costs."
 135  137  print " */"
 136  138  print "#define __MOVE_RETURN\t\t6"
 137  139  print "#define __MOVE_HOME\t\t7"
 138  140  print "#define __MOVE_LAST_LINE\t8"
 139      -print
      141 +print ""
 140  142  print "/*"
 141  143  print " * These have worst case cost based on moving the maximum possible"
 142  144  print " * value for a parameter given the screen size."
 143  145  print " */"
 144  146  print "#define __MOVE_N_UP\t\t9"
 145  147  print "#define __MOVE_N_DOWN\t\t10"
 146  148  print "#define __MOVE_N_LEFT\t\t11"
 147  149  print "#define __MOVE_N_RIGHT\t\t12"
 148  150  print "#define __MOVE_ROW\t\t13"
 149  151  print "#define __MOVE_COLUMN\t\t14"
 150  152  print "#define __MOVE_ROW_COLUMN\t15"
 151      -print
      153 +print ""
 152  154  print "#define __MOVE_MAX\t\t16"
 153      -print
      155 +print ""
 154  156  print "/*"
 155  157  print " * For a cursor motion to be used there must be a base-cost of at least 1."
 156  158  print " */"
 157  159  print "#define __MOVE_INFINITY\t\t1000"
 158      -print
      160 +print ""
 159  161  print "#define __TERM_ISATTY_IN\t0x0001\t/* Input is a terminal */"
 160  162  print "#define __TERM_ISATTY_OUT\t0x0002\t/* Output is a terminal */"
 161  163  print "#define __TERM_HALF_DELAY\t0x0004\t/* halfdelay() has priority. */"
 162  164  print "#define __TERM_INSERT_MODE\t0x0008\t/* Terminal is in insert mode. */"
 163  165  print "#define __TERM_NL_IS_CRLF\t0x8000\t/* Newline is mapped on output. */"
 164      -print
      166 +print ""
 165  167  print "/***"
 166  168  print " *** Opaque data type.  Keep your grubby mits off."
 167  169  print " ***/"
 168  170  print "typedef struct {"
 169  171  print "\tint _ifd;\t\t\t/* Input file descriptor */"
 170  172  print "\tint _ofd;\t\t\t/* Output file descriptor */"
 171  173  print "\tstruct termios _prog;"
 172  174  print "\tstruct termios _shell;"
 173  175  print "\tstruct termios _save;"
 174  176  print "\tshort _co;\t\t\t/* Current colour-pair. */"
↓ open down ↓ 5 lines elided ↑ open up ↑
 180  182  print "\tshort _num[__COUNT_NUM];"
 181  183  print "\tchar *_str[__COUNT_STR];\t/* Pointers into _str_table. */"
 182  184  print "\tchar *_str_table;"
 183  185  print "\tchar *_names;\t\t\t/* Terminal alias in _str_table. */"
 184  186  print "\tchar *_term;\t\t\t/* TERM name loaded. */"
 185  187  print "\tstruct {"
 186  188  print "\t\tchar *_seq;"
 187  189  print "\t\tshort _cost;"
 188  190  print "\t} _move[__MOVE_MAX];"
 189  191  print "} TERMINAL;"
 190      -print
      192 +print ""
 191  193  print "extern TERMINAL *cur_term;"
 192      -print
      194 +print ""
 193  195  print "extern char *__m_boolnames[];"
 194  196  print "extern char *__m_boolcodes[];"
 195  197  print "extern char *__m_boolfnames[];"
 196  198  print "extern char *__m_numnames[];"
 197  199  print "extern char *__m_numcodes[];"
 198  200  print "extern char *__m_numfnames[];"
 199  201  print "extern char *__m_strnames[];"
 200  202  print "extern char *__m_strcodes[];"
 201  203  print "extern char *__m_strfnames[];"
 202      -print
      204 +print ""
 203  205  print "#ifndef _XOPEN_SOURCE"
 204  206  print "/*"
 205  207  print " * Old System V array names."
 206  208  print " */"
 207  209  print "#define boolnames\t__m_boolnames"
 208  210  print "#define boolcodes\t__m_boolcodes"
 209  211  print "#define boolfnames\t__m_boolfnames"
 210  212  print "#define numnames\t__m_numnames"
 211  213  print "#define numcodes\t__m_numcodes"
 212  214  print "#define numfnames\t__m_numfnames"
 213  215  print "#define strnames\t__m_strnames"
 214  216  print "#define strcodes\t__m_strcodes"
 215  217  print "#define strfnames\t__m_strfnames"
 216  218  print "#endif /* _XOPEN_SOURCE */"
 217      -print
      219 +print ""
 218  220  print "/*"
 219  221  print " * Exposed internal functions."
 220  222  print " */"
 221  223  print "extern int __m_putchar(int);"
 222  224  print "extern int __m_mvcur(int, int, int, int, int (*)(int));"
 223  225  print "extern int __m_read_terminfo(const char *, TERMINAL *);"
 224  226  print "extern int __m_setupterm(const char *, int, int, int *);"
 225      -print
      227 +print ""
 226  228  print "/*"
 227  229  print " * Globals"
 228  230  print " */"
 229  231  print "extern int del_curterm(TERMINAL *);"
 230  232  print "extern TERMINAL *set_curterm(TERMINAL *);"
 231  233  print "extern int restartterm(const char *, int, int *);"
 232  234  print "extern int setupterm(const char *, int, int *);"
 233      -print
      235 +print ""
 234  236  print "extern int tgetent(char *, char *);"
 235  237  print "extern int tgetflag(const char *);"
 236  238  print "extern int tgetnum(const char *);"
 237  239  print "extern char *tgetstr(const char *, char **);"
 238  240  print "extern char *tgoto(const char *, int, int);"
 239      -print
      241 +print ""
 240  242  print "extern int tigetflag(const char *);"
 241  243  print "extern int tigetnum(const char *);"
 242  244  print "extern char *tigetstr(const char *);"
 243      -print
      245 +print ""
 244  246  print "extern int putp(const char *);"
 245  247  print "extern const char *tparm("
 246  248  print "\tconst char *, long, long, long, long, long, long, long, long, long);"
 247  249  print "extern int tputs(const char *, int, int (*)(int));"
 248      -print
      250 +print ""
 249  251  print "#ifndef _XOPEN_SOURCE_EXTENDED"
 250      -print
      252 +print ""
 251  253  print "#define putp(str)\t\ttputs(str,1,__m_putchar)"
 252  254  print "#define del_term\t\tdel_curterm"
 253  255  print "#define setterm(t)\t\tsetupterm(t,STDOUT_FILENO,(int *) 0)"
 254  256  print "#define tgoto(cm,c,r)\t\ttparm((char *)(cm), (long)(r), (long)(c))"
 255      -print
      257 +print ""
 256  258  print "#ifndef _XOPEN_SOURCE"
 257  259  print "#define beehive_glitch\t\tno_esc_ctrlc"
 258  260  print "#define teleray_glitch\t\tdest_tabs_magic_smso"
 259  261  print "#endif /* _XOPEN_SOURCE */"
 260      -print
      262 +print ""
 261  263  print "#endif /* _XOPEN_SOURCE_EXTENDED */"
 262      -print
      264 +print ""
 263  265  print "#endif /* __term_h__ */"
 264  266  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX