chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
utf8: minor simplifications
[elogind.git]
/
src
/
shared
/
utf8.c
diff --git
a/src/shared/utf8.c
b/src/shared/utf8.c
index 0b6c38ebbff2f90405d86704c86a459c7b0eeb78..4469a73751c3b5624d10c01a0eac59e74eb4e453 100644
(file)
--- a/
src/shared/utf8.c
+++ b/
src/shared/utf8.c
@@
-142,19
+142,19
@@
int utf8_encoded_to_unichar(const char *str) {
}
bool utf8_is_printable_newline(const char* str, size_t length, bool newline) {
}
bool utf8_is_printable_newline(const char* str, size_t length, bool newline) {
- const
uint8_t
*p;
+ const
char
*p;
assert(str);
assert(str);
- for (p =
(const uint8_t*)
str; length;) {
+ for (p = str; length;) {
int encoded_len, val;
int encoded_len, val;
- encoded_len = utf8_encoded_valid_unichar(
(const char *)
p);
+ encoded_len = utf8_encoded_valid_unichar(p);
if (encoded_len < 0 ||
(size_t) encoded_len > length)
return false;
if (encoded_len < 0 ||
(size_t) encoded_len > length)
return false;
- val = utf8_encoded_to_unichar(
(const char*)
p);
+ val = utf8_encoded_to_unichar(p);
if (val < 0 ||
is_unicode_control(val) ||
(!newline && val == '\n'))
if (val < 0 ||
is_unicode_control(val) ||
(!newline && val == '\n'))
@@
-202,7
+202,7
@@
char *utf8_escape_invalid(const char *str) {
s = mempcpy(s, str, len);
str += len;
} else {
s = mempcpy(s, str, len);
str += len;
} else {
- s =
mempcpy(s, UTF8_REPLACEMENT_CHARACTER, strlen(UTF8_REPLACEMENT_CHARACTER)
);
+ s =
stpcpy(s, UTF8_REPLACEMENT_CHARACTER
);
str += 1;
}
}
str += 1;
}
}
@@
-230,18
+230,18
@@
char *utf8_escape_non_printable(const char *str) {
s = mempcpy(s, str, len);
str += len;
} else {
s = mempcpy(s, str, len);
str += len;
} else {
-
if ((*str < ' ') || (*str >= 127)
) {
+
while (len > 0
) {
*(s++) = '\\';
*(s++) = 'x';
*(s++) = hexchar((int) *str >> 4);
*(s++) = hexchar((int) *str);
*(s++) = '\\';
*(s++) = 'x';
*(s++) = hexchar((int) *str >> 4);
*(s++) = hexchar((int) *str);
- } else
- *(s++) = *str;
- str += 1;
+ str += 1;
+ len --;
+ }
}
} else {
}
} else {
- s =
mempcpy(s, UTF8_REPLACEMENT_CHARACTER, strlen(UTF8_REPLACEMENT_CHARACTER)
);
+ s =
stpcpy(s, UTF8_REPLACEMENT_CHARACTER
);
str += 1;
}
}
str += 1;
}
}