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:
M | sort.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;
}