ncurses 6.1 - patch 20190720
[ncurses.git] / include / MKterm.h.awk.in
index 3146ee8ded811ba7b993d559e8d4e357885575a4..2fbe536e1c7951254fc0386b6122cdecbbaba71b 100644 (file)
@@ -1,9 +1,32 @@
 # vile:awkmode
+function declare_termtype(number,suffix) {
+       printf "typedef struct termtype%s {     /* in-core form of terminfo data */\n", suffix;
+       print  "    char  *term_names;          /* str_table offset of term names */"
+       print  "    char  *str_table;           /* pointer to string table */"
+       print  "    NCURSES_SBOOL  *Booleans;   /* array of boolean values */"
+       printf "    %-5s *Numbers;              /* array of integer values */\n", number;
+       print  "    char  **Strings;            /* array of string offsets */"
+       print  ""
+       print  "#if NCURSES_XNAMES"
+       print  "    char  *ext_str_table;       /* pointer to extended string table */"
+       print  "    char  **ext_Names;          /* corresponding names */"
+       print  ""
+       print  "    unsigned short num_Booleans;/* count total Booleans */";
+       print  "    unsigned short num_Numbers; /* count total Numbers */";
+       print  "    unsigned short num_Strings; /* count total Strings */";
+       print  ""
+       print  "    unsigned short ext_Booleans;/* count extensions to Booleans */";
+       print  "    unsigned short ext_Numbers; /* count extensions to Numbers */";
+       print  "    unsigned short ext_Strings; /* count extensions to Strings */";
+       print  "#endif /* NCURSES_XNAMES */"
+       print  ""
+       printf "} TERMTYPE%s;\n", suffix;
+}
 BEGIN {
        lcurl = "{";
        rcurl = "}";
        print  "/****************************************************************************"
-       print  " * Copyright (c) 1998-2013,2017 Free Software Foundation, Inc.              *"
+       print  " * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *"
        print  " *                                                                          *"
        print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
        print  " * copy of this software and associated documentation files (the            *"
@@ -36,7 +59,7 @@ BEGIN {
        print  "/*    and: Thomas E. Dickey                        1995-on                  */"
        print  "/****************************************************************************/"
        print  ""
-       print  "/* $Id: MKterm.h.awk.in,v 1.66 2017/04/03 08:16:54 tom Exp $ */"
+       print  "/* $Id: MKterm.h.awk.in,v 1.71 2019/04/13 22:34:42 tom Exp $ */"
        print  ""
        print  "/*"
        print  "**      term.h -- Definition of struct term"
@@ -103,7 +126,7 @@ BEGIN {
        print  ""
        print  "#else /* !HAVE_TERMIO_H */"
        print  ""
-       print  "#if __MINGW32__"
+       print  "#if _WIN32"
        print  "#  include <ncurses_mingw.h>"
        print  "#  define TTY struct termios"
        print  "#else"
@@ -140,14 +163,19 @@ $2 == "%%-STOP-HERE-%%" {
        print  "/* older synonyms for some capabilities */"
        print  "#define beehive_glitch  no_esc_ctlc"
        print  "#define teleray_glitch  dest_tabs_magic_smso"
+       print  ""
+       print  "/* HPUX-11 uses this name rather than the standard one */"
+       print  "#ifndef micro_char_size"
        print  "#define micro_char_size micro_col_size"
+       print  "#endif"
        print  ""
        print  "#ifdef __INTERNAL_CAPS_VISIBLE"
 }
 
-/^#/ {
-       next;
-}
+/^#/ { next; }
+
+/^used_by/ { next ; }
+/^userdef/ { next ; }
 
 $1 == "acs_chars" {
        acsindex = StringCount;
@@ -179,27 +207,7 @@ END {
        print  "/* used by code for comparing entries */"
        print  "#define acs_chars_index ", acsindex
        print  ""
-       print  "typedef struct termtype {       /* in-core form of terminfo data */"
-       print  "    char  *term_names;          /* str_table offset of term names */"
-       print  "    char  *str_table;           /* pointer to string table */"
-       print  "    NCURSES_SBOOL  *Booleans;   /* array of boolean values */"
-       print  "    short *Numbers;             /* array of integer values */"
-       print  "    char  **Strings;            /* array of string offsets */"
-       print  ""
-       print  "#if NCURSES_XNAMES"
-       print  "    char  *ext_str_table;       /* pointer to extended string table */"
-       print  "    char  **ext_Names;          /* corresponding names */"
-       print  ""
-       print  "    unsigned short num_Booleans;/* count total Booleans */"
-       print  "    unsigned short num_Numbers; /* count total Numbers */"
-       print  "    unsigned short num_Strings; /* count total Strings */"
-       print  ""
-       print  "    unsigned short ext_Booleans;/* count extensions to Booleans */"
-       print  "    unsigned short ext_Numbers; /* count extensions to Numbers */"
-       print  "    unsigned short ext_Strings; /* count extensions to Strings */"
-       print  "#endif /* NCURSES_XNAMES */"
-       print  ""
-       print  "} TERMTYPE;"
+       declare_termtype("short","");
        print  ""
        print  "/*"
        print  " * The only reason these structures are visible is for read-only use."
@@ -207,6 +215,13 @@ END {
        print  " * curses implementations."
        print  " */"
        print  "#ifdef NCURSES_INTERNALS"
+       print  ""
+       if (@NCURSES_EXT_COLORS@) {
+       declare_termtype("int","2");
+       } else {
+       print  "typedef TERMTYPE TERMTYPE2;"
+       }
+       print  ""
        print  "typedef struct term {           /* describe an actual terminal */"
        print  "    TERMTYPE    type;           /* terminal type description */"
        print  "    short       Filedes;        /* file description being written to */"
@@ -214,6 +229,9 @@ END {
        print  "    TTY         Nttyb;          /* current state of the terminal */"
        print  "    int         _baudrate;      /* used to compute padding */"
        print  "    char *      _termname;      /* used for termname() */"
+       if (@NCURSES_EXT_COLORS@) {
+       print  "    TERMTYPE2   type2;          /* extended terminal type description */"
+       }
        print  "} TERMINAL;"
        print  "#else"
        print  "typedef struct term TERMINAL;"
@@ -270,9 +288,9 @@ END {
        print  "#ifdef NCURSES_INTERNALS"
        print  ""
        print  "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);"
-       print  "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE *);"
-       print  "extern NCURSES_EXPORT(void) _nc_init_termtype (TERMTYPE *const);"
-       print  "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE *, char *, int);"
+       print  "extern NCURSES_EXPORT(int) _nc_read_entry2 (const char * const, char * const, TERMTYPE2 *const);"
+       print  "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE2 *);"
+       print  "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int);"
        print  "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
        print  "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
        print  ""
@@ -291,21 +309,21 @@ END {
        print  ""
        print  "/* miscellaneous entry points */"
        print  "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);"
-       print  "extern NCURSES_EXPORT(int) setupterm (NCURSES_CONST char *,int,int *);"
+       print  "extern NCURSES_EXPORT(int) setupterm (const char *,int,int *);"
        print  ""
        print  "/* terminfo entry points, also declared in curses.h */"
        print  "#if !defined(__NCURSES_H)"
-       print  "extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);"
+       print  "extern NCURSES_EXPORT(char *) tigetstr (const char *);"
        print  "extern NCURSES_EXPORT_VAR(char) ttytype[];"
        print  "extern NCURSES_EXPORT(int) putp (const char *);"
-       print  "extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);"
-       print  "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
+       print  "extern NCURSES_EXPORT(int) tigetflag (const char *);"
+       print  "extern NCURSES_EXPORT(int) tigetnum (const char *);"
        print  ""
        print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
-       print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);        /* special */"
+       print  "extern NCURSES_EXPORT(char *) tparm (const char *, ...);        /* special */"
        print  "#else"
-       print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);       /* special */"
-       print  "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);        /* special */"
+       print  "extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long);       /* special */"
+       print  "extern NCURSES_EXPORT(char *) tparm_varargs (const char *, ...);        /* special */"
        print  "#endif"
        print  ""
        print  "extern NCURSES_EXPORT(char *) tiparm (const char *, ...);               /* special */"
@@ -314,11 +332,11 @@ END {
        print  ""
        print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
        print  "#if !defined(NCURSES_TERMCAP_H_incl)"
-       print  "extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);"
+       print  "extern NCURSES_EXPORT(char *) tgetstr (const char *, char **);"
        print  "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);"
        print  "extern NCURSES_EXPORT(int) tgetent (char *, const char *);"
-       print  "extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);"
-       print  "extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);"
+       print  "extern NCURSES_EXPORT(int) tgetflag (const char *);"
+       print  "extern NCURSES_EXPORT(int) tgetnum (const char *);"
        print  "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));"
        print  "#endif /* NCURSES_TERMCAP_H_incl */"
        print  ""
@@ -327,24 +345,24 @@ END {
        print  " */"
        print  "#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0)"
        print  ""
-       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tigetstr) (SCREEN*, NCURSES_CONST char *);"
+       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tigetstr) (SCREEN*, const char *);"
        print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(putp) (SCREEN*, const char *);"
-       print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetflag) (SCREEN*, NCURSES_CONST char *);"
-       print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetnum) (SCREEN*, NCURSES_CONST char *);"
+       print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetflag) (SCREEN*, const char *);"
+       print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetnum) (SCREEN*, const char *);"
        print  ""
        print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
-       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, NCURSES_CONST char *, ...);     /* special */"
+       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...);     /* special */"
        print  "#else"
-       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);    /* special */"
-       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm_varargs) (SCREEN*, NCURSES_CONST char *, ...);     /* special */"
+       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long);    /* special */"
+       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm_varargs) (SCREEN*, const char *, ...);     /* special */"
        print  "#endif"
        print  ""
        print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
-       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgetstr) (SCREEN*, NCURSES_CONST char *, char **);"
+       print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgetstr) (SCREEN*, const char *, char **);"
        print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int);"
        print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *);"
-       print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetflag) (SCREEN*, NCURSES_CONST char *);"
-       print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetnum) (SCREEN*, NCURSES_CONST char *);"
+       print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetflag) (SCREEN*, const char *);"
+       print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetnum) (SCREEN*, const char *);"
        print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC);"
        print  ""
        print  "extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *);"