| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As a commonly-included header, the #define basename in <string.h> can
affect code which uses "basename" for its own purposes (e.g. struct
members or C++ namespaced functions). When such cases occur and some
code includes <string.h> and some not, then errors result. OTOH,
<libgen.h> is rarely used, and that's where the renaming occurs in
glibc, so code using <libgen.h> should already be safe.
* libc/include/libgen.h (basename): Define as __xpg_basename
for source compatibility with glibc.
Declare with __ASMNAME("basename") for ABI compatibility.
* libc/include/string.h (basename): Define as basename for
source compatibility with glibc.
Declare with __ASMNAME("__gnu_basename") for ABI compatibility.
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/libgen.h (basename): Drop defining _BASENAME_DEFINED.
Always define macro basename. Add comment to explain why.
* libc/include/string.h (basename): Check for basename instead of
_BASENAME_DEFINED. Drop __GNUC__ branch, always use basename macro.
Change comment to explain why. Add nonnull function attribute.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
| |
* libc/include/libgen.h (_BASENAME_DEFINED): Define.
* libc/include/string.h (basename): Declare.
* libc/string/Makefile.am (ELIX_4_SOURCES): Add gnu_basename.c.
* libc/string/Makefile.in: Regenerate.
* libc/string/gnu_basename.c: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(cimagl): Add prototype.
(creall): Add prototype.
* libc/include/ieeefp.h: Include float.h.
(EXT_EXPBITS, EXT_FRACHBITS, EXT_FRACLBITS)
(EXT_EXP_INFNAN. EXT_EXP_BIAS, EXT_FRACBITS): Define.
(struct ieee_ext, union ieee_ext_u): New types for long double
support.
* libc/include/math.h (finitel): Add prototype.
(hypotl): Add prototype.
(sqrtl): Add prototype.
* libm/common/Makefile.am (lsrc): Add sl_finite.c.
* libm/common/Makefile.in: Regenerate.
* libm/common/fdlibm.h (__ieee754_hypotl): Add prototype.
* libm/common/hypotl.c (hypotl): Add implementation for when long
double is larger than double.
* libm/common/sqrtl.c (sqrtl): Likewise.
* libm/common/sl_finite.c: New file. Adds implementation of the
finitel function.
* libm/complex/Makefile.am (lsrc): Define.
(libcomplex_la_SOURCES): Add lsrc.
(lib_a_SOURCES): Add lsrc.
* libm/complex/Makefile.in: Regenerate.
* libm/complex/cabs.c: Add documentation of cabsl function.
* libm/complex/cimag.c: Add documentation of cimagl function.
* libm/complex/creall.c: Add documentation of creall function.
* libm/complex/cabsl.c: New file. Adds implementation of the
cabsl function.
* libm/complex/cimagl.c: New file. Adds implementation of the
cimagl function.
* libm/complex/creall.c: New file. Adds implementation of the
creall function.
* libm/math/Makefile.am (lsrc): Define.
(libmath_la_SOURCES): Add lsrc.
(lib_a_SOURCES): Add lsrc.
* libm/math/Makefile.in: Regenerate.
* libm/math/el_hypot.c: New file. Adds implementation of the
__ieee754_hypotl function.
|
|
|
|
| |
* libc/include/string.h: Correct guard for strcasecmp().
|
|
|
|
| |
(ffsll): Ditto.
|
|
|
|
|
|
| |
Thomas Uhle <thomas.uhle@eas.iis.fraunhofer.de>
* libc/include/string.h: Correct guard for strnlen().
|
|
|
|
| |
* libc/include/string.h: Improve language and OS standard guards.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libc/sys/linux/net/getnameinfo.c: Add restrict keyword to getnameinfo()
and getaddrinfo() to increase standards compliance and match glibc.
* libc/include/string.h, libc/string/memccpy.c, libc/string/memcpy.c,
libc/string/stpcpy.c, libc/string/stpncpy.c, libc/string/strcat.c,
libc/string/strncat.c, libc/string/strncpy.c, libc/string/strtok.c,
libc/string/strtok_r.c, libc/string/strxfrm.c
libc/machine/microblaze/strcpy.c, libc/machine/xscale/memcpy.c,
libc/machine/cris/memcpy.c: Add __restrict to prototype to
increase standards compliance.
|
|
|
|
|
|
|
| |
* libc/string/Makefile.am (ELIX_4_SOURCES): Add rawmemchr.c.
(CHEWOUT_FILES): Add rawmemchr.def.
* libc/string/Makefile.in: Regenerate.
* libc/string/rawmemchr.c: New file.
|
|
|
|
| |
_XOPEN_SOURCE.
|
|
|
|
|
|
|
|
|
| |
* libc/include/stdio.h (NULL): Ditto.
* libc/include/stdlib.h (NULL): Ditto.
* libc/include/string.h (NULL): Ditto.
* libc/include/wchar.h (NULL): Ditto.
* libc/include/rpc/types.h (NULL): Ditto.
* libc/include/time.h (NULL): Ditto. Include stddef.h earlier.
|
|
|
|
| |
__STRICT_ANSI__ or _XOPEN_SOURCE is defined appropriately.
|
|
|
|
|
|
|
| |
* libc/string/Makefile.am (ELIX_4_SOURCES): Add memrchr.c.
(CHEWOUT_FILES): Add memrchr.def.
* libc/string/Makefile.in: Regenerate.
* libc/string/memrchr.c: New file.
|
|
|
|
|
| |
* libc/include/string.h (strdupa): New macro function.
(strndupa): New macro function.
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/string/strerror.c (strerror): Split body into...
(_strerror_r): ...new reentrant function.
* libc/string/u_strerr.c (_user_strerror): Update signature.
* libc/include/stdio.h (_strerror_r): New prototype.
* libc/posix/collate.c (__collate_err): Adjust callers.
* libc/stdio/perror.c (_perror_r): Likewise.
* libc/string/strerror_r.c (strerror_r): Likewise.
* libc/string/xpg_strerror_r.c (__xpg_strerror_r): Likewise.
|
|
|
|
|
|
| |
* libc/string/strchrnul.c: New file.
* libc/string/Makefile.am (ELIX_2_SOURCES): Add strchrnul.c.
* libc/string/Makefile.in: Regenerate.
|
| |
|
|
|
|
|
|
|
|
|
| |
(__CONCAT): Define.
(__STRING): Define.
(__XSTRING): Define.
(__ASMNAME): Define.
* libc/include/string.h (strerror_r): Use __ASMNAME to take target
specific label prefixes into account.
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/string.h (strerror_r): Update declaration.
* libc/string/strerror.c (strerror): Update documentation.
* libc/string/strerror_r.c (strerror_r): Always return
NUL-terminated string; don't overwrite too-short buf.
* libc/string/xpg_strerror_r.c (__xpg_strerror_r): Implement POSIX
variant.
* libc/string/Makefile.am (GENERAL_SOURCES): Build new file.
* libc/string/Makefile.in: Regenerate.
|
| |
|
|
|
|
| |
* libc/include/string.h (strsignal): Fix return type.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/string/str-two-way.h: New file.
* libc/string/memmem.c (memmem): New file.
* libc/include/string.h (memmem): Declare for all platforms.
* libc/string/strstr.c (strstr): Provide O(n) implementation when
not optimizing for space.
* libc/string/strcasestr.c (strcasestr): Likewise.
* libc/string/Makefile.am (ELIX_SOURCES): Rename to...
(ELIX_2_SOURCES): ...this.
(ELIX_4_SOURCES): New category, for memmem.
(lib_a_SOURCES, libstring_la_SOURCES): Build new file.
(CHEWOUT_FILES): Build documentation for memmem.
* libc/string/strings.tex: Include new docs.
|
|
|
|
|
|
|
|
|
|
| |
* libc/string/Makefile.am (ELIX_SOURCES): Add stpcpy.c and
stpncpy.c.
(CHEWOUT_FILES): Add stpcpy.def and stpncpy.def.
* libc/string/Makefile.in: Regenerate.
* libc/string/stpcpy.c: New file.
* libc/string/stpncpy.c: New file.
* libc/string/strings.tex: Add stpcpy and stpncpy.
|
|
|
|
|
|
|
|
| |
* libc/string/strcasestr.c: New file.
* libc/include/string.h: Add strcasestr.
* libc/string/strings.tex: Add strcasestr.
* libc/string/Makefile.am: Ditto.
* libc/string/Makefile.in: Regenerated.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* libc/include/string.h: Remove Linux-specific declaration of
strsignal and add #include <sys/string.h>.
* libc/include/sys/string.h: New file.
* libc/include/sys/linux/sys/string.h: New file with strsignal
declaration deleted above.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/string.h: Add mempcpy, strndup, and _strndup_r
prototypes.
* libc/stdlib/Makefile.am: Remove strdup.c and strdup_r.c.
* libc/stdlib/Makefile.in: Regenerated.
* libc/stdlib/strdup.c: Removed.
* libc/stdlib/strdup_r.c: Removed.
* libc/string/Makefile.am: Add strdup.c, strdup_r.c, memccpy.c,
mempcpy.c, strndup.c, and strndup_r.c.
* libc/string/Makefile.in: Regenerated.
* libc/string/memccpy.c: New file.
* libc/string/mempcpy.c: Ditto.
* libc/string/strndup.c: Ditto.
* libc/string/strndup_r.c: Ditto.
* libc/string/strdup.c: New file moved from stdlib.
* libc/string/strdup_r.c: Ditto.
* libc/string/strings.tex: Add memccpy and mempcpy documentation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/stdio.h: Untangle, add _BEGIN_STD_C and _END_STD_C.
* libc/include/time.h: Same.
* libc/include/string.h: Same.
* libc/include/stdlib.h: Same.
* libc/include/signal.h: Same.
* libc/include/setjmp.h: Same.
* libc/include/math.h: Same.
* libc/include/locale.h: Same.
* libc/include/ctype.h: Same.
* libc/include/machine/setjmp.h: Same.
* libc/include/_ansi.h (_BEGIN_STD_C): Add.
(_END_STD_C): Add.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/string.h[__linux__]: Add strsignal prototype.
* libc/include/sys/lock.h: New file with default locking support.
* libc/include/sys/reent.h: Add signal buffer support for strsignal
and psignal.
* libc/posix/Makefile.am: Add support for readdir_r.c.
* libc/posix/Makefile.in: Regenerated.
* libc/posix/closedir.c: Add locking support and hash table cleanup.
* libc/posix/opendir.c: Add lock support.
* libc/posix/readdir.c: Ditto.
* libc/posix/rewinddir.c: Ditto.
* libc/posix/scandir.c: Ditto.
* libc/posix/seekdir.c: Ditto.
* libc/posix/telldir.c: Ditto plus add _cleanupdir routine to
clean up leftover hash table entries.
* libc/posix/readdir_r.c: New file.
* libc/sys/linux/Makefile.am: Add psignal.c and strsignal.c support.
* libc/sys/linux/Makefile.in: Regenerated.
* libc/sys/linux/sys/dirent.h: Add dd_lock to DIR structure.
* libc/sys/linux/sys/signal.h: Add psignal prototype.
* libc/sys/linux/psignal.c: New file.
* libc/sys/linux/strsignal.c: Ditto.
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/string.h: Add strnlen and strerror_r prototypes.
* libc/string/Makefile.am: Add strnlen.c and strerror_r.c support.
* libc/string/Makefile.in: Regenerated.
* libc/string/strerror_r.c: New file.
* libc/string/strnlen.c: New file.
* libc/sys/linux/Makefile.am: Add rename.c.
* libc/sys/linux/Makefile.in: Regenerated.
* libc/sys/linux/rename.c: New file to override default rename.
|
|
|
|
|
|
|
|
| |
* libc/include/string.h (bcmp, bcopy, bzero): Change prototypes
to use void * pointers and comply with Single Unix spec.
* libc/string/bcmp.c: Change to use void * instead of char *.
* libc/string/bcopy.c: Ditto.
* libc/string/bzero.c: Ditto.
|
|
|
|
|
|
|
| |
* libc/include/string.h (!__STRICT_ANSI__): Add strlcat and strlcpy.
* libc/string/Makefile.am: Add strlcat.c and strlcpy.c.
* libc/string/strlcat.c: New file.
* libc/string/strlcpy.c: New file.
|
|
|
|
|
|
| |
* libc/include/string.h: Don't include <sys/types.h>,
as it causes really bad namespace pollution. Don't declare
swab(), it is properly declared in unistd.h.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* libc/include/malloc.h: Ditto.
* libc/include/process.h: Ditto.
* libc/include/stdio.h: Ditto.
* libc/include/stdlib.h: Ditto.
* libc/include/time.h: Ditto.
* libc/include/machine/setjmp.h: Ditto.
* libc/include/sys/errno.h: Ditto.
* libc/include/sys/signal.h: Ditto.
* libc/include/sys/stat.h: Ditto.
* libc/include/sys/time.h: Ditto.
* libc/include/sys/unistd.h: Ditto.
* libc/include/string.h: Ditto. strsignal should return a const char *.
|
|
|
|
| |
* libc/include/string.h: Include <sys/types.h>.
|
|
|
|
|
|
|
|
| |
* libc/include/string.h: Changed last argument back to ssize_t
to make it compatible with XPG4 definition which is
defined in <unistd.h>. There is a conflict in the SVID 3
and XPG4 definitions and newlib will settle with XPG4.
* libc/string/swab.c: Ditto.
|
|
|
|
|
| |
* libc/include/string.h: Changed last argument to size_t.
* libc/string/swab.c: Changed last argument to size_t.
|
|
|
|
|
|
|
|
| |
(CHEWOUT_FILES): Added swab.def.
* libc/string/Makefile.in: Rebuilt.
* libc/string/string.tex: Include swab.def.
* libc/include/string.h (swab): Declare.
* libc/string/swab.c: New file.
|
|
|