diff options
Diffstat (limited to 'src/SString.c')
-rw-r--r-- | src/SString.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/SString.c b/src/SString.c index b0b1477..a72a576 100644 --- a/src/SString.c +++ b/src/SString.c @@ -337,14 +337,20 @@ StringEquals( const String * a, const String * b ) int StringCompare( const String * a, const String * b ) { - const size_t length = MIN( a->length, b->length ); + return StringCompareCString( a, b->chars ); +} - if( length > 0 ) - return strncmp( a->chars, b->chars, length ) <= 0; - else if( b->chars == 0 ) - return SSTRUE; +int +StringCompareCString( const String * a, const char * b ) +{ + const size_t length = MIN( a->length, strlen( b ) ); - return SSFALSE; + if( length > 0 ) + return strncmp( a->chars, b, length ); + else if( strlen( b ) == 0 ) + return 0; + else /* b is empty but a isn't */ + return 1; } String * @@ -432,7 +438,7 @@ StringConcat( String * s, const String * other ) * On unix the default \n works; on the Mac, you might want \r */ void -String_SetLineEndCharacter( String * s, const SSCHAR *end ) +StringSetLineEndCharacter( String * s, const SSCHAR *end ) { strncpy( s->line_end, end, LINE_END_BUFSIZE ); s->line_end[LINE_END_BUFSIZE - 1] = '\0'; |