X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_longname.c;h=9dc6d71e2ad4a0ae0fa89022308737794af6235f;hp=746f83f4eabf6cc3edbf93783815d370e1ec8d44;hb=d30f99439fcc8d4bb4c38e5c4afb4f6555fc6ad4;hpb=78e49873c69dc0494bb34c62f897f8b446584a33 diff --git a/ncurses/tinfo/lib_longname.c b/ncurses/tinfo/lib_longname.c index 746f83f4..9dc6d71e 100644 --- a/ncurses/tinfo/lib_longname.c +++ b/ncurses/tinfo/lib_longname.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2010,2015 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 * @@ -42,20 +43,28 @@ #include -MODULE_ID("$Id: lib_longname.c,v 1.10 2009/02/15 00:48:15 tom Exp $") +MODULE_ID("$Id: lib_longname.c,v 1.15 2021/04/03 22:36:21 tom Exp $") +#if USE_REENTRANT NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (NCURSES_SP_DCL0) { - char *ptr; + static char empty[] = + {'\0'}; - T((T_CALLED("longname()"))); + T((T_CALLED("longname(%p)"), (void *) SP_PARM)); - for (ptr = ttytype + strlen(ttytype); ptr > ttytype; ptr--) - if (*ptr == '|') - returnPtr(ptr + 1); + if (SP_PARM) { + char *ptr; - returnPtr(ttytype); + for (ptr = SP_PARM->_ttytype + strlen(SP_PARM->_ttytype); + ptr > SP_PARM->_ttytype; + ptr--) + if (*ptr == '|') + returnPtr(ptr + 1); + returnPtr(SP_PARM->_ttytype); + } + return empty; } #if NCURSES_SP_FUNCS @@ -65,3 +74,31 @@ longname(void) return NCURSES_SP_NAME(longname) (CURRENT_SCREEN); } #endif + +#else + +/* a dummy entrypoint is simpler than generating a conditional in curses.h */ +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char *) +NCURSES_SP_NAME(longname) (NCURSES_SP_DCL0) +{ + (void) SP_PARM; + return longname(); +} +#endif + +NCURSES_EXPORT(char *) +longname(void) +{ + char *ptr; + + T((T_CALLED("longname()"))); + + for (ptr = ttytype + strlen(ttytype); + ptr > ttytype; + ptr--) + if (*ptr == '|') + returnPtr(ptr + 1); + returnPtr(ttytype); +} +#endif