X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=include%2Fterm_entry.h;fp=include%2Fterm_entry.h;h=c0222d057d41898fd6f3d958702f3cec4be0e991;hp=b47d915849d9339a212c3ed4269923963d4c9088;hb=a924c24b2535cccdc0f5f991cd8ddcadcfa1f0d2;hpb=3eda6f30a84d53844d2ebceadb457e2e7e9cfbf3 diff --git a/include/term_entry.h b/include/term_entry.h index b47d9158..c0222d05 100644 --- a/include/term_entry.h +++ b/include/term_entry.h @@ -32,7 +32,7 @@ * and: Thomas E. Dickey 1998-on * ****************************************************************************/ -/* $Id: term_entry.h,v 1.49 2017/03/18 18:52:12 tom Exp $ */ +/* $Id: term_entry.h,v 1.54 2017/04/03 21:36:00 tom Exp $ */ /* * term_entry.h -- interface to entry-manipulation code @@ -40,6 +40,7 @@ #ifndef NCURSES_TERM_ENTRY_H_incl #define NCURSES_TERM_ENTRY_H_incl 1 +/* *INDENT-OFF* */ #ifdef __cplusplus extern "C" { @@ -47,46 +48,9 @@ extern "C" { #include - /* - * see db_iterator.c - this enumeration lists the places searched for a - * terminal description and defines the order in which they are searched. - */ - typedef enum { - dbdTIC = 0, /* special, used by tic when writing entry */ -#if NCURSES_USE_DATABASE - dbdEnvOnce, /* the $TERMINFO environment variable */ - dbdHome, /* $HOME/.terminfo */ - dbdEnvList, /* the $TERMINFO_DIRS environment variable */ - dbdCfgList, /* the compiled-in TERMINFO_DIRS value */ - dbdCfgOnce, /* the compiled-in TERMINFO value */ -#endif -#if NCURSES_USE_TERMCAP - dbdEnvOnce2, /* the $TERMCAP environment variable */ - dbdEnvList2, /* the $TERMPATH environment variable */ - dbdCfgList2, /* the compiled-in TERMPATH */ -#endif - dbdLAST - } DBDIRS; - -#define MAX_USES 32 -#define MAX_CROSSLINKS 16 - - typedef struct entry { - TERMTYPE tterm; - unsigned nuses; - struct { - char *name; - struct entry *link; - long line; - } uses[MAX_USES]; - int ncrosslinks; - struct entry *crosslinks[MAX_CROSSLINKS]; - long cstart, cend; - long startline; - struct entry *next; - struct entry *last; - } ENTRY; -/* *INDENT-OFF* */ +/* + * These macros may be used by programs that know about TERMTYPE: + */ #if NCURSES_XNAMES #define NUM_BOOLEANS(tp) (tp)->num_Booleans #define NUM_NUMBERS(tp) (tp)->num_Numbers @@ -115,6 +79,58 @@ extern "C" { #define ExtNumname(tp,i,names) EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names) #define ExtStrname(tp,i,names) EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names) +/* + * The remaining type-definitions and macros are used only internally by the + * ncurses utilities. + */ +#ifdef NCURSES_INTERNALS + +/* + * see db_iterator.c - this enumeration lists the places searched for a + * terminal description and defines the order in which they are searched. + */ +typedef enum { + dbdTIC = 0, /* special, used by tic when writing entry */ +#if NCURSES_USE_DATABASE + dbdEnvOnce, /* the $TERMINFO environment variable */ + dbdHome, /* $HOME/.terminfo */ + dbdEnvList, /* the $TERMINFO_DIRS environment variable */ + dbdCfgList, /* the compiled-in TERMINFO_DIRS value */ + dbdCfgOnce, /* the compiled-in TERMINFO value */ +#endif +#if NCURSES_USE_TERMCAP + dbdEnvOnce2, /* the $TERMCAP environment variable */ + dbdEnvList2, /* the $TERMPATH environment variable */ + dbdCfgList2, /* the compiled-in TERMPATH */ +#endif + dbdLAST +} DBDIRS; + +#define MAX_USES 32 +#define MAX_CROSSLINKS 16 + +typedef struct entry ENTRY; + +typedef struct { + char *name; + ENTRY *link; + long line; +} ENTRY_USES; + +struct entry { + TERMTYPE tterm; + int *XNumbers; /* array of integer values */ + unsigned nuses; + ENTRY_USES uses[MAX_USES]; + int ncrosslinks; + ENTRY *crosslinks[MAX_CROSSLINKS]; + long cstart; + long cend; + long startline; + ENTRY *next; + ENTRY *last; +}; + extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head; extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail; #define for_entry_list(qp) for (qp = _nc_head; qp; qp = qp->next) @@ -131,7 +147,10 @@ extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail; #define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING)) #define ANDMISSING(p,q) \ - {if (PRESENT(p) && !PRESENT(q)) _nc_warning(#p " but no " #q);} + { \ + if (PRESENT(p) && !PRESENT(q)) \ + _nc_warning(#p " but no " #q); \ + } #define PAIRED(p,q) \ { \ @@ -144,7 +163,6 @@ extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail; /* * These entrypoints are used only by the ncurses utilities such as tic. */ -#ifdef NCURSES_INTERNALS /* alloc_entry.c: elementary allocation code */ extern NCURSES_EXPORT(ENTRY *) _nc_copy_entry (ENTRY *oldp); @@ -199,9 +217,10 @@ extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional ' /* free_ttype.c: elementary allocation code */ extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *); -/* *INDENT-ON* */ - #ifdef __cplusplus } #endif -#endif /* NCURSES_TERM_ENTRY_H_incl */ + +/* *INDENT-ON* */ + +#endif /* NCURSES_TERM_ENTRY_H_incl */