1
0
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:
Simon Glass
2022-04-24 23:30:58 -06:00
committed by Tom Rini
parent d667a0d8f4
commit 8565efd509
3 changed files with 42 additions and 3 deletions

View File

@@ -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);