]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/db_iterator.c
ncurses 5.9 - patch 20111126
[ncurses.git] / ncurses / tinfo / db_iterator.c
index 35185855d734517bb31105b336b045b9f1c2c3e9..ad1b20b30513ae0506a35bdc6795a0cdcf2b3ddd 100644 (file)
@@ -43,7 +43,7 @@
 #include <hashed_db.h>
 #endif
 
-MODULE_ID("$Id: db_iterator.c,v 1.20 2011/10/08 20:55:38 tom Exp $")
+MODULE_ID("$Id: db_iterator.c,v 1.22 2011/11/27 01:32:34 tom Exp $")
 
 #define HaveTicDirectory _nc_globals.have_tic_directory
 #define KeepTicDirectory _nc_globals.keep_tic_directory
@@ -184,7 +184,7 @@ _nc_tic_dir(const char *path)
                return _nc_tic_dir(envp);
        }
     }
-    return TicDirectory;
+    return TicDirectory ? TicDirectory : TERMINFO;
 }
 
 /*
@@ -283,6 +283,11 @@ _nc_first_db(DBDIRS * state, int *offset)
 #endif
 #if USE_TERMCAP
            values[dbdEnvOnce2] = cache_getenv("TERMCAP", dbdEnvOnce2);
+           /* only use $TERMCAP if it is an absolute path */
+           if (values[dbdEnvOnce2] != 0
+               && *values[dbdEnvOnce2] != '/') {
+               values[dbdEnvOnce2] = 0;
+           }
            values[dbdEnvList2] = cache_getenv("TERMPATH", dbdEnvList2);
 #endif /* USE_TERMCAP */
        }
@@ -330,7 +335,7 @@ _nc_first_db(DBDIRS * state, int *offset)
 #endif
                    for (k = 0; k < j; ++k) {
                        if (!strcmp(my_list[j], my_list[k])) {
-                           k = --j;
+                           k = j - 1;
                            while ((my_list[j] = my_list[j + 1]) != 0) {
                                ++j;
                            }