From 980b6e5eabeb572fc65c764e055eedf1acd92052 Mon Sep 17 00:00:00 2001 From: Babak Farrokhi Date: Sun, 25 Oct 2015 16:39:42 +0330 Subject: [PATCH] - improve chomp() logic --- fsipd.c | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/fsipd.c b/fsipd.c index b5afb35..35b3a0b 100644 --- a/fsipd.c +++ b/fsipd.c @@ -70,16 +70,30 @@ void *tcp_handler(void *args); void *udp_handler(void *args); /* - * remove training newline character from string + * trim string from whitespace characters */ -void -chomp(char *s) +size_t +chomp(char *restrict s) { - char *p; + int i; - while (NULL != s && NULL != (p = strrchr(s, '\n'))) { - *p = '\0'; - } + /* trim leading spaces */ + while (isspace(*s)) + s++; + + /* All spaces? */ + if (*s == 0) + return 0; + + /* trim trailing spaces */ + i = strlen(s); + + while ((i > 0) && (isspace(s[i - 1]))) + i--; + + s[i] = '\0'; + + return i; } /*