From 1d88c2b10ca295ddd8636cc0338bb07d76bfae04 Mon Sep 17 00:00:00 2001 From: Jon Lund Steffensen Date: Mon, 24 May 2010 21:26:06 +0200 Subject: Pass arguments as string to adjustment methods. --- src/vidmode.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'src/vidmode.c') diff --git a/src/vidmode.c b/src/vidmode.c index 12bec8b..df66f8c 100644 --- a/src/vidmode.c +++ b/src/vidmode.c @@ -20,6 +20,7 @@ #include #include #include +#include #ifdef ENABLE_NLS # include @@ -36,8 +37,35 @@ int -vidmode_init(vidmode_state_t *state, int screen_num, int crtc_num) +vidmode_init(vidmode_state_t *state, char *args) { + int screen_num = -1; + + /* Parse arguments. */ + while (args != NULL) { + char *next_arg = strchr(args, ':'); + if (next_arg != NULL) *(next_arg++) = '\0'; + + char *value = strchr(args, '='); + if (value != NULL) *(value++) = '\0'; + + if (strcasecmp(args, "screen") == 0) { + if (value == NULL) { + fprintf(stderr, _("Missing value for" + " parameter: `%s'.\n"), + args); + return -1; + } + screen_num = atoi(value); + } else { + fprintf(stderr, _("Unknown method parameter: `%s'.\n"), + args); + return -1; + } + + args = next_arg; + } + int r; /* Open display */ -- cgit v1.2.3-70-g09d2