ncurses 6.1 - patch 20181215
[ncurses.git] / ncurses / tinfo / read_entry.c
index 44811512fbaec600b1fbbb339ba1e8e1a864ca4c..3b020992d18a8d3571df7ad05f8db3ccc1ac3618 100644 (file)
@@ -41,7 +41,7 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: read_entry.c,v 1.147 2018/04/01 01:32:39 tom Exp $")
+MODULE_ID("$Id: read_entry.c,v 1.150 2018/11/17 21:40:10 tom Exp $")
 
 #define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
 
@@ -749,10 +749,13 @@ _nc_read_tic_entry(char *filename,
        (T_CALLED("_nc_read_tic_entry(file=%p, path=%s, name=%s)"),
        filename, path, name));
 
+    assert(TGETENT_YES == TRUE);       /* simplify call for _nc_name_match */
+
     if ((used = decode_quickdump(buffer, path)) != 0
        && (code = _nc_read_termtype(tp, buffer, used)) == TGETENT_YES
-       && _nc_name_match(tp->term_names, name, "|")) {
+       && (code = _nc_name_match(tp->term_names, name, "|")) == TGETENT_YES) {
        TR(TRACE_DATABASE, ("loaded quick-dump for %s", name));
+       strcpy(filename, "$TERMINFO");  /* shorten name shown by infocmp */
     } else
 #if USE_HASHED_DB
        if (make_db_filename(filename, limit, path)
@@ -837,6 +840,9 @@ _nc_read_entry2(const char *const name, char *const filename, TERMTYPE2 *const t
 {
     int code = TGETENT_NO;
 
+    if (name == 0)
+       return _nc_read_entry2("", filename, tp);
+
     _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX)
                "%.*s", PATH_MAX - 1, name);