From 036cc82fbc47a632c1ed3a310a1a29365fe48d3d Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 26 Jul 1996 04:35:31 +0000 Subject: Fri Jul 26 04:41:28 1996 Ulrich Drepper * intl/libintl.h: Define optimizing macros if __OPTIMIZE__ is defined, not __OPTIMIZED. (_nl_msg_cat_cntr): Move declaration outside macro definition to prevent "nested extern" warning. (dcgettext): Rename local variable `result' to `__result'. Thu Jul 25 22:46:30 1996 Roland McGrath * locale/programs/localedef.c (__progname): Remove decl. (main): Use program_invocation_short_name instead of __progname. (usage): Use program_invocation_name instead of __progname. Fri Jul 26 03:46:08 1996 Ulrich Drepper * catgets/gencat.c: Use "libc" instead of PACKAGE. * locale/localedef.c: Ditto. * locale/locale.c: Ditto. * locale/findlocale.c (_nl_find_locale): Little optimization. Use new function `strndup'. * locale/loadlocale.c: Little optimization. Use constant value from `_nl_category_num_items' instead of byte-order dependend value from file. * locale/programs/ld-time.c (time_add): Correct string constant. * locale/programs/locale-spec.c: New file. * locale/programs/locale.c: Call `locale_special' function if no other field matches. * locale/programs/localedef.c: No need to define `program_name'. Use global variable `__progname'. * locale/programs/locfile.c (write_locale_data): Always write LC_MESSAGES data in LC_MESSAGES/SYS_LC_MESSAGES file. This is necessary since message catalogs are also installed in the LC_MESSAGES/ directory. * locale/programs/stringtrans.c (ADDC): Correctly use `encode_char' function instead of writing single bytes. (encode_char): Also handle little endian. * locale/setlocale.c (new_composite_name): Little optimization. Use return value of `memcpy'. * misc/ttyent.h: Pretty print prototypes, add missing parameter names, prepend parameter names with __ and use `__const' instead of `const'. * posix/unistd.h: Ditto. * stdlib/stdlib.h: Ditto. * string/string.h: Ditto. * posix/getconf.c: De-ASNI-fy. Recognize POSIX.2 constant names. Use `error' function instead of doing it by hand. * sysdeps/posix/sysconf.c: De-ANSI-fy. Handle _SC_COLL_WEIGHTS_MAX. * sysdeps/stub/sysconf.c: Handle _SC_CHARCLASS_NAME_MAX, _SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_2_LOCALEDEF since these do depend on the platform. Add POSIX.4 symbols. * posix/posix2_lim.h: Add missing definition of _POSIX2_COLL_WEIGHTS_MAX. Change _POSIX2_EQUIV_CLASS_MAX and _POSIX2_CHARCLASS_NAME_MAX to high values since we have no fixed limit. * sysdeps/generic/confname.h: Add _SC_PAGE_SIZE as alias for _SC_PAGESIZE for buggy systems (= HP UX) out there. * wcsmbs/Makefile (routines): Add mbsnrtowcs and wcsnrtombs. * wcsmbs/mbsnrtowcs.c: New file. Non-standard implementation. * wcsmbs/wcsnrtombs.c: Ditto. * wcsmbs/wchar.h [__USE_GNU]: Add prototypes for mbsnrtowcs and wcsnrtombs. Thu Jul 25 00:25:54 Richard Henderson * nss/nss_db/db-XXX.c: Kill trailing ; from lock defn as a matter of course. * nss/getXXent_r.c: Likewise. * nss/nsswitch.c: Likewise. * nss/nss_files/files-XXX.c: Likewise. * sysdeps/mach/hurd/dirstream.h (struct __dirstream): Likewise. * sysdeps/unix/bsd/telldir.c (struct record): Likewise. * sysdeps/unix/dirstream.h (struct __dirstream): Likewise. --- string/string.h | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) (limited to 'string/string.h') diff --git a/string/string.h b/string/string.h index da26a6f496..45071b8560 100644 --- a/string/string.h +++ b/string/string.h @@ -89,30 +89,32 @@ extern char *__strdup __P ((__const char *__s)); extern char *strdup __P ((__const char *__s)); #endif -#if defined (__USE_GNU) && defined (__GNUC__) -/* Duplicate S, returning an identical alloca'd string. */ -#define strdupa(s) \ -({ \ - __const char *__old = (s); \ - size_t __len = strlen (__old) + 1; \ - memcpy (__builtin_alloca (__len), __old, __len); \ -}) - /* Return a malloc'd copy of at most N bytes of STRING. The resultant string is terminated even if no null terminator appears before STRING[N]. */ extern char *strndup __P ((__const char *__string, size_t __n)); +#if defined (__USE_GNU) && defined (__GNUC__) +/* Duplicate S, returning an identical alloca'd string. */ +#define strdupa(s) \ + (__extension__ \ + ({ \ + __const char *__old = (s); \ + size_t __len = strlen (__old) + 1; \ + char *__new = __builtin_alloca (__len); \ + memcpy (__new, __old, __len); \ + })) + /* Return an alloca'd copy of at most N bytes of string. */ #define strndupa(s, n) \ -({ \ - __const char *__old = (s); \ - char *__new; \ - size_t __len = strnlen (__old, (n)); \ - __new = memcpy (__builtin_alloca (__len + 1), __old, __len); \ - __new[__len] = '\0'; \ - __new; \ -}) + (__extension__ \ + ({ \ + __const char *__old = (s); \ + size_t __len = strnlen (__old, (n)); \ + char *__new = __builtin_alloca (__len + 1); \ + __new[__len] = '\0'; \ + memcpy (__new, __old, __len); \ + })) #endif /* Find the first occurrence of C in S. */ @@ -231,7 +233,7 @@ extern __ptr_t memfrob __P ((__ptr_t __s, size_t __n)); #ifdef __USE_MISC /* Return the file name within directory of FILENAME. */ -extern char *basename __P ((__const char *filename)); +extern char *basename __P ((__const char *__filename)); #endif __END_DECLS -- cgit v1.2.1