From: Hans de Goede Date: Sat, 28 Sep 2019 19:10:28 +0000 (+0200) Subject: ply-utils: Add ply_kernel_command_line_get_key_value helper X-Git-Tag: 0.9.5~36^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=11f2017ab76cbda4fe7b124e05187d5931dd0bf2;p=thirdparty%2Fplymouth.git ply-utils: Add ply_kernel_command_line_get_key_value helper ply_kernel_command_line_get_string_after_prefix returns the rest of the commandline after the passed in prefix. When parsing key=value parts of the commandline, we really only want the value part and stop at the whitespace separating it from other kernel commandline arguments. This commit adds a new helper which returns a strdup-ed string containing just the value; instead of the entire rest of the kernel commandline. Signed-off-by: Hans de Goede --- diff --git a/src/libply/ply-utils.c b/src/libply/ply-utils.c index cf757063..22b1db15 100644 --- a/src/libply/ply-utils.c +++ b/src/libply/ply-utils.c @@ -995,6 +995,18 @@ ply_kernel_command_line_has_argument (const char *argument) return true; } +char * +ply_kernel_command_line_get_key_value (const char *key) +{ + const char *value; + + value = ply_kernel_command_line_get_string_after_prefix (key); + if (value == NULL || value[0] == '\0') + return NULL; + + return strndup(value, strcspn (value, " \n")); +} + 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 7e8f5bf3..a936f7a2 100644 --- a/src/libply/ply-utils.h +++ b/src/libply/ply-utils.h @@ -128,6 +128,7 @@ int ply_get_device_scale (uint32_t width, 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); double ply_strtod(const char *str);