projects
/
fw
/
pdclib
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
I am not sure I understood strcoll() and strxfrm() correctly, but this is it for...
[fw/pdclib]
/
functions
/
string
/
strcoll.c
diff --git
a/functions/string/strcoll.c
b/functions/string/strcoll.c
index 4b7af32a8f1767d2875a9a1ed06729a5e0901b12..16a5680b610c14ea5aaf078f60ced375095753b8 100644
(file)
--- a/
functions/string/strcoll.c
+++ b/
functions/string/strcoll.c
@@
-1,7
+1,5
@@
/* $Id$ */
/* $Id$ */
-/* Release $Name$ */
-
/* strcoll( const char *, const char * )
This file is part of the Public Domain C Library (PDCLib).
/* strcoll( const char *, const char * )
This file is part of the Public Domain C Library (PDCLib).
@@
-12,10
+10,16
@@
#ifndef REGTEST
#ifndef REGTEST
-/* TODO: Dummy function, PDCLib does not support locales yet. */
+#include <locale.h>
+
int strcoll( const char * s1, const char * s2 )
{
int strcoll( const char * s1, const char * s2 )
{
- return strcmp( s1, s2 );
+ while ( ( *s1 ) && ( _PDCLIB_lconv.ctype[(unsigned char)*s1].collation == _PDCLIB_lconv.ctype[(unsigned char)*s2].collation ) )
+ {
+ ++s1;
+ ++s2;
+ }
+ return ( _PDCLIB_lconv.ctype[(unsigned char)*s1].collation == _PDCLIB_lconv.ctype[(unsigned char)*s2].collation );
}
#endif
}
#endif
@@
-23,11
+27,10
@@
int strcoll( const char * s1, const char * s2 )
#ifdef TEST
#include <_PDCLIB_test.h>
#ifdef TEST
#include <_PDCLIB_test.h>
-int main()
+int main(
void
)
{
char cmpabcde[] = "abcde";
char empty[] = "";
{
char cmpabcde[] = "abcde";
char empty[] = "";
- BEGIN_TESTS;
TESTCASE( strcmp( abcde, cmpabcde ) == 0 );
TESTCASE( strcmp( abcde, abcdx ) < 0 );
TESTCASE( strcmp( abcdx, abcde ) > 0 );
TESTCASE( strcmp( abcde, cmpabcde ) == 0 );
TESTCASE( strcmp( abcde, abcdx ) < 0 );
TESTCASE( strcmp( abcdx, abcde ) > 0 );