diff --git a/Userland/Utilities/dd.cpp b/Userland/Utilities/dd.cpp index 6c472a9eaf..5f9b149097 100644 --- a/Userland/Utilities/dd.cpp +++ b/Userland/Utilities/dd.cpp @@ -4,11 +4,11 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include #include -#include #include #include #include @@ -72,7 +72,7 @@ static int handle_size_arguments(size_t& numeric_value, StringView argument) unsigned suffix_multiplier = 1; auto suffix = value[value.length() - 1]; - switch (tolower(suffix)) { + switch (to_ascii_lowercase(suffix)) { case 'k': suffix_multiplier = KiB; value = value.substring_view(0, value.length() - 1); diff --git a/Userland/Utilities/hexdump.cpp b/Userland/Utilities/hexdump.cpp index 67e4f20b2c..c11c46a3a4 100644 --- a/Userland/Utilities/hexdump.cpp +++ b/Userland/Utilities/hexdump.cpp @@ -6,6 +6,7 @@ */ #include +#include #include #include #include @@ -56,7 +57,7 @@ ErrorOr serenity_main(Main::Arguments args) out(" |"); for (auto const& byte : line) { - if (isprint(byte)) + if (is_ascii_printable(byte)) putchar(byte); else putchar('.'); diff --git a/Userland/Utilities/kill.cpp b/Userland/Utilities/kill.cpp index ec580a92ee..da78e72e36 100644 --- a/Userland/Utilities/kill.cpp +++ b/Userland/Utilities/kill.cpp @@ -4,10 +4,10 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include -#include #include #include #include @@ -48,7 +48,7 @@ ErrorOr serenity_main(Main::Arguments arguments) Optional number; - if (isalpha(strings[1][1])) { + if (is_ascii_alpha(strings[1][1])) { int value = getsignalbyname(&strings[1][1]); if (value >= 0 && value < NSIG) number = value; diff --git a/Userland/Utilities/killall.cpp b/Userland/Utilities/killall.cpp index a2e57d1f27..80668b1165 100644 --- a/Userland/Utilities/killall.cpp +++ b/Userland/Utilities/killall.cpp @@ -5,6 +5,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -48,7 +49,7 @@ ErrorOr serenity_main(Main::Arguments arguments) Optional number; - if (isalpha(arguments.argv[1][1])) { + if (is_ascii_alpha(arguments.argv[1][1])) { int value = getsignalbyname(&arguments.argv[1][1]); if (value >= 0 && value < NSIG) number = value; diff --git a/Userland/Utilities/ls.cpp b/Userland/Utilities/ls.cpp index 2dc62560a5..d33788dafe 100644 --- a/Userland/Utilities/ls.cpp +++ b/Userland/Utilities/ls.cpp @@ -211,7 +211,7 @@ static int print_escaped(StringView name) } for (auto c : name) { - if (isprint(c)) { + if (is_ascii_printable(c)) { putchar(c); printed++; } else { diff --git a/Userland/Utilities/lsof.cpp b/Userland/Utilities/lsof.cpp index db2a7fcd3c..53f9772443 100644 --- a/Userland/Utilities/lsof.cpp +++ b/Userland/Utilities/lsof.cpp @@ -4,6 +4,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -38,8 +39,8 @@ static bool parse_name(StringView name, OpenFile& file) return true; } else { file.type = component1; - auto component2 = lexer.consume_while([](char c) { return isprint(c) && c != '('; }); - lexer.ignore_while(isspace); + auto component2 = lexer.consume_while([](char c) { return is_ascii_printable(c) && c != '('; }); + lexer.ignore_while(is_ascii_space); file.name = component2; if (lexer.tell_remaining() == 0) { diff --git a/Userland/Utilities/pro.cpp b/Userland/Utilities/pro.cpp index 157ea98f1c..05314e08e0 100644 --- a/Userland/Utilities/pro.cpp +++ b/Userland/Utilities/pro.cpp @@ -6,6 +6,7 @@ */ #include +#include #include #include #include @@ -30,7 +31,7 @@ public: { GenericLexer lexer(value); - lexer.ignore_while(isspace); + lexer.ignore_while(is_ascii_space); if (lexer.consume_specific("inline")) { m_kind = Kind::Inline; @@ -42,7 +43,7 @@ public: if (lexer.consume_specific("attachment")) { m_kind = Kind::Attachment; if (lexer.consume_specific(";")) { - lexer.ignore_while(isspace); + lexer.ignore_while(is_ascii_space); if (lexer.consume_specific("filename=")) { // RFC 2183: "A short (length <= 78 characters) // parameter value containing only non-`tspecials' characters SHOULD be @@ -64,7 +65,7 @@ public: if (lexer.consume_specific("form-data")) { m_kind = Kind::FormData; while (lexer.consume_specific(";")) { - lexer.ignore_while(isspace); + lexer.ignore_while(is_ascii_space); if (lexer.consume_specific("name=")) { m_name = lexer.consume_quoted_string(); } else if (lexer.consume_specific("filename=")) { diff --git a/Userland/Utilities/readelf.cpp b/Userland/Utilities/readelf.cpp index 6ae9684cb0..97cbabb408 100644 --- a/Userland/Utilities/readelf.cpp +++ b/Userland/Utilities/readelf.cpp @@ -4,6 +4,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -338,7 +339,7 @@ ErrorOr serenity_main(Main::Arguments arguments) out(" Magic: "); for (char i : StringView { header.e_ident, sizeof(header.e_ident) }) { - if (isprint(i)) { + if (is_ascii_printable(i)) { out("{:c} ", i); } else { out("{:02x} ", i); diff --git a/Userland/Utilities/sort.cpp b/Userland/Utilities/sort.cpp index 987f101152..6894ba3aae 100644 --- a/Userland/Utilities/sort.cpp +++ b/Userland/Utilities/sort.cpp @@ -5,6 +5,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -13,7 +14,6 @@ #include #include #include -#include struct Line { StringView key; @@ -74,7 +74,7 @@ static ErrorOr load_file(Options options, StringView filename, Vector= split.size()) { key = ""sv; } else { diff --git a/Userland/Utilities/stty.cpp b/Userland/Utilities/stty.cpp index a943855319..7e277f82e3 100644 --- a/Userland/Utilities/stty.cpp +++ b/Userland/Utilities/stty.cpp @@ -7,6 +7,7 @@ #define __USE_MISC #define TTYDEFCHARS +#include #include #include #include @@ -265,9 +266,9 @@ Result apply_stty_readable_modes(StringView mode_string, termios& t) auto parse_hex = [&](StringView v) { tcflag_t ret = 0; for (auto c : v) { - c = tolower(c); + c = to_ascii_lowercase(c); ret *= 16; - if (isdigit(c)) { + if (is_ascii_digit(c)) { ret += c - '0'; } else { VERIFY(c >= 'a' && c <= 'f'); @@ -310,8 +311,8 @@ Result apply_modes(size_t parameter_count, char** raw_parameters, ter auto looks_like_stty_readable = [&](size_t idx) { bool contains_colon = false; for (auto c : parameters[idx]) { - c = tolower(c); - if (!isdigit(c) && !(c >= 'a' && c <= 'f') && c != ':') + c = to_ascii_lowercase(c); + if (!is_ascii_digit(c) && !(c >= 'a' && c <= 'f') && c != ':') return false; if (c == ':') contains_colon = true; @@ -326,7 +327,7 @@ Result apply_modes(size_t parameter_count, char** raw_parameters, ter // We should add the _POSIX_VDISABLE macro. return 0; } else if (parameters[idx][0] == '^' && parameters[idx].length() == 2) { - return toupper(parameters[idx][1]) - 0x40; + return to_ascii_uppercase(parameters[idx][1]) - 0x40; } else if (parameters[idx].starts_with("0x"sv)) { cc_t value = 0; if (parameters[idx].length() == 2) { @@ -334,12 +335,12 @@ Result apply_modes(size_t parameter_count, char** raw_parameters, ter return {}; } for (size_t i = 2; i < parameters[idx].length(); ++i) { - char ch = tolower(parameters[idx][i]); - if (!isdigit(ch) && !(ch >= 'a' && ch <= 'f')) { + char ch = to_ascii_lowercase(parameters[idx][i]); + if (!is_ascii_digit(ch) && !(ch >= 'a' && ch <= 'f')) { warnln("Invalid hexadecimal character code {}", parameters[idx]); return {}; } - value = 16 * value + (isdigit(ch)) ? (ch - '0') : (ch - 'a'); + value = 16 * value + (is_ascii_digit(ch) ? (ch - '0') : (ch - 'a')); } return value; } else if (parameters[idx].starts_with("0"sv)) { @@ -353,7 +354,7 @@ Result apply_modes(size_t parameter_count, char** raw_parameters, ter value = 8 * value + (ch - '0'); } return value; - } else if (isdigit(parameters[idx][0])) { + } else if (is_ascii_digit(parameters[idx][0])) { auto maybe_value = parameters[idx].to_uint(); if (!maybe_value.has_value()) { warnln("Invalid decimal character code {}", parameters[idx]); @@ -449,7 +450,7 @@ Result apply_modes(size_t parameter_count, char** raw_parameters, ter auto maybe_error = apply_stty_readable_modes(parameters[parameter_idx], t); if (maybe_error.is_error()) return maybe_error.error(); - } else if (isdigit(parameters[parameter_idx][0])) { + } else if (is_ascii_digit(parameters[parameter_idx][0])) { auto new_baud = parse_baud(parameter_idx); if (!new_baud.has_value()) { warnln("Invalid baud rate {}", parameters[parameter_idx]); diff --git a/Userland/Utilities/touch.cpp b/Userland/Utilities/touch.cpp index 8652b4b611..2f68d206fe 100644 --- a/Userland/Utilities/touch.cpp +++ b/Userland/Utilities/touch.cpp @@ -5,6 +5,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -60,7 +61,7 @@ static void parse_time(StringView input_time, timespec& atime, timespec& mtime) err("invalid time format '{}'", input_time); }; - while (!lexer.is_eof() && lexer.next_is(isdigit)) + while (!lexer.is_eof() && lexer.next_is(is_ascii_digit)) lex_number(); if (parameters.size() > 6) err("invalid time format '{}' -- too many parameters", input_time); @@ -131,7 +132,7 @@ static void parse_datetime(StringView input_datetime, timespec& atime, timespec& millisecond = 0; if (!lexer.is_eof()) { if (lexer.consume_specific(',') || lexer.consume_specific('.')) { - auto fractional_second = lexer.consume_while(isdigit); + auto fractional_second = lexer.consume_while(is_ascii_digit); if (fractional_second.is_empty()) err("invalid datetime format '{}' -- expected floating seconds", input_datetime); for (u8 i = 0; i < 3 && i < fractional_second.length(); ++i) { diff --git a/Userland/Utilities/tr.cpp b/Userland/Utilities/tr.cpp index 17d80c4adf..2c82d994d5 100644 --- a/Userland/Utilities/tr.cpp +++ b/Userland/Utilities/tr.cpp @@ -4,6 +4,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -34,29 +35,29 @@ static ErrorOr build_set(StringView specification) while (!lexer.is_eof()) { if (lexer.consume_specific("[:alnum:]"sv)) - TRY(generate_character_class(isalnum, out)); + TRY(generate_character_class(is_ascii_alphanumeric, out)); else if (lexer.consume_specific("[:blank:]"sv)) - TRY(generate_character_class(isblank, out)); + TRY(generate_character_class(is_ascii_blank, out)); else if (lexer.consume_specific("[:digit:]"sv)) - TRY(generate_character_class(isdigit, out)); + TRY(generate_character_class(is_ascii_digit, out)); else if (lexer.consume_specific("[:lower:]"sv)) - TRY(generate_character_class(islower, out)); + TRY(generate_character_class(is_ascii_lower_alpha, out)); else if (lexer.consume_specific("[:punct:]"sv)) - TRY(generate_character_class(ispunct, out)); + TRY(generate_character_class(is_ascii_punctuation, out)); else if (lexer.consume_specific("[:upper:]"sv)) - TRY(generate_character_class(isupper, out)); + TRY(generate_character_class(is_ascii_upper_alpha, out)); else if (lexer.consume_specific("[:alpha:]"sv)) - TRY(generate_character_class(isalpha, out)); + TRY(generate_character_class(is_ascii_alpha, out)); else if (lexer.consume_specific("[:cntrl:]"sv)) - TRY(generate_character_class(iscntrl, out)); + TRY(generate_character_class(is_ascii_control, out)); else if (lexer.consume_specific("[:graph:]"sv)) - TRY(generate_character_class(isgraph, out)); + TRY(generate_character_class(is_ascii_graphical, out)); else if (lexer.consume_specific("[:print:]"sv)) - TRY(generate_character_class(isprint, out)); + TRY(generate_character_class(is_ascii_printable, out)); else if (lexer.consume_specific("[:space:]"sv)) - TRY(generate_character_class(isspace, out)); + TRY(generate_character_class(is_ascii_space, out)); else if (lexer.consume_specific("[:xdigit:]"sv)) - TRY(generate_character_class(isxdigit, out)); + TRY(generate_character_class(is_ascii_hex_digit, out)); else if (lexer.consume_specific("\\\\"sv)) TRY(out.try_append('\\')); else if (lexer.consume_specific("\\a"sv)) diff --git a/Userland/Utilities/useradd.cpp b/Userland/Utilities/useradd.cpp index 1bb89a444a..8f3e67b387 100644 --- a/Userland/Utilities/useradd.cpp +++ b/Userland/Utilities/useradd.cpp @@ -7,6 +7,7 @@ */ #include +#include #include #include #include @@ -59,7 +60,7 @@ ErrorOr serenity_main(Main::Arguments arguments) } // Disallow names starting with _ and - - if (username[0] == '_' || username[0] == '-' || !isalpha(username[0])) { + if (username[0] == '_' || username[0] == '-' || !is_ascii_alpha(username[0])) { warnln("invalid username, {}", username); return 1; } diff --git a/Userland/Utilities/wc.cpp b/Userland/Utilities/wc.cpp index 87af538a7c..a0c296c9c0 100644 --- a/Userland/Utilities/wc.cpp +++ b/Userland/Utilities/wc.cpp @@ -5,6 +5,7 @@ * SPDX-License-Identifier: BSD-2-Clause */ +#include #include #include #include @@ -58,7 +59,7 @@ static Count get_count(DeprecatedString const& file_specifier) bool start_a_new_word = true; for (int ch = fgetc(file_pointer); ch != EOF; ch = fgetc(file_pointer)) { count.bytes++; - if (isspace(ch)) { + if (is_ascii_space(ch)) { start_a_new_word = true; if (ch == '\n') count.lines++;