diff options
-rw-r--r-- | xset.c | 2138 |
1 files changed, 1081 insertions, 1057 deletions
@@ -31,31 +31,31 @@ in this Software without prior written authorization from The Open Group. /* Modified by Stephen so keyboard rate is set using XKB extensions */ #ifdef HAVE_CONFIG_H -#include <config.h> +# include <config.h> #endif #ifdef HAVE_X11_EXTENSIONS_DPMS_H -#define DPMSExtension +# define DPMSExtension #endif #ifdef HAVE_X11_EXTENSIONS_MITMISC_H -#define MITMISC +# define MITMISC #endif #ifdef HAVE_X11_XKBLIB_H -#define XKB +# define XKB #endif #if defined(HAVE_X11_EXTENSIONS_XF86MISC_H) && defined(HAVE_X11_EXTENSIONS_XF86MSCSTR_H) -#define XF86MISC +# define XF86MISC #endif #if defined(HAVE_X11_EXTENSIONS_PRINT_H) -#define BUILD_PRINTSUPPORT +# define BUILD_PRINTSUPPORT #endif #if defined(HAVE_X11_EXTENSIONS_FONTCACHE_H) && defined(HAVE_X11_EXTENSIONS_FONTCACHEP_H) -#define FONTCACHE +# define FONTCACHE #endif #include <stdio.h> @@ -70,28 +70,28 @@ in this Software without prior written authorization from The Open Group. #include <X11/Xutil.h> #include <X11/Xmu/Error.h> #ifdef MITMISC -#include <X11/extensions/MITMisc.h> +# include <X11/extensions/MITMisc.h> #endif #ifdef DPMSExtension -#include <X11/extensions/dpms.h> -#ifdef WIN32 -#define BOOL wBOOL -#ifdef Status -#undef Status -#define Status wStatus -#endif -#include <windows.h> -#ifdef Status -#undef Status -#define Status int -#endif -#undef BOOL -#endif -#ifndef HAVE_USLEEP -# if defined(SVR4) && defined(sun) -# include <sys/syscall.h> +# include <X11/extensions/dpms.h> +# ifdef WIN32 +# define BOOL wBOOL +# ifdef Status +# undef Status +# define Status wStatus +# endif +# include <windows.h> +# ifdef Status +# undef Status +# define Status int +# endif +# undef BOOL +# endif +# ifndef HAVE_USLEEP +# if defined(SVR4) && defined(sun) +# include <sys/syscall.h> +# endif # endif -#endif #endif /* DPMSExtension */ #include <X11/Xos.h> @@ -102,24 +102,24 @@ in this Software without prior written authorization from The Open Group. #include <X11/Xutil.h> #include <X11/Xmu/Error.h> #ifdef MITMISC -#include <X11/extensions/MITMisc.h> +# include <X11/extensions/MITMisc.h> #endif #ifdef XF86MISC -#include <X11/extensions/xf86misc.h> -#include <X11/extensions/xf86mscstr.h> +# include <X11/extensions/xf86misc.h> +# include <X11/extensions/xf86mscstr.h> #endif #ifdef XKB -#include <X11/XKBlib.h> +# include <X11/XKBlib.h> #endif #ifdef FONTCACHE -#include <X11/extensions/fontcache.h> -#include <X11/extensions/fontcacheP.h> +# include <X11/extensions/fontcache.h> +# include <X11/extensions/fontcacheP.h> static Status set_font_cache(Display *, long, long, long); static void query_cache_status(Display *dpy); #endif #ifdef BUILD_PRINTSUPPORT -#include <X11/extensions/Print.h> +# include <X11/extensions/Print.h> #endif #define ON 1 @@ -138,12 +138,12 @@ static void query_cache_status(Display *dpy); #define ALLOW_EXP 4 #ifdef XF86MISC -#define KBDDELAY_DEFAULT 500 -#define KBDRATE_DEFAULT 30 +# define KBDDELAY_DEFAULT 500 +# define KBDRATE_DEFAULT 30 #endif #ifdef XKB -#define XKBDDELAY_DEFAULT 660 -#define XKBDRATE_DEFAULT (1000/40) +# define XKBDDELAY_DEFAULT 660 +# define XKBDRATE_DEFAULT (1000/40) #endif #define nextarg(i, argv) \ @@ -160,21 +160,22 @@ static void set_click(Display *dpy, int percent); static void set_bell_vol(Display *dpy, int percent); static void set_bell_pitch(Display *dpy, int pitch); static void set_bell_dur(Display *dpy, int duration); -static void set_font_path(Display *dpy, char *path, int special, +static void set_font_path(Display *dpy, char *path, int special, int before, int after); static void set_led(Display *dpy, int led, int led_mode); static void set_mouse(Display *dpy, int acc_num, int acc_denom, int threshold); static void set_saver(Display *dpy, int mask, int value); static void set_repeat(Display *dpy, int key, int auto_repeat_mode); -static void set_pixels(Display *dpy, unsigned long *pixels, caddr_t *colors, +static void set_pixels(Display *dpy, unsigned long *pixels, caddr_t *colors, int numpixels); static void set_lock(Display *dpy, Bool onoff); -static char * on_or_off(int val, int onval, char *onstr, - int offval, char *offstr, char buf[]); +static char *on_or_off(int val, int onval, char *onstr, + int offval, char *offstr, char buf[]); static void query(Display *dpy); static void usage(char *fmt, ...); static void error(char *message); static int local_xerror(Display *dpy, XErrorEvent *rep); + #ifdef XF86MISC static void set_repeatrate(Display *dpy, int delay, int rate); #endif @@ -185,398 +186,410 @@ static void xkbset_repeatrate(Display *dpy, int delay, int rate); int main(int argc, char *argv[]) { -register char *arg; -register int i; -int percent; -int acc_num, acc_denom, threshold; + register char *arg; + register int i; + int percent; + int acc_num, acc_denom, threshold; + #ifdef DPMSExtension -CARD16 standby_timeout, suspend_timeout, off_timeout; + CARD16 standby_timeout, suspend_timeout, off_timeout; #endif -int key, auto_repeat_mode; -XKeyboardControl values; + int key, auto_repeat_mode; + XKeyboardControl values; + #define MAX_PIXEL_COUNT 512 -unsigned long pixels[MAX_PIXEL_COUNT]; -caddr_t colors[MAX_PIXEL_COUNT]; -int numpixels = 0; -char *disp = NULL; -Display *dpy; -Bool hasargs = False; + unsigned long pixels[MAX_PIXEL_COUNT]; + caddr_t colors[MAX_PIXEL_COUNT]; + int numpixels = 0; + char *disp = NULL; + Display *dpy; + Bool hasargs = False; + #ifdef XF86MISC -int miscpresent = 1; -int major, minor; + int miscpresent = 1; + int major, minor; #else -int miscpresent = 0; + int miscpresent = 0; #endif #ifdef XKB -int xkbpresent = 1; -int xkbmajor = XkbMajorVersion, xkbminor = XkbMinorVersion; -int xkbopcode, xkbevent, xkberror; + int xkbpresent = 1; + int xkbmajor = XkbMajorVersion, xkbminor = XkbMinorVersion; + int xkbopcode, xkbevent, xkberror; #else -int xkbpresent = 0; + int xkbpresent = 0; #endif #ifdef FONTCACHE -long himark, lowmark, balance; + long himark, lowmark, balance; #endif -progName = argv[0]; -for (i = 1; i < argc; i++) { - arg = argv[i]; - if (strcmp (arg, "-display") == 0 || strcmp (arg, "-d") == 0) { - if (++i >= argc) usage ("missing argument to -display", NULL); - disp = argv[i]; - } else { - hasargs = True; - } -} -if (!hasargs) { - usage (NULL, NULL); /* replace with window interface */ -} - -dpy = XOpenDisplay(disp); /* Open display and check for success */ -if (dpy == NULL) { - fprintf(stderr, "%s: unable to open display \"%s\"\n", - argv[0], XDisplayName (disp)); - exit(EXIT_FAILURE); -} -XSetErrorHandler (local_xerror); -for (i = 1; i < argc; ) { - arg = argv[i++]; - if (strcmp (arg, "-display") == 0 || strcmp (arg, "-d") == 0) { - ++i; /* already dealt with */ - continue; - } else if (*arg == '-' && *(arg + 1) == 'c'){ /* Does arg start with "-c"? */ - set_click(dpy, 0); /* If so, turn click off and */ - } - else if (*arg == 'c') { /* Well, does it start with "c", then? */ - percent = SERVER_DEFAULT; /* Default click volume. */ - if (i >= argc) { - set_click (dpy, percent); /* set click to default */ - break; + progName = argv[0]; + for (i = 1; i < argc; i++) { + arg = argv[i]; + if (strcmp(arg, "-display") == 0 || strcmp(arg, "-d") == 0) { + if (++i >= argc) + usage("missing argument to -display", NULL); + disp = argv[i]; + } else { + hasargs = True; + } } - arg = nextarg(i, argv); - if (strcmp(arg, "on") == 0) { /* Let click be default. */ - percent = DEFAULT_ON; - i++; - } - else if (strcmp(arg, "off") == 0) { - percent = 0; /* Turn it off. */ - i++; - } - else if (is_number(arg, 100)) { - percent = atoi(arg); /* Set to spec. volume */ - i++; + if (!hasargs) { + usage(NULL, NULL); /* replace with window interface */ } - set_click(dpy, percent); - } - else if (strcmp(arg, "-b") == 0) { - set_bell_vol(dpy, 0); /* Then turn off bell. */ - } - else if (strcmp(arg, "b") == 0) { - percent = SERVER_DEFAULT; /* Set bell to default. */ - if (i >= argc) { - set_bell_vol (dpy, percent); /* set bell to default */ - set_bell_pitch(dpy,percent); /* set pitch to default */ - set_bell_dur(dpy,percent); /* set duration to default */ - break; + + dpy = XOpenDisplay(disp); /* Open display and check for success */ + if (dpy == NULL) { + fprintf(stderr, "%s: unable to open display \"%s\"\n", + argv[0], XDisplayName(disp)); + exit(EXIT_FAILURE); } - arg = nextarg(i, argv); - if (strcmp(arg, "on") == 0) { /* Let it stay that way. */ - set_bell_vol(dpy, DEFAULT_ON); /* set bell on */ - set_bell_pitch(dpy,percent); /* set pitch to default */ - set_bell_dur(dpy,percent); /* set duration to default */ - i++; - } - else if (strcmp(arg, "off") == 0) { - percent = 0; /* Turn the bell off. */ - set_bell_vol(dpy, percent); - i++; - } - else if (is_number(arg, 100)) { /* If volume is given: */ - percent = atoi(arg); /* set bell appropriately.*/ - set_bell_vol(dpy, percent); - i++; - arg = nextarg(i, argv); - - if (is_number(arg, 32767)) { /* If pitch is given: */ - set_bell_pitch(dpy, atoi(arg)); /* set the bell. */ - i++; - - arg = nextarg(i, argv); - if (is_number(arg, 32767)) { /* If duration is given: */ - set_bell_dur(dpy, atoi(arg)); /* set the bell. */ - i++; + XSetErrorHandler(local_xerror); + for (i = 1; i < argc;) { + arg = argv[i++]; + if (strcmp(arg, "-display") == 0 || strcmp(arg, "-d") == 0) { + ++i; /* already dealt with */ + continue; + } else if (*arg == '-' && *(arg + 1) == 'c') { /* Does arg start + with "-c"? */ + set_click(dpy, 0); /* If so, turn click off */ + } else if (*arg == 'c') { /* Well, does it start + with "c", then? */ + percent = SERVER_DEFAULT; /* Default click volume. */ + if (i >= argc) { + set_click(dpy, percent); /* set click to default */ + break; + } + arg = nextarg(i, argv); + if (strcmp(arg, "on") == 0) { /* Let click be default. */ + percent = DEFAULT_ON; + i++; + } else if (strcmp(arg, "off") == 0) { + percent = 0; /* Turn it off. */ + i++; + } else if (is_number(arg, 100)) { + percent = atoi(arg); /* Set to spec. volume */ + i++; + } + set_click(dpy, percent); + } else if (strcmp(arg, "-b") == 0) { + set_bell_vol(dpy, 0); /* Then turn off bell. */ + } else if (strcmp(arg, "b") == 0) { + percent = SERVER_DEFAULT; /* Set bell to default. */ + if (i >= argc) { + set_bell_vol(dpy, percent); /* set bell to default */ + set_bell_pitch(dpy, percent); /* set pitch to default */ + set_bell_dur(dpy, percent); /* set duration to default */ + break; + } + arg = nextarg(i, argv); + if (strcmp(arg, "on") == 0) { /* Let it stay that way. */ + set_bell_vol(dpy, DEFAULT_ON); /* set bell on */ + set_bell_pitch(dpy, percent); /* set pitch to default */ + set_bell_dur(dpy, percent); /* set duration to default */ + i++; + } else if (strcmp(arg, "off") == 0) { + percent = 0; /* Turn the bell off. */ + set_bell_vol(dpy, percent); + i++; + } else if (is_number(arg, 100)) { /* If volume is given: */ + percent = atoi(arg); /* set bell appropriately. */ + set_bell_vol(dpy, percent); + i++; + arg = nextarg(i, argv); + + if (is_number(arg, 32767)) { /* If pitch is given: */ + set_bell_pitch(dpy, atoi(arg)); /* set the bell. */ + i++; + + arg = nextarg(i, argv); + if (is_number(arg, 32767)) { /* If duration is given: */ + set_bell_dur(dpy, atoi(arg)); /* set the bell. */ + i++; + } + } + } else + set_bell_vol(dpy, percent); /* set bell to default */ } - } - } - else - set_bell_vol (dpy, percent); /* set bell to default */ - } #ifdef MITMISC - else if (strcmp(arg, "bc") == 0) { - int dummy; - if (XMITMiscQueryExtension(dpy, &dummy, &dummy)) - XMITMiscSetBugMode(dpy, True); - else - fprintf(stderr, "server does not have extension for bc option\n"); - } - else if (strcmp(arg, "-bc") == 0) { - int dummy; - if (XMITMiscQueryExtension(dpy, &dummy, &dummy)) - XMITMiscSetBugMode(dpy, False); - else - fprintf(stderr, "server does not have extension for -bc option\n"); - } + else if (strcmp(arg, "bc") == 0) { + int dummy; + + if (XMITMiscQueryExtension(dpy, &dummy, &dummy)) + XMITMiscSetBugMode(dpy, True); + else + fprintf(stderr, + "server does not have extension for bc option\n"); + } else if (strcmp(arg, "-bc") == 0) { + int dummy; + + if (XMITMiscQueryExtension(dpy, &dummy, &dummy)) + XMITMiscSetBugMode(dpy, False); + else + fprintf(stderr, + "server does not have extension for -bc option\n"); + } #endif #ifdef FONTCACHE - else if (strcmp(arg, "fc") == 0) { - int dummy; - FontCacheSettings cs; - if (FontCacheQueryExtension(dpy, &dummy, &dummy)) { - FontCacheGetCacheSettings(dpy, &cs); - himark = cs.himark / 1024; - lowmark = cs.lowmark / 1024; - balance = cs.balance; - if (i >= argc) { - /* Set to server's values, and clear all cache in side effect */ - set_font_cache(dpy, himark, lowmark, balance); - break; - } - arg = nextarg(i, argv); - if (is_number(arg, 32767)) { /* If hi-mark is given: */ - himark = atoi(arg); - i++; - if (himark <= 0) { - usage("hi-mark must be greater than 0", NULL); - } - if (i >= argc) { - lowmark = (himark * 70) / 100; - set_font_cache(dpy, himark, lowmark, balance); - break; - } - arg = nextarg(i, argv); - if (is_number(arg, 32767)) { /* If low-mark is given: */ - lowmark = atoi(arg); - i++; - if (lowmark <= 0) { - usage("low-mark must be greater than 0", NULL); - } - if (himark <= lowmark) { - usage("hi-mark must be greater than low-mark", NULL); - } - if (i >= argc) { - set_font_cache(dpy, himark, lowmark, balance); - break; - } - arg = nextarg(i, argv); - if (is_number(arg, 90)) { - balance = atoi(arg); - i++; - if (!(10 <= balance && balance <= 90)) { - usage("balance must be 10 to 90\n"); - } - set_font_cache(dpy, himark, lowmark, balance); - } - } - } else if (strcmp(arg, "s") == 0 || strcmp(arg, "status") == 0) { - /* display cache status */ - query_cache_status(dpy); - } - } else { - fprintf(stderr, "server does not have extension for fc option\n"); - } - } + else if (strcmp(arg, "fc") == 0) { + int dummy; + FontCacheSettings cs; + + if (FontCacheQueryExtension(dpy, &dummy, &dummy)) { + FontCacheGetCacheSettings(dpy, &cs); + himark = cs.himark / 1024; + lowmark = cs.lowmark / 1024; + balance = cs.balance; + if (i >= argc) { + /* Set to server's values, and clear all cache + in side effect */ + set_font_cache(dpy, himark, lowmark, balance); + break; + } + arg = nextarg(i, argv); + if (is_number(arg, 32767)) { /* If hi-mark is given: */ + himark = atoi(arg); + i++; + if (himark <= 0) { + usage("hi-mark must be greater than 0", NULL); + } + if (i >= argc) { + lowmark = (himark * 70) / 100; + set_font_cache(dpy, himark, lowmark, balance); + break; + } + arg = nextarg(i, argv); + if (is_number(arg, 32767)) { /* If low-mark is given: */ + lowmark = atoi(arg); + i++; + if (lowmark <= 0) { + usage("low-mark must be greater than 0", NULL); + } + if (himark <= lowmark) { + usage("hi-mark must be greater than low-mark", + NULL); + } + if (i >= argc) { + set_font_cache(dpy, himark, lowmark, balance); + break; + } + arg = nextarg(i, argv); + if (is_number(arg, 90)) { + balance = atoi(arg); + i++; + if (!(10 <= balance && balance <= 90)) { + usage("balance must be 10 to 90\n"); + } + set_font_cache(dpy, himark, lowmark, balance); + } + } + } else if (strcmp(arg, "s") == 0 + || strcmp(arg, "status") == 0) { + /* display cache status */ + query_cache_status(dpy); + } + } else { + fprintf(stderr, + "server does not have extension for fc option\n"); + } + } #endif #ifdef BUILD_PRINTSUPPORT - else if (strcmp(arg, "rehashprinterlist") == 0) { /* rehash list of printers */ - short dummy; - if (XpQueryVersion(dpy, &dummy, &dummy)) { - XpRehashPrinterList(dpy); - } else { - fprintf(stderr, "server does not have extension for rehashprinterlist option\n"); - } - } + else if (strcmp(arg, "rehashprinterlist") == 0) { + /* rehash list of printers */ + short dummy; + + if (XpQueryVersion(dpy, &dummy, &dummy)) { + XpRehashPrinterList(dpy); + } else { + fprintf(stderr, + "server does not have extension for rehashprinterlist option\n"); + } + } #endif - else if (strcmp(arg, "fp") == 0) { /* set font path */ - if (i >= argc) { - arg = "default"; - } else { - arg = nextarg(i, argv); - } - set_font_path(dpy, arg, 1, 0, 0); /* special argument */ - i++; - } - else if (strcmp(arg, "fp=") == 0) { /* unconditionally set */ - if (i >= argc) { - usage ("missing fp= argument", NULL); - } else { - arg = nextarg(i, argv); - } - set_font_path(dpy, arg, 0, 0, 0); /* not special, set */ - i++; - } - else if (strcmp(arg, "+fp") == 0) { /* set font path */ - if (i >= argc) usage ("missing +fp argument", NULL); - arg = nextarg(i, argv); - set_font_path(dpy, arg, 0, 1, 0); /* not special, prepend */ - i++; - } - else if (strcmp(arg, "fp+") == 0) { /* set font path */ - if (i >= argc) usage ("missing fp+ argument", NULL); - arg = nextarg(i, argv); - set_font_path(dpy, arg, 0, 0, 1); /* not special, append */ - i++; - } - else if (strcmp(arg, "-fp") == 0) { /* set font path */ - if (i >= argc) usage ("missing -fp argument", NULL); - arg = nextarg(i, argv); - set_font_path(dpy, arg, 0, -1, 0); /* not special, preremove */ - i++; - } - else if (strcmp(arg, "fp-") == 0) { /* set font path */ - if (i >= argc) usage ("missing fp- argument", NULL); - arg = nextarg(i, argv); - set_font_path(dpy, arg, 0, 0, -1); /* not special, postremove */ - i++; - } - else if (strcmp(arg, "-led") == 0) { /* Turn off one or all LEDs */ - values.led_mode = OFF; - values.led = ALL; /* None specified */ - if (i >= argc) { - set_led(dpy, values.led, values.led_mode); - break; - } - arg = nextarg(i, argv); - if (is_number(arg, 32) && atoi(arg) > 0) { - values.led = atoi(arg); - i++; - } - set_led(dpy, values.led, values.led_mode); - } - else if (strcmp(arg, "led") == 0) { /* Turn on one or all LEDs */ - values.led_mode = ON; - values.led = ALL; - if (i >= argc) { - set_led (dpy, values.led, values.led_mode); /* set led to def */ - break; - } - arg = nextarg(i, argv); - if (strcmp(arg, "on") == 0) { - i++; - } - else if (strcmp(arg, "off") == 0) { /* ...except in this case. */ - values.led_mode = OFF; - i++; - } - else if (is_number(arg, 32) && atoi(arg) > 0) { - values.led = atoi(arg); - i++; - } - set_led(dpy, values.led, values.led_mode); - } + else if (strcmp(arg, "fp") == 0) { /* set font path */ + if (i >= argc) { + arg = "default"; + } else { + arg = nextarg(i, argv); + } + set_font_path(dpy, arg, 1, 0, 0); /* special argument */ + i++; + } else if (strcmp(arg, "fp=") == 0) { /* unconditionally set */ + if (i >= argc) { + usage("missing fp= argument", NULL); + } else { + arg = nextarg(i, argv); + } + set_font_path(dpy, arg, 0, 0, 0); /* not special, set */ + i++; + } else if (strcmp(arg, "+fp") == 0) { /* set font path */ + if (i >= argc) + usage("missing +fp argument", NULL); + arg = nextarg(i, argv); + set_font_path(dpy, arg, 0, 1, 0); /* not special, prepend */ + i++; + } else if (strcmp(arg, "fp+") == 0) { /* set font path */ + if (i >= argc) + usage("missing fp+ argument", NULL); + arg = nextarg(i, argv); + set_font_path(dpy, arg, 0, 0, 1); /* not special, append */ + i++; + } else if (strcmp(arg, "-fp") == 0) { /* set font path */ + if (i >= argc) + usage("missing -fp argument", NULL); + arg = nextarg(i, argv); + set_font_path(dpy, arg, 0, -1, 0); /* not special, preremove */ + i++; + } else if (strcmp(arg, "fp-") == 0) { /* set font path */ + if (i >= argc) + usage("missing fp- argument", NULL); + arg = nextarg(i, argv); + set_font_path(dpy, arg, 0, 0, -1); /* not special, postremove */ + i++; + } else if (strcmp(arg, "-led") == 0) { /* Turn off one or all LEDs */ + values.led_mode = OFF; + values.led = ALL; /* None specified */ + if (i >= argc) { + set_led(dpy, values.led, values.led_mode); + break; + } + arg = nextarg(i, argv); + if (is_number(arg, 32) && atoi(arg) > 0) { + values.led = atoi(arg); + i++; + } + set_led(dpy, values.led, values.led_mode); + } else if (strcmp(arg, "led") == 0) { /* Turn on one or all LEDs */ + values.led_mode = ON; + values.led = ALL; + if (i >= argc) { + set_led(dpy, values.led, + values.led_mode); /* set led to def */ + break; + } + arg = nextarg(i, argv); + if (strcmp(arg, "on") == 0) { + i++; + } else if (strcmp(arg, "off") == 0) { /* ...except in this case. */ + values.led_mode = OFF; + i++; + } else if (is_number(arg, 32) && atoi(arg) > 0) { + values.led = atoi(arg); + i++; + } + set_led(dpy, values.led, values.led_mode); + } /* Set pointer (mouse) settings: Acceleration and Threshold. */ - else if (strcmp(arg, "m") == 0 || strcmp(arg, "mouse") == 0) { - acc_num = SERVER_DEFAULT; /* restore server defaults */ - acc_denom = SERVER_DEFAULT; - threshold = SERVER_DEFAULT; - if (i >= argc){ - set_mouse(dpy, acc_num, acc_denom, threshold); - break; - } - arg = argv[i]; - if (strcmp(arg, "default") == 0) { - i++; - } - else if (*arg >= '0' && *arg <= '9') { - acc_denom = 1; - sscanf(arg, "%d/%d", &acc_num, &acc_denom); - i++; - if (i >= argc) { - set_mouse(dpy, acc_num, acc_denom, threshold); - break; - } - arg = argv[i]; - if (*arg >= '0' && *arg <= '9') { - threshold = atoi(arg); /* Set threshold as user specified. */ - i++; - } - } - set_mouse(dpy, acc_num, acc_denom, threshold); - } + else if (strcmp(arg, "m") == 0 || strcmp(arg, "mouse") == 0) { + acc_num = SERVER_DEFAULT; /* restore server defaults */ + acc_denom = SERVER_DEFAULT; + threshold = SERVER_DEFAULT; + if (i >= argc) { + set_mouse(dpy, acc_num, acc_denom, threshold); + break; + } + arg = argv[i]; + if (strcmp(arg, "default") == 0) { + i++; + } else if (*arg >= '0' && *arg <= '9') { + acc_denom = 1; + sscanf(arg, "%d/%d", &acc_num, &acc_denom); + i++; + if (i >= argc) { + set_mouse(dpy, acc_num, acc_denom, threshold); + break; + } + arg = argv[i]; + if (*arg >= '0' && *arg <= '9') { + threshold = atoi(arg); /* Set threshold as user specified. */ + i++; + } + } + set_mouse(dpy, acc_num, acc_denom, threshold); + } #ifdef DPMSExtension - else if (strcmp(arg, "+dpms") == 0) { /* turn on DPMS */ - int dummy; - if (DPMSQueryExtension(dpy, &dummy, &dummy)) - DPMSEnable(dpy); - else - fprintf(stderr, "server does not have extension for +dpms option\n"); - } - else if (strcmp(arg, "-dpms") == 0) { /* shut off DPMS */ - int dummy; - if (DPMSQueryExtension(dpy, &dummy, &dummy)) - DPMSDisable(dpy); - else - fprintf(stderr, "server does not have extension for -dpms option\n"); - - } - else if (strcmp(arg, "dpms") == 0) { /* tune DPMS */ - int dummy; - if (DPMSQueryExtension(dpy, &dummy, &dummy)) - { - DPMSGetTimeouts(dpy, &standby_timeout, &suspend_timeout, - &off_timeout); - if (i >= argc) { - DPMSEnable(dpy); - break; - } - arg = argv[i]; - if (*arg >= '0' && *arg <= '9') { - sscanf(arg, "%hu", &standby_timeout); - i++; - arg = argv[i]; - if ((arg)&&(*arg >= '0' && *arg <= '9')) { - sscanf(arg, "%hu", &suspend_timeout); - i++; - arg = argv[i]; - if ((arg)&&(*arg >= '0' && *arg <= '9')) { - sscanf(arg, "%hu", &off_timeout); - i++; - arg = argv[i]; - } - } - if ((suspend_timeout != 0)&&(standby_timeout > suspend_timeout)) - { - fprintf(stderr, "illegal combination of values\n"); - fprintf(stderr, " standby time of %d is greater than suspend time of %d\n", standby_timeout, suspend_timeout); - exit(EXIT_FAILURE); - } - if ((off_timeout != 0)&&(suspend_timeout > off_timeout)) - { - fprintf(stderr, "illegal combination of values\n"); - fprintf(stderr, " suspend time of %d is greater than off time of %d\n", suspend_timeout, off_timeout); - exit(EXIT_FAILURE); - } - if ((suspend_timeout == 0)&&(off_timeout != 0)&& - (standby_timeout > off_timeout)) - { - fprintf(stderr, "illegal combination of values\n"); - fprintf(stderr, " standby time of %d is greater than off time of %d\n", standby_timeout, off_timeout); - exit(EXIT_FAILURE); - } - DPMSEnable(dpy); - DPMSSetTimeouts(dpy, standby_timeout, suspend_timeout, off_timeout); - } - else if (i+1 < argc && strcmp(arg, "force") == 0) { - i++; - arg = argv[i]; - /* - * The calls to usleep below are necessary to delay the actual - * DPMS mode setting briefly. Without them, it's likely that the - * mode will be set between the Down and Up key transitions, in - * which case the Up transition may immediately turn the display - * back on. - * - * On OS/2, use _sleep2() - */ + else if (strcmp(arg, "+dpms") == 0) { /* turn on DPMS */ + int dummy; + + if (DPMSQueryExtension(dpy, &dummy, &dummy)) + DPMSEnable(dpy); + else + fprintf(stderr, + "server does not have extension for +dpms option\n"); + } else if (strcmp(arg, "-dpms") == 0) { /* shut off DPMS */ + int dummy; + + if (DPMSQueryExtension(dpy, &dummy, &dummy)) + DPMSDisable(dpy); + else + fprintf(stderr, + "server does not have extension for -dpms option\n"); + + } else if (strcmp(arg, "dpms") == 0) { /* tune DPMS */ + int dummy; + + if (DPMSQueryExtension(dpy, &dummy, &dummy)) { + DPMSGetTimeouts(dpy, &standby_timeout, &suspend_timeout, + &off_timeout); + if (i >= argc) { + DPMSEnable(dpy); + break; + } + arg = argv[i]; + if (*arg >= '0' && *arg <= '9') { + sscanf(arg, "%hu", &standby_timeout); + i++; + arg = argv[i]; + if ((arg) && (*arg >= '0' && *arg <= '9')) { + sscanf(arg, "%hu", &suspend_timeout); + i++; + arg = argv[i]; + if ((arg) && (*arg >= '0' && *arg <= '9')) { + sscanf(arg, "%hu", &off_timeout); + i++; + arg = argv[i]; + } + } + if ((suspend_timeout != 0) + && (standby_timeout > suspend_timeout)) { + fprintf(stderr, "illegal combination of values\n"); + fprintf(stderr, + " standby time of %d is greater than suspend time of %d\n", + standby_timeout, suspend_timeout); + exit(EXIT_FAILURE); + } + if ((off_timeout != 0) && (suspend_timeout > off_timeout)) { + fprintf(stderr, "illegal combination of values\n"); + fprintf(stderr, + " suspend time of %d is greater than off time of %d\n", + suspend_timeout, off_timeout); + exit(EXIT_FAILURE); + } + if ((suspend_timeout == 0) && (off_timeout != 0) && + (standby_timeout > off_timeout)) { + fprintf(stderr, "illegal combination of values\n"); + fprintf(stderr, + " standby time of %d is greater than off time of %d\n", + standby_timeout, off_timeout); + exit(EXIT_FAILURE); + } + DPMSEnable(dpy); + DPMSSetTimeouts(dpy, standby_timeout, suspend_timeout, + off_timeout); + } else if (i + 1 < argc && strcmp(arg, "force") == 0) { + i++; + arg = argv[i]; + /* + * The calls to usleep below are necessary to + * delay the actual DPMS mode setting briefly. + * Without them, it's likely that the mode will be + * set between the Down and Up key transitions, in + * which case the Up transition may immediately + * turn the display back on. + * + * On OS/2, use _sleep2() + */ + #ifdef HAVE_USLEEP # define Usleep(us) usleep((us)) #else @@ -617,230 +630,214 @@ for (i = 1; i < argc; ) { #endif #endif /* HAVE_USLEEP */ - if (strcmp(arg, "on") == 0) { - DPMSEnable(dpy); - DPMSForceLevel(dpy, DPMSModeOn); - i++; - } - else if (strcmp(arg, "standby") == 0) { - DPMSEnable(dpy); - Usleep(100000); - DPMSForceLevel(dpy, DPMSModeStandby); - i++; - } - else if (strcmp(arg, "suspend") == 0) { - DPMSEnable(dpy); - Usleep(100000); - DPMSForceLevel(dpy, DPMSModeSuspend); - i++; - } - else if (strcmp(arg, "off") == 0) { - DPMSEnable(dpy); - Usleep(100000); - DPMSForceLevel(dpy, DPMSModeOff); - i++; - } - else { - fprintf(stderr, "bad parameter %s\n", arg); - i++; - } - } - } - else { - fprintf(stderr, "server does not have extension for dpms option\n"); - } -} + if (strcmp(arg, "on") == 0) { + DPMSEnable(dpy); + DPMSForceLevel(dpy, DPMSModeOn); + i++; + } else if (strcmp(arg, "standby") == 0) { + DPMSEnable(dpy); + Usleep(100000); + DPMSForceLevel(dpy, DPMSModeStandby); + i++; + } else if (strcmp(arg, "suspend") == 0) { + DPMSEnable(dpy); + Usleep(100000); + DPMSForceLevel(dpy, DPMSModeSuspend); + i++; + } else if (strcmp(arg, "off") == 0) { + DPMSEnable(dpy); + Usleep(100000); + DPMSForceLevel(dpy, DPMSModeOff); + i++; + } else { + fprintf(stderr, "bad parameter %s\n", arg); + i++; + } + } + } else { + fprintf(stderr, + "server does not have extension for dpms option\n"); + } + } #endif /* DPMSExtension */ - else if (strcmp(arg, "s") == 0) { - if (i >= argc) { - set_saver(dpy, ALL, 0); /* Set everything to default */ - break; - } - arg = argv[i]; - if (strcmp(arg, "blank") == 0) { /* Alter blanking preference. */ - set_saver(dpy, PREFER_BLANK, PreferBlanking); - i++; - } - else if (strcmp(arg, "noblank") == 0) { /* Ditto. */ - set_saver(dpy, PREFER_BLANK, DontPreferBlanking); - i++; - } - else if (strcmp(arg, "expose") == 0) { /* Alter exposure preference. */ - set_saver(dpy, ALLOW_EXP, AllowExposures); - i++; - } - else if (strcmp(arg, "noexpose") == 0) { /* Ditto. */ - set_saver(dpy, ALLOW_EXP, DontAllowExposures); - i++; - } - else if (strcmp(arg, "off") == 0) { - set_saver(dpy, TIMEOUT, 0); /* Turn off screen saver. */ - i++; - if (i >= argc) - break; - arg = argv[i]; - if (strcmp(arg, "off") == 0) { - set_saver(dpy, INTERVAL, 0); - i++; - } - } - else if (strcmp(arg, "default") == 0) { /* Leave as default. */ - set_saver(dpy, ALL, SERVER_DEFAULT); - i++; - } - else if (strcmp(arg, "on") == 0) { /* Turn on. */ - set_saver(dpy, ALL, DEFAULT_TIMEOUT); - i++; - } - else if (strcmp(arg, "activate") == 0) { /* force it active */ - XActivateScreenSaver(dpy); - i++; - } - else if (strcmp(arg, "reset") == 0) { /* force it inactive */ - XResetScreenSaver(dpy); - i++; - } - else if (*arg >= '0' && *arg <= '9') { /* Set as user wishes. */ - set_saver(dpy, TIMEOUT, atoi(arg)); - i++; - if (i >= argc) - break; - arg = argv[i]; - if (*arg >= '0' && *arg <= '9') { - set_saver(dpy, INTERVAL, atoi(arg)); - i++; - } - } - } - else if (strcmp(arg, "-r") == 0) { /* Turn off one or all autorepeats */ - auto_repeat_mode = OFF; - key = ALL; /* None specified */ - arg = argv[i]; - if (i < argc) - if (is_number(arg, 255)) { - key = atoi(arg); - i++; - } - set_repeat(dpy, key, auto_repeat_mode); - } - else if (strcmp(arg, "r") == 0) { /* Turn on one or all autorepeats */ - auto_repeat_mode = ON; - key = ALL; /* None specified */ - arg = argv[i]; - if (i < argc) { - if (strcmp(arg, "on") == 0) { - i++; - } - else if (strcmp(arg, "off") == 0) { /* ...except in this case */ - auto_repeat_mode = OFF; - i++; - } + else if (strcmp(arg, "s") == 0) { + if (i >= argc) { + set_saver(dpy, ALL, 0); /* Set everything to default */ + break; + } + arg = argv[i]; + if (strcmp(arg, "blank") == 0) { /* Alter blanking preference. */ + set_saver(dpy, PREFER_BLANK, PreferBlanking); + i++; + } else if (strcmp(arg, "noblank") == 0) { /* Ditto. */ + set_saver(dpy, PREFER_BLANK, DontPreferBlanking); + i++; + } else if (strcmp(arg, "expose") == 0) { /* Alter exposure preference. */ + set_saver(dpy, ALLOW_EXP, AllowExposures); + i++; + } else if (strcmp(arg, "noexpose") == 0) { /* Ditto. */ + set_saver(dpy, ALLOW_EXP, DontAllowExposures); + i++; + } else if (strcmp(arg, "off") == 0) { + set_saver(dpy, TIMEOUT, 0); /* Turn off screen saver. */ + i++; + if (i >= argc) + break; + arg = argv[i]; + if (strcmp(arg, "off") == 0) { + set_saver(dpy, INTERVAL, 0); + i++; + } + } else if (strcmp(arg, "default") == 0) { /* Leave as default. */ + set_saver(dpy, ALL, SERVER_DEFAULT); + i++; + } else if (strcmp(arg, "on") == 0) { /* Turn on. */ + set_saver(dpy, ALL, DEFAULT_TIMEOUT); + i++; + } else if (strcmp(arg, "activate") == 0) { /* force it active */ + XActivateScreenSaver(dpy); + i++; + } else if (strcmp(arg, "reset") == 0) { /* force it inactive */ + XResetScreenSaver(dpy); + i++; + } else if (*arg >= '0' && *arg <= '9') { /* Set as user wishes. */ + set_saver(dpy, TIMEOUT, atoi(arg)); + i++; + if (i >= argc) + break; + arg = argv[i]; + if (*arg >= '0' && *arg <= '9') { + set_saver(dpy, INTERVAL, atoi(arg)); + i++; + } + } + } else if (strcmp(arg, "-r") == 0) { /* Turn off one or + all autorepeats */ + auto_repeat_mode = OFF; + key = ALL; /* None specified */ + arg = argv[i]; + if (i < argc) + if (is_number(arg, 255)) { + key = atoi(arg); + i++; + } + set_repeat(dpy, key, auto_repeat_mode); + } else if (strcmp(arg, "r") == 0) { /* Turn on one or + all autorepeats */ + auto_repeat_mode = ON; + key = ALL; /* None specified */ + arg = argv[i]; + if (i < argc) { + if (strcmp(arg, "on") == 0) { + i++; + } else if (strcmp(arg, "off") == 0) { /* ...except in + this case */ + auto_repeat_mode = OFF; + i++; + } #if defined(XF86MISC) || defined(XKB) - else if (strcmp(arg, "rate") == 0) { /* ...or this one. */ - int delay = 0, rate = 0; + else if (strcmp(arg, "rate") == 0) { /* ...or this one. */ + int delay = 0, rate = 0; + #ifdef XF86MISC - int rate_set = 0; - if (XF86MiscQueryVersion(dpy, &major, &minor)) { - delay=KBDDELAY_DEFAULT, rate=KBDRATE_DEFAULT; - } else { - miscpresent = 0; - } + int rate_set = 0; + + if (XF86MiscQueryVersion(dpy, &major, &minor)) { + delay = KBDDELAY_DEFAULT, rate = KBDRATE_DEFAULT; + } else { + miscpresent = 0; + } #endif #ifdef XKB - if (XkbQueryExtension(dpy, &xkbopcode, &xkbevent, &xkberror, &xkbmajor, - &xkbminor)) { - delay=XKBDDELAY_DEFAULT, rate=XKBDRATE_DEFAULT; - } else { - xkbpresent = 0; - } + if (XkbQueryExtension(dpy, &xkbopcode, &xkbevent, + &xkberror, &xkbmajor, &xkbminor)) { + delay = XKBDDELAY_DEFAULT, rate = XKBDRATE_DEFAULT; + } else { + xkbpresent = 0; + } #endif - if (!miscpresent && !xkbpresent) - fprintf(stderr, - "server does not have extension for \"r rate\" option\n"); - i++; - arg = argv[i]; - if (i < argc) { - if (is_number(arg, 10000) && atoi(arg)>0) { - delay = atoi(arg); - i++; - arg = argv[i]; - if (i < argc) { - if (is_number(arg, 255) && atoi(arg)>0) { - rate = atoi(arg); - i++; - } - } - } - } + if (!miscpresent && !xkbpresent) + fprintf(stderr, + "server does not have extension for \"r rate\" option\n"); + i++; + arg = argv[i]; + if (i < argc) { + if (is_number(arg, 10000) && atoi(arg) > 0) { + delay = atoi(arg); + i++; + arg = argv[i]; + if (i < argc) { + if (is_number(arg, 255) && atoi(arg) > 0) { + rate = atoi(arg); + i++; + } + } + } + } #ifdef XKB - if (xkbpresent) { - xkbset_repeatrate(dpy, delay, 1000/rate); + if (xkbpresent) { + xkbset_repeatrate(dpy, delay, 1000 / rate); #ifdef XF86MISC - rate_set = 1; + rate_set = 1; #endif - } + } #endif #ifdef XF86MISC - if (miscpresent && !rate_set) { - set_repeatrate(dpy, delay, rate); - } + if (miscpresent && !rate_set) { + set_repeatrate(dpy, delay, rate); + } #endif - } + } #endif - else if (is_number(arg, 255)) { - key = atoi(arg); - i++; + else if (is_number(arg, 255)) { + key = atoi(arg); + i++; + } + } + set_repeat(dpy, key, auto_repeat_mode); + } else if (strcmp(arg, "p") == 0) { + if (i + 1 >= argc) + usage("missing argument to p", NULL); + arg = argv[i]; + if (numpixels >= MAX_PIXEL_COUNT) + usage("more than %d pixels specified", MAX_PIXEL_COUNT); + if (*arg >= '0' && *arg <= '9') + pixels[numpixels] = atoi(arg); + else + usage("invalid pixel number %s", arg); + i++; + colors[numpixels] = argv[i]; + i++; + numpixels++; + } else if (strcmp(arg, "-k") == 0) { + set_lock(dpy, OFF); + } else if (strcmp(arg, "k") == 0) { + set_lock(dpy, ON); + } else if (strcmp(arg, "q") == 0 || strcmp(arg, "-q") == 0) { + query(dpy); + } else + usage("unknown option %s", arg); } - } - set_repeat(dpy, key, auto_repeat_mode); - } - else if (strcmp(arg, "p") == 0) { - if (i + 1 >= argc) - usage ("missing argument to p", NULL); - arg = argv[i]; - if (numpixels >= MAX_PIXEL_COUNT) - usage ("more than %d pixels specified", MAX_PIXEL_COUNT); - if (*arg >= '0' && *arg <= '9') - pixels[numpixels] = atoi(arg); - else - usage ("invalid pixel number %s", arg); - i++; - colors[numpixels] = argv[i]; - i++; - numpixels++; - } - else if (strcmp(arg, "-k") == 0) { - set_lock(dpy, OFF); - } - else if (strcmp(arg, "k") == 0) { - set_lock(dpy, ON); - } - else if (strcmp(arg, "q") == 0 || strcmp(arg, "-q") == 0) { - query(dpy); - } - else - usage ("unknown option %s", arg); -} -if (numpixels) - set_pixels(dpy, pixels, colors, numpixels); + if (numpixels) + set_pixels(dpy, pixels, colors, numpixels); -XCloseDisplay (dpy); + XCloseDisplay(dpy); -exit(error_status); /* Done. We can go home now. */ + exit(error_status); /* Done. We can go home now. */ } static int is_number(char *arg, int maximum) { - register char *p; - - if (arg[0] == '-' && arg[1] == '1' && arg[2] == '\0') - return(1); - for (p=arg; isdigit(*p); p++); - if (*p || atoi(arg) > maximum) - return(0); - return(1); + register char *p; + + if (arg[0] == '-' && arg[1] == '1' && arg[2] == '\0') + return (1); + for (p = arg; isdigit(*p); p++) ; + if (*p || atoi(arg) > maximum) + return (0); + return (1); } /* These next few functions do the real work (xsetting things). @@ -848,57 +845,61 @@ is_number(char *arg, int maximum) static void set_click(Display *dpy, int percent) { -XKeyboardControl values; -XKeyboardState kbstate; -values.key_click_percent = percent; -if (percent == DEFAULT_ON) - values.key_click_percent = SERVER_DEFAULT; -XChangeKeyboardControl(dpy, KBKeyClickPercent, &values); -if (percent == DEFAULT_ON) { - XGetKeyboardControl(dpy, &kbstate); - if (!kbstate.key_click_percent) { - values.key_click_percent = -percent; + XKeyboardControl values; + XKeyboardState kbstate; + + values.key_click_percent = percent; + if (percent == DEFAULT_ON) + values.key_click_percent = SERVER_DEFAULT; XChangeKeyboardControl(dpy, KBKeyClickPercent, &values); - } -} -return; + if (percent == DEFAULT_ON) { + XGetKeyboardControl(dpy, &kbstate); + if (!kbstate.key_click_percent) { + values.key_click_percent = -percent; + XChangeKeyboardControl(dpy, KBKeyClickPercent, &values); + } + } + return; } static void set_bell_vol(Display *dpy, int percent) { -XKeyboardControl values; -XKeyboardState kbstate; -values.bell_percent = percent; -if (percent == DEFAULT_ON) - values.bell_percent = SERVER_DEFAULT; -XChangeKeyboardControl(dpy, KBBellPercent, &values); -if (percent == DEFAULT_ON) { - XGetKeyboardControl(dpy, &kbstate); - if (!kbstate.bell_percent) { - values.bell_percent = -percent; + XKeyboardControl values; + XKeyboardState kbstate; + + values.bell_percent = percent; + if (percent == DEFAULT_ON) + values.bell_percent = SERVER_DEFAULT; XChangeKeyboardControl(dpy, KBBellPercent, &values); - } -} -return; + if (percent == DEFAULT_ON) { + XGetKeyboardControl(dpy, &kbstate); + if (!kbstate.bell_percent) { + values.bell_percent = -percent; + XChangeKeyboardControl(dpy, KBBellPercent, &values); + } + } + return; } static void set_bell_pitch(Display *dpy, int pitch) { -XKeyboardControl values; -values.bell_pitch = pitch; -XChangeKeyboardControl(dpy, KBBellPitch, &values); -return; + XKeyboardControl values; + + values.bell_pitch = pitch; + XChangeKeyboardControl(dpy, KBBellPitch, &values); + return; } static void set_bell_dur(Display *dpy, int duration) { -XKeyboardControl values; -values.bell_duration = duration; -XChangeKeyboardControl(dpy, KBBellDuration, &values); -return; + XKeyboardControl values; + + values.bell_duration = duration; + XChangeKeyboardControl(dpy, KBBellDuration, &values); + return; } /* @@ -915,25 +916,27 @@ return; static void set_font_path(Display *dpy, char *path, int special, int before, int after) { - char **directoryList = NULL; int ndirs = 0; - char **currentList = NULL; int ncurrent = 0; + char **directoryList = NULL; + int ndirs = 0; + char **currentList = NULL; + int ncurrent = 0; if (special) { - if (strcmp (path, "default") == 0) { - XSetFontPath (dpy, NULL, 0); + if (strcmp(path, "default") == 0) { + XSetFontPath(dpy, NULL, 0); return; } - if (strcmp (path, "rehash") == 0) { - currentList = XGetFontPath (dpy, &ncurrent); + if (strcmp(path, "rehash") == 0) { + currentList = XGetFontPath(dpy, &ncurrent); if (!currentList) { - fprintf (stderr, "%s: unable to get current font path.\n", - progName); + fprintf(stderr, "%s: unable to get current font path.\n", + progName); return; } - XSetFontPath (dpy, currentList, ncurrent); - XFreeFontPath (currentList); + XSetFontPath(dpy, currentList, ncurrent); + XFreeFontPath(currentList); return; - } + } /* * for now, fall though and process keyword and directory list for * compatibility with previous versions. @@ -946,10 +949,9 @@ set_font_path(Display *dpy, char *path, int special, int before, int after) */ if (before != 0 || after != 0) { - currentList = XGetFontPath (dpy, &ncurrent); + currentList = XGetFontPath(dpy, &ncurrent); if (!currentList) { - fprintf (stderr, "%s: unable to get old font path.\n", - progName); + fprintf(stderr, "%s: unable to get old font path.\n", progName); before = after = 0; } } @@ -965,8 +967,9 @@ set_font_path(Display *dpy, char *path, int special, int before, int after) } } - directoryList = (char **) malloc (ndirs*sizeof (char *)); - if (!directoryList) error ("out of memory for font path directory list"); + directoryList = (char **)malloc(ndirs * sizeof(char *)); + if (!directoryList) + error("out of memory for font path directory list"); { /* mung the path and set directoryList pointers */ @@ -979,69 +982,74 @@ set_font_path(Display *dpy, char *path, int special, int before, int after) *cp++ = '\0'; } if (i != ndirs) { - fprintf (stderr, - "%s: internal error, only parsed %d of %d directories.\n", - progName, i, ndirs); - exit (EXIT_FAILURE); + fprintf(stderr, + "%s: internal error, only parsed %d of %d directories.\n", + progName, i, ndirs); + exit(EXIT_FAILURE); } } - + /* * now we have have parsed the input path, so we can set it */ if (before == 0 && after == 0) { - XSetFontPath (dpy, directoryList, ndirs); + XSetFontPath(dpy, directoryList, ndirs); } /* if adding to list, build a superset */ if (before > 0 || after > 0) { int nnew = ndirs + ncurrent; - char **newList = (char **) malloc (nnew * sizeof (char *)); - - if (!newList) error ("out of memory"); - if (before > 0) { /* new + current */ - memmove( (char *) newList, (char *) directoryList, - (unsigned) (ndirs*sizeof (char *))); - memmove( (char *) (newList + ndirs), (char *) currentList, - (unsigned) (ncurrent*sizeof (char *))); - XSetFontPath (dpy, newList, nnew); + char **newList = (char **)malloc(nnew * sizeof(char *)); + + if (!newList) + error("out of memory"); + if (before > 0) { /* new + current */ + memmove((char *)newList, (char *)directoryList, + (unsigned)(ndirs * sizeof(char *))); + memmove((char *)(newList + ndirs), (char *)currentList, + (unsigned)(ncurrent * sizeof(char *))); + XSetFontPath(dpy, newList, nnew); } else if (after > 0) { - memmove( (char *) newList, (char *) currentList, - (unsigned) (ncurrent*sizeof (char *))); - memmove( (char *) (newList + ncurrent), (char *) directoryList, - (unsigned) (ndirs*sizeof (char *))); - XSetFontPath (dpy, newList, nnew); - } - free ((char *) newList); + memmove((char *)newList, (char *)currentList, + (unsigned)(ncurrent * sizeof(char *))); + memmove((char *)(newList + ncurrent), (char *)directoryList, + (unsigned)(ndirs * sizeof(char *))); + XSetFontPath(dpy, newList, nnew); + } + free((char *)newList); } /* if deleting from list, build one the same size */ if (before < 0 || after < 0) { int i, j; int nnew = 0; - char **newList = (char **) malloc (ncurrent * sizeof (char *)); - - if (!newList) error ("out of memory"); + char **newList = (char **)malloc(ncurrent * sizeof(char *)); + + if (!newList) + error("out of memory"); for (i = 0; i < ncurrent; i++) { for (j = 0; j < ndirs; j++) { - if (strcmp (currentList[i], directoryList[j]) == 0) - break; + if (strcmp(currentList[i], directoryList[j]) == 0) + break; } /* if we ran out, then insert into new list */ - if (j == ndirs) newList[nnew++] = currentList[i]; + if (j == ndirs) + newList[nnew++] = currentList[i]; } if (nnew == ncurrent) { - fprintf (stderr, - "%s: warning, no entries deleted from font path.\n", - progName); + fprintf(stderr, + "%s: warning, no entries deleted from font path.\n", + progName); } - XSetFontPath (dpy, newList, nnew); - free ((char *) newList); + XSetFontPath(dpy, newList, nnew); + free((char *)newList); } - if (directoryList) free ((char *) directoryList); - if (currentList) XFreeFontPath (currentList); + if (directoryList) + free((char *)directoryList); + if (currentList) + XFreeFontPath(currentList); return; } @@ -1049,188 +1057,201 @@ set_font_path(Display *dpy, char *path, int special, int before, int after) static void set_led(Display *dpy, int led, int led_mode) { - XKeyboardControl values; - values.led_mode = led_mode; - if (led != ALL) { - values.led = led; - XChangeKeyboardControl(dpy, KBLed | KBLedMode, &values); - } - else { - XChangeKeyboardControl(dpy, KBLedMode, &values); - } - return; + XKeyboardControl values; + + values.led_mode = led_mode; + if (led != ALL) { + values.led = led; + XChangeKeyboardControl(dpy, KBLed | KBLedMode, &values); + } else { + XChangeKeyboardControl(dpy, KBLedMode, &values); + } + return; } static void set_mouse(Display *dpy, int acc_num, int acc_denom, int threshold) { -int do_accel = True, do_threshold = True; - -if (acc_num == DONT_CHANGE) /* what an incredible crock... */ - do_accel = False; -if (threshold == DONT_CHANGE) - do_threshold = False; -if (acc_num < 0) /* shouldn't happen */ - acc_num = SERVER_DEFAULT; -if (acc_denom <= 0) /* prevent divide by zero */ - acc_denom = SERVER_DEFAULT; -if (threshold < 0) threshold = SERVER_DEFAULT; -XChangePointerControl(dpy, do_accel, do_threshold, acc_num, - acc_denom, threshold); -return; + int do_accel = True, do_threshold = True; + + if (acc_num == DONT_CHANGE) /* what an incredible crock... */ + do_accel = False; + if (threshold == DONT_CHANGE) + do_threshold = False; + if (acc_num < 0) /* shouldn't happen */ + acc_num = SERVER_DEFAULT; + if (acc_denom <= 0) /* prevent divide by zero */ + acc_denom = SERVER_DEFAULT; + if (threshold < 0) + threshold = SERVER_DEFAULT; + XChangePointerControl(dpy, do_accel, do_threshold, acc_num, + acc_denom, threshold); + return; } static void set_saver(Display *dpy, int mask, int value) { - int timeout, interval, prefer_blank, allow_exp; - XGetScreenSaver(dpy, &timeout, &interval, &prefer_blank, - &allow_exp); - if (mask == TIMEOUT) timeout = value; - if (mask == INTERVAL) interval = value; - if (mask == PREFER_BLANK) prefer_blank = value; - if (mask == ALLOW_EXP) allow_exp = value; - if (mask == ALL) { - timeout = SERVER_DEFAULT; - interval = SERVER_DEFAULT; - prefer_blank = DefaultBlanking; - allow_exp = DefaultExposures; - } - XSetScreenSaver(dpy, timeout, interval, prefer_blank, - allow_exp); - if (mask == ALL && value == DEFAULT_TIMEOUT) { + int timeout, interval, prefer_blank, allow_exp; + XGetScreenSaver(dpy, &timeout, &interval, &prefer_blank, &allow_exp); - if (!timeout) - XSetScreenSaver(dpy, -DEFAULT_TIMEOUT, interval, prefer_blank, - allow_exp); - } - return; + if (mask == TIMEOUT) + timeout = value; + if (mask == INTERVAL) + interval = value; + if (mask == PREFER_BLANK) + prefer_blank = value; + if (mask == ALLOW_EXP) + allow_exp = value; + if (mask == ALL) { + timeout = SERVER_DEFAULT; + interval = SERVER_DEFAULT; + prefer_blank = DefaultBlanking; + allow_exp = DefaultExposures; + } + XSetScreenSaver(dpy, timeout, interval, prefer_blank, allow_exp); + if (mask == ALL && value == DEFAULT_TIMEOUT) { + XGetScreenSaver(dpy, &timeout, &interval, &prefer_blank, &allow_exp); + if (!timeout) + XSetScreenSaver(dpy, -DEFAULT_TIMEOUT, interval, prefer_blank, + allow_exp); + } + return; } static void set_repeat(Display *dpy, int key, int auto_repeat_mode) { - XKeyboardControl values; - values.auto_repeat_mode = auto_repeat_mode; - if (key != ALL) { - values.key = key; - XChangeKeyboardControl(dpy, KBKey | KBAutoRepeatMode, &values); - } - else { - XChangeKeyboardControl(dpy, KBAutoRepeatMode, &values); - } - return; + XKeyboardControl values; + + values.auto_repeat_mode = auto_repeat_mode; + if (key != ALL) { + values.key = key; + XChangeKeyboardControl(dpy, KBKey | KBAutoRepeatMode, &values); + } else { + XChangeKeyboardControl(dpy, KBAutoRepeatMode, &values); + } + return; } #ifdef XF86MISC -static void +static void set_repeatrate(Display *dpy, int delay, int rate) { - XF86MiscKbdSettings values; + XF86MiscKbdSettings values; - XF86MiscGetKbdSettings(dpy, &values); - values.delay = delay; - values.rate = rate; - XF86MiscSetKbdSettings(dpy, &values); - return; + XF86MiscGetKbdSettings(dpy, &values); + values.delay = delay; + values.rate = rate; + XF86MiscSetKbdSettings(dpy, &values); + return; } #endif #ifdef XKB -static void +static void xkbset_repeatrate(Display *dpy, int delay, int interval) { - XkbDescPtr xkb = XkbAllocKeyboard(); - if (!xkb) - return; - XkbGetControls(dpy, XkbRepeatKeysMask, xkb); - xkb->ctrls->repeat_delay = delay; - xkb->ctrls->repeat_interval = interval; - XkbSetControls(dpy, XkbRepeatKeysMask, xkb); - XkbFreeKeyboard(xkb, 0, True); + XkbDescPtr xkb = XkbAllocKeyboard(); + + if (!xkb) + return; + XkbGetControls(dpy, XkbRepeatKeysMask, xkb); + xkb->ctrls->repeat_delay = delay; + xkb->ctrls->repeat_interval = interval; + XkbSetControls(dpy, XkbRepeatKeysMask, xkb); + XkbFreeKeyboard(xkb, 0, True); } #endif static void -set_pixels(Display *dpy, unsigned long *pixels, caddr_t *colors, int numpixels) +set_pixels(Display *dpy, unsigned long *pixels, caddr_t * colors, + int numpixels) { - XColor def; - int scr = DefaultScreen (dpy); - Visual *visual = DefaultVisual (dpy, scr); - Colormap cmap = DefaultColormap (dpy, scr); - unsigned long max_cells = DisplayCells(dpy, scr); - XVisualInfo viproto, *vip; - int nvisuals = 0; - char *visual_type = NULL; - int i; - - viproto.visualid = XVisualIDFromVisual (visual); - vip = XGetVisualInfo (dpy, VisualIDMask, &viproto, &nvisuals); - if (!vip) { - fprintf (stderr, "%s: Can't get visual for visualID 0x%x\n", - progName, (unsigned int)viproto.visualid); - return; - } - - switch (vip->class) { - case GrayScale: - case PseudoColor: + XColor def; + int scr = DefaultScreen(dpy); + Visual *visual = DefaultVisual(dpy, scr); + Colormap cmap = DefaultColormap(dpy, scr); + unsigned long max_cells = DisplayCells(dpy, scr); + XVisualInfo viproto, *vip; + int nvisuals = 0; + char *visual_type = NULL; + int i; + + viproto.visualid = XVisualIDFromVisual(visual); + vip = XGetVisualInfo(dpy, VisualIDMask, &viproto, &nvisuals); + if (!vip) { + fprintf(stderr, "%s: Can't get visual for visualID 0x%x\n", + progName, (unsigned int)viproto.visualid); + return; + } + + switch (vip->class) { + case GrayScale: + case PseudoColor: break; - case TrueColor: + case TrueColor: visual_type = "TrueColor"; /* fall through */ - case DirectColor: + case DirectColor: max_cells *= max_cells * max_cells; break; - case StaticGray: + case StaticGray: visual_type = "StaticGray"; break; - case StaticColor: + case StaticColor: visual_type = "StaticColor"; break; - default: - fprintf (stderr, "%s: unknown visual class type %d\n", - progName, vip->class); + default: + fprintf(stderr, "%s: unknown visual class type %d\n", + progName, vip->class); numpixels = 0; - } - - if (visual_type) { - fprintf (stderr, "%s: cannot set pixel values in read-only %s visuals\n", - progName, visual_type); - } else { - for (i = 0; i < numpixels; i++) { - def.pixel = pixels[i]; - if (def.pixel >= max_cells) - fprintf(stderr, - "%s: pixel value %ld out of colormap range 0 through %ld\n", - progName, def.pixel, max_cells - 1); - else { - if (XParseColor (dpy, cmap, colors[i], &def)) - XStoreColor(dpy, cmap, &def); - else - fprintf (stderr, "%s: invalid color \"%s\"\n", progName, colors[i]); - } } - } - XFree ((char *) vip); + if (visual_type) { + fprintf(stderr, + "%s: cannot set pixel values in read-only %s visuals\n", + progName, visual_type); + } else { + for (i = 0; i < numpixels; i++) { + def.pixel = pixels[i]; + if (def.pixel >= max_cells) + fprintf(stderr, + "%s: pixel value %ld out of colormap range 0 through %ld\n", + progName, def.pixel, max_cells - 1); + else { + if (XParseColor(dpy, cmap, colors[i], &def)) + XStoreColor(dpy, cmap, &def); + else + fprintf(stderr, "%s: invalid color \"%s\"\n", progName, + colors[i]); + } + } + } + + XFree((char *)vip); - return; + return; } static void set_lock(Display *dpy, Bool onoff) { - XModifierKeymap *mods; - mods = XGetModifierMapping(dpy); - - if (onoff) - mods = XInsertModifiermapEntry(mods, (KeyCode) XK_Caps_Lock, LockMapIndex); - else - mods = XDeleteModifiermapEntry(mods, (KeyCode) XK_Caps_Lock, LockMapIndex); - XSetModifierMapping(dpy, mods); - XFreeModifiermap(mods); - return; + XModifierKeymap *mods; + + mods = XGetModifierMapping(dpy); + + if (onoff) + mods = + XInsertModifiermapEntry(mods, (KeyCode) XK_Caps_Lock, + LockMapIndex); + else + mods = + XDeleteModifiermapEntry(mods, (KeyCode) XK_Caps_Lock, + LockMapIndex); + XSetModifierMapping(dpy, mods); + XFreeModifiermap(mods); + return; } #ifdef FONTCACHE @@ -1254,203 +1275,205 @@ set_font_cache(dpy, himark, lowmark, balance) #endif static char * -on_or_off(int val, int onval, char *onstr, - int offval, char *offstr, char buf[]) +on_or_off(int val, int onval, char *onstr, + int offval, char *offstr, char buf[]) { - if (val == onval) - return onstr; + if (val == onval) + return onstr; else if (val == offval) - return offstr; + return offstr; buf[0] = '\0'; - sprintf (buf, "<%d>", val); + sprintf(buf, "<%d>", val); return buf; } - /* This is the information-getting function for telling the user what the * current "xsettings" are. */ static void query(Display *dpy) { -int scr = DefaultScreen (dpy); -XKeyboardState values; -int acc_num, acc_denom, threshold; -int timeout, interval, prefer_blank, allow_exp; -int dummy; + int scr = DefaultScreen(dpy); + XKeyboardState values; + int acc_num, acc_denom, threshold; + int timeout, interval, prefer_blank, allow_exp; + int dummy; + #ifdef XF86MISC -XF86MiscKbdSettings kbdinfo; + XF86MiscKbdSettings kbdinfo; #endif #ifdef XKB -XkbDescPtr xkb; -int xkbmajor = XkbMajorVersion, xkbminor = XkbMinorVersion; -int xkbopcode, xkbevent, xkberror; + XkbDescPtr xkb; + int xkbmajor = XkbMajorVersion, xkbminor = XkbMinorVersion; + int xkbopcode, xkbevent, xkberror; #endif -char **font_path; int npaths; -int i, j; -char buf[20]; /* big enough for 16 bit number */ - -XGetKeyboardControl(dpy, &values); -XGetPointerControl(dpy, &acc_num, &acc_denom, &threshold); -XGetScreenSaver(dpy, &timeout, &interval, &prefer_blank, &allow_exp); -font_path = XGetFontPath(dpy, &npaths); - -printf ("Keyboard Control:\n"); -printf (" auto repeat: %s key click percent: %d LED mask: %08lx\n", - on_or_off (values.global_auto_repeat, - AutoRepeatModeOn, "on", AutoRepeatModeOff, "off", buf), - values.key_click_percent, values.led_mask); + char **font_path; + int npaths; + int i, j; + char buf[20]; /* big enough for 16 bit number */ + + XGetKeyboardControl(dpy, &values); + XGetPointerControl(dpy, &acc_num, &acc_denom, &threshold); + XGetScreenSaver(dpy, &timeout, &interval, &prefer_blank, &allow_exp); + font_path = XGetFontPath(dpy, &npaths); + + printf("Keyboard Control:\n"); + printf + (" auto repeat: %s key click percent: %d LED mask: %08lx\n", + on_or_off(values.global_auto_repeat, AutoRepeatModeOn, "on", + AutoRepeatModeOff, "off", buf), values.key_click_percent, + values.led_mask); #ifdef XKB -if (XkbQueryExtension(dpy, &xkbopcode, &xkbevent, &xkberror, &xkbmajor, &xkbminor) - && (xkb = XkbAllocKeyboard()) != NULL - && XkbGetControls(dpy, XkbRepeatKeysMask, xkb) == Success) - printf (" auto repeat delay: %d repeat rate: %d\n", - xkb->ctrls->repeat_delay, 1000/xkb->ctrls->repeat_interval); + if (XkbQueryExtension(dpy, &xkbopcode, &xkbevent, &xkberror, &xkbmajor, + &xkbminor) + && (xkb = XkbAllocKeyboard()) != NULL + && XkbGetControls(dpy, XkbRepeatKeysMask, xkb) == Success) + printf(" auto repeat delay: %d repeat rate: %d\n", + xkb->ctrls->repeat_delay, 1000 / xkb->ctrls->repeat_interval); #ifdef XF86MISC -else + else #endif #endif #ifdef XF86MISC -if (XF86MiscQueryExtension(dpy, &dummy, &dummy) && - XF86MiscGetKbdSettings(dpy, &kbdinfo)) - printf (" auto repeat delay: %d repeat rate: %d\n", - kbdinfo.delay, kbdinfo.rate); + if (XF86MiscQueryExtension(dpy, &dummy, &dummy) && + XF86MiscGetKbdSettings(dpy, &kbdinfo)) + printf(" auto repeat delay: %d repeat rate: %d\n", + kbdinfo.delay, kbdinfo.rate); #endif -printf (" auto repeating keys: "); -for (i = 0; i < 4; i++) { - if (i) printf (" "); - for (j = 0; j < 8; j++) { - printf ("%02x", (unsigned char)values.auto_repeats[i*8 + j]); + printf(" auto repeating keys: "); + for (i = 0; i < 4; i++) { + if (i) + printf(" "); + for (j = 0; j < 8; j++) { + printf("%02x", (unsigned char)values.auto_repeats[i * 8 + j]); + } + printf("\n"); + } + printf(" bell percent: %d bell pitch: %d bell duration: %d\n", + values.bell_percent, values.bell_pitch, values.bell_duration); + + printf("Pointer Control:\n"); + printf(" acceleration: %d/%d threshold: %d\n", + acc_num, acc_denom, threshold); + + printf("Screen Saver:\n"); + printf(" prefer blanking: %s ", + on_or_off(prefer_blank, PreferBlanking, "yes", + DontPreferBlanking, "no", buf)); + printf("allow exposures: %s\n", + on_or_off(allow_exp, AllowExposures, "yes", + DontAllowExposures, "no", buf)); + printf(" timeout: %d cycle: %d\n", timeout, interval); + + printf("Colors:\n"); + printf(" default colormap: 0x%lx BlackPixel: %ld WhitePixel: %ld\n", + DefaultColormap(dpy, scr), BlackPixel(dpy, scr), WhitePixel(dpy, + scr)); + + printf("Font Path:\n"); + if (npaths) { + printf(" %s", *font_path++); + for (--npaths; npaths; npaths--) + printf(",%s", *font_path++); + printf("\n"); + } else { + printf(" (empty)\n"); } - printf ("\n"); -} -printf (" bell percent: %d bell pitch: %d bell duration: %d\n", - values.bell_percent, values.bell_pitch, values.bell_duration); - -printf ("Pointer Control:\n"); -printf (" acceleration: %d/%d threshold: %d\n", - acc_num, acc_denom, threshold); - -printf ("Screen Saver:\n"); -printf (" prefer blanking: %s ", - on_or_off (prefer_blank, PreferBlanking, "yes", - DontPreferBlanking, "no", buf)); -printf ("allow exposures: %s\n", - on_or_off (allow_exp, AllowExposures, "yes", - DontAllowExposures, "no", buf)); -printf (" timeout: %d cycle: %d\n", timeout, interval); - -printf ("Colors:\n"); -printf (" default colormap: 0x%lx BlackPixel: %ld WhitePixel: %ld\n", - DefaultColormap (dpy, scr), - BlackPixel (dpy, scr), WhitePixel (dpy, scr)); - -printf ("Font Path:\n"); -if (npaths) { - printf( " %s", *font_path++ ); - for( --npaths; npaths; npaths-- ) - printf( ",%s", *font_path++ ); - printf( "\n" ); -} else { - printf (" (empty)\n"); -} #ifdef MITMISC -{ - int dummy; - if (XMITMiscQueryExtension(dpy, &dummy, &dummy)) { - if (XMITMiscGetBugMode(dpy)) - printf ("Bug Mode: compatibility mode is enabled\n"); - else - printf ("Bug Mode: compatibility mode is disabled\n"); + { + int dummy; + + if (XMITMiscQueryExtension(dpy, &dummy, &dummy)) { + if (XMITMiscGetBugMode(dpy)) + printf("Bug Mode: compatibility mode is enabled\n"); + else + printf("Bug Mode: compatibility mode is disabled\n"); + } } -} #endif #ifdef DPMSExtension -{ - - int dummy; - CARD16 standby, suspend, off; - BOOL onoff; - CARD16 state; - - printf("DPMS (Energy Star):\n"); - if (DPMSQueryExtension(dpy, &dummy, &dummy)) { - if (DPMSCapable(dpy)) { - DPMSGetTimeouts(dpy, &standby, &suspend, &off); - printf (" Standby: %d Suspend: %d Off: %d\n", - standby, suspend, off); - DPMSInfo(dpy, &state, &onoff); - if (onoff) { - printf(" DPMS is Enabled\n"); - switch (state) { - case DPMSModeOn: - printf(" Monitor is On\n"); - break; - case DPMSModeStandby: - printf(" Monitor is in Standby\n"); - break; - case DPMSModeSuspend: - printf(" Monitor is in Suspend\n"); - break; - case DPMSModeOff: - printf(" Monitor is Off\n"); - break; - default: - printf(" Unrecognized response from server\n"); - } - } - else - printf(" DPMS is Disabled\n"); - } - else - printf (" Display is not capable of DPMS\n"); - } - else { - printf (" Server does not have the DPMS Extension\n"); - } -} + { + + int dummy; + CARD16 standby, suspend, off; + BOOL onoff; + CARD16 state; + + printf("DPMS (Energy Star):\n"); + if (DPMSQueryExtension(dpy, &dummy, &dummy)) { + if (DPMSCapable(dpy)) { + DPMSGetTimeouts(dpy, &standby, &suspend, &off); + printf(" Standby: %d Suspend: %d Off: %d\n", + standby, suspend, off); + DPMSInfo(dpy, &state, &onoff); + if (onoff) { + printf(" DPMS is Enabled\n"); + switch (state) { + case DPMSModeOn: + printf(" Monitor is On\n"); + break; + case DPMSModeStandby: + printf(" Monitor is in Standby\n"); + break; + case DPMSModeSuspend: + printf(" Monitor is in Suspend\n"); + break; + case DPMSModeOff: + printf(" Monitor is Off\n"); + break; + default: + printf(" Unrecognized response from server\n"); + } + } else + printf(" DPMS is Disabled\n"); + } else + printf(" Display is not capable of DPMS\n"); + } else { + printf(" Server does not have the DPMS Extension\n"); + } + } #endif #ifdef FONTCACHE -{ - int dummy; - FontCacheSettings cs; - int himark, lowmark, balance; - - printf("Font cache:\n"); - if (FontCacheQueryExtension(dpy, &dummy, &dummy)) { - if (FontCacheGetCacheSettings(dpy, &cs)) { - himark = cs.himark / 1024; - lowmark = cs.lowmark / 1024; - balance = cs.balance; - printf(" hi-mark (KB): %d low-mark (KB): %d balance (%%): %d\n", - himark, lowmark, balance); + { + int dummy; + FontCacheSettings cs; + int himark, lowmark, balance; + + printf("Font cache:\n"); + if (FontCacheQueryExtension(dpy, &dummy, &dummy)) { + if (FontCacheGetCacheSettings(dpy, &cs)) { + himark = cs.himark / 1024; + lowmark = cs.lowmark / 1024; + balance = cs.balance; + printf(" hi-mark (KB): %d low-mark (KB): %d balance (%%): %d\n", + himark, lowmark, balance); + } + } else { + printf(" Server does not have the FontCache Extension\n"); } - } else { - printf(" Server does not have the FontCache Extension\n"); } -} #endif #ifdef XF86MISC -{ - int dummy; - int maj, min; - XF86MiscFilePaths paths; - - if (XF86MiscQueryExtension(dpy, &dummy, &dummy) && - XF86MiscQueryVersion(dpy, &maj, &min) && - ((maj > 0) || (maj == 0 && min >= 7)) && - XF86MiscGetFilePaths(dpy, &paths)) { - printf("File paths:\n"); - printf(" Config file: %s\n", paths.configfile); - printf(" Modules path: %s\n", paths.modulepath); - printf(" Log file: %s\n", paths.logfile); + { + int dummy; + int maj, min; + XF86MiscFilePaths paths; + + if (XF86MiscQueryExtension(dpy, &dummy, &dummy) && + XF86MiscQueryVersion(dpy, &maj, &min) && + ((maj > 0) || (maj == 0 && min >= 7)) && + XF86MiscGetFilePaths(dpy, &paths)) { + printf("File paths:\n"); + printf(" Config file: %s\n", paths.configfile); + printf(" Modules path: %s\n", paths.modulepath); + printf(" Log file: %s\n", paths.logfile); + } } -} #endif -return; + return; } #ifdef FONTCACHE @@ -1508,103 +1531,104 @@ usage(char *fmt, ...) va_list ap; if (fmt) { - fprintf (stderr, "%s: ", progName); + fprintf(stderr, "%s: ", progName); va_start(ap, fmt); - vfprintf (stderr, fmt, ap); + vfprintf(stderr, fmt, ap); va_end(ap); - fprintf (stderr, "\n\n"); - + fprintf(stderr, "\n\n"); + } - fprintf (stderr, "usage: %s [-display host:dpy] option ...\n", progName); - fprintf (stderr, " To turn bell off:\n"); - fprintf (stderr, "\t-b b off b 0\n"); - fprintf (stderr, " To set bell volume, pitch and duration:\n"); - fprintf (stderr, "\t b [vol [pitch [dur]]] b on\n"); + fprintf(stderr, "usage: %s [-display host:dpy] option ...\n", progName); + fprintf(stderr, " To turn bell off:\n"); + fprintf(stderr, "\t-b b off b 0\n"); + fprintf(stderr, " To set bell volume, pitch and duration:\n"); + fprintf(stderr, "\t b [vol [pitch [dur]]] b on\n"); #ifdef MITMISC - fprintf (stderr, " To disable bug compatibility mode:\n"); - fprintf (stderr, "\t-bc\n"); - fprintf (stderr, " To enable bug compatibility mode:\n"); - fprintf (stderr, "\tbc\n"); + fprintf(stderr, " To disable bug compatibility mode:\n"); + fprintf(stderr, "\t-bc\n"); + fprintf(stderr, " To enable bug compatibility mode:\n"); + fprintf(stderr, "\tbc\n"); #endif - fprintf (stderr, " To turn keyclick off:\n"); - fprintf (stderr, "\t-c c off c 0\n"); - fprintf (stderr, " To set keyclick volume:\n"); - fprintf (stderr, "\t c [0-100] c on\n"); + fprintf(stderr, " To turn keyclick off:\n"); + fprintf(stderr, "\t-c c off c 0\n"); + fprintf(stderr, " To set keyclick volume:\n"); + fprintf(stderr, "\t c [0-100] c on\n"); #ifdef DPMSExtension - fprintf (stderr, " To control Energy Star (DPMS) features:\n"); - fprintf (stderr, "\t-dpms Energy Star features off\n"); - fprintf (stderr, "\t+dpms Energy Star features on\n"); - fprintf (stderr, "\t dpms [standby [suspend [off]]] \n"); - fprintf (stderr, "\t force standby \n"); - fprintf (stderr, "\t force suspend \n"); - fprintf (stderr, "\t force off \n"); - fprintf (stderr, "\t force on \n"); - fprintf (stderr, "\t (also implicitly enables DPMS features) \n"); - fprintf (stderr, "\t a timeout value of zero disables the mode \n"); + fprintf(stderr, " To control Energy Star (DPMS) features:\n"); + fprintf(stderr, "\t-dpms Energy Star features off\n"); + fprintf(stderr, "\t+dpms Energy Star features on\n"); + fprintf(stderr, "\t dpms [standby [suspend [off]]] \n"); + fprintf(stderr, "\t force standby \n"); + fprintf(stderr, "\t force suspend \n"); + fprintf(stderr, "\t force off \n"); + fprintf(stderr, "\t force on \n"); + fprintf(stderr, "\t (also implicitly enables DPMS features) \n"); + fprintf(stderr, "\t a timeout value of zero disables the mode \n"); #endif #ifdef FONTCACHE - fprintf (stderr, " To control font cache:\n"); - fprintf (stderr, "\t fc [hi-mark [low-mark [balance]]]\n"); - fprintf (stderr, "\t both mark values spcecified in KB\n"); - fprintf (stderr, "\t balance value spcecified in percent (10 - 90)\n"); - fprintf (stderr, " Show font cache statistics:\n"); - fprintf (stderr, "\t fc s\n"); + fprintf(stderr, " To control font cache:\n"); + fprintf(stderr, "\t fc [hi-mark [low-mark [balance]]]\n"); + fprintf(stderr, "\t both mark values spcecified in KB\n"); + fprintf(stderr, "\t balance value spcecified in percent (10 - 90)\n"); + fprintf(stderr, " Show font cache statistics:\n"); + fprintf(stderr, "\t fc s\n"); #endif #ifdef BUILD_PRINTSUPPORT - fprintf (stderr, " To control Xprint features:\n"); - fprintf (stderr, "\t rehashprinterlist Recomputes the list of available printers\n"); + fprintf(stderr, " To control Xprint features:\n"); + fprintf(stderr, + "\t rehashprinterlist Recomputes the list of available printers\n"); #endif - fprintf (stderr, " To set the font path:\n" ); - fprintf (stderr, "\t fp= path[,path...]\n" ); - fprintf (stderr, " To restore the default font path:\n"); - fprintf (stderr, "\t fp default\n"); - fprintf (stderr, " To have the server reread font databases:\n"); - fprintf (stderr, "\t fp rehash\n"); - fprintf (stderr, " To remove elements from font path:\n"); - fprintf (stderr, "\t-fp path[,path...] fp- path[,path...]\n"); - fprintf (stderr, " To prepend or append elements to font path:\n"); - fprintf (stderr, "\t+fp path[,path...] fp+ path[,path...]\n"); - fprintf (stderr, " To set LED states off or on:\n"); - fprintf (stderr, "\t-led [1-32] led off\n"); - fprintf (stderr, "\t led [1-32] led on\n"); - fprintf (stderr, " To set mouse acceleration and threshold:\n"); - fprintf (stderr, "\t m [acc_mult[/acc_div] [thr]] m default\n"); - fprintf (stderr, " To set pixel colors:\n"); - fprintf (stderr, "\t p pixel_value color_name\n"); - fprintf (stderr, " To turn auto-repeat off or on:\n"); - fprintf (stderr, "\t-r [keycode] r off\n"); - fprintf (stderr, "\t r [keycode] r on\n"); + fprintf(stderr, " To set the font path:\n"); + fprintf(stderr, "\t fp= path[,path...]\n"); + fprintf(stderr, " To restore the default font path:\n"); + fprintf(stderr, "\t fp default\n"); + fprintf(stderr, " To have the server reread font databases:\n"); + fprintf(stderr, "\t fp rehash\n"); + fprintf(stderr, " To remove elements from font path:\n"); + fprintf(stderr, "\t-fp path[,path...] fp- path[,path...]\n"); + fprintf(stderr, " To prepend or append elements to font path:\n"); + fprintf(stderr, "\t+fp path[,path...] fp+ path[,path...]\n"); + fprintf(stderr, " To set LED states off or on:\n"); + fprintf(stderr, "\t-led [1-32] led off\n"); + fprintf(stderr, "\t led [1-32] led on\n"); + fprintf(stderr, " To set mouse acceleration and threshold:\n"); + fprintf(stderr, "\t m [acc_mult[/acc_div] [thr]] m default\n"); + fprintf(stderr, " To set pixel colors:\n"); + fprintf(stderr, "\t p pixel_value color_name\n"); + fprintf(stderr, " To turn auto-repeat off or on:\n"); + fprintf(stderr, "\t-r [keycode] r off\n"); + fprintf(stderr, "\t r [keycode] r on\n"); #if defined(XF86MISC) || defined(XKB) - fprintf (stderr, "\t r rate [delay [rate]]\n"); + fprintf(stderr, "\t r rate [delay [rate]]\n"); #endif - fprintf (stderr, " For screen-saver control:\n"); - fprintf (stderr, "\t s [timeout [cycle]] s default s on\n"); - fprintf (stderr, "\t s blank s noblank s off\n"); - fprintf (stderr, "\t s expose s noexpose\n"); - fprintf (stderr, "\t s activate s reset\n"); - fprintf (stderr, " For status information: q\n"); + fprintf(stderr, " For screen-saver control:\n"); + fprintf(stderr, "\t s [timeout [cycle]] s default s on\n"); + fprintf(stderr, "\t s blank s noblank s off\n"); + fprintf(stderr, "\t s expose s noexpose\n"); + fprintf(stderr, "\t s activate s reset\n"); + fprintf(stderr, " For status information: q\n"); exit(EXIT_SUCCESS); } static void error(char *message) { - fprintf( stderr, "%s: %s\n", progName, message ); + fprintf(stderr, "%s: %s\n", progName, message); exit(EXIT_FAILURE); } - -static int +static int local_xerror(Display *dpy, XErrorEvent *rep) { if (rep->request_code == X_SetFontPath && rep->error_code == BadValue) { fprintf(stderr, "%s: bad font path element (#%ld), possible causes are:\n", progName, rep->resourceid); - fprintf(stderr," Directory does not exist or has wrong permissions\n"); - fprintf(stderr," Directory missing fonts.dir\n"); - fprintf(stderr," Incorrect font server address or syntax\n"); + fprintf(stderr, + " Directory does not exist or has wrong permissions\n"); + fprintf(stderr, " Directory missing fonts.dir\n"); + fprintf(stderr, " Incorrect font server address or syntax\n"); } else if (rep->request_code == X_StoreColors) { switch (rep->error_code) { case BadAccess: @@ -1616,11 +1640,11 @@ local_xerror(Display *dpy, XErrorEvent *rep) "%s: cannot store in pixel 0x%lx, invalid pixel number\n", progName, rep->resourceid); break; - default: - XmuPrintDefaultErrorMessage (dpy, rep, stderr); + default: + XmuPrintDefaultErrorMessage(dpy, rep, stderr); } } else - XmuPrintDefaultErrorMessage (dpy, rep, stderr); + XmuPrintDefaultErrorMessage(dpy, rep, stderr); error_status = -1; |