X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Ffmt_scan.c;h=4d4d6330c6441b17f5b48ecbd95d9ad99f38f046;hp=d0b112bf0d02c513bfc048512e4db01f3f3821eb;hb=1642d62841486ade88ec2c48dd581e3249c98c94;hpb=95f7880a49b3eb5d1d4f5a966c291d91aeca3c41 diff --git a/sbr/fmt_scan.c b/sbr/fmt_scan.c index d0b112b..4d4d633 100644 --- a/sbr/fmt_scan.c +++ b/sbr/fmt_scan.c @@ -230,15 +230,16 @@ cpstripped(char **start, char *end, char *str) } } #else - while((c = (unsigned char) *s++) && *start < end) - if (!iscntrl(c) && !isspace(c)) + while((c = (unsigned char) *s++) && *start < end) { + if (!iscntrl(c) && !isspace(c)) { *(*start)++ = c; - else { + } else { while ((c = (unsigned char) *s) && (iscntrl(c) || isspace(c))) s++; *(*start)++ = ' '; } + } #endif } @@ -298,12 +299,13 @@ fmt_trim(char *str, int width) char *xp; int ljust, i; char buffer[BUFSIZ]; + char *dst; strncpy(buffer, str, sizeof(buffer)); - buffer[sizeof(buffer)-1] = '\0'; - str = buffer; - while (isspace(*str)) { - str++; + dst = buffer; + dst[sizeof(buffer)-1] = '\0'; + while (isspace(*dst)) { + dst++; } ljust = 0; if ((i = width) < 0) { @@ -311,17 +313,18 @@ fmt_trim(char *str, int width) ljust++; } - if (!ljust && i > 0 && (int)strlen(str) > i) { - str[i] = '\0'; + if (!ljust && i > 0 && (int)strlen(dst) > i) { + dst[i] = '\0'; } - xp = str; - xp += strlen(str) - 1; - while (xp > str && isspace(*xp)) { + xp = dst; + xp += strlen(dst) - 1; + while (xp > dst && isspace(*xp)) { *xp-- = '\0'; } - if (ljust && i > 0 && (int)strlen(str) > i) { - str += strlen(str) - i; + if (ljust && i > 0 && (int)strlen(dst) > i) { + dst += strlen(dst) - i; } + strncpy(str, dst, strlen(str) + 1); return str; }