home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / ncurses-1.9.9e-src.tgz / tar.out / fsf / ncurses / include / MKterm.h.awk.in < prev    next >
Text File  |  1996-09-28  |  8KB  |  189 lines

  1.  
  2. BEGIN        {
  3.  
  4.             print "/***************************************************************************"
  5.             print "*                            COPYRIGHT NOTICE                              *"
  6.             print "****************************************************************************"
  7.             print "*                ncurses is copyright (C) 1992-1995                        *"
  8.             print "*                          Zeyd M. Ben-Halim                               *"
  9.             print "*                          zmbenhal@netcom.com                             *"
  10.             print "*                          Eric S. Raymond                                 *"
  11.             print "*                          esr@snark.thyrsus.com                           *"
  12.             print "*                                                                          *"
  13.             print "*        Permission is hereby granted to reproduce and distribute ncurses  *"
  14.             print "*        by any means and for any fee, whether alone or as part of a       *"
  15.             print "*        larger distribution, in source or in binary form, PROVIDED        *"
  16.                     print "*        this notice is included with any such distribution, and is not    *"
  17.                     print "*        removed from any of its header files. Mention of ncurses in any   *"
  18.                     print "*        applications linked with it is highly appreciated.                *"
  19.             print "*                                                                          *"
  20.             print "*        ncurses comes AS IS with no warranty, implied or expressed.       *"
  21.             print "*                                                                          *"
  22.             print "***************************************************************************/"
  23.             print ""
  24.             print ""
  25.             print "/*"
  26.             print "**    term.h -- Definition of struct term"
  27.             print "*/"
  28.             print ""
  29.             print "#ifndef _TERM_H"
  30.             print "#define _TERM_H"
  31.             print "#define NCURSES_VERSION \"@VERSION@\""
  32.             print ""
  33.             print "/* Make this file self-contained by providing defaults for the HAVE_TERMIOS_H"
  34.             print " * and BROKEN_LINKER definition (based on the system for which this was configured)."
  35.             print " */"
  36.             print ""
  37.             print "#ifndef HAVE_TERMIOS_H"
  38.             print "#define HAVE_TERMIOS_H 1/*default*/"
  39.             print "#endif"
  40.             print ""
  41.             print "#ifndef BROKEN_LINKER"
  42.             print "#define BROKEN_LINKER 0"
  43.             print "#endif"
  44.             print ""
  45.             print ""
  46.             print "#if HAVE_TERMIOS_H"
  47.             print "#ifndef TERMIOS"
  48.             print "#define TERMIOS 1"
  49.             print "#endif"
  50.             print "#include <termios.h>"
  51.             print "#define TTY struct termios"
  52.             print ""
  53.             print "#else"
  54.             print ""
  55.             print "#undef TERMIOS"
  56.             print "#include <sgtty.h>"
  57.             print "#include <sys/ioctl.h>"
  58.             print "#define TTY struct sgttyb"
  59.             print "#endif"
  60.             print ""
  61.             print "extern char ttytype[];"
  62.             print "#define NAMESIZE 256"
  63.             print "" 
  64.             print "#define CUR cur_term->type."
  65.             print ""
  66.         }
  67.  
  68. $2 == "%%-STOP-HERE-%%"    {
  69.             print  ""
  70.             printf "#define BOOLWRITE %d\n", BoolCount
  71.             printf "#define NUMWRITE  %d\n", NumberCount
  72.             printf "#define STRWRITE  %d\n", StringCount
  73.             print  ""
  74.             print  "/* older synonyms for some booleans */"
  75.             print  "#define beehive_glitch    no_esc_ctlc"
  76.             print  "#define teleray_glitch    dest_tabs_magic_smso"
  77.             print  "#define micro_col_size    micro_char_size"
  78.             print  ""
  79.             print  "#ifdef __INTERNAL_CAPS_VISIBLE"
  80.         }
  81.  
  82. /^#/        {next;}
  83.  
  84. $3 == "bool"    {
  85.             printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++
  86.         }
  87.  
  88. $3 == "num"    {
  89.             printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++
  90.         }
  91.  
  92. $3 == "str"    {
  93.             printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++
  94.         }
  95.  
  96. END        {
  97.             print  "#endif /* __INTERNAL_CAPS_VISIBLE */"
  98.             print  ""
  99.             print  ""
  100.             printf "#define BOOLCOUNT %d\n", BoolCount
  101.             printf "#define NUMCOUNT  %d\n", NumberCount
  102.             printf "#define STRCOUNT  %d\n", StringCount
  103.             print  ""
  104.             print "typedef struct termtype {    /* in-core form of terminfo data */"
  105.             print "    char  *term_names;        /* str_table offset of term names */"
  106.             print "    char  *str_table;        /* pointer to string table */"
  107.             print "    char  Booleans[BOOLCOUNT];    /* array of values */"
  108.             print "    short Numbers[NUMCOUNT];    /* array of values */"
  109.             print "    char  *Strings[STRCOUNT];    /* array of string offsets */"
  110.             print "} TERMTYPE;"
  111.             print ""
  112.             print "typedef struct term {        /* describe an actual terminal */"
  113.             print "    TERMTYPE    type;        /* terminal type description */"
  114.             print "    short     Filedes;    /* file description being written to */"
  115.             print "    TTY          Ottyb,        /* original state of the terminal */"
  116.             print "                 Nttyb;        /* current state of the terminal */"
  117.             print "} TERMINAL;"
  118.             print ""
  119.             print "extern TERMINAL    *cur_term;"
  120.             print ""
  121.             print ""
  122.             print "#ifdef __cplusplus"
  123.             print "extern \"C\" {"
  124.             print "#endif"
  125.             print ""
  126.             print "#if BROKEN_LINKER"
  127.             print "#define boolnames  _nc_boolnames()"
  128.             print "#define boolcodes  _nc_boolcodes()"
  129.             print "#define boolfnames _nc_boolfnames()"
  130.             print "#define numnames   _nc_numnames()"
  131.             print "#define numcodes   _nc_numcodes()"
  132.             print "#define numfnames  _nc_numfnames()"
  133.             print "#define strnames   _nc_strnames()"
  134.             print "#define strcodes   _nc_strcodes()"
  135.             print "#define strfnames  _nc_strfnames()"
  136.             print ""
  137.             print "extern char * const *_nc_boolnames(void);"
  138.             print "extern char * const *_nc_boolcodes(void);"
  139.             print "extern char * const *_nc_boolfnames(void);"
  140.             print "extern char * const *_nc_numnames(void);"
  141.             print "extern char * const *_nc_numcodes(void);"
  142.             print "extern char * const *_nc_numfnames(void);"
  143.             print "extern char * const *_nc_strnames(void);"
  144.             print "extern char * const *_nc_strcodes(void);"
  145.             print "extern char * const *_nc_strfnames(void);"
  146.             print ""
  147.             print "#else"
  148.             print ""
  149.             print "extern char *boolnames[], *boolcodes[], *boolfnames[],"
  150.             print "            *numnames[], *numcodes[], *numfnames[],"
  151.             print "            *strnames[], *strcodes[], *strfnames[];"
  152.             print ""
  153.             print "#endif"
  154.             print ""
  155.             print "/* internals */"
  156.             print "extern int _nc_read_entry(const char * const, char * const, TERMTYPE *const);"
  157.             print "extern int _nc_read_file_entry(const char *const, TERMTYPE *);"
  158.             print "extern char *_nc_first_name(const char *const);"
  159.             print "extern int _nc_name_match(char *const, const char *const, const char *const);"
  160.             print "extern int _nc_read_termcap_entry(const char *const, TERMTYPE *const);"
  161.             print "extern const TERMTYPE *_nc_fallback(const char *);"
  162.             print  ""
  163.             print "/* entry points */"
  164.             print "extern TERMINAL *set_curterm(TERMINAL *);"
  165.             print "extern int del_curterm(TERMINAL *);"
  166.             print  ""
  167.             print "/* entry points */"
  168.             print "extern int putp(const char *);"
  169.             print "extern int restartterm(const char *, int, int *);"
  170.             print "extern int setupterm(const char *,int,int *);"
  171.             print "extern int tgetent(char *, const char *);"
  172.             print "extern int tgetflag(const char *);"
  173.             print "extern int tgetnum(const char *);"
  174.             print "extern char *tgetstr(const char *, char **);"
  175.             print "extern char *tgoto(const char *, int, int);"
  176.             print "extern int tigetflag(const char *);"
  177.             print "extern int tigetnum(const char *);"
  178.             print "extern char *tigetstr(const char *);"
  179.             print "extern char *tparm(const char *, ...);"
  180.             print "extern char *tparam(const char *, char *, int, ...);"
  181.             print "extern int tputs(const char *, int, int (*)(int));"
  182.             print ""
  183.             print "#ifdef __cplusplus"
  184.             print "}"
  185.             print "#endif"
  186.             print ""
  187.                     print "#endif /* TERM_H */"
  188.         }
  189.