]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
utf8: split out unichar_console_width() from utf8_char_console_width()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 21 Jul 2026 05:35:56 +0000 (14:35 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 23 Jul 2026 05:40:37 +0000 (14:40 +0900)
It will be used later.

src/basic/utf8.c
src/basic/utf8.h

index faa3df9d87c3ee0af5c4443fae7332f759386d87..0fccc4711cb9eb8e3817eff421e41b2f2f951be3 100644 (file)
@@ -179,10 +179,16 @@ int utf8_char_console_width(const char *str) {
         char32_t c;
         int r;
 
+        assert(str);
+
         r = utf8_encoded_to_unichar(str, &c);
         if (r < 0)
                 return r;
 
+        return unichar_console_width(c);
+}
+
+int unichar_console_width(char32_t c) {
         if (c == '\t')
                 return 8; /* Assume a tab width of 8 */
 
index dc97f4aee716cc50fe3ba747199c24826f241c2d..fde72a0d5422c9800125484ac619decf7ac93ffb 100644 (file)
@@ -55,6 +55,7 @@ static inline char32_t utf16_surrogate_pair_to_unichar(char16_t lead, char16_t t
 
 size_t utf8_n_codepoints(const char *str) _pure_;
 int utf8_char_console_width(const char *str) _pure_;
+int unichar_console_width(char32_t c) _pure_;
 size_t utf8_console_width(const char *str) _pure_;
 
 size_t utf8_last_length(const char *s, size_t n) _pure_;