X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;ds=sidebyside;f=functions%2Fwchar%2Fwcscoll.c;fp=functions%2Fwchar%2Fwcscoll.c;h=9c7c2a60352cfa971dbf8e6b4b324efae805a173;hb=522a5e059582a513f7af8e418a1e8611aafb3513;hp=0000000000000000000000000000000000000000;hpb=abc15df6b9fae3374d24c7cf5c3ab94c605b2a6d;p=pdclib diff --git a/functions/wchar/wcscoll.c b/functions/wchar/wcscoll.c new file mode 100644 index 0000000..9c7c2a6 --- /dev/null +++ b/functions/wchar/wcscoll.c @@ -0,0 +1,36 @@ +/* wcscoll( const wchar_t *, const wchar_t * ) + + This file is part of the Public Domain C Library (PDCLib). + Permission is granted to use, modify, and / or redistribute at will. +*/ + +#include + +#ifndef REGTEST + +/* I did much searching as to how various people implement this. + * + * OpenBSD, NetBSD and Musl libc for Linux implement this as a call to wcscmp + * and have various "todo" notices on this function, and on the other hand + * glibc implements it as a 500 line function. FreeBSD has an implementation + * which kind of uses their single byte character strcoll data for the first + * 256 characters, but looks incredibly fragile and likely to break. + * + * TL;DR: Nobody uses this, and this will probably work perfectly fine for you. + */ + +int wcscoll( const wchar_t * s1, const wchar_t * s2 ) +{ + return wcscmp(s1, s2); +} + +#endif + +#ifdef TEST +#include "_PDCLIB_test.h" + +int main( void ) +{ + return TEST_RESULTS; +} +#endif