diff options
author | Arnaud Fontaine <arnau@debian.org> | 2011-10-30 20:33:40 +0900 |
---|---|---|
committer | Arnaud Fontaine <arnau@debian.org> | 2011-12-14 20:07:59 +0900 |
commit | 8605d0178461b98099c5dee33b19eb8204487487 (patch) | |
tree | ab5b89f4e83730e559cac9f43de1b6227189e5d0 /dsimple.c | |
parent | e4d0f93a64dbb9b77ee6a32dcf85ce1b65449e9d (diff) |
Fix coding style.
Diffstat (limited to 'dsimple.c')
-rw-r--r-- | dsimple.c | 393 |
1 files changed, 204 insertions, 189 deletions
@@ -1,29 +1,29 @@ /* $Xorg: dsimple.c,v 1.4 2001/02/09 02:05:54 xorgcvs Exp $ */ /* -Copyright 1993, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall -not be used in advertising or otherwise to promote the sale, use or -other dealings in this Software without prior written authorization -from The Open Group. + Copyright 1993, 1998 The Open Group + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name of The Open Group shall + not be used in advertising or otherwise to promote the sale, use or + other dealings in this Software without prior written authorization + from The Open Group. */ /* $XFree86: xc/programs/xlsfonts/dsimple.c,v 3.6 2001/12/14 20:02:09 dawes Exp $ */ @@ -64,29 +64,31 @@ int screen; * Get_Display_Name (argc, argv) Look for -display, -d, or host:dpy (obselete) * If found, remove it from command line. Don't go past a lone -. */ -static char *Get_Display_Name(int *pargc, char **argv) +static char * +Get_Display_Name (int *pargc, char **argv) { int argc = *pargc; - char **pargv = argv+1; + char **pargv = argv + 1; char *displayname = NULL; int i; for (i = 1; i < argc; i++) { - char *arg = argv[i]; - - if (!strcmp (arg, "-display") || !strcmp (arg, "-d")) { - if (++i >= argc) usage (); - - displayname = argv[i]; - *pargc -= 2; - continue; - } - if (!strcmp(arg,"-")) { - while (i<argc) - *pargv++ = argv[i++]; - break; - } - *pargv++ = arg; + char *arg = argv[i]; + + if (!strcmp (arg, "-display") || !strcmp (arg, "-d")) { + if (++i >= argc) + Usage (); + + displayname = argv[i]; + *pargc -= 2; + continue; + } + if (!strcmp (arg, "-")) { + while (i <argc) + *pargv++ = argv[i++]; + break; + } + *pargv++ = arg; } *pargv = NULL; @@ -98,19 +100,19 @@ static char *Get_Display_Name(int *pargc, char **argv) * Open_Display: Routine to open a display with correct error handling. * Does not require dpy or screen defined on entry. */ -static Display *Open_Display(char *display_name) +static Display * +Open_Display (char *display_name) { - Display *d; + Display *d; - d = XOpenDisplay(display_name); - if (d == NULL) { - fprintf (stderr, "%s: unable to open display '%s'\n", - program_name, XDisplayName (display_name)); - usage (); - /* doesn't return */ - } + d = XOpenDisplay (display_name); + if (d == NULL) { + fprintf (stderr, "%s: unable to open display '%s'\n", + program_name, XDisplayName (display_name)); + Usage (); + } - return(d); + return (d); } @@ -121,10 +123,11 @@ static Display *Open_Display(char *display_name) * for this display is then stored in screen. * Does not require dpy or screen defined. */ -void Setup_Display_And_Screen(int *argc, char **argv) +void +Setup_Display_And_Screen (int *argc, char **argv) { - dpy = Open_Display (Get_Display_Name(argc, argv)); - screen = DefaultScreen(dpy); + dpy = Open_Display (Get_Display_Name (argc, argv)); + screen = DefaultScreen (dpy); } /* @@ -137,63 +140,67 @@ void Setup_Display_And_Screen(int *argc, char **argv) * Standard fatal error routine - call like printf but maximum of 7 arguments. * Does not require dpy or screen defined. */ -void Fatal_Error(char *msg, ...) +void +Fatal_Error (char *msg, ...) { - va_list args; - fflush(stdout); - fflush(stderr); - fprintf(stderr, "%s: error: ", program_name); - va_start(args, msg); - vfprintf(stderr, msg, args); - va_end(args); - fprintf(stderr, "\n"); - exit(1); + va_list args; + fflush (stdout); + fflush (stderr); + fprintf (stderr, "%s: error: ", program_name); + va_start (args, msg); + vfprintf (stderr, msg, args); + va_end (args); + fprintf (stderr, "\n"); + exit (1); } /* * Routine to let user select a window using the mouse */ -Window Select_Window(Display *dpy) +Window +Select_Window (Display *dpy) { - int status; - Cursor cursor; - XEvent event; - Window target_win = None, root = RootWindow(dpy,screen); - int buttons = 0; - - /* Make the target cursor */ - cursor = XCreateFontCursor(dpy, XC_crosshair); - - /* Grab the pointer using target cursor, letting it room all over */ - status = XGrabPointer(dpy, root, False, - ButtonPressMask|ButtonReleaseMask, GrabModeSync, - GrabModeAsync, root, cursor, CurrentTime); - if (status != GrabSuccess) Fatal_Error("Can't grab the mouse."); - - /* Let the user select a window... */ - while ((target_win == None) || (buttons != 0)) { - /* allow one more event */ - XAllowEvents(dpy, SyncPointer, CurrentTime); - XWindowEvent(dpy, root, ButtonPressMask|ButtonReleaseMask, &event); - switch (event.type) { - case ButtonPress: - if (target_win == None) { - target_win = event.xbutton.subwindow; /* window selected */ - if (target_win == None) target_win = root; - } - buttons++; - break; - case ButtonRelease: - if (buttons > 0) /* there may have been some down before we started */ - buttons--; - break; + int status; + Cursor cursor; + XEvent event; + Window target_win = None, root = RootWindow (dpy, screen); + int buttons = 0; + + /* Make the target cursor */ + cursor = XCreateFontCursor (dpy, XC_crosshair); + + /* Grab the pointer using target cursor, letting it room all over */ + status = XGrabPointer (dpy, root, False, + ButtonPressMask|ButtonReleaseMask, GrabModeSync, + GrabModeAsync, root, cursor, CurrentTime); + if (status != GrabSuccess) + Fatal_Error ("Can't grab the mouse."); + + /* Let the user select a window... */ + while ((target_win == None) || (buttons != 0)) { + /* allow one more event */ + XAllowEvents (dpy, SyncPointer, CurrentTime); + XWindowEvent (dpy, root, ButtonPressMask | ButtonReleaseMask, &event); + switch (event.type) { + case ButtonPress: + if (target_win == None) { + target_win = event.xbutton.subwindow; /* window selected */ + if (target_win == None) + target_win = root; + } + buttons++; + break; + case ButtonRelease: + if (buttons > 0) /* there may have been some down before we started */ + buttons--; + break; + } } - } - XUngrabPointer(dpy, CurrentTime); /* Done with pointer */ + XUngrabPointer (dpy, CurrentTime); /* Done with pointer */ - return(target_win); + return (target_win); } /* @@ -201,36 +208,37 @@ Window Select_Window(Display *dpy) * Added by Daniel Forchheimer. Last updated 19/12/04 */ -Window Get_Window_Under_Cursor(Display *dpy) +Window +Get_Window_Under_Cursor (Display *dpy) { - int status; - Cursor cursor; - //XEvent event; - Window target_win = None, root = RootWindow(dpy,screen); - //int buttons = 0; - Window tmp; - int rx,ry,cx,cy; - unsigned int mask; - - /* Make the target cursor */ - cursor = XCreateFontCursor(dpy, XC_crosshair); - - /* Grab the pointer using target cursor, letting it room all over */ - status = XGrabPointer(dpy, root, False, - ButtonPressMask|ButtonReleaseMask, GrabModeSync, - GrabModeAsync, root, cursor, CurrentTime); - if (status != GrabSuccess) Fatal_Error("Can't grab the mouse."); - - /* get the window under the cursor */ - XQueryPointer(dpy, root, &tmp, &target_win, &rx, &ry, - &cx, &cy, &mask); - - XUngrabPointer(dpy, CurrentTime); /* Done with pointer */ - - return(target_win); + int status; + Cursor cursor; + //XEvent event; + Window target_win = None, root = RootWindow (dpy, screen); + //int buttons = 0; + Window tmp; + int rx, ry, cx, cy; + unsigned int mask; + + /* Make the target cursor */ + cursor = XCreateFontCursor (dpy, XC_crosshair); + + /* Grab the pointer using target cursor, letting it room all over */ + status = XGrabPointer (dpy, root, False, + ButtonPressMask|ButtonReleaseMask, GrabModeSync, + GrabModeAsync, root, cursor, CurrentTime); + if (status != GrabSuccess) + Fatal_Error ("Can't grab the mouse."); + + /* get the window under the cursor */ + XQueryPointer (dpy, root, &tmp, &target_win, &rx, &ry, + &cx, &cy, &mask); + + XUngrabPointer (dpy, CurrentTime); /* Done with pointer */ + + return (target_win); } - /* * Window_With_Name: routine to locate a window with a given name on a display. * If no window with the given name is found, 0 is returned. @@ -238,82 +246,89 @@ Window Get_Window_Under_Cursor(Display *dpy) * one found will be returned. Only top and its subwindows * are looked at. Normally, top should be the RootWindow. */ -Window Window_With_Name(Display *dpy, Window top, char *name) +Window +Window_With_Name (Display *dpy, Window top, char *name) { - Window *children, dummy; - unsigned int nchildren; - int i; - Window w=0; - char *window_name; - - if (XFetchName(dpy, top, &window_name) && !strcmp(window_name, name)) - return(top); - - if (!XQueryTree(dpy, top, &dummy, &dummy, &children, &nchildren)) - return(0); - - for (i=0; i<nchildren; i++) { - w = Window_With_Name(dpy, children[i], name); - if (w) - break; - } - if (children) XFree ((char *)children); - return(w); + Window *children, dummy; + unsigned int nchildren; + int i; + Window w = 0; + char *window_name; + + if (XFetchName (dpy, top, &window_name) && !strcmp (window_name, name)) + return (top); + + if (!XQueryTree (dpy, top, &dummy, &dummy, &children, &nchildren)) + return (0); + + for (i = 0; i < nchildren; i++) { + w = Window_With_Name (dpy, children[i], name); + if (w) + break; + } + if (children) + XFree ((char *) children); + return (w); } /* * Window_With_Name_Regex: Same as above but use regular expressions * to match a window name. Only returns the first * result. - * Window_With_Name_Regex_Recurse: Takes regex_t struct as argument - * instead of char* + * Window_With_Name_Regex_Recurse: Takes regex_t struct as argument instead of char* * Written by Daniel Forchheimer 2005 * */ -static Window Window_With_Name_Regex_Recurse(Display *dpy, Window top, - regex_t *reg_name) +static Window +Window_With_Name_Regex_Recurse (Display *dpy, Window top, + regex_t *reg_name) { - Window *children, dummy; - unsigned int nchildren; - int i; - Window w=0; - char *window_name; - - if (XFetchName(dpy, top, &window_name) && !regexec(reg_name,window_name,0,NULL,0)) - return(top); - - if (!XQueryTree(dpy, top, &dummy, &dummy, &children, &nchildren)) - return(0); - - for (i=0; i<nchildren; i++) { - w = Window_With_Name_Regex_Recurse(dpy, children[i], reg_name); - if (w) - break; - } - if (children) XFree ((char *)children); - return(w); + Window *children, dummy; + unsigned int nchildren; + int i; + Window w = 0; + char *window_name; + + if (XFetchName (dpy, top, &window_name) && + !regexec (reg_name, window_name, 0, NULL, 0)) + return (top); + + if (!XQueryTree (dpy, top, &dummy, &dummy, &children, &nchildren)) + return (0); + + for (i = 0; i < nchildren; i++) { + w = Window_With_Name_Regex_Recurse (dpy, children[i], reg_name); + if (w) + break; + } + if (children) + XFree ((char *) children); + return (w); } + /* prepare the reg-exp for use with above function */ -Window Window_With_Name_Regex(Display *dpy, Window top, char *name) +Window +Window_With_Name_Regex (Display *dpy, Window top, char *name) { - int err_no=0; - regex_t *regexp_name; - Window target_win; - regexp_name = (regex_t *) malloc(sizeof(regex_t)); - if((err_no=regcomp(regexp_name, name, 0))!=0) - { - size_t length; - char *buffer; - length = regerror (err_no, regexp_name, NULL, 0); - buffer = malloc(length); - regerror (err_no, regexp_name, buffer, length); - fprintf(stderr, "%s\n", buffer); - free(buffer); - regfree(regexp_name); - exit(1); + int err_no = 0; + regex_t *regexp_name; + Window target_win; + regexp_name = (regex_t *) malloc (sizeof (regex_t)); + if ((err_no = regcomp (regexp_name, name, 0)) != 0) { + size_t length; + char *buffer; + length = regerror (err_no, regexp_name, NULL, 0); + buffer = malloc (length); + regerror (err_no, regexp_name, buffer, length); + fprintf (stderr, "%s\n", buffer); + free (buffer); + regfree (regexp_name); + exit (1); } - target_win = Window_With_Name_Regex_Recurse(dpy, RootWindow(dpy, screen),regexp_name); + target_win = Window_With_Name_Regex_Recurse (dpy, + RootWindow (dpy, screen), + regexp_name); - regfree(regexp_name); - free(regexp_name); - return target_win; + regfree (regexp_name); + free (regexp_name); + return target_win; } |