* 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
#ifndef NCURSES_TERM_ENTRY_H_incl
#define NCURSES_TERM_ENTRY_H_incl 1
+/* *INDENT-OFF* */
#ifdef __cplusplus
extern "C" {
#include <term.h>
- /*
- * 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
#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)
#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) \
{ \
/*
* 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);
/* 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 */