X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_longname.c;h=fa231b88def85ddeb187a5ccfe837e1031fb32d4;hp=746f83f4eabf6cc3edbf93783815d370e1ec8d44;hb=690589d8f19e38925db061296d4f704e4a965bb2;hpb=78e49873c69dc0494bb34c62f897f8b446584a33 diff --git a/ncurses/tinfo/lib_longname.c b/ncurses/tinfo/lib_longname.c index 746f83f4..fa231b88 100644 --- a/ncurses/tinfo/lib_longname.c +++ b/ncurses/tinfo/lib_longname.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2000,2009 Free Software Foundation, Inc. * + * Copyright (c) 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 +42,27 @@ #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.13 2015/07/25 20:08:14 tom Exp $") +#if USE_REENTRANT NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (NCURSES_SP_DCL0) { + static char empty[] = + {'\0'}; char *ptr; - T((T_CALLED("longname()"))); - - for (ptr = ttytype + strlen(ttytype); ptr > ttytype; ptr--) - if (*ptr == '|') - returnPtr(ptr + 1); + T((T_CALLED("longname(%p)"), (void *) SP_PARM)); - returnPtr(ttytype); + if (SP_PARM) { + 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 +72,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