From: Hans de Goede Date: Tue, 4 Mar 2025 11:50:53 +0000 (+0100) Subject: ply-utils: Add ply_kernel_command_line_get_ulong () helper X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=443e58016267e1509f63f9ce262d266c9b225f22;p=thirdparty%2Fplymouth.git ply-utils: Add ply_kernel_command_line_get_ulong () helper Add a ply_kernel_command_line_get_ulong () helper mirroring ply_key_file_get_ulong (). Signed-off-by: Hans de Goede --- diff --git a/src/libply/ply-utils.c b/src/libply/ply-utils.c index 155459dc..dee79869 100644 --- a/src/libply/ply-utils.c +++ b/src/libply/ply-utils.c @@ -1251,6 +1251,28 @@ ply_kernel_command_line_get_key_value (const char *key) return strndup (value, strcspn (value, " \n")); } +unsigned long +ply_kernel_command_line_get_ulong (const char *key, + unsigned long default_value) +{ + const char *raw_value; + char *endptr = NULL; + unsigned long u; + + raw_value = ply_kernel_command_line_get_string_after_prefix (key); + if (raw_value == NULL || raw_value[0] == '\0') + return default_value; + + u = strtoul (raw_value, &endptr, 0); + if (!isspace ((int) *endptr) && *endptr != '\0') { + ply_trace ("'%s' argument '%s' is not a valid unsigned number", + key, raw_value); + return default_value; + } + + return u; +} + void ply_kernel_command_line_override (const char *command_line) { diff --git a/src/libply/ply-utils.h b/src/libply/ply-utils.h index 1ee31960..058c7bff 100644 --- a/src/libply/ply-utils.h +++ b/src/libply/ply-utils.h @@ -175,6 +175,8 @@ const char *ply_kernel_command_line_get_string_after_prefix (const char *prefix) bool ply_kernel_command_line_has_argument (const char *argument); void ply_kernel_command_line_override (const char *command_line); char *ply_kernel_command_line_get_key_value (const char *key); +unsigned long ply_kernel_command_line_get_ulong (const char *key, + unsigned long default_value); char *ply_get_primary_kernel_console_type (void);