From: Lennart Poettering Date: Thu, 7 Jan 2016 18:43:26 +0000 (+0100) Subject: basic: introduce generic ascii_strlower_n() call and make use of it everywhere X-Git-Tag: v229.1~1^2~70 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=07de3e94bec7f426258007c4a790a78589d2fee3;p=elogind.git basic: introduce generic ascii_strlower_n() call and make use of it everywhere --- diff --git a/src/basic/string-util.c b/src/basic/string-util.c index 2c9754db0..e2bdb8976 100644 --- a/src/basic/string-util.c +++ b/src/basic/string-util.c @@ -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; } diff --git a/src/basic/string-util.h b/src/basic/string-util.h index 54f9d3058..8b87c1e23 100644 --- a/src/basic/string-util.h +++ b/src/basic/string-util.h @@ -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_;