From 07de3e94bec7f426258007c4a790a78589d2fee3 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 7 Jan 2016 19:43:26 +0100 Subject: basic: introduce generic ascii_strlower_n() call and make use of it everywhere --- src/basic/string-util.c | 23 +++++++++++++++++++++-- src/basic/string-util.h | 4 +++- 2 files changed, 24 insertions(+), 3 deletions(-) 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_; -- cgit v1.2.3