mirror of
https://xff.cz/git/u-boot/
synced 2025-11-02 19:36:22 +01:00
lib: Add a way to find the postiion of a trailing number
At present it is not possible to find out which part of the string is the number part and which is before it. Add a new variant which provides this feature, so we can separate the two in the caller. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
14
lib/strto.c
14
lib/strto.c
@@ -183,7 +183,7 @@ long long simple_strtoll(const char *cp, char **endp, unsigned int base)
|
||||
return simple_strtoull(cp, endp, base);
|
||||
}
|
||||
|
||||
long trailing_strtoln(const char *str, const char *end)
|
||||
long trailing_strtoln_end(const char *str, const char *end, char const **endp)
|
||||
{
|
||||
const char *p;
|
||||
|
||||
@@ -192,14 +192,24 @@ long trailing_strtoln(const char *str, const char *end)
|
||||
p = end - 1;
|
||||
if (p > str && isdigit(*p)) {
|
||||
do {
|
||||
if (!isdigit(p[-1]))
|
||||
if (!isdigit(p[-1])) {
|
||||
if (endp)
|
||||
*endp = p;
|
||||
return dectoul(p, NULL);
|
||||
}
|
||||
} while (--p > str);
|
||||
}
|
||||
if (endp)
|
||||
*endp = end;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
long trailing_strtoln(const char *str, const char *end)
|
||||
{
|
||||
return trailing_strtoln_end(str, end, NULL);
|
||||
}
|
||||
|
||||
long trailing_strtol(const char *str)
|
||||
{
|
||||
return trailing_strtoln(str, NULL);
|
||||
|
||||
Reference in New Issue
Block a user