X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Fname_match.c;h=c8d728faa7c4bf1c650f1f4d4c371efee94a2de6;hp=9d8e390d067e076a010f90d6fffaef448bb5d678;hb=1051e5f924808ea27fcf8f5b624e63d07788b86e;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01 diff --git a/ncurses/tinfo/name_match.c b/ncurses/tinfo/name_match.c index 9d8e390d..c8d728fa 100644 --- a/ncurses/tinfo/name_match.c +++ b/ncurses/tinfo/name_match.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1999,2000,2001 Free Software Foundation, Inc. * + * Copyright (c) 1999-2005,2007 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 * @@ -34,30 +34,38 @@ #include #include -MODULE_ID("$Id: name_match.c,v 1.12 2002/08/31 21:48:41 Philippe.Blain Exp $") +MODULE_ID("$Id: name_match.c,v 1.16 2007/04/21 21:28:13 tom Exp $") /* * _nc_first_name(char *names) * * Extract the primary name from a compiled entry. */ +#define FirstName _nc_globals.first_name NCURSES_EXPORT(char *) _nc_first_name(const char *const sp) /* get the first name from the given name list */ { - static char *buf; - register unsigned n; + unsigned n; - if (buf == 0) - buf = typeMalloc(char, MAX_NAME_SIZE + 1); +#if NO_LEAKS + if (sp == 0) { + if (FirstName != 0) + FreeAndNull(FirstName); + return 0; + } +#endif + + if (FirstName == 0) + FirstName = typeMalloc(char, MAX_NAME_SIZE + 1); for (n = 0; n < MAX_NAME_SIZE; n++) { - if ((buf[n] = sp[n]) == '\0' - || (buf[n] == '|')) + if ((FirstName[n] = sp[n]) == '\0' + || (FirstName[n] == '|')) break; } - buf[n] = '\0'; - return (buf); + FirstName[n] = '\0'; + return (FirstName); } /* @@ -67,8 +75,7 @@ _nc_first_name(const char *const sp) */ NCURSES_EXPORT(int) -_nc_name_match -(const char *const namelst, const char *const name, const char *const delim) +_nc_name_match(const char *const namelst, const char *const name, const char *const delim) { const char *s, *d, *t; int code, found;