summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Applications/Terminal/Terminal.cpp19
-rw-r--r--Kernel/TTY/VirtualConsole.cpp17
-rw-r--r--Userland/kill.cpp23
-rw-r--r--Userland/sleep.cpp17
4 files changed, 6 insertions, 70 deletions
diff --git a/Applications/Terminal/Terminal.cpp b/Applications/Terminal/Terminal.cpp
index 3e628deb8d..8c68c4e241 100644
--- a/Applications/Terminal/Terminal.cpp
+++ b/Applications/Terminal/Terminal.cpp
@@ -116,21 +116,6 @@ inline bool is_valid_final_character(byte ch)
return ch >= 0x40 && ch <= 0x7e;
}
-unsigned parse_uint(const String& str, bool& ok)
-{
- unsigned value = 0;
- for (int i = 0; i < str.length(); ++i) {
- if (str[i] < '0' || str[i] > '9') {
- ok = false;
- return 0;
- }
- value = value * 10;
- value += str[i] - '0';
- }
- ok = true;
- return value;
-}
-
static inline Color lookup_color(unsigned color)
{
return Color::from_rgb(xterm_colors[color]);
@@ -397,7 +382,7 @@ void Terminal::execute_xterm_command()
{
m_final = '@';
bool ok;
- unsigned value = parse_uint(String::copy(m_xterm_param1), ok);
+ unsigned value = String::copy(m_xterm_param1).to_uint(ok);
if (ok) {
switch (value) {
case 0:
@@ -421,7 +406,7 @@ void Terminal::execute_escape_sequence(byte final)
ParamVector params;
for (auto& parampart : paramparts) {
bool ok;
- unsigned value = parse_uint(parampart, ok);
+ unsigned value = parampart.to_uint(ok);
if (!ok) {
m_parameters.clear_with_capacity();
m_intermediates.clear_with_capacity();
diff --git a/Kernel/TTY/VirtualConsole.cpp b/Kernel/TTY/VirtualConsole.cpp
index 5c48276b7e..c4e3f9eb1a 100644
--- a/Kernel/TTY/VirtualConsole.cpp
+++ b/Kernel/TTY/VirtualConsole.cpp
@@ -128,21 +128,6 @@ inline bool is_valid_final_character(byte ch)
return ch >= 0x40 && ch <= 0x7e;
}
-unsigned parse_uint(const String& str, bool& ok)
-{
- unsigned value = 0;
- for (int i = 0; i < str.length(); ++i) {
- if (str[i] < '0' || str[i] > '9') {
- ok = false;
- return 0;
- }
- value = value * 10;
- value += str[i] - '0';
- }
- ok = true;
- return value;
-}
-
enum class VGAColor : byte {
Black = 0,
Blue,
@@ -324,7 +309,7 @@ void VirtualConsole::execute_escape_sequence(byte final)
Vector<unsigned> params;
for (auto& parampart : paramparts) {
bool ok;
- unsigned value = parse_uint(parampart, ok);
+ unsigned value = parampart.to_uint(ok);
if (!ok) {
// FIXME: Should we do something else?
return;
diff --git a/Userland/kill.cpp b/Userland/kill.cpp
index ddc6bdda91..7b1cb9a1d1 100644
--- a/Userland/kill.cpp
+++ b/Userland/kill.cpp
@@ -4,25 +4,6 @@
#include <stdlib.h>
#include <AK/AKString.h>
-static unsigned parse_uint(const String& str, bool& ok)
-{
- if (str.is_empty()) {
- ok = false;
- return 0;
- }
- unsigned value = 0;
- for (int i = 0; i < str.length(); ++i) {
- if (str[i] < '0' || str[i] > '9') {
- ok = false;
- return 0;
- }
- value = value * 10;
- value += (unsigned)(str[i] - '0');
- }
- ok = true;
- return value;
-}
-
static void print_usage_and_exit()
{
printf("usage: kill [-signal] <PID>\n");
@@ -40,13 +21,13 @@ int main(int argc, char** argv)
pid_argi = 2;
if (argv[1][0] != '-')
print_usage_and_exit();
- signum = parse_uint(&argv[1][1], ok);
+ signum = String(&argv[1][1]).to_uint(ok);
if (!ok) {
printf("'%s' is not a valid signal number\n", &argv[1][1]);
return 2;
}
}
- unsigned pid = parse_uint(argv[pid_argi], ok);
+ unsigned pid = String(argv[pid_argi]).to_uint(ok);
if (!ok) {
printf("'%s' is not a valid PID\n", argv[pid_argi]);
return 3;
diff --git a/Userland/sleep.cpp b/Userland/sleep.cpp
index dba5f1874a..25aa3732f8 100644
--- a/Userland/sleep.cpp
+++ b/Userland/sleep.cpp
@@ -3,21 +3,6 @@
#include <signal.h>
#include <AK/AKString.h>
-static unsigned parse_uint(const String& str, bool& ok)
-{
- unsigned value = 0;
- for (int i = 0; i < str.length(); ++i) {
- if (str[i] < '0' || str[i] > '9') {
- ok = false;
- return 0;
- }
- value = value * 10;
- value += str[i] - '0';
- }
- ok = true;
- return value;
-}
-
void handle_sigint(int)
{
}
@@ -29,7 +14,7 @@ int main(int argc, char** argv)
return 1;
}
bool ok;
- unsigned secs = parse_uint(argv[1], ok);
+ unsigned secs = String(argv[1]).to_uint(ok);
if (!ok) {
fprintf(stderr, "Not a valid number of seconds: \"%s\"\n", argv[1]);
return 1;