X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_termcap.c;h=07d73b689726b5e33468087a3cda49e2829d156c;hp=a8addc6c5e10bd018263e3024f04bd366968a991;hb=7d6371e47006c8aef4ac94f52998a35b03bf89cf;hpb=5e1e572b71ae31a6071daa24e2460a68a6f1003c diff --git a/ncurses/tinfo/lib_termcap.c b/ncurses/tinfo/lib_termcap.c index a8addc6c..07d73b68 100644 --- a/ncurses/tinfo/lib_termcap.c +++ b/ncurses/tinfo/lib_termcap.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -48,7 +48,7 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: lib_termcap.c,v 1.84 2017/04/11 01:15:11 tom Exp $") +MODULE_ID("$Id: lib_termcap.c,v 1.87 2018/04/07 21:11:15 tom Exp $") NCURSES_EXPORT_VAR(char *) UP = 0; NCURSES_EXPORT_VAR(char *) BC = 0; @@ -100,8 +100,7 @@ NCURSES_SP_NAME(tgetent) (NCURSES_SP_DCLx char *bufp, const char *name) START_TRACE(); T((T_CALLED("tgetent()"))); - TINFO_SETUP_TERM(&termp, (NCURSES_CONST char *) name, - STDOUT_FILENO, &rc, TRUE); + TINFO_SETUP_TERM(&termp, name, STDOUT_FILENO, &rc, TRUE); #ifdef USE_TERM_DRIVER if (termp == 0 || @@ -153,8 +152,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; @@ -231,7 +234,7 @@ same_tcname(const char *a, const char *b) ***************************************************************************/ NCURSES_EXPORT(int) -NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx NCURSES_CONST char *id) +NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx const char *id) { int result = 0; /* Solaris returns zero for missing flag */ @@ -267,7 +270,7 @@ NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx NCURSES_CONST char *id) #if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -tgetflag(NCURSES_CONST char *id) +tgetflag(const char *id) { return NCURSES_SP_NAME(tgetflag) (CURRENT_SCREEN, id); } @@ -283,7 +286,7 @@ tgetflag(NCURSES_CONST char *id) ***************************************************************************/ NCURSES_EXPORT(int) -NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx NCURSES_CONST char *id) +NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx const char *id) { int result = ABSENT_NUMERIC; @@ -319,7 +322,7 @@ NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx NCURSES_CONST char *id) #if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -tgetnum(NCURSES_CONST char *id) +tgetnum(const char *id) { return NCURSES_SP_NAME(tgetnum) (CURRENT_SCREEN, id); } @@ -335,7 +338,7 @@ tgetnum(NCURSES_CONST char *id) ***************************************************************************/ NCURSES_EXPORT(char *) -NCURSES_SP_NAME(tgetstr) (NCURSES_SP_DCLx NCURSES_CONST char *id, char **area) +NCURSES_SP_NAME(tgetstr) (NCURSES_SP_DCLx const char *id, char **area) { char *result = NULL; @@ -385,7 +388,7 @@ NCURSES_SP_NAME(tgetstr) (NCURSES_SP_DCLx NCURSES_CONST char *id, char **area) #if NCURSES_SP_FUNCS NCURSES_EXPORT(char *) -tgetstr(NCURSES_CONST char *id, char **area) +tgetstr(const char *id, char **area) { return NCURSES_SP_NAME(tgetstr) (CURRENT_SCREEN, id, area); } @@ -401,7 +404,7 @@ _nc_tgetent_leak(TERMINAL *termp) 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; }