seq: parse_relnum: fix for thread message syntax relative to . or $

With a message such as .^ specified, strtol() was used on the caret.
On Linux this worked by accident because strtol() doesn't return
an error but it fails on, e.g. FreeBSD. Furthermore, it was not
possible to specify relative offsets after $.
pull/57/head
Oliver Kiddle 7 years ago committed by Leah Neukirchen
parent c1ddd4816f
commit ef65274d43

@ -185,10 +185,11 @@ parse_relnum(char *a, long cur, long last, long *out)
a = ".-1";
else if (strcmp(a, ".") == 0)
a = ".+0";
else if (strcmp(a, "$") == 0)
a = "-1";
if (*a == '.') {
if (*a == '$') {
a++;
base = last;
} else if (*a == '.') {
a++;
base = cur;
} else if (*a == '-') {
@ -198,7 +199,7 @@ parse_relnum(char *a, long cur, long last, long *out)
}
long d;
if (*a == ':') {
if (strchr(":=_^", *a)) {
d = 0;
b = a;
} else {

Loading…
Cancel
Save