chiark / gitweb /
basic: introduce generic ascii_strlower_n() call and make use of it everywhere
authorLennart Poettering <lennart@poettering.net>
Thu, 7 Jan 2016 18:43:26 +0000 (19:43 +0100)
committerSven Eden <yamakuzure@gmx.net>
Wed, 17 May 2017 13:22:15 +0000 (15:22 +0200)
src/basic/string-util.c
src/basic/string-util.h

index 2c9754db08f1955920e5f2a478d61ab5491b3f04..e2bdb89765b9adc20faea56efaaadc1814a5c823 100644 (file)
@@ -310,14 +310,33 @@ char *truncate_nl(char *s) {
         return s;
 }
 
+char ascii_tolower(char x) {
+
+        if (x >= 'A' && x <= 'Z')
+                return x - 'A' + 'a';
+
+        return x;
+}
+
 char *ascii_strlower(char *t) {
         char *p;
 
         assert(t);
 
         for (p = t; *p; p++)
-                if (*p >= 'A' && *p <= 'Z')
-                        *p = *p - 'A' + 'a';
+                *p = ascii_tolower(*p);
+
+        return t;
+}
+
+char *ascii_strlower_n(char *t, size_t n) {
+        size_t i;
+
+        if (n <= 0)
+                return t;
+
+        for (i = 0; i < n; i++)
+                t[i] = ascii_tolower(t[i]);
 
         return t;
 }
index 54f9d3058cc5257595e30f2c011943c77be67e0d..8b87c1e23d356e4f3b7d2becf9c9174bc8df3b01 100644 (file)
@@ -128,7 +128,9 @@ char *strstrip(char *s);
 char *delete_chars(char *s, const char *bad);
 char *truncate_nl(char *s);
 
-char *ascii_strlower(char *path);
+char ascii_tolower(char x);
+char *ascii_strlower(char *s);
+char *ascii_strlower_n(char *s, size_t n);
 
 bool chars_intersect(const char *a, const char *b) _pure_;