commit: ad69607fe21bde3192f230b926facdc1b7a57cbd Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Fri Mar 22 09:57:05 2019 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Fri Mar 22 09:57:05 2019 +0000 URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=ad69607f
remove_extra_space: move to libq/rmspace Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> libq/rmspace.c | 34 ++++++++++++++++++++++++++++++++++ libq/rmspace.h | 1 + main.c | 31 +++---------------------------- 3 files changed, 38 insertions(+), 28 deletions(-) diff --git a/libq/rmspace.c b/libq/rmspace.c index a43354d..f3b8e37 100644 --- a/libq/rmspace.c +++ b/libq/rmspace.c @@ -7,9 +7,12 @@ * Copyright 2019- Fabian Groffen - <[email protected]> */ +#include "main.h" + #include <stdlib.h> #include <string.h> #include <ctype.h> +#include <xalloc.h> #include "rmspace.h" @@ -35,3 +38,34 @@ char *rmspace(char *s) { return rmspace_len(s, strlen(s)); } + +/* removes adjacent extraneous white space */ +char * +remove_extra_space(char *str) +{ + char *p, c = ' '; + size_t len, pos = 0; + char *buf; + + if (str == NULL) + return NULL; + len = strlen(str); + buf = xmalloc(len+1); + for (p = str; *p != 0; ++p) { + if (!isspace(*p)) { + c = *p; + } else { + if (c == ' ') + continue; + c = ' '; + } + buf[pos] = c; + pos++; + } + buf[pos] = '\0'; + if (pos > 0 && buf[pos-1] == ' ') + buf[pos-1] = '\0'; + strcpy(str, buf); + free(buf); + return str; +} diff --git a/libq/rmspace.h b/libq/rmspace.h index f70d732..e37d121 100644 --- a/libq/rmspace.h +++ b/libq/rmspace.h @@ -10,5 +10,6 @@ char *rmspace_len(char *s, size_t len); char *rmspace(char *s); +char *remove_extra_space(char *s); #endif diff --git a/main.c b/main.c index 6b4153a..01d358a 100644 --- a/main.c +++ b/main.c @@ -4,6 +4,7 @@ * * Copyright 2005-2008 Ned Ludd - <[email protected]> * Copyright 2005-2014 Mike Frysinger - <[email protected]> + * Copyright 2018- Fabian Groffen - <[email protected]> */ #include "main.h" @@ -112,8 +113,8 @@ static DECLARE_ARRAY(overlays); static void no_colors(void) { - /* echo $(awk '{print $4,"="}' libq/colors.c | grep ^* |cut -c 2-| grep ^[A-Z] |tr '\n' ' ') = \"\"\; */ - BOLD = NORM = BLUE = DKBLUE = CYAN = GREEN = DKGREEN = MAGENTA = RED = YELLOW = BRYELLOW = WHITE = ""; + BOLD = NORM = BLUE = DKBLUE = CYAN = GREEN = DKGREEN = \ + MAGENTA = RED = YELLOW = BRYELLOW = WHITE = ""; setenv("NOCOLOR", "true", 1); } @@ -281,32 +282,6 @@ rematch(const char *re, const char *match, int cflags) return ret; } -/* removes adjacent extraneous white space */ -static char * -remove_extra_space(char *str) -{ - char *p, c = ' '; - size_t len, pos = 0; - char *buf; - - if (str == NULL) - return NULL; - len = strlen(str); - buf = xzalloc(len+1); - for (p = str; *p != 0; ++p) { - if (!isspace(*p)) c = *p; else { - if (c == ' ') continue; - c = ' '; - } - buf[pos] = c; - pos++; - } - if (pos > 0 && buf[pos-1] == ' ') buf[pos-1] = '\0'; - strcpy(str, buf); - free(buf); - return str; -} - static void freeargv(int argc, char **argv) {
