summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2012-11-13 14:43:11 +0100
committerBastien Nocera <hadess@hadess.net>2012-11-13 18:29:43 +0100
commit97088bda14ca8f1c2fa52326e208593722931689 (patch)
treef94af9aee43230a85f8d2ecf55b9fb5da9f8b08a /tools
parent269756ce8012a9d76e124f95b4e4dd7ff4ab5802 (diff)
downloadgnome-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.c17
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);