about summary refs log tree commit diff
path: root/src/string
Commit message (Collapse)AuthorAgeFilesLines
* use restrict everywhere it's required by c99 and/or posix 2008Rich Felker2012-09-0620-20/+20
| | | | | | | | to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
* remove dependency of wmemmove on wmemcpy directionRich Felker2012-09-061-4/+4
| | | | | | unlike the memmove commit, this one should be fine to leave in place. wmemmove is not performance-critical, and even if it were, it's already copying whole 32-bit words at a time instead of bytes.
* remove dependency of memmove on memcpy directionRich Felker2012-09-061-5/+4
| | | | | | | | this commit introduces a performance regression in many uses of memmove, which will need to be addressed before the next release. i'm making it as a temporary measure so that the restrict patch can be committed without invoking undefined behavior when memmove calls memcpy with overlapping regions.
* memcpy asm for i386 and x86_64Rich Felker2012-08-112-0/+51
|
* remove unused but buggy code from strstr.cRich Felker2012-08-111-10/+0
|
* remove buggy short-string wcsstr implementation; always use twowayRich Felker2012-08-111-9/+0
| | | | | | since this interface is rarely used, it's probably best to lean towards keeping code size down anyway. one-character needles will still be found immediately by the initial wcschr call anyway.
* optimize mempcpy to minimize need for data saved across the callRich Felker2012-07-311-2/+1
|
* make strerror_r behave nicer on failureRich Felker2012-06-201-2/+8
| | | | | | | if the buffer is too short, at least return a partial string. this is helpful if the caller is lazy and does not check for failure. care is taken to avoid writing anything if the buffer length is zero, and to always null-terminate when the buffer length is non-zero.
* fix overrun (n essentially ignored) in wcsncmpRich Felker2012-05-261-1/+1
| | | | bug report and solution by Richard Pennington
* fix failure of strrchr(str, 0)Rich Felker2012-05-261-1/+1
| | | | bug report and solution by Richard Pennington
* add all missing wchar functions except floating point parsersRich Felker2012-03-019-0/+71
| | | | | these are mostly untested and adapted directly from corresponding byte string functions and similar.
* add dummied strverscmp (obnoxious GNU function)Rich Felker2011-09-111-0/+7
| | | | | | programs that use this tend to horribly botch international text support, so it's questionable whether we want to support it even in the long term... for now, it's just a dummy that calls strcmp.
* fix wrong type for wcsrchr argument 2Rich Felker2011-06-131-1/+1
|
* fix strncat and wcsncat (double null termination)Rich Felker2011-05-223-3/+3
| | | | also modify wcsncpy to use the same loop logic
* fix wcsncpy writing past end of bufferRich Felker2011-05-221-1/+1
|
* function signature fix: add const qualifier to mempcpy src argRich Felker2011-04-261-1/+1
|
* implement memrchr (nonstandard) and optimize strrchr in terms of itRich Felker2011-04-132-4/+15
|
* fix misplaced *'s in string functions (harmless)Rich Felker2011-04-073-3/+3
|
* fix prototype for strsepRich Felker2011-04-061-0/+1
|
* fix misaligned read on early string termination in strchrRich Felker2011-04-051-1/+2
| | | | | | this could actually cause rare crashes in the case where a short string is located at the end of a page and the following page is not readable, and in fact this was seen in gcc compiling certain files.
* fix serious bug in strchr - char signednessRich Felker2011-04-031-9/+11
| | | | | | search for bytes with high bit set was giving (potentially dangerous) wrong results. i've tested, cleaned up, and hopefully sped up this function now.
* fix all implicit conversion between signed/unsigned pointersRich Felker2011-03-256-20/+16
| | | | | | | sadly the C language does not specify any such implicit conversion, so this is not a matter of just fixing warnings (as gcc treats it) but actual errors. i would like to revisit a number of these changes and possibly revise the types used to reduce the number of casts required.
* fix broken wmemchr (unbounded search)Rich Felker2011-03-171-1/+1
|
* fix missing prototype for strsignalRich Felker2011-02-261-0/+1
|
* add implementation of memccpy functionRich Felker2011-02-241-0/+32
|
* fix backwards conditional in stpncpyRich Felker2011-02-241-1/+1
| | | | | | this only made the function unnecessarily slow on systems with unaligned access, but would of course crash on systems that can't do unaligned accesses (none of which have ports yet).
* more header cleanup and conformance fixes - string.hRich Felker2011-02-141-0/+1
|
* initial check-in, version 0.5.0 v0.5.0Rich Felker2011-02-1260-0/+1054