commit a62a2197a8e49f2c40f6c7c10a28339f1dd28dbe
parent e535e8d88a12459ddbf3542af6483b242cbd09e0
Author: Jakob Kramer <jakob.kramer@gmx.de>
Date: Sat, 3 May 2014 19:06:20 +0200
sort: don't evaluate if clause
this fixes that you could specify a key
definition like "-k 1.2.3", which is incorrect.
Diffstat:
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/sort.c b/sort.c
@@ -103,7 +103,7 @@ addkeydef(char *def)
if(!head)
head = node;
if(parse_keydef(&node->keydef, def))
- enprintf(2, "parse_keydef:");
+ enprintf(2, "faulty key definition\n");
if(curr)
curr->next = node;
node->next = NULL;
@@ -155,6 +155,7 @@ static int
parse_keydef(struct keydef *kd, char *s)
{
char *rest = s;
+
kd->start_column = 1;
kd->start_char = 1;
/* 0 means end of line */
@@ -170,9 +171,9 @@ parse_keydef(struct keydef *kd, char *s)
kd->end_column = strtoul(rest+1, &rest, 10);
if(kd->end_column < kd->start_column)
enprintf(2, ",%u is too small\n", kd->end_column);
+ if(*rest == '.')
+ kd->end_char = strtoul(rest+1, &rest, 10);
}
- if(*rest == '.')
- kd->end_char = strtoul(rest+1, &rest, 10);
if(*rest != '\0')
return -1;
return 0;