diff options
author | Bastien Nocera <hadess@hadess.net> | 2012-11-13 14:43:11 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2012-11-13 18:29:43 +0100 |
commit | 97088bda14ca8f1c2fa52326e208593722931689 (patch) | |
tree | f94af9aee43230a85f8d2ecf55b9fb5da9f8b08a /tools | |
parent | 269756ce8012a9d76e124f95b4e4dd7ff4ab5802 (diff) | |
download | gnome-session-97088bda14ca8f1c2fa52326e208593722931689.tar.gz |
gnome-session-check-accelerated: Better kcmdline parsing
https://bugzilla.gnome.org/show_bug.cgi?id=688252
Diffstat (limited to 'tools')
-rw-r--r-- | tools/gnome-session-check-accelerated-helper.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/tools/gnome-session-check-accelerated-helper.c b/tools/gnome-session-check-accelerated-helper.c index cdbaa8e6..46112f54 100644 --- a/tools/gnome-session-check-accelerated-helper.c +++ b/tools/gnome-session-check-accelerated-helper.c @@ -91,13 +91,17 @@ _print_error (const char *str) fprintf (stderr, "gnome-session-is-accelerated: %s\n", str); } +#define CMDLINE_UNSET -1 +#define CMDLINE_NON_FALLBACK_FORCED 0 +#define CMDLINE_FALLBACK_FORCED 1 + static int _parse_kcmdline (void) { FILE *kcmdline; char *line = NULL; size_t line_len = 0; - int ret = -1; + int ret = CMDLINE_UNSET; kcmdline = fopen("/proc/cmdline", "r"); if (kcmdline == NULL) @@ -392,16 +396,17 @@ main (int argc, char **argv) int ret = 1; kcmdline_parsed = _parse_kcmdline (); - if (kcmdline_parsed >= 0) { - if (kcmdline_parsed == 0) { + if (kcmdline_parsed > CMDLINE_UNSET) { + if (kcmdline_parsed == CMDLINE_NON_FALLBACK_FORCED) { _print_error ("Non-fallback mode forced by kernel command line."); ret = 0; goto out; - } else if (kcmdline_parsed == 1) { + } else if (kcmdline_parsed == CMDLINE_FALLBACK_FORCED) { _print_error ("Fallback mode forced by kernel command line."); goto out; - } else - _print_error ("Invalid value for gnome.fallback passed in kernel command line."); + } else { + fprintf (stderr, "gnome-session-is-accelerated: Invalid value '%d' for gnome.fallback passed in kernel command line.\n", kcmdline_parsed); + } } display = XOpenDisplay (NULL); |