X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Fname_match.c;h=a9ac642788883011bbc12f252cfa90cc41a26324;hp=fee3ba3bc7116b9bba5077aae5e1b9758df5b441;hb=b94faec6aab7c3613c1e7d217f6df6f42d929234;hpb=55ccd2b959766810cf7db8d1c4462f338ce0afc8 diff --git a/ncurses/tinfo/name_match.c b/ncurses/tinfo/name_match.c index fee3ba3b..a9ac6427 100644 --- a/ncurses/tinfo/name_match.c +++ b/ncurses/tinfo/name_match.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1999-2004,2005 Free Software Foundation, Inc. * + * Copyright (c) 1999-2007,2008 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 * @@ -27,45 +27,47 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1999 * + * Author: Thomas E. Dickey 1999-on * ****************************************************************************/ #include -#include #include -MODULE_ID("$Id: name_match.c,v 1.15 2005/01/22 21:47:25 tom Exp $") +MODULE_ID("$Id: name_match.c,v 1.18 2008/11/16 00:19:59 juergen 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 NO_LEAKS if (sp == 0) { - if (buf != 0) - FreeAndNull(buf); /* for leak-testing */ - return 0; - } + if (FirstName != 0) + FreeAndNull(FirstName); + } else #endif + { + if (FirstName == 0) + FirstName = typeMalloc(char, MAX_NAME_SIZE + 1); - if (buf == 0) - buf = typeMalloc(char, MAX_NAME_SIZE + 1); - for (n = 0; n < MAX_NAME_SIZE; n++) { - if ((buf[n] = sp[n]) == '\0' - || (buf[n] == '|')) - break; + if (FirstName != 0) { + for (n = 0; n < MAX_NAME_SIZE; n++) { + if ((FirstName[n] = sp[n]) == '\0' + || (FirstName[n] == '|')) + break; + } + FirstName[n] = '\0'; + } } - buf[n] = '\0'; - return (buf); + return (FirstName); } /*