basic/utf8: modernize ascii_is_valid_n, make ascii_is_valid static inline
This commit is contained in:
+5
-18
@@ -271,27 +271,14 @@ char *utf8_escape_non_printable_full(const char *str, size_t console_width, bool
|
||||
return str_realloc(p);
|
||||
}
|
||||
|
||||
char *ascii_is_valid(const char *str) {
|
||||
/* Check whether the string consists of valid ASCII bytes,
|
||||
* i.e values between 0 and 127, inclusive. */
|
||||
char* ascii_is_valid_n(const char *str, size_t len) {
|
||||
/* Check whether the string consists of valid ASCII bytes, i.e values between 1 and 127, inclusive.
|
||||
* Stops at len, or NUL byte if len is SIZE_MAX. */
|
||||
|
||||
assert(str);
|
||||
|
||||
for (const char *p = str; *p; p++)
|
||||
if ((unsigned char) *p >= 128)
|
||||
return NULL;
|
||||
|
||||
return (char*) str;
|
||||
}
|
||||
|
||||
char *ascii_is_valid_n(const char *str, size_t len) {
|
||||
/* Very similar to ascii_is_valid(), but checks exactly len
|
||||
* bytes and rejects any NULs in that range. */
|
||||
|
||||
assert(str);
|
||||
|
||||
for (size_t i = 0; i < len; i++)
|
||||
if ((unsigned char) str[i] >= 128 || str[i] == 0)
|
||||
for (size_t i = 0; len != SIZE_MAX ? i < len : str[i] != '\0'; i++)
|
||||
if ((unsigned char) str[i] >= 128 || str[i] == '\0')
|
||||
return NULL;
|
||||
|
||||
return (char*) str;
|
||||
|
||||
Reference in New Issue
Block a user