sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 0bc6b1377b44ad76805b991cd1f5ba2655651bb8
parent f8a216a18c355cdd8b29da1bdb50bd4019423693
Author: Jakob Kramer <jakob.kramer@gmx.de>
Date:   Wed, 30 Apr 2014 16:08:11 +0200

sort: readability; check strndup return value

Diffstat:
Msort.c | 28++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/sort.c b/sort.c @@ -181,14 +181,16 @@ parse_keydef(struct keydef *kd, char *s) static char * next_nonblank(char *s) { - for(; *s && isblank(*s); s++); + while(*s && isblank(*s)) + s++; return s; } static char * next_blank(char *s) { - for(; *s && !isblank(*s); s++); + while(*s && !isblank(*s)) + s++; return s; } @@ -197,29 +199,35 @@ columns(char *line, const struct keydef *kd) { char *rest; char *start, *end; + char *res; unsigned int i; - for(rest = line, i = 0; i < kd->start_column; i++) { + rest = line; + for(i = 0; i < kd->start_column; i++) { if(i != 0) rest = next_blank(rest); rest = next_nonblank(rest); } - for(i = 1; i < kd->start_char && !isblank(*rest); i++, rest++); + for(i = 1; i < kd->start_char && *rest && !isblank(*rest); i++) + rest++; start = rest; if(kd->end_column) { - for(rest = line, i = 0; i < kd->end_column; i++) { + rest = line; + for(i = 0; i < kd->end_column; i++) { if(i != 0) rest = next_blank(rest); rest = next_nonblank(rest); } if(kd->end_char) - for(i = 1; i < kd->end_char && *rest && !isblank(*rest); i++, rest++); + for(i = 1; i < kd->end_char && *rest && !isblank(*rest); i++) + rest++; else rest = next_blank(rest); - end = rest; - } else { + end = rest - 1; + } else end = rest + strlen(rest); - } - return strndup(start, end - start); + if((res = strndup(start, end - start)) == NULL) + enprintf(2, "strndup:"); + return res; }