]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
basic/time-util: modernize parse_time() a bit 35421/head
authorMike Yuan <me@yhndnzj.com>
Fri, 29 Nov 2024 18:30:47 +0000 (19:30 +0100)
committerMike Yuan <me@yhndnzj.com>
Tue, 10 Dec 2024 19:50:36 +0000 (20:50 +0100)
src/basic/time-util.c

index 29afb08ebc60e05ab2af1c512596b66a92b370b0..aa51334100a3411c68cdfa1774492d17d99331ee 100644 (file)
@@ -1137,19 +1137,14 @@ static const char* extract_multiplier(const char *p, usec_t *ret) {
 
 int parse_time(const char *t, usec_t *ret, usec_t default_unit) {
         const char *p, *s;
-        usec_t usec = 0;
-        bool something = false;
 
         assert(t);
         assert(default_unit > 0);
 
-        p = t;
-
-        p += strspn(p, WHITESPACE);
+        p = skip_leading_chars(t, /* bad = */ NULL);
         s = startswith(p, "infinity");
         if (s) {
-                s += strspn(s, WHITESPACE);
-                if (*s != 0)
+                if (!in_charset(s, WHITESPACE))
                         return -EINVAL;
 
                 if (ret)
@@ -1157,13 +1152,14 @@ int parse_time(const char *t, usec_t *ret, usec_t default_unit) {
                 return 0;
         }
 
-        for (;;) {
+        usec_t usec = 0;
+
+        for (bool something = false;;) {
                 usec_t multiplier = default_unit, k;
                 long long l;
                 char *e;
 
-                p += strspn(p, WHITESPACE);
-
+                p = skip_leading_chars(p, /* bad = */ NULL);
                 if (*p == 0) {
                         if (!something)
                                 return -EINVAL;