# HG changeset patch # User Matti Hamalainen # Date 1225241478 -7200 # Node ID e47955d42b555645727ba81c50cdb058a83d3b3d # Parent 65b1ac6a1e2ed9bbf084a9c60e5c7a06d90a0235 Synced th-libs. diff -r 65b1ac6a1e2e -r e47955d42b55 th_string.c --- a/th_string.c Wed Oct 29 01:34:27 2008 +0200 +++ b/th_string.c Wed Oct 29 02:51:18 2008 +0200 @@ -29,42 +29,16 @@ } -/* Duplicate a string [strdup] - */ -char *th_strdup(char * str) +char *th_strncpy(char * dst, const char * src, size_t n) { - char *result, *s, *d; - - if (!str) return NULL; - - /* Allocate memory for destination */ - result = th_stralloc(strlen(str) + 1); - if (!result) - return NULL; - - /* Copy to the destination */ - s = str; - d = result; - while (*s) { - *(d++) = *(s++); - } - *d = 0; - - return result; -} - - -char *th_strncpy(char * dst, char * src, size_t n) -{ - char *s, *d; + const char *s = src; + char *d = dst; size_t i; - assert(src); - assert(dst); + assert(src != NULL); + assert(dst != NULL); /* Copy to the destination */ i = n; - s = src; - d = dst; while (*s && (i > 0)) { *(d++) = *(s++); i--; @@ -86,8 +60,8 @@ int th_strncmp(char * str1, char * str2, size_t n) { char *s1, *s2; - assert(str1); - assert(str2); + assert(str1 != NULL); + assert(str2 != NULL); /* Check the string pointers */ if (str1 == str2) @@ -114,8 +88,8 @@ int th_strcasecmp(char * str1, char * str2) { char *s1 = str1, *s2 = str2; - assert(str1); - assert(str2); + assert(str1 != NULL); + assert(str2 != NULL); /* Check the string pointers */ if (str1 == str2) @@ -134,8 +108,8 @@ int th_strncasecmp(char * str1, char * str2, size_t n) { char *s1 = str1, *s2 = str2; - assert(str1); - assert(str2); + assert(str1 != NULL); + assert(str2 != NULL); /* Check the string pointers */ if (str1 == str2) @@ -161,7 +135,7 @@ void th_strip_ctrlchars(char * str) { char *i, *j; - assert(str); + assert(str != NULL); i = str; j = str; @@ -179,10 +153,10 @@ */ int th_pstrcpy(char ** result, char * str) { - assert(result); + assert(result != NULL); /* Check the string pointers */ - if (!str) + if (str == NULL) return -1; /* Allocate memory for destination */ @@ -202,10 +176,10 @@ */ int th_pstrcat(char ** result, char * str) { - assert(result); + assert(result != NULL); /* Check the string pointers */ - if (!str) + if (str == NULL) return -1; if (*result != NULL) { @@ -232,7 +206,7 @@ */ char *th_findnext(char * str, size_t * iPos) { - assert(str); + assert(str != NULL); /* Terminating NULL-character is not whitespace! */ while (th_isspace(str[*iPos])) @@ -245,7 +219,7 @@ */ char *th_findsep(char * str, size_t * iPos, char chSep) { - assert(str); + assert(str != NULL); /* Terminating NULL-character is not digit! */ while (str[*iPos] && (str[*iPos] != chSep)) @@ -258,7 +232,7 @@ */ char *th_findseporspace(char * str, size_t * iPos, char chSep) { - assert(str); + assert(str != NULL); /* Terminating NULL-character is not digit! */ while (!th_isspace(str[*iPos]) && (str[*iPos] != chSep)) @@ -274,21 +248,13 @@ */ BOOL th_strmatch(char * str, char * pattern) { - BOOL didMatch, isAnyMode, isEnd; - char *tmpPattern; + BOOL didMatch = TRUE, isAnyMode = FALSE, isEnd = FALSE; + char *tmpPattern = NULL; /* Check given pattern and string */ - if (!str) - return FALSE; - if (!pattern) + if (str == NULL || pattern == NULL) return FALSE; - /* Initialize */ - tmpPattern = NULL; - didMatch = TRUE; - isEnd = FALSE; - isAnyMode = FALSE; - /* Start comparision */ do { didMatch = FALSE; @@ -330,7 +296,7 @@ break; default: if (isAnyMode) { - if ((*pattern) == (*str)) { + if (*pattern == *str) { isAnyMode = FALSE; didMatch = TRUE; } else { @@ -340,7 +306,7 @@ } } } else { - if ((*pattern) == (*str)) { + if (*pattern == *str) { didMatch = TRUE; if (*pattern) pattern++; @@ -361,7 +327,7 @@ } /* switch */ - } while ((didMatch) && (!isEnd)); + } while (didMatch && !isEnd); return didMatch; } @@ -371,21 +337,13 @@ */ BOOL th_strcasematch(char * str, char * pattern) { - BOOL didMatch, isAnyMode, isEnd; - char *tmpPattern; + BOOL didMatch = TRUE, isAnyMode = FALSE, isEnd = FALSE; + char *tmpPattern = NULL; /* Check given pattern and string */ - if (!str) - return FALSE; - if (!pattern) + if (str == NULL || pattern == NULL) return FALSE; - /* Initialize */ - tmpPattern = NULL; - didMatch = TRUE; - isEnd = FALSE; - isAnyMode = FALSE; - /* Start comparision */ do { switch (*pattern) { @@ -400,7 +358,7 @@ case '*': pattern++; - if (!*pattern || (*pattern == '?')) + if (!*pattern || *pattern == '?') isEnd = TRUE; isAnyMode = TRUE; tmpPattern = pattern; @@ -455,7 +413,7 @@ } /* switch */ - } while ((didMatch) && (!isEnd)); + } while (didMatch && !isEnd); return didMatch; }