changeset 47:e47955d42b55

Synced th-libs.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 29 Oct 2008 02:51:18 +0200
parents 65b1ac6a1e2e
children 4e3616709752
files th_string.c
diffstat 1 files changed, 30 insertions(+), 72 deletions(-) [+]
line wrap: on
line diff
--- 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;
 }