You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.7 KiB
54 lines
1.7 KiB
diff -up xdriinfo-1.0.4/xdriinfo.c~ xdriinfo-1.0.4/xdriinfo.c |
|
--- xdriinfo-1.0.4/xdriinfo.c~ 2009-10-16 23:39:10.000000000 +0200 |
|
+++ xdriinfo-1.0.4/xdriinfo.c 2017-03-13 12:01:53.419636100 +0100 |
|
@@ -101,23 +101,9 @@ int main (int argc, char *argv[]) { |
|
return 1; |
|
} |
|
} |
|
- /* if the argument to the options command is a driver name, we can handle |
|
- * it without opening an X connection */ |
|
- if (func == OPTIONS && screenNum == -1) { |
|
- const char *options = (*GetDriverConfig) (funcArg); |
|
- if (!options) { |
|
- fprintf (stderr, |
|
- "Driver \"%s\" is not installed or does not support configuration.\n", |
|
- funcArg); |
|
- return 1; |
|
- } |
|
- printf ("%s", options); |
|
- if (isatty (STDOUT_FILENO)) |
|
- printf ("\n"); |
|
- return 0; |
|
- } |
|
+ |
|
/* driver command needs a valid screen number */ |
|
- else if (func == DRIVER && screenNum == -1) { |
|
+ if (func == DRIVER && screenNum == -1) { |
|
fprintf (stderr, "Invalid screen number \"%s\".\n", funcArg); |
|
return 1; |
|
} |
|
@@ -135,6 +121,9 @@ int main (int argc, char *argv[]) { |
|
return 1; |
|
} |
|
|
|
+ /* Call glXGetClientString to load vendor libs on glvnd enabled systems */ |
|
+ glXGetClientString (dpy, GLX_EXTENSIONS); |
|
+ |
|
switch (func) { |
|
case NSCREENS: |
|
printf ("%d", nScreens); |
|
@@ -154,7 +143,13 @@ int main (int argc, char *argv[]) { |
|
break; |
|
} |
|
case OPTIONS: { |
|
- const char *name = (*GetScreenDriver) (dpy, screenNum), *options; |
|
+ const char *name, *options; |
|
+ |
|
+ if (screenNum == -1) { |
|
+ name = funcArg; |
|
+ } else { |
|
+ name = (*GetScreenDriver) (dpy, screenNum); |
|
+ } |
|
if (!name) { |
|
fprintf (stderr, "Screen \"%d\" is not direct rendering capable.\n", |
|
screenNum);
|
|
|