From 617e2be4a3a45a6774799c3d12e8b1d179611b20 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 6 Dec 1998 18:52:09 +0000 Subject: [PATCH] (parse_something): func is called with val == 0 if no unit was given (acc_flags, acc_units): update to new standard git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@5263 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/roken/parse_units.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/roken/parse_units.c b/lib/roken/parse_units.c index d3a821aa6..cc6a74370 100644 --- a/lib/roken/parse_units.c +++ b/lib/roken/parse_units.c @@ -89,9 +89,7 @@ parse_something (const char *s, const struct units *units, val = strtod (p, &next); /* strtol(p, &next, 0); */ if (val == 0 && p == next) { - if(accept_no_val_p) - val = 1; - else + if(!accept_no_val_p) return -1; } p = next; @@ -104,6 +102,7 @@ parse_something (const char *s, const struct units *units, break; } else if (*p == '+') { ++p; + val = 1; } else if (*p == '-') { ++p; val = -1; @@ -150,6 +149,9 @@ parse_something (const char *s, const struct units *units, static int acc_units(int res, int val, unsigned mult) { + if (val == 0) + val = 1; + return res + val * mult; } @@ -173,6 +175,8 @@ acc_flags(int res, int val, unsigned mult) return res | mult; else if(val == -1) return res & ~mult; + else if (val == 0) + return mult; else return -1; }