mirror of
https://github.com/apache/nuttx.git
synced 2025-01-13 10:58:49 +08:00
libc/stdlib: If there were no digits at all, strtoul() stores the original value of nptr in *endptr (and returns 0).
Reference: STRTOUL(3) Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
This commit is contained in:
parent
9773fb9867
commit
02f1503f9f
2 changed files with 4 additions and 4 deletions
|
@ -52,9 +52,10 @@
|
|||
|
||||
unsigned long strtoul(FAR const char *nptr, FAR char **endptr, int base)
|
||||
{
|
||||
FAR const char *origin = nptr;
|
||||
unsigned long accum = 0;
|
||||
unsigned long limit;
|
||||
int value;
|
||||
int value = -1;
|
||||
int last_digit;
|
||||
char sign = 0;
|
||||
|
||||
|
@ -79,7 +80,6 @@ unsigned long strtoul(FAR const char *nptr, FAR char **endptr, int base)
|
|||
if (base < 0)
|
||||
{
|
||||
set_errno(EINVAL);
|
||||
accum = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -127,7 +127,7 @@ unsigned long strtoul(FAR const char *nptr, FAR char **endptr, int base)
|
|||
}
|
||||
}
|
||||
|
||||
*endptr = (FAR char *)nptr;
|
||||
*endptr = (FAR char *)(value == -1 ? origin : nptr);
|
||||
}
|
||||
|
||||
return accum;
|
||||
|
|
|
@ -80,7 +80,7 @@ bool lib_isbasedigit(int ch, int base, int *value)
|
|||
}
|
||||
}
|
||||
|
||||
if (value)
|
||||
if (ret && value)
|
||||
{
|
||||
*value = tmp;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue