sbase

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

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:
Msort.c | 7++++---
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;