From 11f2017ab76cbda4fe7b124e05187d5931dd0bf2 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sat, 28 Sep 2019 21:10:28 +0200 Subject: [PATCH] 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 --- src/libply/ply-utils.c | 12 ++++++++++++ src/libply/ply-utils.h | 1 + 2 files changed, 13 insertions(+) diff --git a/src/libply/ply-utils.c b/src/libply/ply-utils.c index cf75706..22b1db1 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 7e8f5bf..a936f7a 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);