diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-05-01 21:52:34 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-05-01 21:52:34 +0200 |
commit | 79fbfbff48c19e11c60317797e7b9f2903e69a37 (patch) | |
tree | 4d7bca339df7a05f80250e80e80b028bf952b015 | |
parent | 5aa224c153db83a9fe82848860a062c7c3566cc5 (diff) |
acid: don't get fooled by spaces in convflt()
-rw-r--r-- | sys/src/cmd/acid/exec.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/sys/src/cmd/acid/exec.c b/sys/src/cmd/acid/exec.c index 09663a15a..1df6c1ea3 100644 --- a/sys/src/cmd/acid/exec.c +++ b/sys/src/cmd/acid/exec.c @@ -213,18 +213,25 @@ bool(Node *n) void convflt(Node *r, char *flt) { - char c; + char *s; - c = flt[0]; - if(('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')) { + while(*flt == ' ') + flt++; + + s = flt; + if(*s == '-' || *s == '+') + s++; + if(*s == '.') + s++; + + if(*s >= '0' && *s <= '9'){ + r->type = TFLOAT; + r->fval = atof(flt); + } else { r->type = TSTRING; r->fmt = 's'; r->string = strnode(flt); } - else { - r->type = TFLOAT; - r->fval = atof(flt); - } } void |