aboutsummaryrefslogtreecommitdiff
path: root/src/SString.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/SString.c')
-rw-r--r--src/SString.c20
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';