]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/tinfo/lib_termcap.c
ncurses 6.0 - patch 20171223
[ncurses.git] / ncurses / tinfo / lib_termcap.c
index 817f28f7f8354d566fdcc816da9545b8f698baf7..ebad5814fc5fffd803e6e6781c58fd738b453184 100644 (file)
@@ -48,7 +48,7 @@
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_termcap.c,v 1.82 2017/04/01 17:24:07 tom Exp $")
+MODULE_ID("$Id: lib_termcap.c,v 1.86 2017/12/23 18:18:13 tom Exp $")
 
 NCURSES_EXPORT_VAR(char *) UP = 0;
 NCURSES_EXPORT_VAR(char *) BC = 0;
@@ -153,8 +153,12 @@ NCURSES_SP_NAME(tgetent) (NCURSES_SP_DCLx char *bufp, const char *name)
        }
        CacheInx = best;
     }
-    LAST_TRM = TerminalOf(SP_PARM);
-    LAST_SEQ = ++CacheSeq;
+    if (rc == 1) {
+       LAST_TRM = TerminalOf(SP_PARM);
+       LAST_SEQ = ++CacheSeq;
+    } else {
+       LAST_TRM = 0;
+    }
 
     PC = 0;
     UP = 0;
@@ -175,7 +179,8 @@ NCURSES_SP_NAME(tgetent) (NCURSES_SP_DCLx char *bufp, const char *name)
        if (backspace_if_not_bs != NULL)
            BC = backspace_if_not_bs;
 
-       if ((FIX_SGR0 = _nc_trim_sgr0(&(TerminalOf(SP_PARM)->type))) != 0) {
+       if ((FIX_SGR0 = _nc_trim_sgr0(&TerminalType(TerminalOf(SP_PARM))))
+           != 0) {
            if (!strcmp(FIX_SGR0, exit_attribute_mode)) {
                if (FIX_SGR0 != exit_attribute_mode) {
                    free(FIX_SGR0);
@@ -236,7 +241,7 @@ NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx NCURSES_CONST char *id)
 
     T((T_CALLED("tgetflag(%p, %s)"), (void *) SP_PARM, id));
     if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
-       TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
+       TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM));
        struct name_table_entry const *entry_ptr;
        int j = -1;
 
@@ -288,7 +293,7 @@ NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx NCURSES_CONST char *id)
 
     T((T_CALLED("tgetnum(%p, %s)"), (void *) SP_PARM, id));
     if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
-       TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
+       TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM));
        struct name_table_entry const *entry_ptr;
        int j = -1;
 
@@ -340,7 +345,7 @@ NCURSES_SP_NAME(tgetstr) (NCURSES_SP_DCLx NCURSES_CONST char *id, char **area)
 
     T((T_CALLED("tgetstr(%s,%p)"), id, (void *) area));
     if (HasTInfoTerminal(SP_PARM) && ValidCap(id)) {
-       TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
+       TERMTYPE2 *tp = &TerminalType(TerminalOf(SP_PARM));
        struct name_table_entry const *entry_ptr;
        int j = -1;
 
@@ -394,13 +399,13 @@ tgetstr(NCURSES_CONST char *id, char **area)
 #undef CacheInx
 #define CacheInx num
 NCURSES_EXPORT(void)
-_nc_tgetent_leak(TERMINAL * termp)
+_nc_tgetent_leak(TERMINAL *termp)
 {
     if (termp != 0) {
        int num;
        for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) {
            if (LAST_TRM == termp) {
-               FreeIfNeeded(FIX_SGR0);
+               FreeAndNull(FIX_SGR0);
                if (LAST_TRM != 0) {
                    LAST_TRM = 0;
                }