#include <tic.h>
-MODULE_ID("$Id: read_entry.c,v 1.122 2013/05/04 22:53:42 tom Exp $")
+MODULE_ID("$Id: read_entry.c,v 1.125 2013/08/17 19:06:59 tom Exp $")
#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
-#if USE_DATABASE
+#if NCURSES_USE_DATABASE
static void
convert_shorts(char *buf, short *Numbers, int count)
{
return (int) want;
}
-#define Read(buf, count) fake_read(buffer, &offset, limit, buf, (unsigned) count)
+#define Read(buf, count) fake_read(buffer, &offset, limit, (char *) buf, (unsigned) count)
#define read_shorts(buf, count) \
(Read(buf, (count)*2) == (int) (count)*2)
#define even_boundary(value) \
if ((value) % 2 != 0) Read(buf, 1)
+NCURSES_EXPORT(void)
+_nc_init_termtype(TERMTYPE *const tp)
+{
+ unsigned i;
+
+#if NCURSES_XNAMES
+ tp->num_Booleans = BOOLCOUNT;
+ tp->num_Numbers = NUMCOUNT;
+ tp->num_Strings = STRCOUNT;
+ tp->ext_Booleans = 0;
+ tp->ext_Numbers = 0;
+ tp->ext_Strings = 0;
+#endif
+ if (tp->Booleans == 0)
+ TYPE_MALLOC(NCURSES_SBOOL, BOOLCOUNT, tp->Booleans);
+ if (tp->Numbers == 0)
+ TYPE_MALLOC(short, NUMCOUNT, tp->Numbers);
+ if (tp->Strings == 0)
+ TYPE_MALLOC(char *, STRCOUNT, tp->Strings);
+
+ for_each_boolean(i, tp)
+ tp->Booleans[i] = FALSE;
+
+ for_each_number(i, tp)
+ tp->Numbers[i] = ABSENT_NUMERIC;
+
+ for_each_string(i, tp)
+ tp->Strings[i] = ABSENT_STRING;
+}
+
/*
* Return TGETENT_YES if read, TGETENT_NO if not found or garbled.
*/
{
bool result = FALSE;
-#if USE_TERMCAP
+#if NCURSES_USE_TERMCAP
if (_nc_is_dir_path(path))
#endif
{
if (make_dir_filename(filename, limit, path, name)) {
code = _nc_read_file_entry(filename, tp);
}
-#if USE_TERMCAP
+#if NCURSES_USE_TERMCAP
else if (code != TGETENT_YES) {
code = _nc_read_termcap_entry(name, tp);
_nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)
#endif
return code;
}
-#endif /* USE_DATABASE */
+#endif /* NCURSES_USE_DATABASE */
/*
* _nc_read_entry(char *name, char *filename, TERMTYPE *tp)
|| strchr(name, NCURSES_PATHSEP) != 0) {
TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", name));
} else {
-#if USE_DATABASE
+#if NCURSES_USE_DATABASE
DBDIRS state;
int offset;
const char *path;
break;
}
}
-#elif USE_TERMCAP
+#elif NCURSES_USE_TERMCAP
if (code != TGETENT_YES) {
code = _nc_read_termcap_entry(name, tp);
_nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)