summaryrefslogtreecommitdiff
path: root/src/string/strverscmp.c
AgeCommit message (Collapse)AuthorFilesLines
2015-06-23reimplement strverscmp to fix corner casesRich Felker1-32/+25
this interface is non-standardized and is a GNU invention, and as such, our implementation should match the behavior of the GNU function. one peculiarity the old implementation got wrong was the handling of all-zero digit sequences: they are supposed to compare greater than digit sequences of which they are a proper prefix, as in 009 < 00. in addition, high bytes were treated with char signedness rather than as unsigned. this was wrong regardless of what the GNU function does since the resulting order relation varied by arch. the new strverscmp implementation makes explicit the cases where the order differs from what strcmp would produce, of which there are only two.
2013-12-12include cleanups: remove unused headers and add feature test macrosSzabolcs Nagy1-1/+0
2013-02-26fix integer type issue in strverscmpRich Felker1-1/+3
lenl-lenr is not a valid expression for a signed int return value from strverscmp, since after implicit conversion from size_t to int this difference could have the wrong sign or might even be zero. using the difference for char values works since they're bounded well within the range of differences representable by int, but it does not work for size_t values.
2013-02-26implement non-stub strverscmpRich Felker1-2/+35
patch by Isaac Dunham.
2011-09-11add dummied strverscmp (obnoxious GNU function)Rich Felker1-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.