From 84d4a0f3f177f6d63c2cf24df1dcf2497d8f18e8 Mon Sep 17 00:00:00 2001 From: Justin Maggard Date: Sat, 19 Nov 2011 08:59:32 +0000 Subject: [PATCH] * Improve trimming of quotation marks. --- utils.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/utils.c b/utils.c index 4156e6e..3c684d5 100644 --- a/utils.c +++ b/utils.c @@ -69,16 +69,32 @@ ends_with(const char * haystack, const char * needle) char * trim(char *str) { - if (!str) - return(NULL); - int i; - for (i=0; i <= strlen(str) && (isspace(str[i]) || str[i] == '"'); i++) { + int i; + int len; + + if (!str) + return(NULL); + + len = strlen(str); + for (i=len-1; i >= 0 && isspace(str[i]); i--) + { + str[i] = '\0'; + len--; + } + while (isspace(*str)) + { + str++; + len--; + } + + if (str[0] == '"' && str[len-1] == '"') + { + str[0] = '\0'; + str[len-1] = '\0'; str++; } - for (i=(strlen(str)-1); i >= 0 && (isspace(str[i]) || str[i] == '"'); i--) { - str[i] = '\0'; - } - return str; + + return str; } /* Find the first occurrence of p in s, where s is terminated by t */