[pacman-dev] [PATCH 1/3] pacman/util: return size_t from strtrim

Dave Reisner d at falconindy.com
Fri Dec 23 17:43:19 EST 2011


Instead of returning the same value as the parameter to this function,
return the length of the string, which can be useful to the caller when
its non-zero (e.g. to find the end of the string).

Signed-off-by: Dave Reisner <dreisner at archlinux.org>
---
This should make an earlier email from dan make a bit more sense
when he referred to "the new return value"

 src/pacman/util.c |   18 +++++++++---------
 src/pacman/util.h |    2 +-
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/pacman/util.c b/src/pacman/util.c
index 7846291..4160c44 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -325,13 +325,13 @@ char *strtoupper(char *str)
 
 /* Trim whitespace and newlines from a string
  */
-char *strtrim(char *str)
+size_t strtrim(char *str)
 {
-	char *pch = str;
+	char *end, *pch = str;
 
 	if(str == NULL || *str == '\0') {
 		/* string is empty, so we're done. */
-		return str;
+		return 0;
 	}
 
 	while(isspace((unsigned char)*pch)) {
@@ -348,16 +348,16 @@ char *strtrim(char *str)
 
 	/* check if there wasn't anything but whitespace in the string. */
 	if(*str == '\0') {
-		return str;
+		return 0;
 	}
 
-	pch = (str + (strlen(str) - 1));
-	while(isspace((unsigned char)*pch)) {
-		pch--;
+	end = (str + strlen(str) - 1);
+	while(isspace((unsigned char)*end)) {
+		end--;
 	}
-	*++pch = '\0';
+	*++end = '\0';
 
-	return str;
+	return end - pch;
 }
 
 /* Replace all occurances of 'needle' with 'replace' in 'str', returning
diff --git a/src/pacman/util.h b/src/pacman/util.h
index 6ec962f..6291939 100644
--- a/src/pacman/util.h
+++ b/src/pacman/util.h
@@ -56,7 +56,7 @@ const char *mbasename(const char *path);
 char *mdirname(const char *path);
 void indentprint(const char *str, size_t indent);
 char *strtoupper(char *str);
-char *strtrim(char *str);
+size_t strtrim(char *str);
 char *strreplace(const char *str, const char *needle, const char *replace);
 alpm_list_t *strsplit(const char *str, const char splitchar);
 void string_display(const char *title, const char *string);
-- 
1.7.8.1



More information about the pacman-dev mailing list