From: NeilBrown Date: Sun, 12 Oct 2014 23:36:39 +0000 (+1100) Subject: oceani: allow number of command line to be negative. X-Git-Tag: FallsCreek~4 X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=commitdiff_plain;h=76992b8468bbd88da50e85d8636e870f3b2d6ab8 oceani: allow number of command line to be negative. number_parse doesn't expect leading sign, so handle it explicitly. Signed-off-by: NeilBrown --- diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc index 47d5f8a..784c680 100644 --- a/csrc/oceani.mdc +++ b/csrc/oceani.mdc @@ -395,6 +395,7 @@ when no longer needed. static int parse_value(struct value *vl, char *arg) { struct text tx; + int neg = 0; switch(vl->vtype) { case Vunknown: case Vnone: @@ -405,9 +406,15 @@ when no longer needed. memcpy(vl->str.txt, arg, vl->str.len); break; case Vnum: + if (*arg == '-') { + neg = 1; + arg++; + } tx.txt = arg; tx.len = strlen(tx.txt); if (number_parse(vl->num, vl->tail, tx) == 0) mpq_init(vl->num); + else if (neg) + mpq_neg(vl->num, vl->num); break; case Vbool: if (strcasecmp(arg, "true") == 0 ||