On 19/09/15 03:17, Silvan Jegen wrote:
Hi
There is a typo in the commit message.
[pacman-dev] [PATCH v2 1/7] move strtim to util-common
vs.
[pacman-dev] [PATCH v2 1/7] move strt*r*im to util-common
one other thing below.
Thanks.
On Mon, Sep 14, 2015 at 06:37:38PM -0400, Andrew Gregory wrote:
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com> --- src/common/util-common.c | 39 +++++++++++++++++++++++++++++++++++++++ src/common/util-common.h | 2 ++ src/pacman/ini.c | 2 +- src/pacman/util.c | 39 --------------------------------------- src/pacman/util.h | 1 - src/util/pactree.c | 36 ------------------------------------ 6 files changed, 42 insertions(+), 77 deletions(-)
diff --git a/src/common/util-common.c b/src/common/util-common.c index e834168..542dcfd 100644 --- a/src/common/util-common.c +++ b/src/common/util-common.c @@ -17,6 +17,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include <ctype.h> #include <errno.h> #include <stdlib.h> #include <string.h> @@ -127,6 +128,44 @@ char *safe_fgets(char *s, int size, FILE *stream) return ret; }
+/* Trim whitespace and newlines from a string + */ +size_t strtrim(char *str) +{ + char *end, *pch = str; + + if(str == NULL || *str == '\0') { + /* string is empty, so we're done. */ + return 0; + } + + while(isspace((unsigned char)*pch)) { + pch++; + } + if(pch != str) { + size_t len = strlen(pch); + if(len) { + memmove(str, pch, len + 1); + pch = str; + } else { + *str = '\0'; + } + }
The last part could be simplified as follows.
[...] if(pch != str) { size_t len = strlen(pch); if(!len) { /* check if there wasn't anything but whitespace in the string. */ *str = '\0'; return 0; } memmove(str, pch, len + 1); pch = str; }
and these three lines could then be removed...
+ if(*str == '\0') { + return 0; + } [...]
...because we already checked for (*str == '\0') in the empty string case further up in the function.
This patch is a pure cut and paste. Any improvements should go in a other patches. A