summaryrefslogtreecommitdiff
path: root/sys/src/cmd/acid
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2016-05-01 21:52:34 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2016-05-01 21:52:34 +0200
commit79fbfbff48c19e11c60317797e7b9f2903e69a37 (patch)
tree4d7bca339df7a05f80250e80e80b028bf952b015 /sys/src/cmd/acid
parent5aa224c153db83a9fe82848860a062c7c3566cc5 (diff)
acid: don't get fooled by spaces in convflt()
Diffstat (limited to 'sys/src/cmd/acid')
-rw-r--r--sys/src/cmd/acid/exec.c21
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