diff options
58 files changed, 3470 insertions, 3478 deletions
@@ -11,11 +11,11 @@ 2006-03-14 Antti Nykänen <aon@iki.fi> * src/format.c: new file - + * src/format.h: new file - + * Makefile.am (ratpoison_SOURCES): add format.c and format.h - + * src/actions.c (set_infofmt): new function (wingravity_to_string): char * instead of static char * because needed in format.c (cmd_info): use format_string @@ -70,7 +70,7 @@ * src/events.c: look for _NET_WM_PID notify events and adopt the intended frame number accordingly. - + * src/window.c, src/window.h: make get_child_info accessible from events.c @@ -167,7 +167,7 @@ * src/main.c (clean_up): call del_frame_undo not pop_frame_undo - * src/globals.h: new global prototype rp_frame_redos + * src/globals.h: new global prototype rp_frame_redos * src/globals.c: new global rp_frame_redos @@ -617,7 +617,7 @@ (set_winliststyle): likewise (set_framesels): likewise (set_maxundos): likewise - + * src/actions.h: include ratpoison.h (argtype): add arg_FRAME, arg_WINDOW, arg_COMMAND, arg_SHELLCMD, arg_KEYMAP, arg_KEY, arg_GRAVITY, arg_GROUP, arg_HOOK, @@ -878,7 +878,7 @@ (struct rp_defaults): add maxundos member. (struct rp_frame_undo): new struct. - * src/actions.c: new commands, cnext, cother, cprev, + * src/actions.c: new commands, cnext, cother, cprev, * src/window.c (print_window_information): add argument, group. print the window's number in the group. All callers @@ -928,7 +928,7 @@ 2004-11-17 Bernhard R. Link <brlink@debian.org> - * src/actions.c: (initialize_default_keybindings): Added + * src/actions.c: (initialize_default_keybindings): Added default keybindings for focusleft,fcousup,focusright,focusdown. (cmd_resize): Added support for multiple keybindings per action. Added arrow keys, escape and vi-like h,j,k,l @@ -991,7 +991,7 @@ * doc/ratpoison.texi (Frame Numbering): new topic 2004-07-24 Thien-Thi Nguyen <ttn@glug.org> - + * autogen.sh: Handle "-f" option. Add usage comment. 2004-10-05 Shawn Betts <sabetts@vcn.bc.ca> @@ -1127,7 +1127,7 @@ * src/actions.c (cmd_set): if non-interactive and no arguments are specified, then output the current value of all variables. - + * src/messages.h (MESSAGE_PROMPT_SELECT_VAR): new define (MESSAGE_PROMPT_VAR_VALUE): likewise @@ -1140,7 +1140,7 @@ (cmd_set): new function (var_completions): new function (initialize_default_keybindings): add aliases for def* commands - + * src/events.c (configure_request): only display a raise request if the window isn't already focused. @@ -1326,7 +1326,7 @@ * src/communications.c (send_command): send an interactive bit at the beginning of the message. Take an interactive argument. All callers updated. Prototype updated. - + * src/actions.c (cmd_source): call set_close_on_exec on file pointer. 2003-11-16 Ryan Yeske <rcyeske@vcn.bc.ca> @@ -1335,32 +1335,32 @@ <cantsin@zedat.fu-berlin.de> 2003-11-02 Thien-Thi Nguyen <ttn@glug.org> - + * AUTHORS: Add self. - - * configure.in: Add "--disable-history" handling. - Conditionalize libhistory checks accordingly. - - * README: Mention "--disable history". - - * src/history.c: Surround most of the code with - "#ifdef HAVE_READLINE_HISTORY_H". - - * src/ratpoison.h: Only #include history.h when - "#ifdef HAVE_READLINE_HISTORY_H". - - * src/main.c (main, clean_up): Only load and save history, - respectively, when "#ifdef HAVE_READLINE_HISTORY_H". - - * src/editor.c (editor_history_previous, editor_history_next): - Return EDIT_NO_OP when not "#ifdef HAVE_READLINE_HISTORY_H". - (editor_enter): Do not do line expansion or history add - when not "#ifdef HAVE_READLINE_HISTORY_H". - - * doc/ratpoison.texi: Mention that history cycling and - processing is not available when ratpoison is configured - with the "--disable-history" option. - + + * configure.in: Add "--disable-history" handling. + Conditionalize libhistory checks accordingly. + + * README: Mention "--disable history". + + * src/history.c: Surround most of the code with + "#ifdef HAVE_READLINE_HISTORY_H". + + * src/ratpoison.h: Only #include history.h when + "#ifdef HAVE_READLINE_HISTORY_H". + + * src/main.c (main, clean_up): Only load and save history, + respectively, when "#ifdef HAVE_READLINE_HISTORY_H". + + * src/editor.c (editor_history_previous, editor_history_next): + Return EDIT_NO_OP when not "#ifdef HAVE_READLINE_HISTORY_H". + (editor_enter): Do not do line expansion or history add + when not "#ifdef HAVE_READLINE_HISTORY_H". + + * doc/ratpoison.texi: Mention that history cycling and + processing is not available when ratpoison is configured + with the "--disable-history" option. + 2003-11-01 Shawn Betts <sabetts@vcn.bc.ca> * src/input.c (cook_keycode): null terminate the string. @@ -2048,7 +2048,7 @@ (add_unmanaged_window): likewise (unmanaged_window): use num_unmanaged_windows to tell how many elements are in the unmanaged list. - + * src/actions.h (cmd_unmanage): new prototype (cmd_clrunmanaged): likewise @@ -2065,7 +2065,7 @@ * src/bar.h (update_bar): new prototype. * src/bar.c (BAR_IS_HIDDEN): new define. - (update_bar): new function. + (update_bar): new function. * src/actions.c (cmd_frestore): call update_bar() instead of update_window_names(). @@ -2135,7 +2135,7 @@ * src/window.c (add_to_window_list): use xstrdup to create the default value for user_name. - + 2003-04-10 Shawn Betts <sabetts@sfu.ca> * src/events.c (unmap_notify): fix crash bug in NormalState case. @@ -2303,7 +2303,7 @@ * src/ratpoison.h: include screen.h - * src/manage.c (move_window): + * src/manage.c (move_window): * src/frame.h (frame_copy): new prototype (frame_dump): likewise @@ -2426,12 +2426,12 @@ * src/split.c (create_initial_frame): give a number to the initial frame - (split_frame): give the new frame a unique number + (split_frame): give the new frame a unique number (split_frame): add the new frame after the current frame (remove_all_splits): return the frame's number when deleting it. (remove_frame): likewise (find_frame_number): new function - + * src/main.c (init_screen): initialize the frames_numset member (free_screen): free the frames_numset member @@ -2781,7 +2781,7 @@ 2002-08-31 Shawn Betts <sabetts@vcn.bc.ca> - * src/actions.c (cmd_bind): malloc the correct amount of memory for keydesc + * src/actions.c (cmd_bind): malloc the correct amount of memory for keydesc (cmd_unbind): likewise 2002-07-28 Shawn Betts <sabetts@vcn.bc.ca> @@ -3021,7 +3021,7 @@ * src/actions.c (cmd_rename): Allows the user to specify a second argument which is the number of the window whose number will be set to the first argument. - + 2002-01-09 Gergely Nagy <algernon@debian.org> * src/actions.c (setenv, unsetenv): new functions, used when @@ -3488,7 +3488,7 @@ * src/actions.c (cmd_bind): binding an empty string to a key will unbind the key. - + 2001-09-09 shawn <sabetts@diggin.lamenet.tmp> * src/conf.h (MAXSIZE_WINDOWS_ARE_TRANSIENTS): defined @@ -3719,7 +3719,7 @@ * src/split.c (hide_frame_indicator): always hide the frame indicator. (blank_frame): don't show the frame indicator. - + * src/manage.c (maximize_normal)[MAXSIZE_WINDOWS_ARE_TRANSIENTS]: win are centered properly in the frame. @@ -3939,7 +3939,7 @@ * src/actions.c: command functions have been changed to return a result string and take a parameter that tells the function if it was called interactively or not. All callers updated. - + * src/split.c (split_frame): unhide transient_for windows as well as the active window. (remove_all_splits): hide transient_for windows as well as the @@ -4333,7 +4333,7 @@ (current_window): likewise (init_frame_list): likewise (set_active_frame): likewise - + * src/split.c (create_initial_frame): new function (init_frame_list): likewise (find_windows_frame): likewise @@ -4623,7 +4623,7 @@ * src/bar.c (update_window_names): Print a '+' for the last accessed window. - + 2001-03-05 shawn <sabetts@diggin.lamenet.tmp> * src/events.c (key_press): set rp_mode_switch to 0 before processing @@ -4786,7 +4786,7 @@ * src/main.c (main): calls initialize_default_keybindings after init_window_list. - + * src/data.h (struct rp_action): key is of type KeySym. state is unsigned int. @@ -4819,7 +4819,7 @@ there are no more mapped windows. (destroy_window): calls set_current_window and find_window_other directly instead of cmd_other. - + 2001-02-26 shawn <sabetts@diggin.lamenet.tmp> * src/list.c (save_mouse_position): stores the mouse position relative @@ -4829,11 +4829,11 @@ * src/actions.h: prototype for force_maximize added * src/actions.c: the user command "maximize" calls force_maximize - (force_maximize): New function + (force_maximize): New function 2001-02-25 shawn <sabetts@diggin.lamenet.tmp> - * configure.in (AC_OUTPUT): added man/Makefile + * configure.in (AC_OUTPUT): added man/Makefile * Makefile.am (SUBDIRS): added man dir @@ -4856,7 +4856,7 @@ (main): read the initialization files * src/conf.h: remove themes support - + * src/themes.h: remove file * src/actions.c (replace_keybinding): add function @@ -5013,7 +5013,7 @@ (sort_window_list_by_number): Added * src/input.c (update_input_window): Added - (get_input): calls update_input_window in place of xlib calls. + (get_input): calls update_input_window in place of xlib calls. (get_input): exits if realloc fails * src/conf.h: Added INPUT_WINDOW_SIZE @@ -5047,12 +5047,12 @@ 2001-02-17 Ryan Yeske <rcyeske@cut.hotdog.tmp> * src/actions.c (generate_key_event): Send KEY_PREFIX. - + 2001-02-17 Ryan Yeske <rcyeske@cut.hotdog.tmp> * src/manage.c (current_screen): Rename get_screen() and move to this file. - + * src/input.c (get_input): Remove screen_info as paramater. Call current_screen() to get screen_info. @@ -5129,7 +5129,7 @@ by mark_start and mark_end arguments * src/conf.h (BAR_FG_COLOR): changed to black - (BAR_BG_COLOR): changed to white + (BAR_BG_COLOR): changed to white (FONT_NAME): changed to 9x15bold (BAR_Y_PADDING): changed to zero (BAR_X_PADDING): changed to zero @@ -5164,7 +5164,7 @@ all user functions that need arguments will prompt the user for them, unless they are supplied. Allows the same function to be used interactively or internally. - + * src/bar.h (display_msg_in_bar): updated prototype * src/bar.c (display_msg_in_bar): takes two additional int arguments @@ -5221,7 +5221,7 @@ * src/actions.h (goto_window_number): added prototype (goto_window): removed prototype - + * src/Makefile.am (ratpoison_SOURCES): added messages.h * src/actions.c (prev_window): display correct message when there is @@ -5275,7 +5275,7 @@ * doc/ratpoison.texi: added keystroke for `Show current time.' * debian/ratpoison.1: added keystroke for `Show current time.' - + 2001-01-02 shawn <sabetts@diggin.lamenet.tmp> * src/communications.c (send_restart): moved from main.c @@ -5452,7 +5452,7 @@ * src/actions.c (rename_current_window): added test to skip renaming if user entered an empty string (execute_command): added command - (key_actions): execute_command is called by pressing ':' + (key_actions): execute_command is called by pressing ':' 2000-10-30 shawn <sabetts@badbox.secure.basis.org> @@ -88,13 +88,13 @@ bigger one occupies 640-1663 horizontally and 0-768 vertically. +----------+--------------+ | | | | | | -| 640x480 | 1024x768 | -| | | -| | | -| | | +| 640x480 | 1024x768 | +| | | +| | | +| | | +----------+ | -| | | -|dead space| | +| | | +|dead space| | +----------+--------------+ In your .ratpoisonrc, add this line: @@ -556,7 +556,7 @@ make install *** Added jump to window by name Hit C-t C-' and a box will pop up asking you for the name of the window to jump to. -*** Added rename-window +*** Added rename-window hit C-t C-a and a box will pop up asking you to rename the current window. Once it has been renamed, it will stay renamed. diff --git a/README.developers b/README.developers index ed28ddc..887db45 100644 --- a/README.developers +++ b/README.developers @@ -12,7 +12,7 @@ String manipulation is something C is seriously lacking, and something everyone does all the time. When writing ratpoison code, you SHOULD NOT be malloc'ing temporary string buffers then using strcat, strcpy, etc to patch strings together. The following structures and functions -should give you just about everything you need. +should give you just about everything you need. If there's something you want to do but can't with the following utils, then you should consider adding that functionality (Don't just @@ -17,7 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id: autogen.sh,v 1.7 2004/12/03 01:20:56 sabetts Exp $ +# $Id: autogen.sh,v 1.8 2006/03/16 00:33:34 sabetts Exp $ # # usage: ./autogen.sh [-f] # option "-f" means forcefully create symlinks for missing files @@ -29,4 +29,3 @@ if [ x"$1" = x-f ] fi aclocal && autoheader && automake -a $am_opt && autoconf - diff --git a/configure.in b/configure.in index 64f3b75..ab35764 100644 --- a/configure.in +++ b/configure.in @@ -17,7 +17,7 @@ dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA dnl -dnl $Id: configure.in,v 1.51 2005/02/04 06:46:37 sabetts Exp $ +dnl $Id: configure.in,v 1.52 2006/03/16 00:33:34 sabetts Exp $ AC_INIT(src/main.c) AM_INIT_AUTOMAKE(ratpoison, 1.4.0-CVS) @@ -35,7 +35,7 @@ AC_ARG_ENABLE(debug, [ --enable-debug build with extra debugging messages], [if test "x$enableval" != "xno"; then AC_DEFINE_UNQUOTED(DEBUG, 1, Define this to enable debugging messages) - AC_MSG_RESULT(yes) + AC_MSG_RESULT(yes) CFLAGS="$CFLAGS -g" else AC_MSG_RESULT(no) diff --git a/contrib/clickframe.pl b/contrib/clickframe.pl index 474a9a0..e4836b9 100644 --- a/contrib/clickframe.pl +++ b/contrib/clickframe.pl @@ -35,15 +35,15 @@ foreach $frame (@framelist) { ($num,$left,$top,$width,$height,$win,$access) = split(/ /,$frame); if ($x_loc > $left && $x_loc < $left + $width && $y_loc > $top && $y_loc < $top + $height) { # Tell ratpoison to switch to the frame - print "User clicked in frame $num\n"; - system ("$ratpoison_bin -c \"fselect $num\""); + print "User clicked in frame $num\n"; + system ("$ratpoison_bin -c \"fselect $num\""); } } __END__ ---- xbindkeys.c~ 2003-04-06 08:43:27.000000000 -0700 -+++ xbindkeys.c 2003-09-24 11:46:20.000000000 -0700 +--- xbindkeys.c~ 2003-04-06 08:43:27.000000000 -0700 ++++ xbindkeys.c 2003-09-24 11:46:20.000000000 -0700 @@ -143,7 +143,15 @@ @@ -61,21 +61,20 @@ __END__ static void @@ -240,6 +248,8 @@ - | Button1Mask | Button2Mask | Button3Mask - | Button4Mask | Button5Mask); + | Button1Mask | Button2Mask | Button3Mask + | Button4Mask | Button5Mask); -+ add_button_env (e.xbutton.x, e.xbutton.y); ++ add_button_env (e.xbutton.x, e.xbutton.y); + - for (i = 0; i < nb_keys; i++) - { - if (keys[i].type == BUTTON && keys[i].event_type == PRESS) + for (i = 0; i < nb_keys; i++) + { + if (keys[i].type == BUTTON && keys[i].event_type == PRESS) @@ -266,6 +276,8 @@ - | Button1Mask | Button2Mask | Button3Mask - | Button4Mask | Button5Mask); + | Button1Mask | Button2Mask | Button3Mask + | Button4Mask | Button5Mask); -+ add_button_env (e.xbutton.x, e.xbutton.y); ++ add_button_env (e.xbutton.x, e.xbutton.y); + - for (i = 0; i < nb_keys; i++) - { - if (keys[i].type == BUTTON && keys[i].event_type == RELEASE) - + for (i = 0; i < nb_keys; i++) + { + if (keys[i].type == BUTTON && keys[i].event_type == RELEASE) diff --git a/contrib/genrpbindings b/contrib/genrpbindings index cf90b06..dffa99c 100755 --- a/contrib/genrpbindings +++ b/contrib/genrpbindings @@ -73,16 +73,16 @@ print ELISP <<PREAMBLE; (defun ratpoison-cmd (cmd &rest args) (with-temp-buffer (call-process ratpoison-program nil (current-buffer) t - "-c" (format "%s %s" - cmd - (mapconcat (lambda (x) - (if (stringp x) - x - (prin1-to-string x))) - args " "))) + "-c" (format "%s %s" + cmd + (mapconcat (lambda (x) + (if (stringp x) + x + (prin1-to-string x))) + args " "))) (buffer-substring (point-min) (if (> (point-max) 1) - (- (point-max) 1) - (point-max))))) + (- (point-max) 1) + (point-max))))) PREAMBLE # RUBY preamble @@ -113,28 +113,28 @@ print COMMONLISP <<PREAMBLE; (defmacro defun-ratpoison (cmd) (let ((sym (intern (concatenate 'string "RP-" (symbol-name cmd))))) `(progn (defun ,sym (&rest args) - (apply 'ratpoison-cmd ,(string-downcase (symbol-name cmd)) args)) - (export ',sym)))) + (apply 'ratpoison-cmd ,(string-downcase (symbol-name cmd)) args)) + (export ',sym)))) (defun ratpoison-cmd (cmd &rest args) (labels ((mapconcat (fn list sep) - (apply 'concatenate 'string - (loop for x on list - collect (if (cdr x) - (concatenate 'string (funcall fn (car x)) sep) - (funcall fn (car x)))))) - (build-cmd (cmd args) - (mapconcat (lambda (x) - (if (stringp x) - x - (prin1-to-string x))) - (nconc (list cmd) args) " "))) + (apply 'concatenate 'string + (loop for x on list + collect (if (cdr x) + (concatenate 'string (funcall fn (car x)) sep) + (funcall fn (car x)))))) + (build-cmd (cmd args) + (mapconcat (lambda (x) + (if (stringp x) + x + (prin1-to-string x))) + (nconc (list cmd) args) " "))) (let ((stream (port:pipe-input ratpoison-program - "-c" (build-cmd cmd args)))) + "-c" (build-cmd cmd args)))) (do ((line (read-line stream nil nil) - (read-line stream nil nil)) - (accum nil (cons line accum))) - ((null line) accum))))) + (read-line stream nil nil)) + (accum nil (cons line accum))) + ((null line) accum))))) PREAMBLE # python preamble @@ -146,37 +146,37 @@ def rp_command( *args ): p = os.popen( ratpoison + '"' + (' '.join( args ) ) + '"', 'r' ) r = p.readlines(); p.close(); - return r + return r PREAMBLE # bindings while (<ACTIONS_C>) { if (m!/\*\@begin !) { - while (<ACTIONS_C>) - { - last if (m!/\*\@end !); - if (/\s*add_command\s*\(\"([^\"]+)\",\s*[^\"]+,\s*([0-9]+),\s*[0-9]+,\s*([0-9]+)/) { - my $name = $1; - my $numargs = $2; - my $optargs = $3; - - # Skip the arguments - for (my $i=0; $i<$numargs; $i++) { - <ACTIONS_C>; - } - - $nbindings++; - print PERL "sub $name { return command (\"$name\", \@_); }"; - print ELISP "(defun-ratpoison $name)"; - print COMMONLISP "(defun-ratpoison $name)"; - print RUBY " def $name (*args)"; - print RUBY " return command (\"$name\", args)"; - print RUBY " end"; - print RUBY " module_function :$name\n"; - print PYTHON "def rp_$name( *args ): return rp_command ( '$name ' + ' '.join( args ) )"; - } - } + while (<ACTIONS_C>) + { + last if (m!/\*\@end !); + if (/\s*add_command\s*\(\"([^\"]+)\",\s*[^\"]+,\s*([0-9]+),\s*[0-9]+,\s*([0-9]+)/) { + my $name = $1; + my $numargs = $2; + my $optargs = $3; + + # Skip the arguments + for (my $i=0; $i<$numargs; $i++) { + <ACTIONS_C>; + } + + $nbindings++; + print PERL "sub $name { return command (\"$name\", \@_); }"; + print ELISP "(defun-ratpoison $name)"; + print COMMONLISP "(defun-ratpoison $name)"; + print RUBY " def $name (*args)"; + print RUBY " return command (\"$name\", args)"; + print RUBY " end"; + print RUBY " module_function :$name\n"; + print PYTHON "def rp_$name( *args ): return rp_command ( '$name ' + ' '.join( args ) )"; + } + } } } print "$nbindings bindings."; diff --git a/contrib/nogaps.el b/contrib/nogaps.el index c1d2649..358319e 100644 --- a/contrib/nogaps.el +++ b/contrib/nogaps.el @@ -9,5 +9,5 @@ (defun ratpoison-nogaps () (let ((wins (mapcar 'string-to-number (split-string (ratpoison-windows "%n"))))) (loop for n in wins - for i from 1 to (length wins) - do (ratpoison-number i n)))) + for i from 1 to (length wins) + do (ratpoison-number i n)))) diff --git a/contrib/ratpoison.el b/contrib/ratpoison.el index afa501e..97bf2c0 100644 --- a/contrib/ratpoison.el +++ b/contrib/ratpoison.el @@ -8,7 +8,7 @@ ;; Maintainer: Gergely Nagy <algernon@debian.org> ;; Version: 0.2 ;; Keywords: faces, ratpoison, X -;; CVS Id: $Id: ratpoison.el,v 1.4 2004/12/02 00:33:22 sabetts Exp $ +;; CVS Id: $Id: ratpoison.el,v 1.5 2006/03/16 00:33:34 sabetts Exp $ ;; Last updated: <2001/10/05 17:58:38 algernon> ;; This file is NOT part of GNU Emacs. @@ -132,15 +132,15 @@ ratpoison-commands-rest font-lock-builtin-face "^[ \t]*" "[ \t]+") ;; exec <arg> (list "^[ \t]*\\(exec\\)[ \t]+\\(.*\\)" - '(1 'font-lock-builtin-face) - '(2 'font-lock-string-face)) + '(1 'font-lock-builtin-face) + '(2 'font-lock-string-face)) ;; arguments, the first is a keyword, the rest is tring (list (concat - (car (generic-make-keywords-list - ratpoison-commands-rest font-lock-builtin-face "^[ \t]*" "[ \t]+")) - "\\([0-9a-zA-Z\\/\\.\\-]+\\)[ \t]*\\(.*\\)") - '(2 'font-lock-keyword-face) - '(3 'font-lock-string-face))) + (car (generic-make-keywords-list + ratpoison-commands-rest font-lock-builtin-face "^[ \t]*" "[ \t]+")) + "\\([0-9a-zA-Z\\/\\.\\-]+\\)[ \t]*\\(.*\\)") + '(2 'font-lock-keyword-face) + '(3 'font-lock-string-face))) ;; auto-mode alist (list "\\.ratpoisonrc\\'") ;; additional setup functions @@ -174,8 +174,8 @@ (defun ratpoison-command-on-region (start end) (interactive "r") (mapcar 'ratpoison-command - (split-string (buffer-substring start end) - "\n"))) + (split-string (buffer-substring start end) + "\n"))) (defun ratpoison-line () "Send the current line to ratpoison." diff --git a/contrib/rpshowall.sh b/contrib/rpshowall.sh index 487ad90..cb02795 100644 --- a/contrib/rpshowall.sh +++ b/contrib/rpshowall.sh @@ -1,17 +1,17 @@ #!/bin/sh # rpshowall -# ratpoison script to show all open windows +# ratpoison script to show all open windows # Copyright (C) 2003 Florian Cramer <cantsin@zedat.fu-berlin.de> -# Usage : +# Usage : # # rpshowall [no arguments] # if called from a terminal, show all open windows and # restore previous frame layout upon keystroke # # rpshowall [n>1] -# show all open windows for n seconds, +# show all open windows for n seconds, # then restore previous frame layout # # rpshowall 0 @@ -24,9 +24,9 @@ fi # Parse input argument if [ $*>0 ]; then - wait="$*" -else - wait=-1 + wait="$*" +else + wait=-1 fi @@ -40,34 +40,34 @@ curlayout=`$RATPOISON -c fdump` # Create split view of all open windows $RATPOISON -c only -i=2; -while [ $i -le $framecount ]; do - if [ $i -le `echo $framecount/2 | bc` ] ; then - $RATPOISON -c hsplit - else - $RATPOISON -c vsplit - fi - $RATPOISON -c focus - $RATPOISON -c focus - i=$[$i+1]; +i=2; +while [ $i -le $framecount ]; do + if [ $i -le `echo $framecount/2 | bc` ] ; then + $RATPOISON -c hsplit + else + $RATPOISON -c vsplit + fi + $RATPOISON -c focus + $RATPOISON -c focus + i=$[$i+1]; done # Depending on the argument the script was executed with, # 1- select a new window and exit opening it fullscreen -# 2- restore frameset after keyboard input -# 3- restore frameset after $wait seconds of delay +# 2- restore frameset after keyboard input +# 3- restore frameset after $wait seconds of delay $RATPOISON -c "select $curframe" if [ $wait -eq 0 ]; then - $RATPOISON -i -c fselect - $RATPOISON -c only + $RATPOISON -i -c fselect + $RATPOISON -c only else - $RATPOISON -i -c windows - if [ $wait -eq -1 ]; then - echo -n "Hit return to restore window layout. " - read i - else - sleep $wait - fi - $RATPOISON -c "frestore $curlayout" + $RATPOISON -i -c windows + if [ $wait -eq -1 ]; then + echo -n "Hit return to restore window layout. " + read i + else + sleep $wait + fi + $RATPOISON -c "frestore $curlayout" fi diff --git a/contrib/rpws b/contrib/rpws index 580495f..181b964 100755 --- a/contrib/rpws +++ b/contrib/rpws @@ -6,11 +6,11 @@ # Author Mike O'Connor <stew@vireo.org> # # Modified by Shawn Betts. -# +# # code was adapeted from rpws that comes from ratpoison containing the follwing copyright: # Copyright (C) 2003 Shawn Betts # Author: Shawn Betts -# +# use strict; use Fcntl qw (:flock); @@ -36,9 +36,9 @@ sub rp_call sub ws_init_ws { - + my $num = shift; - + rp_call( "gnew wspl$num" ); my $fd = fdump(); rp_call( "setenv fspl$num $fd" ) @@ -62,9 +62,9 @@ sub ws_init my $i; for( my $i = 0; $i < $num; $i++ ) { - ws_init_ws( $i ); + ws_init_ws( $i ); } - + # Workspace 1 uses the 'default' group. # Start in workspace 1. $fd = fdump(); @@ -77,7 +77,7 @@ sub ws_init if( -e "$lockfile" ) { - unlink ("$lockfile" ); + unlink ("$lockfile" ); } } @@ -91,18 +91,18 @@ sub ws_save sub ws_restore { my $which = shift; - + ws_save(); - + if( $which == 1 ) { - rp_call( "gselect default" ); + rp_call( "gselect default" ); } else { - rp_call( "gselect wspl$which"); + rp_call( "gselect wspl$which"); } - + rp_call( "echo Workspace $which" ); my $last = rp_call( "getenv fspl$which" ); rp_call( "frestore $last" ); @@ -113,7 +113,7 @@ sub add_aliases { my $n = shift; foreach my $i (1..$n) { - rp_call ( "alias rpws$i exec $0 $i" ); + rp_call ( "alias rpws$i exec $0 $i" ); } } @@ -121,7 +121,7 @@ sub add_keys { my $n = shift; foreach my $i (1..$n) { - rp_call ( "definekey top M-F$i rpws$i" ); + rp_call ( "definekey top M-F$i rpws$i" ); } } @@ -164,9 +164,9 @@ rpws - Implements multiple workspaces in ratpoison ratpoison in the contrib directory. =head1 USAGE - + Add the following line in ~/.ratpoisonrc - + exec /path/to/rpws init 6 -k This creates 6 aliases rpws1, rpws2, etc. It also binds the keys M-F1, @@ -186,7 +186,7 @@ environment variable RPWS_LOCKFILE to your desired lockfile. Copyright (c) 2005 Mike O'Connor All rights reserved. - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 @@ -196,4 +196,3 @@ environment variable RPWS_LOCKFILE to your desired lockfile. but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - diff --git a/contrib/unrat.c b/contrib/unrat.c index adce9b9..272ed6e 100644 --- a/contrib/unrat.c +++ b/contrib/unrat.c @@ -1,4 +1,4 @@ -/* Warp the pointer to the bottom right corner of the screen any time a key is pressed. +/* Warp the pointer to the bottom right corner of the screen any time a key is pressed. * * Copyright (C) 2005 Shawn Betts <sabetts@vcn.bc.ca> * @@ -6,12 +6,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * unrat is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -61,38 +61,38 @@ main (int argc, char **argv) { unsigned int j, nwins; Window dw1, dw2, *wins; - + XSelectInput(display,RootWindow(display, i), KeyReleaseMask | SubstructureNotifyMask); XQueryTree(display, RootWindow(display, i), &dw1, &dw2, &wins, &nwins); for (j=0; j<nwins; j++) - XSelectInput(display, wins[j], KeyReleaseMask); + XSelectInput(display, wins[j], KeyReleaseMask); } - while (1) + while (1) { XEvent event; - do - { - XNextEvent(display,&event); - if (event.type == CreateNotify) - XSelectInput(display, event.xcreatewindow.window, KeyReleaseMask); - } while(event.type != KeyRelease); + do + { + XNextEvent(display,&event); + if (event.type == CreateNotify) + XSelectInput(display, event.xcreatewindow.window, KeyReleaseMask); + } while(event.type != KeyRelease); /* A key was pressed. warp the rat. */ - for (i=0; i<numscreens; i++) - { - int x, y, wx, wy; - unsigned int mask; - Window root, child; + for (i=0; i<numscreens; i++) + { + int x, y, wx, wy; + unsigned int mask; + Window root, child; - XQueryPointer (display, RootWindow(display, i), - &root, &child, - &x, &y, &wx, &wy, - &mask); - if (x < DisplayWidth (display, i)-1 - || y < DisplayHeight (display, i)-1) - XWarpPointer (display, None, RootWindow(display, i), 0, 0, 0, 0, DisplayWidth (display, i), DisplayHeight (display, i)); - } + XQueryPointer (display, RootWindow(display, i), + &root, &child, + &x, &y, &wx, &wy, + &mask); + if (x < DisplayWidth (display, i)-1 + || y < DisplayHeight (display, i)-1) + XWarpPointer (display, None, RootWindow(display, i), 0, 0, 0, 0, DisplayWidth (display, i), DisplayHeight (display, i)); + } } XCloseDisplay (display); diff --git a/doc/ratpoison.1 b/doc/ratpoison.1 index 8e036ee..6d0395d 100644 --- a/doc/ratpoison.1 +++ b/doc/ratpoison.1 @@ -3,12 +3,12 @@ \# it under the terms of the GNU General Public License as published by \# the Free Software Foundation; either version 2, or (at your option) \# any later version. -\# +\# \# This man page is distributed in the hope that it will be useful, \# but WITHOUT ANY WARRANTY; without even the implied warranty of \# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \# GNU General Public License for more details. -\# +\# \# You should have received a copy of the GNU General Public License \# along with this software; see the file COPYING. If not, write to \# the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -44,7 +44,7 @@ . \} . shift . \} -. shift +. shift . as command@tmp \fP) . nr command@space 0 . \} @@ -71,7 +71,7 @@ ratpoison \- window manager without mouse dependency .P .SH SYNOPSIS -.B ratpoison \-\-help +.B ratpoison \-\-help | .B \-\-version .br @@ -88,11 +88,11 @@ ratpoison \- window manager without mouse dependency .IR dpy ] .RB [ \-s .IR num ] -.RB [ \-i ] +.RB [ \-i ] .B \-c .IR command .RB [ \-c -.I command +.I command \&... ] .SH DESCRIPTION Ratpoison is a Window Manager without fat library @@ -128,11 +128,11 @@ and execute each command when starting up. .TP .B \-i, \-\-interactive Execute commands given with -.B \-c -or -.B \-\-command +.B \-c +or +.B \-\-command in interactive mode. -That means it will behave exactly as if called with +That means it will behave exactly as if called with .B C\-t : like prompting for missing arguments and things like that. .TP @@ -144,7 +144,7 @@ this to work. Do not forget to quote the command if it contains spaces. .SH KEY BINDINGS -To avoid conflicts with other programs, all default ratpoison +To avoid conflicts with other programs, all default ratpoison key bindings start with an escape key, per default .B C\-t (read Control\-t). @@ -206,7 +206,7 @@ Possible events are: .br \fBrestart\fP Run before restarting ratpoison. .br -\fBswitchframe\fP Run after a frame actually switched, +\fBswitchframe\fP Run after a frame actually switched, but before the window in it is focused. .br \fBswitchgroup\fP Run after selecting a new group. @@ -244,7 +244,7 @@ missing arguments.) Add aliases for the new \fBset\fP commands starting with \fBdef\fP to support older scripts. .cmd cother -Like \fBother\fP but switch to the window of the current group that was last +Like \fBother\fP but switch to the window of the current group that was last accessed and has an other resource class but is not currently visible. .cmd curframe ( C\-t F ) Show a bar marking the current frame. @@ -264,7 +264,7 @@ better use the new \fBset resizeunit\fP and so on... .cmd dedicate [ \fB0 | \fB1\fP ] Consider the current frame dedicated/chaste (\fB1\fP) or promiscuous (\fB0\fP). .br -A dedicated frame will not accept new windows. +A dedicated frame will not accept new windows. When new windows are to be focused, they will be opened in a non-dedicated frame instead. .br @@ -278,7 +278,7 @@ with \fBnewkmap\fP. The keymaps \fBtop\fP and \fBroot\fP cannot be deleted. .cmd describekey keymap Grab the next key. Similar to \fBreadkey\fP, describekey -shows only the command in \fIkeymap\fP, +shows only the command in \fIkeymap\fP, that would be executed by \fBreadkey\fP. .cmd echo text Show \fItext\fP as ratpoison message. @@ -305,7 +305,7 @@ Switch to the frame to the left of the current one. Switch to the frame beneath the current one. .cmd focusright ( C\-t Right ) Switch to the frame to the right of the current one. -.cmd focusprev +.cmd focusprev Focus the previous frame. .cmd focusup ( C\-t Up ) Switch to the frame above the current one. @@ -316,14 +316,14 @@ format as generated by \fBfdump\fP. If an argument is supplied, switch to a frame given by number \fIframeno\fP. If no argument is given, show a frame selector in each frame and wait for -a key to be pressed. +a key to be pressed. If the key matches an existing frame selector, this frame gets focused. Frame selectors are by default the numbers starting with zero, but they can be changed by \fBset\fPing \fBframesels\fP. .cmd gdelete [ group ] If the optional argument \fIgroup\fP is supplied, delete group -\fIgroup\fP. Otherwise delete the current group. +\fIgroup\fP. Otherwise delete the current group. If the last group is deleted, a new group with name \fBdefault\fP is created. The group has to be empty, otherwise it cannot be deleted. @@ -353,10 +353,10 @@ Change how in its frame the current window is aligned. .cmd groups Output a list of all groups with their number. .cmd gselect group -Select the group names \fIgroup\fP. +Select the group names \fIgroup\fP. .cmd help [ keymap ] If the optional parameter \fIkeymap\fP is given, -list all keybindings in this keymap, +list all keybindings in this keymap, otherwise list all key bindings in keymap \fIroot\fP. .cmd hsplit [ l\fB/\fR\fIp | "pixels from left" | "\fB\-\fR\fIpixels from right" ] ( C\-t S ) Split the current frame into left frame and a right frame. @@ -369,7 +369,7 @@ Otherwise the right one is \fIpixels from right\fP wide or the left one the number or not. .cmd inext Like \fBnext\fP but switch to the next window with the same -resource class as the current one. +resource class as the current one. (That means the next window belonging to the same application as the current one.) .cmd info ( C\-t i ) @@ -378,11 +378,11 @@ window. (What name means is chosen by "\fBset\ winname\fP".) .cmd iprev Like \fBprev\fP but switch to the previous window with the same -resource class as the current one. +resource class as the current one. (That means the previous window belonging to the same application as the current one.) .cmd iother -Like \fBother\fP but switch to the window of the current group that was last +Like \fBother\fP but switch to the window of the current group that was last accessed and has the same resource class but is not currently visible. .cmd kill ( C\-t K ) Close the X\-connection of the X\-client responsible for the current window. @@ -402,7 +402,7 @@ If a \fIkey\fP is specified, this is sent instead. Note that some applications b default ignore the synthetic key that is sent using this command as it is considered a security hole. xterm is one such application. .cmd msgwait [ seconds ] -Set the duration the message window is shown. +Set the duration the message window is shown. If \fIseconds\fP is zero, wait infinitely. .# This will hopefully be changed to set msgwait some day... .cmd newkmap keymap @@ -422,7 +422,7 @@ the current window. Remove all frames on the current screen except the current frame and maximise this one to the size of the whole screen. .cmd other ( C\-t C\-t ) -Switch to the window of the current group that was last +Switch to the window of the current group that was last accessed but is not currently visible. .cmd prev ( C\-t p ) Switch to the previous window in the current group. @@ -451,7 +451,7 @@ Simulate a rat click with \fIbutton\fP (button 1=left button if none given). Simulate pressing|releasing rat button \fIbutton\fP (1=left button if none given). .cmd readkey keymap Grab the next key pressed, and execute the command associated to this key -in \fIkeymap\fP. +in \fIkeymap\fP. To show it is waiting for a key, ratpoison will change the rat cursor to a square if \fBwaitcursor\fP is set. @@ -461,7 +461,7 @@ configuration: By pressing \fBC-t\fP, which is the only key in the keymap then executes the command in keymap \fBroot\fP belonging to this command. .cmd redisplay ( C\-t l ) Extend the current window to the whole size of its current frame and -redisplay it. +redisplay it. (Useful to redisplay normal windows or bring transient windows to the full size of the frame as only normal windows are maximized by ratpoison) .cmd redo ( C\-t U ) @@ -469,7 +469,7 @@ Revert the last \fIundo\fP of frame changes. .cmd remhook event command Remove command \fIcommand\fP from the list of commands to be called when event \fIevent\fP is hit. (The command has to specified, as an event can -have multiple commands attached to it.) +have multiple commands attached to it.) Use "\fBlisthook\fP \fIhook\fP" to get a list of all attached commands. .cmd remove ( C\-t R ) Remove the current frame and extend some frames around to fill the remaining @@ -535,7 +535,7 @@ If no argument is given, output all ratpoison variables and their values. If one argument is given, output the value of ratpoison variable \fIvariable\fP. .br Otherwise set ratpoison variable \fIvariable\fP to \fIvalue\fP. What values -are valid depends on the variable. +are valid depends on the variable. See the section \fBVARIABLES\fP later in this document for details. .cmd setenv variable value Set the environment variable \fIvariable\fP to \fIvalue\fP. @@ -556,8 +556,8 @@ Select whether ratpoison will show a startup message or not. .cmd time ( C\-t a ) Output current data and time. .cmd title newname ( C\-t A ) -Overwrite the title of the current window with \fInewname\fP. -All following ratpoison commands will only know the +Overwrite the title of the current window with \fInewname\fP. +All following ratpoison commands will only know the window under the new name. .cmd tmpwm tmpwm Temporarily give control over to the other window manager \fItmpwm\fP, @@ -575,7 +575,7 @@ Un\-do the last change to the frameset. The amount of steps that can be undone is specified by the variable \fBmaxundos\fP. .cmd unmanage [ name ] -Add \fIname\fP to the list of unmanaged windows. +Add \fIname\fP to the list of unmanaged windows. Thus, windows of this name will not be managed but allowed to choose their position themselves. @@ -601,9 +601,9 @@ the number or not. Select if focusing a window moves the rat cursor to the place it had been last time this window was focused, or not. .cmd windows [ format ] ( C\-t w ) -In interactive mode, +In interactive mode, show the list of all windows in the current group for -the duration specified by \fBmsgwait\fP +the duration specified by \fBmsgwait\fP If \fBmsgwait\fP is zero, toggle between indefinitely showing and not showing. @@ -634,7 +634,7 @@ In non\-interactive mode, output the list of windows in the current group line by line. The format string can be overwritten by the optional parameter \fIformat\fP. .SH VARIABLES -Ratpoison variables can be shown and set with \fBset\fP. +Ratpoison variables can be shown and set with \fBset\fP. There are: .var resizeunit pixels Set the amount of pixels interactive \fBresize\fPing will add/subtract @@ -723,7 +723,7 @@ Determines whether windows are shown in \fBrow\fPs or in \fBcolumn\fPs. .br Default is column. .var framesels selectors -Override the frame selectors \fBfselect\fP uses. +Override the frame selectors \fBfselect\fP uses. The first character is the selector for the first frame, the second character is the selector for the second frame and so on. diff --git a/doc/ratpoison.texi b/doc/ratpoison.texi index 8debef0..63e9e10 100644 --- a/doc/ratpoison.texi +++ b/doc/ratpoison.texi @@ -85,24 +85,24 @@ This document explains how to use ratpoison. Windows -* Manipulating Windows:: -* Window Classes:: -* Unmanaged Windows:: -* Rudeness:: +* Manipulating Windows:: +* Window Classes:: +* Unmanaged Windows:: +* Rudeness:: Frames -* Splitting Frames:: -* Resizing Frames:: -* Frame Navigation Commands:: -* Saving and Restoring Frame Sets:: -* Frame Numbering:: -* Dedicated Frames:: +* Splitting Frames:: +* Resizing Frames:: +* Frame Navigation Commands:: +* Saving and Restoring Frame Sets:: +* Frame Numbering:: +* Dedicated Frames:: Keystrokes -* Key Maps:: -* Default Key Bindings:: +* Key Maps:: +* Default Key Bindings:: @end detailmenu @end menu @@ -156,7 +156,7 @@ associated with a frame, that window will be opened in the current frame and resized to fit that frame. If the window associated with a frame does not fill the frame -completely, the various gravity commands control how it is placed. +completely, the various gravity commands control how it is placed. If no window was open in that frame before the current window was opened, the X root will be visible behind it. @@ -205,10 +205,10 @@ its best. Windows are what ratpoison manages. @menu -* Manipulating Windows:: -* Window Classes:: -* Unmanaged Windows:: -* Rudeness:: +* Manipulating Windows:: +* Window Classes:: +* Unmanaged Windows:: +* Rudeness:: @end menu @node Manipulating Windows, Window Classes, Windows, Windows @@ -519,7 +519,7 @@ Tells ratpoison to grant raise requests on normal windows @item Bit 2 Tells ratpoison to grant display requests on new transient windows -@item Bit 3 +@item Bit 3 Tells ratpoison to grant display requests on new normal windows @end table @@ -537,7 +537,7 @@ returned. @chapter Groups ratpoison provides functionality to group windows together. This coupled with saving and restoring frames configurations is what most -people would call @dfn{virtual desktops} or @dfn{workspaces}. +people would call @dfn{virtual desktops} or @dfn{workspaces}. While ratpoison doesn't explicitly provide support for such things, it does allow you to write scripts to this end. Such a script exists in @@ -602,12 +602,12 @@ time. ratpoison allows you to split the display into frames (see @ref{Concepts}). Each frame can then contain 1 window. @menu -* Splitting Frames:: -* Resizing Frames:: -* Frame Navigation Commands:: -* Saving and Restoring Frame Sets:: -* Frame Numbering:: -* Dedicated Frames:: +* Splitting Frames:: +* Resizing Frames:: +* Frame Navigation Commands:: +* Saving and Restoring Frame Sets:: +* Frame Numbering:: +* Dedicated Frames:: @end menu @node Splitting Frames, Resizing Frames, Frames, Frames @@ -940,8 +940,8 @@ key. ratpoison will tell you it isn't bound and give you the name of the key. @menu -* Key Maps:: -* Default Key Bindings:: +* Key Maps:: +* Default Key Bindings:: @end menu @node Key Maps, Default Key Bindings, Keystrokes, Keystrokes @@ -971,7 +971,7 @@ definekey top C-x readkey ctrl-x The following functions control creating, editing, and deleting key maps. @deffn Command newkmap @var{kmap} -Create a new keymap named @var{kmap}. +Create a new keymap named @var{kmap}. @end deffn @@ -1228,7 +1228,7 @@ List the commands that will be run when @var{hook} is fired. @chapter The Status Bar ratpoison presents status and output through the status bar. By default -it is located in the top right corner of the screen. +it is located in the top right corner of the screen. This chapter presents commands for manipulating the status bar. @@ -1324,7 +1324,7 @@ alternative's missing functionality. According to independant studies, @command{tmpwm} has been used almost exclusively to verify its correct operation -- like a vintage sports -car: always kept in prime condition and never used. +car: always kept in prime condition and never used. @command{tmpwm} and @command{newwm} are provided for boasting and completeness. @@ -1448,7 +1448,7 @@ This command is only useful when called non-interactively. @command{prompt} prompts the user for input using @var{prompt} and returns the input. @end deffn - + @deffn Command putsel @var{text} Make text the X11 selection. @end deffn @@ -1700,7 +1700,7 @@ in conjunction with the @option{-c} option. @item -f, --file Specify an alternate configuration file. @xref{Startup file}. - + @end table @node Startup file, Command Index, Command Line Arguments, Top @@ -1711,7 +1711,7 @@ old file I forgot about. You're probably wondering, ``say, didn't he say there was no configuration file to customize?''. Okay, ya got me. But let's be honest here: ratpoison is so pure and fast-acting, customization is barely worth the extra effort. In the off chance that you need to make -ratpoison your own, we now support it. +ratpoison your own, we now support it. On startup ratpoison looks for @file{~/.ratpoisonrc} and runs it through the command parser. If @file{~/.ratpoisonrc} does not exist, ratpoison diff --git a/doc/sample.ratpoisonrc b/doc/sample.ratpoisonrc index 6dbfc99..786b576 100644 --- a/doc/sample.ratpoisonrc +++ b/doc/sample.ratpoisonrc @@ -18,7 +18,7 @@ exec xterm bind e exec emacs # bind s to interactively run a surfraw query on freshmeat -bind s colon exec xterm -e freshmeat +bind s colon exec xterm -e freshmeat # bind b (`b' for browse) to interactively ask for an URL to open bind b colon exec mozilla http://www. diff --git a/ratpoison.spec b/ratpoison.spec index 1e4fc48..2bb1f25 100644 --- a/ratpoison.spec +++ b/ratpoison.spec @@ -26,14 +26,14 @@ pieces of software. %prep mkdir -p $RPM_BUILD_ROOT -%setup +%setup rm -f config.cache -./configure --prefix=/usr \ - --infodir=/usr/info \ - --mandir=/usr/man +./configure --prefix=/usr \ + --infodir=/usr/info \ + --mandir=/usr/man %build -make +make %install make install DESTDIR=$RPM_BUILD_ROOT diff --git a/src/actions.c b/src/actions.c index d9cc00e..6889ee6 100644 --- a/src/actions.c +++ b/src/actions.c @@ -78,7 +78,7 @@ add_set_var (char *name, cmdret * (*fn)(struct cmdarg **), int nargs, ...) var->set_fn = fn; var->nargs = nargs; var->args = xmalloc(sizeof(struct argspec) * nargs); - + /* Fill var->args */ va_start(va, nargs); for (i=0; i<nargs; i++) @@ -101,8 +101,8 @@ init_set_vars() add_set_var ("maxsizegravity", set_maxsizegravity, 1, "", arg_GRAVITY); add_set_var ("bargravity", set_bargravity, 1, "", arg_GRAVITY); add_set_var ("font", set_font, 1, "", arg_STRING); - add_set_var ("padding", set_padding, 4, - "", arg_NUMBER, "", arg_NUMBER, "", arg_NUMBER, "", arg_NUMBER); + add_set_var ("padding", set_padding, 4, + "", arg_NUMBER, "", arg_NUMBER, "", arg_NUMBER, "", arg_NUMBER); add_set_var ("border", set_border, 1, "", arg_NUMBER); add_set_var ("barborder", set_barborder, 1, "", arg_NUMBER); add_set_var ("inputwidth", set_inputwidth, 1, "", arg_NUMBER); @@ -137,7 +137,7 @@ add_command (char *name, cmdret * (*fn)(int, struct cmdarg **), int nargs, int i cmd->ni_required_args = ni_nrequired; cmd->i_required_args = i_nrequired; cmd->args = xmalloc(sizeof(struct argspec) * nargs); - + /* Fill cmd->args */ va_start(va, ni_nrequired); for (i=0; i<nargs; i++) @@ -154,179 +154,179 @@ void init_user_commands() { /*@begin (tag required for genrpbindings) */ - add_command ("abort", cmd_abort, 0, 0, 0); - add_command ("addhook", cmd_addhook, 2, 2, 2, - "Hook: ", arg_HOOK, - "Command: ", arg_REST); - add_command ("alias", cmd_alias, 2, 2, 2, - "Alias: ", arg_STRING, - "Command: ", arg_REST); - add_command ("banish", cmd_banish, 0, 0, 0); - add_command ("chdir", cmd_chdir, 1, 0, 0, - "Dir: ", arg_REST); - add_command ("clrunmanaged", cmd_clrunmanaged, 0, 0, 0); - add_command ("colon", cmd_colon, 1, 0, 0, - "", arg_REST); - add_command ("curframe", cmd_curframe, 0, 0, 0); - add_command ("definekey", cmd_definekey, 3, 3, 3, - "Keymap: ", arg_KEYMAP, - "Key: ", arg_KEY, - "Command: ", arg_REST); - add_command ("undefinekey", cmd_undefinekey, 2, 2, 2, - "Keymap: ", arg_KEYMAP, - "Key: ", arg_KEY); - add_command ("delete", cmd_delete, 0, 0, 0); - add_command ("delkmap", cmd_delkmap, 1, 1, 1, - "Keymap: ", arg_KEYMAP); - add_command ("echo", cmd_echo, 1, 1, 1, - "Echo: ", arg_RAW); - add_command ("escape", cmd_escape, 1, 1, 1, - "Key: ", arg_KEY); - add_command ("exec", cmd_exec, 1, 1, 1, - "/bin/sh -c ", arg_SHELLCMD); - add_command ("fdump", cmd_fdump, 1, 0, 0, - "", arg_NUMBER); - add_command ("focus", cmd_next_frame, 0, 0, 0); - add_command ("focusprev", cmd_prev_frame, 0, 0, 0); - add_command ("focusdown", cmd_focusdown, 0, 0, 0); - add_command ("focuslast", cmd_focuslast, 0, 0, 0); - add_command ("focusleft", cmd_focusleft, 0, 0, 0); - add_command ("focusright", cmd_focusright, 0, 0, 0); - add_command ("focusup", cmd_focusup, 0, 0, 0); - add_command ("frestore", cmd_frestore, 1, 1, 1, - "Frames: ", arg_REST); - add_command ("fselect", cmd_fselect, 1, 1, 1, - "", arg_FRAME); - add_command ("gdelete", cmd_gdelete, 1, 0, 0, - "Group:", arg_GROUP); - add_command ("getenv", cmd_getenv, 1, 1, 1, - "Variable: ", arg_STRING); - add_command ("gmerge", cmd_gmerge, 1, 1, 1, - "Group: ", arg_GROUP); - add_command ("gmove", cmd_gmove, 1, 1, 1, - "Group: ", arg_GROUP); - add_command ("gnew", cmd_gnew, 1, 1, 1, - "Name: ", arg_STRING); - add_command ("gnewbg", cmd_gnewbg, 1, 1, 1, - "Name: ", arg_STRING); - add_command ("gnext", cmd_gnext, 0, 0, 0); - add_command ("gprev", cmd_gprev, 0, 0, 0); - add_command ("gravity", cmd_gravity, 1, 0, 0, - "Gravity: ", arg_GRAVITY); - add_command ("groups", cmd_groups, 0, 0, 0); - add_command ("gselect", cmd_gselect, 1, 1, 1, - "Group: ", arg_GROUP); - add_command ("help", cmd_help, 1, 0, 0, - "Keymap: ", arg_KEYMAP); - add_command ("hsplit", cmd_h_split, 1, 0, 0, - "Split: ", arg_STRING); - add_command ("info", cmd_info, 1, 0, 0, - "Format: ", arg_REST); - add_command ("kill", cmd_kill, 0, 0, 0); - add_command ("lastmsg", cmd_lastmsg, 0, 0, 0); - add_command ("license", cmd_license, 0, 0, 0); - add_command ("link", cmd_link, 2, 1, 1, - "Key: ", arg_STRING, - "Keymap: ", arg_KEYMAP); - add_command ("listhook", cmd_listhook, 1, 1, 1, - "Hook: ", arg_HOOK); - add_command ("meta", cmd_meta, 1, 0, 0, - "key: ", arg_KEY); - add_command ("msgwait", cmd_msgwait, 1, 0, 0, - "", arg_NUMBER); - add_command ("newkmap", cmd_newkmap, 1, 1, 1, - "Keymap: ", arg_STRING); - add_command ("newwm", cmd_newwm, 1, 1, 1, - "Switch to wm: ", arg_REST); - add_command ("next", cmd_next, 0, 0, 0); - add_command ("nextscreen", cmd_nextscreen, 0, 0, 0); - add_command ("number", cmd_number, 2, 1, 1, - "Number: ", arg_NUMBER, - "Number: ", arg_NUMBER); - add_command ("only", cmd_only, 0, 0, 0); - add_command ("other", cmd_other, 0, 0, 0); - add_command ("prev", cmd_prev, 0, 0, 0); - add_command ("prevscreen", cmd_prevscreen, 0, 0, 0); - add_command ("quit", cmd_quit, 0, 0, 0); - add_command ("ratwarp", cmd_ratwarp, 2, 2, 2, - "X: ", arg_NUMBER, - "Y: ", arg_NUMBER); - add_command ("ratrelwarp", cmd_ratrelwarp, 2, 2, 2, - "X: ", arg_NUMBER, - "Y: ", arg_NUMBER); - add_command ("ratclick", cmd_ratclick, 1, 0, 0, - "Button: ", arg_NUMBER); - add_command ("rathold", cmd_rathold, 2, 1, 1, - "State: ", arg_STRING, - "Button: ", arg_NUMBER); - add_command ("readkey", cmd_readkey, 1, 1, 1, - "Keymap: ", arg_KEYMAP); - add_command ("redisplay", cmd_redisplay, 0, 0, 0); - add_command ("remhook", cmd_remhook, 2, 2, 2, - "Hook: ", arg_HOOK, - "Command: ", arg_REST); - add_command ("remove", cmd_remove, 0, 0, 0); - add_command ("resize", cmd_resize, 2, 0, 2, - "", arg_NUMBER, - "", arg_NUMBER); - add_command ("restart", cmd_restart, 0, 0, 0); - add_command ("rudeness", cmd_rudeness, 1, 0, 0, - "Rudeness: ", arg_NUMBER); - add_command ("select", cmd_select, 1, 0, 1, - "Select window: ", arg_REST); - add_command ("set", cmd_set, 2, 0, 0, - "", arg_VARIABLE, - "", arg_REST); - add_command ("setenv", cmd_setenv, 2, 2, 2, - "Variable: ", arg_STRING, - "Value: ", arg_REST); - add_command ("shrink", cmd_shrink, 0, 0, 0); - add_command ("source", cmd_source, 1, 1, 1, - "File: ", arg_REST); - add_command ("sselect", cmd_sselect, 1, 1, 1, - "Screen: ", arg_NUMBER); - add_command ("startup_message", cmd_startup_message, 1, 1, 1, - "Startup message: ", arg_STRING); - add_command ("time", cmd_time, 0, 0, 0); - add_command ("title", cmd_rename, 1, 1, 1, - "Set window's title to: ", arg_REST); - add_command ("tmpwm", cmd_tmpwm, 1, 1, 1, - "Tmp wm: ", arg_REST); - add_command ("unalias", cmd_unalias, 1, 1, 1, - "Alias: ", arg_STRING); - add_command ("unmanage", cmd_unmanage, 1, 1, 0, - "Unmanage: ", arg_REST); - add_command ("unsetenv", cmd_unsetenv, 1, 1, 1, - "Variable: ", arg_STRING); - add_command ("verbexec", cmd_verbexec, 1, 1, 1, - "/bin/sh -c ", arg_SHELLCMD); - add_command ("version", cmd_version, 0, 0, 0); - add_command ("vsplit", cmd_v_split, 1, 0, 0, - "Split: ", arg_STRING); - add_command ("warp", cmd_warp, 1, 1, 1, - "Warp State: ", arg_STRING); - add_command ("windows", cmd_windows, 1, 0, 0, - "", arg_REST); - add_command ("cnext", cmd_cnext, 0, 0, 0); - add_command ("cother", cmd_cother, 0, 0, 0); - add_command ("cprev", cmd_cprev, 0, 0, 0); - add_command ("dedicate", cmd_dedicate, 1, 0, 0, - "", arg_NUMBER); - add_command ("describekey", cmd_describekey, 1, 1, 1, - "Keymap: ", arg_KEYMAP); - add_command ("inext", cmd_inext, 0, 0, 0); - add_command ("iother", cmd_iother, 0, 0, 0); - add_command ("iprev", cmd_iprev, 0, 0, 0); - add_command ("prompt", cmd_prompt, 1, 0, 0, - "", arg_REST); - add_command ("sdump", cmd_sdump, 0, 0, 0); - add_command ("sfdump", cmd_sfdump, 0, 0, 0); - add_command ("undo", cmd_undo, 0, 0, 0); - add_command ("redo", cmd_redo, 0, 0, 0); - add_command ("putsel", cmd_putsel, 1, 1, 1, - "Text: ", arg_RAW); - add_command ("getsel", cmd_getsel, 0, 0, 0); - add_command ("compat", cmd_compat, 0, 0, 0); + add_command ("abort", cmd_abort, 0, 0, 0); + add_command ("addhook", cmd_addhook, 2, 2, 2, + "Hook: ", arg_HOOK, + "Command: ", arg_REST); + add_command ("alias", cmd_alias, 2, 2, 2, + "Alias: ", arg_STRING, + "Command: ", arg_REST); + add_command ("banish", cmd_banish, 0, 0, 0); + add_command ("chdir", cmd_chdir, 1, 0, 0, + "Dir: ", arg_REST); + add_command ("clrunmanaged", cmd_clrunmanaged, 0, 0, 0); + add_command ("colon", cmd_colon, 1, 0, 0, + "", arg_REST); + add_command ("curframe", cmd_curframe, 0, 0, 0); + add_command ("definekey", cmd_definekey, 3, 3, 3, + "Keymap: ", arg_KEYMAP, + "Key: ", arg_KEY, + "Command: ", arg_REST); + add_command ("undefinekey", cmd_undefinekey, 2, 2, 2, + "Keymap: ", arg_KEYMAP, + "Key: ", arg_KEY); + add_command ("delete", cmd_delete, 0, 0, 0); + add_command ("delkmap", cmd_delkmap, 1, 1, 1, + "Keymap: ", arg_KEYMAP); + add_command ("echo", cmd_echo, 1, 1, 1, + "Echo: ", arg_RAW); + add_command ("escape", cmd_escape, 1, 1, 1, + "Key: ", arg_KEY); + add_command ("exec", cmd_exec, 1, 1, 1, + "/bin/sh -c ", arg_SHELLCMD); + add_command ("fdump", cmd_fdump, 1, 0, 0, + "", arg_NUMBER); + add_command ("focus", cmd_next_frame, 0, 0, 0); + add_command ("focusprev", cmd_prev_frame, 0, 0, 0); + add_command ("focusdown", cmd_focusdown, 0, 0, 0); + add_command ("focuslast", cmd_focuslast, 0, 0, 0); + add_command ("focusleft", cmd_focusleft, 0, 0, 0); + add_command ("focusright", cmd_focusright, 0, 0, 0); + add_command ("focusup", cmd_focusup, 0, 0, 0); + add_command ("frestore", cmd_frestore, 1, 1, 1, + "Frames: ", arg_REST); + add_command ("fselect", cmd_fselect, 1, 1, 1, + "", arg_FRAME); + add_command ("gdelete", cmd_gdelete, 1, 0, 0, + "Group:", arg_GROUP); + add_command ("getenv", cmd_getenv, 1, 1, 1, + "Variable: ", arg_STRING); + add_command ("gmerge", cmd_gmerge, 1, 1, 1, + "Group: ", arg_GROUP); + add_command ("gmove", cmd_gmove, 1, 1, 1, + "Group: ", arg_GROUP); + add_command ("gnew", cmd_gnew, 1, 1, 1, + "Name: ", arg_STRING); + add_command ("gnewbg", cmd_gnewbg, 1, 1, 1, + "Name: ", arg_STRING); + add_command ("gnext", cmd_gnext, 0, 0, 0); + add_command ("gprev", cmd_gprev, 0, 0, 0); + add_command ("gravity", cmd_gravity, 1, 0, 0, + "Gravity: ", arg_GRAVITY); + add_command ("groups", cmd_groups, 0, 0, 0); + add_command ("gselect", cmd_gselect, 1, 1, 1, + "Group: ", arg_GROUP); + add_command ("help", cmd_help, 1, 0, 0, + "Keymap: ", arg_KEYMAP); + add_command ("hsplit", cmd_h_split, 1, 0, 0, + "Split: ", arg_STRING); + add_command ("info", cmd_info, 1, 0, 0, + "Format: ", arg_REST); + add_command ("kill", cmd_kill, 0, 0, 0); + add_command ("lastmsg", cmd_lastmsg, 0, 0, 0); + add_command ("license", cmd_license, 0, 0, 0); + add_command ("link", cmd_link, 2, 1, 1, + "Key: ", arg_STRING, + "Keymap: ", arg_KEYMAP); + add_command ("listhook", cmd_listhook, 1, 1, 1, + "Hook: ", arg_HOOK); + add_command ("meta", cmd_meta, 1, 0, 0, + "key: ", arg_KEY); + add_command ("msgwait", cmd_msgwait, 1, 0, 0, + "", arg_NUMBER); + add_command ("newkmap", cmd_newkmap, 1, 1, 1, + "Keymap: ", arg_STRING); + add_command ("newwm", cmd_newwm, 1, 1, 1, + "Switch to wm: ", arg_REST); + add_command ("next", cmd_next, 0, 0, 0); + add_command ("nextscreen", cmd_nextscreen, 0, 0, 0); + add_command ("number", cmd_number, 2, 1, 1, + "Number: ", arg_NUMBER, + "Number: ", arg_NUMBER); + add_command ("only", cmd_only, 0, 0, 0); + add_command ("other", cmd_other, 0, 0, 0); + add_command ("prev", cmd_prev, 0, 0, 0); + add_command ("prevscreen", cmd_prevscreen, 0, 0, 0); + add_command ("quit", cmd_quit, 0, 0, 0); + add_command ("ratwarp", cmd_ratwarp, 2, 2, 2, + "X: ", arg_NUMBER, + "Y: ", arg_NUMBER); + add_command ("ratrelwarp", cmd_ratrelwarp, 2, 2, 2, + "X: ", arg_NUMBER, + "Y: ", arg_NUMBER); + add_command ("ratclick", cmd_ratclick, 1, 0, 0, + "Button: ", arg_NUMBER); + add_command ("rathold", cmd_rathold, 2, 1, 1, + "State: ", arg_STRING, + "Button: ", arg_NUMBER); + add_command ("readkey", cmd_readkey, 1, 1, 1, + "Keymap: ", arg_KEYMAP); + add_command ("redisplay", cmd_redisplay, 0, 0, 0); + add_command ("remhook", cmd_remhook, 2, 2, 2, + "Hook: ", arg_HOOK, + "Command: ", arg_REST); + add_command ("remove", cmd_remove, 0, 0, 0); + add_command ("resize", cmd_resize, 2, 0, 2, + "", arg_NUMBER, + "", arg_NUMBER); + add_command ("restart", cmd_restart, 0, 0, 0); + add_command ("rudeness", cmd_rudeness, 1, 0, 0, + "Rudeness: ", arg_NUMBER); + add_command ("select", cmd_select, 1, 0, 1, + "Select window: ", arg_REST); + add_command ("set", cmd_set, 2, 0, 0, + "", arg_VARIABLE, + "", arg_REST); + add_command ("setenv", cmd_setenv, 2, 2, 2, + "Variable: ", arg_STRING, + "Value: ", arg_REST); + add_command ("shrink", cmd_shrink, 0, 0, 0); + add_command ("source", cmd_source, 1, 1, 1, + "File: ", arg_REST); + add_command ("sselect", cmd_sselect, 1, 1, 1, + "Screen: ", arg_NUMBER); + add_command ("startup_message", cmd_startup_message, 1, 1, 1, + "Startup message: ", arg_STRING); + add_command ("time", cmd_time, 0, 0, 0); + add_command ("title", cmd_rename, 1, 1, 1, + "Set window's title to: ", arg_REST); + add_command ("tmpwm", cmd_tmpwm, 1, 1, 1, + "Tmp wm: ", arg_REST); + add_command ("unalias", cmd_unalias, 1, 1, 1, + "Alias: ", arg_STRING); + add_command ("unmanage", cmd_unmanage, 1, 1, 0, + "Unmanage: ", arg_REST); + add_command ("unsetenv", cmd_unsetenv, 1, 1, 1, + "Variable: ", arg_STRING); + add_command ("verbexec", cmd_verbexec, 1, 1, 1, + "/bin/sh -c ", arg_SHELLCMD); + add_command ("version", cmd_version, 0, 0, 0); + add_command ("vsplit", cmd_v_split, 1, 0, 0, + "Split: ", arg_STRING); + add_command ("warp", cmd_warp, 1, 1, 1, + "Warp State: ", arg_STRING); + add_command ("windows", cmd_windows, 1, 0, 0, + "", arg_REST); + add_command ("cnext", cmd_cnext, 0, 0, 0); + add_command ("cother", cmd_cother, 0, 0, 0); + add_command ("cprev", cmd_cprev, 0, 0, 0); + add_command ("dedicate", cmd_dedicate, 1, 0, 0, + "", arg_NUMBER); + add_command ("describekey", cmd_describekey, 1, 1, 1, + "Keymap: ", arg_KEYMAP); + add_command ("inext", cmd_inext, 0, 0, 0); + add_command ("iother", cmd_iother, 0, 0, 0); + add_command ("iprev", cmd_iprev, 0, 0, 0); + add_command ("prompt", cmd_prompt, 1, 0, 0, + "", arg_REST); + add_command ("sdump", cmd_sdump, 0, 0, 0); + add_command ("sfdump", cmd_sfdump, 0, 0, 0); + add_command ("undo", cmd_undo, 0, 0, 0); + add_command ("redo", cmd_redo, 0, 0, 0); + add_command ("putsel", cmd_putsel, 1, 1, 1, + "Text: ", arg_RAW); + add_command ("getsel", cmd_getsel, 0, 0, 0); + add_command ("compat", cmd_compat, 0, 0, 0); /*@end (tag required for genrpbindings) */ /* Commands to help debug ratpoison. */ @@ -351,7 +351,7 @@ typedef struct char *name; char *alias; } alias_t; - + static alias_t *alias_list; static int alias_list_size; static int alias_list_last; @@ -380,10 +380,10 @@ del_frame_undo (rp_frame_undo *u) if (u->frames) free (u->frames); list_del (&(u->node)); free (u); - rp_num_frame_undos--; /* decrement counter */ + rp_num_frame_undos--; /* decrement counter */ } -static void +static void push_frame_undo(rp_screen *screen) { rp_frame_undo *cur; @@ -397,7 +397,7 @@ push_frame_undo(rp_screen *screen) cur->frames = fdump (screen); cur->screen = screen; list_add (&cur->node, &rp_frame_undos); - rp_num_frame_undos++; /* increment counter */ + rp_num_frame_undos++; /* increment counter */ /* Since we're creating new frames the redo list is now invalid, so clear it. */ clear_frame_redos(); @@ -446,9 +446,9 @@ find_keybinding_by_action (char *action, rp_keymap *map) for (i=0; i<map->actions_last; i++) { if (!strcmp (map->actions[i].data, action)) - { - return &map->actions[i]; - } + { + return &map->actions[i]; + } } return NULL; @@ -460,9 +460,9 @@ find_keybinding (KeySym keysym, int state, rp_keymap *map) int i; for (i = 0; i < map->actions_last; i++) { - if (map->actions[i].key == keysym - && map->actions[i].state == state) - return &map->actions[i]; + if (map->actions[i].key == keysym + && map->actions[i].state == state) + return &map->actions[i]; } return NULL; } @@ -521,7 +521,7 @@ add_keybinding (KeySym keysym, int state, char *cmd, rp_keymap *map) map->actions[map->actions_last].key = keysym; map->actions[map->actions_last].state = state; /* free this on shutdown, or re/unbinding */ - map->actions[map->actions_last].data = xstrdup (cmd); + map->actions[map->actions_last].data = xstrdup (cmd); map->actions_last++; } @@ -544,20 +544,20 @@ remove_keybinding (KeySym keysym, int state, rp_keymap *map) for (i=0; i<map->actions_last; i++) { if (map->actions[i].key == keysym && map->actions[i].state == state) - { - found = i; - break; - } + { + found = i; + break; + } } if (found >= 0) { free (map->actions[found].data); - memmove (&map->actions[found], &map->actions[found+1], - sizeof (rp_action) * (map->actions_last - found - 1)); + memmove (&map->actions[found], &map->actions[found+1], + sizeof (rp_action) * (map->actions_last - found - 1)); map->actions_last--; - + return 1; } @@ -570,7 +570,7 @@ keymap_new (char *name) rp_keymap *map; /* All keymaps must have a name. */ - if (name == NULL) + if (name == NULL) return NULL; map = xmalloc (sizeof (rp_keymap)); @@ -590,9 +590,9 @@ find_keymap (char *name) list_for_each_entry (cur, &rp_keymaps, node) { if (!strcmp (name, cur->name)) - { - return cur; - } + { + return cur; + } } return NULL; @@ -627,10 +627,10 @@ add_alias (char *name, char *alias) else { if (alias_list_last >= alias_list_size) - { - alias_list_size *= 2; - alias_list = xrealloc (alias_list, sizeof (alias_t) * alias_list_size); - } + { + alias_list_size *= 2; + alias_list = xrealloc (alias_list, sizeof (alias_t) * alias_list_size); + } alias_list[alias_list_last].name = xstrdup (name); alias_list[alias_list_last].alias = xstrdup (alias); @@ -679,7 +679,7 @@ initialize_default_keybindings (void) add_keybinding (XK_K, 0, "kill", map); add_keybinding (XK_K, RP_CONTROL_MASK, "kill", map); add_keybinding (XK_Return, 0, "next", map); - add_keybinding (XK_Return, RP_CONTROL_MASK, "next", map); + add_keybinding (XK_Return, RP_CONTROL_MASK, "next", map); add_keybinding (XK_a, 0, "time", map); add_keybinding (XK_a, RP_CONTROL_MASK, "time", map); add_keybinding (XK_b, 0, "banish", map); @@ -817,9 +817,9 @@ free_aliases () /* return a KeySym from a string that contains either a hex value or an X keysym description */ -static int string_to_keysym (char *str) -{ - int retval; +static int string_to_keysym (char *str) +{ + int retval; int keysym; retval = sscanf (str, "0x%x", &keysym); @@ -836,7 +836,7 @@ parse_keydesc (char *s, struct rp_key *key) { char *token, *next_token, *keydesc; - if (s == NULL) + if (s == NULL) return NULL; /* Avoid mangling s. */ @@ -852,11 +852,11 @@ parse_keydesc (char *s, struct rp_key *key) /* A keycode of 0 means the keysym doesn't have a keycode. */ if (key->sym == NoSymbol || XKeysymToKeycode (dpy, key->sym) == 0) - { - cmdret *ret = cmdret_new (RET_FAILURE, "parse_keydesc: Unknown key '%s'", keydesc); - free (keydesc); - return ret; - } + { + cmdret *ret = cmdret_new (RET_FAILURE, "parse_keydesc: Unknown key '%s'", keydesc); + free (keydesc); + return ret; + } } else if (keydesc[strlen (keydesc) - 1] == '-') { @@ -870,68 +870,68 @@ parse_keydesc (char *s, struct rp_key *key) token = strtok (keydesc, "-"); if (token == NULL) - { - /* It was nothing but hyphens */ - free (keydesc); - return cmdret_new (RET_FAILURE, "parse_keydesc: Can't parse key '%s'", s); - } + { + /* It was nothing but hyphens */ + free (keydesc); + return cmdret_new (RET_FAILURE, "parse_keydesc: Can't parse key '%s'", s); + } do - { - next_token = strtok (NULL, "-"); - - if (next_token == NULL) - { - /* There is nothing more to parse and token contains the - keysym name. */ - key->sym = string_to_keysym (token); - - /* A keycode of 0 means the keysym doesn't have a keycode. */ - if (key->sym == NoSymbol || XKeysymToKeycode (dpy, key->sym) == 0) - { - cmdret *ret = cmdret_new (RET_FAILURE, "parse_keydesc: Unknown key '%s'", token); - free (keydesc); - return ret; - } - } - else - { - /* Which modifier is it? Only accept modifiers that are - present. ie don't accept a hyper modifier if the keymap - has no hyper key. */ - if (!strcmp (token, "C")) - { - key->state |= RP_CONTROL_MASK; - } - else if (!strcmp (token, "M")) - { - key->state |= RP_META_MASK; - } - else if (!strcmp (token, "A")) - { - key->state |= RP_ALT_MASK; - } - else if (!strcmp (token, "S")) - { - key->state |= RP_SHIFT_MASK; - } - else if (!strcmp (token, "s")) - { - key->state |= RP_SUPER_MASK; - } - else if (!strcmp (token, "H")) - { - key->state |= RP_HYPER_MASK; - } - else - { - free (keydesc); - return cmdret_new (RET_FAILURE, "parse_keydesc: Unknown modifier '%s'", token); - } - } - - token = next_token; - } while (next_token != NULL); + { + next_token = strtok (NULL, "-"); + + if (next_token == NULL) + { + /* There is nothing more to parse and token contains the + keysym name. */ + key->sym = string_to_keysym (token); + + /* A keycode of 0 means the keysym doesn't have a keycode. */ + if (key->sym == NoSymbol || XKeysymToKeycode (dpy, key->sym) == 0) + { + cmdret *ret = cmdret_new (RET_FAILURE, "parse_keydesc: Unknown key '%s'", token); + free (keydesc); + return ret; + } + } + else + { + /* Which modifier is it? Only accept modifiers that are + present. ie don't accept a hyper modifier if the keymap + has no hyper key. */ + if (!strcmp (token, "C")) + { + key->state |= RP_CONTROL_MASK; + } + else if (!strcmp (token, "M")) + { + key->state |= RP_META_MASK; + } + else if (!strcmp (token, "A")) + { + key->state |= RP_ALT_MASK; + } + else if (!strcmp (token, "S")) + { + key->state |= RP_SHIFT_MASK; + } + else if (!strcmp (token, "s")) + { + key->state |= RP_SUPER_MASK; + } + else if (!strcmp (token, "H")) + { + key->state |= RP_HYPER_MASK; + } + else + { + free (keydesc); + return cmdret_new (RET_FAILURE, "parse_keydesc: Unknown modifier '%s'", token); + } + } + + token = next_token; + } while (next_token != NULL); } /* Successfully parsed the key. */ @@ -1057,7 +1057,7 @@ cmd_meta (int interactive, struct cmdarg **args) XEvent ev1, ev; ev = rp_current_event; - if (current_window() == NULL) + if (current_window() == NULL) return cmdret_new (RET_FAILURE, NULL); ev1.xkey.type = KeyPress; @@ -1067,11 +1067,11 @@ cmd_meta (int interactive, struct cmdarg **args) if (args[0]) { if((ret = parse_keydesc (ARG_STRING(0), &key))) - return ret; + return ret; ev1.xkey.state = rp_mask_to_x11_mask (key.state); if(!(ev1.xkey.keycode = XKeysymToKeycode (dpy, key.sym))) - return cmdret_new (RET_FAILURE, "meta: Couldn't convert keysym to keycode"); + return cmdret_new (RET_FAILURE, "meta: Couldn't convert keysym to keycode"); } else { @@ -1261,30 +1261,30 @@ cmd_select (int interactive, struct cmdarg **args) if (strlen (str) > 0) { if (strlen (str) == 1 && str[0] == '-') - { - blank_frame (current_frame()); - } + { + blank_frame (current_frame()); + } /* try by number */ else if ((n = string_to_window_number (str)) >= 0) - { - rp_window_elem *elem = group_find_window_by_number (rp_current_group, n); - - if (elem) - goto_window (elem->win); - else - /* show the window list as feedback */ - show_bar (current_screen (), defaults.window_fmt); - } + { + rp_window_elem *elem = group_find_window_by_number (rp_current_group, n); + + if (elem) + goto_window (elem->win); + else + /* show the window list as feedback */ + show_bar (current_screen (), defaults.window_fmt); + } else - /* try by name */ - { - rp_window *win = find_window_name (str); + /* try by name */ + { + rp_window *win = find_window_name (str); - if (win) - goto_window (win); - else - ret = cmdret_new (RET_FAILURE, "select: unknown window '%s'", str); - } + if (win) + goto_window (win); + else + ret = cmdret_new (RET_FAILURE, "select: unknown window '%s'", str); + } } free (str); @@ -1298,13 +1298,13 @@ cmd_select (int interactive, struct cmdarg **args) cmdret * cmd_rename (int interactive, struct cmdarg **args) { - if (current_window() == NULL) + if (current_window() == NULL) return cmdret_new (RET_FAILURE, NULL); free (current_window()->user_name); current_window()->user_name = xstrdup (ARG_STRING(0)); current_window()->named = 1; - + /* Update the program bar. */ update_window_names (current_screen(), defaults.window_fmt); @@ -1374,7 +1374,7 @@ frame_selector_match (char ch) for (i=0; i<strlen (defaults.frame_selectors); i++) { if (ch == defaults.frame_selectors[i]) - return i; + return i; } /* Maybe it's a number less than 9 and the frame selector doesn't @@ -1399,7 +1399,7 @@ read_string (struct argspec *spec, struct sbuf *s, completion_fn fn, struct cmd input = get_input (spec->prompt, fn); if (input) - { + { *arg = xmalloc (sizeof(struct cmdarg)); (*arg)->type = spec->type; (*arg)->string = input; @@ -1424,7 +1424,7 @@ read_keymap (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) rp_keymap *map; map = find_keymap (input); if (map == NULL) - return cmdret_new (RET_FAILURE, "unknown keymap '%s'", input); + return cmdret_new (RET_FAILURE, "unknown keymap '%s'", input); *arg = xmalloc (sizeof(struct cmdarg)); (*arg)->type = spec->type; (*arg)->arg.keymap = map; @@ -1451,8 +1451,8 @@ read_keydesc (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) struct rp_key *key = xmalloc (sizeof(struct rp_key)); ret = parse_keydesc (input, key); if (ret) { - free (key); - return ret; + free (key); + return ret; } *arg = xmalloc (sizeof(struct cmdarg)); (*arg)->type = spec->type; @@ -1482,15 +1482,15 @@ group_completions (char *str) s = sbuf_new (0); /* A group may not have a name, so if it doesn't, use it's - number. */ + number. */ if (cur->name) - { - sbuf_copy (s, cur->name); - } + { + sbuf_copy (s, cur->name); + } else - { - sbuf_printf (s, "%d", cur->number); - } + { + sbuf_printf (s, "%d", cur->number); + } list_add_tail (&s->node, list); } @@ -1516,7 +1516,7 @@ colon_completions (char* str) s = sbuf_new (0); sbuf_copy (s, alias_list[i].name); /* The space is so when the user completes a space is - conveniently inserted after the command. */ + conveniently inserted after the command. */ sbuf_concat (s, " "); list_add_tail (&s->node, list); } @@ -1527,7 +1527,7 @@ colon_completions (char* str) s = sbuf_new (0); sbuf_copy (s, uc->name); /* The space is so when the user completes a space is - conveniently inserted after the command. */ + conveniently inserted after the command. */ sbuf_concat (s, " "); list_add_tail (&s->node, list); } @@ -1554,7 +1554,7 @@ exec_completions (char *str) /* Initialize our list. */ head = xmalloc (sizeof (struct list_head)); INIT_LIST_HEAD (head); - + /* FIXME: A Bash dependancy?? */ completion_string = xsprintf("bash -c \"compgen -ac %s|sort\"", str); file = popen (completion_string, "r"); @@ -1576,23 +1576,23 @@ exec_completions (char *str) sbuf_concat (line, partial); if (feof(file) || (*(sbuf_get (line) + strlen(sbuf_get (line)) - 1) == '\n')) - { - char *s; - struct sbuf *elem; + { + char *s; + struct sbuf *elem; + + s = sbuf_get (line); - s = sbuf_get (line); + /* Frob the newline into */ + if (*(s + strlen(s) - 1) == '\n') + *(s + strlen(s) - 1) = '\0'; - /* Frob the newline into */ - if (*(s + strlen(s) - 1) == '\n') - *(s + strlen(s) - 1) = '\0'; - - /* Add our line to the list. */ - elem = sbuf_new (0); - sbuf_copy (elem, s); - list_add_tail (&elem->node, head); + /* Add our line to the list. */ + elem = sbuf_new (0); + sbuf_copy (elem, s); + list_add_tail (&elem->node, head); - sbuf_clear (line); - } + sbuf_clear (line); + } } free (partial); @@ -1626,53 +1626,53 @@ read_frame (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) { frames = 0; for (j=0; j<num_screens; j++) - frames += num_frames(&screens[j]); + frames += num_frames(&screens[j]); wins = xmalloc (sizeof (Window) * frames); /* Loop through each frame and display its number in it's top - left corner. */ + left corner. */ i = 0; for (j=0; j<num_screens; j++) - { - XSetWindowAttributes attr; - rp_screen *s = &screens[j]; - - /* Set up the window attributes to be used in the loop. */ - attr.border_pixel = s->fg_color; - attr.background_pixel = s->bg_color; - attr.override_redirect = True; - - list_for_each_entry (cur, &s->frames, node) - { - int width, height; - char *num; - - /* Create the string to be displayed in the window and - determine the height and width of the window. */ - /* num = xsprintf (" %d ", cur->number); */ - num = frame_selector (cur->number); - width = defaults.bar_x_padding * 2 + XTextWidth (defaults.font, num, strlen (num)); - height = (FONT_HEIGHT (defaults.font) + defaults.bar_y_padding * 2); - - /* Create and map the window. */ - wins[i] = XCreateWindow (dpy, s->root, s->left + cur->x, s->top + cur->y, width, height, 1, - CopyFromParent, CopyFromParent, CopyFromParent, - CWOverrideRedirect | CWBorderPixel | CWBackPixel, - &attr); - XMapWindow (dpy, wins[i]); - XClearWindow (dpy, wins[i]); - - /* Display the frame's number inside the window. */ - XDrawString (dpy, wins[i], s->normal_gc, - defaults.bar_x_padding, - defaults.bar_y_padding + defaults.font->max_bounds.ascent, - num, strlen (num)); - - free (num); - i++; - } - } + { + XSetWindowAttributes attr; + rp_screen *s = &screens[j]; + + /* Set up the window attributes to be used in the loop. */ + attr.border_pixel = s->fg_color; + attr.background_pixel = s->bg_color; + attr.override_redirect = True; + + list_for_each_entry (cur, &s->frames, node) + { + int width, height; + char *num; + + /* Create the string to be displayed in the window and + determine the height and width of the window. */ + /* num = xsprintf (" %d ", cur->number); */ + num = frame_selector (cur->number); + width = defaults.bar_x_padding * 2 + XTextWidth (defaults.font, num, strlen (num)); + height = (FONT_HEIGHT (defaults.font) + defaults.bar_y_padding * 2); + + /* Create and map the window. */ + wins[i] = XCreateWindow (dpy, s->root, s->left + cur->x, s->top + cur->y, width, height, 1, + CopyFromParent, CopyFromParent, CopyFromParent, + CWOverrideRedirect | CWBorderPixel | CWBackPixel, + &attr); + XMapWindow (dpy, wins[i]); + XClearWindow (dpy, wins[i]); + + /* Display the frame's number inside the window. */ + XDrawString (dpy, wins[i], s->normal_gc, + defaults.bar_x_padding, + defaults.bar_y_padding + defaults.font->max_bounds.ascent, + num, strlen (num)); + + free (num); + i++; + } + } XSync (dpy, False); /* Read a key. */ @@ -1682,21 +1682,21 @@ read_frame (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) /* Destroy our number windows and free the array. */ for (i=0; i<frames; i++) - XDestroyWindow (dpy, wins[i]); + XDestroyWindow (dpy, wins[i]); free (wins); /* FIXME: We only handle one character long keysym names. */ if (strlen (keysym_buf) == 1) - { - fnum = frame_selector_match (keysym_buf[0]); - if (fnum == -1) - goto frame_fail; - } + { + fnum = frame_selector_match (keysym_buf[0]); + if (fnum == -1) + goto frame_fail; + } else - { - goto frame_fail; - } + { + goto frame_fail; + } } else { @@ -1708,8 +1708,8 @@ read_frame (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) if (frame) { /* We have to return a string, because commands get lists of - strings. Sucky, yes. The command is simply going to parse it - back into an rp_frame. */ + strings. Sucky, yes. The command is simply going to parse it + back into an rp_frame. */ *arg = xmalloc (sizeof(struct cmdarg)); (*arg)->type = arg_FRAME; (*arg)->string = NULL; @@ -1739,33 +1739,33 @@ read_window (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) { /* try by number */ if ((n = string_to_window_number (name)) >= 0) - { - rp_window_elem *elem = group_find_window_by_number (rp_current_group, n); - if (elem) - win = elem->win; - } + { + rp_window_elem *elem = group_find_window_by_number (rp_current_group, n); + if (elem) + win = elem->win; + } else - /* try by name */ - { - win = find_window_name (name); - } - + /* try by name */ + { + win = find_window_name (name); + } + if (win) - { - *arg = xmalloc (sizeof(struct cmdarg)); - (*arg)->type = arg_WINDOW; - (*arg)->arg.win = win; - (*arg)->string = name; - return NULL; - } + { + *arg = xmalloc (sizeof(struct cmdarg)); + (*arg)->type = arg_WINDOW; + (*arg)->arg.win = win; + (*arg)->string = name; + return NULL; + } else - { - free (name); - *arg = NULL; - return cmdret_new (RET_SUCCESS, NULL); - } + { + free (name); + *arg = NULL; + return cmdret_new (RET_SUCCESS, NULL); + } } - + /* user abort. */ *arg = NULL; return cmdret_new (RET_SUCCESS, NULL); @@ -1812,18 +1812,18 @@ read_gravity (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) { int g = parse_wingravity (input); if (g == -1) - { - cmdret *ret = cmdret_new (RET_FAILURE, "bad gravity '%s'", input); - free (input); - return ret; - } + { + cmdret *ret = cmdret_new (RET_FAILURE, "bad gravity '%s'", input); + free (input); + return ret; + } *arg = xmalloc (sizeof(struct cmdarg)); (*arg)->type = arg_GRAVITY; (*arg)->arg.gravity = g; (*arg)->string = input; return NULL; } - + *arg = NULL; return cmdret_new (RET_SUCCESS, NULL); } @@ -1842,7 +1842,7 @@ find_group (char *str) { group = groups_find_group_by_number (n); if (group) - return group; + return group; } group = groups_find_group_by_name (str); @@ -1862,23 +1862,23 @@ read_group (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) if (input) { rp_group *g = find_group (input); - + if (g) - { - *arg = xmalloc (sizeof(struct cmdarg)); - (*arg)->type = arg_GROUP; - (*arg)->arg.group = g; - (*arg)->string = input; - return NULL; - } + { + *arg = xmalloc (sizeof(struct cmdarg)); + (*arg)->type = arg_GROUP; + (*arg)->arg.group = g; + (*arg)->string = input; + return NULL; + } else - { - cmdret *ret = cmdret_new (RET_FAILURE, "unknown group '%s'", input); - free (input); - return ret; - } + { + cmdret *ret = cmdret_new (RET_FAILURE, "unknown group '%s'", input); + free (input); + return ret; + } } - + *arg = NULL; return cmdret_new (RET_SUCCESS, NULL); } @@ -1892,7 +1892,7 @@ hook_completions (char* str) /* Initialize our list. */ list = xmalloc (sizeof (struct list_head)); INIT_LIST_HEAD (list); - + for (entry = rp_hook_db; entry->name; entry++) { struct sbuf *hookname; @@ -1901,7 +1901,7 @@ hook_completions (char* str) sbuf_copy (hookname, entry->name); list_add_tail (&hookname->node, list); } - + return list; } @@ -1918,23 +1918,23 @@ read_hook (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) if (input) { struct list_head *hook = hook_lookup (input); - + if (hook) - { - *arg = xmalloc (sizeof(struct cmdarg)); - (*arg)->type = arg_HOOK; - (*arg)->arg.hook = hook; - (*arg)->string = input; - return NULL; - } + { + *arg = xmalloc (sizeof(struct cmdarg)); + (*arg)->type = arg_HOOK; + (*arg)->arg.hook = hook; + (*arg)->string = input; + return NULL; + } else - { - cmdret *ret = cmdret_new (RET_FAILURE, "unknown hook '%s'", input); - free (input); - return ret; - } + { + cmdret *ret = cmdret_new (RET_FAILURE, "unknown hook '%s'", input); + free (input); + return ret; + } } - + *arg = NULL; return cmdret_new (RET_SUCCESS, NULL); } @@ -1946,7 +1946,7 @@ find_variable (char *str) list_for_each_entry (cur, &set_vars, node) { if (!strcmp (str, cur->var)) - return cur; + return cur; } return NULL; } @@ -1987,11 +1987,11 @@ read_variable (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) { struct set_var *var = find_variable (input); if (var == NULL) - { - cmdret *ret = cmdret_new (RET_FAILURE, "unknown variable '%s'", input); - free (input); - return ret; - } + { + cmdret *ret = cmdret_new (RET_FAILURE, "unknown variable '%s'", input); + free (input); + return ret; + } *arg = xmalloc (sizeof(struct cmdarg)); (*arg)->type = arg_VARIABLE; @@ -1999,7 +1999,7 @@ read_variable (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) (*arg)->string = input; return NULL; } - + *arg = NULL; return cmdret_new (RET_SUCCESS, NULL); } @@ -2022,7 +2022,7 @@ read_number (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) (*arg)->string = input; return NULL; } - + *arg = NULL; return cmdret_new (RET_SUCCESS, NULL); } @@ -2080,7 +2080,7 @@ read_arg (struct argspec *spec, struct sbuf *s, struct cmdarg **arg) /* Return -1 on failure. Return the number of args on success. */ static cmdret * parsed_input_to_args (int num_args, struct argspec *argspec, struct list_head *list, - struct list_head *args, int *parsed_args) + struct list_head *args, int *parsed_args) { struct sbuf *s; struct cmdarg *arg; @@ -2097,7 +2097,7 @@ parsed_input_to_args (int num_args, struct argspec *argspec, struct list_head *l ret = read_arg (&argspec[*parsed_args], s, &arg); /* If there was an error, then abort. */ if (ret) - return ret; + return ret; list_add_tail (&arg->node, args); (*parsed_args)++; @@ -2124,7 +2124,7 @@ fill_in_missing_args (struct user_command *cmd, struct list_head *list, struct l { ret = read_arg (&cmd->args[i], NULL, &arg); if (ret) - return ret; + return ret; list_add_tail (&arg->node, args); } @@ -2157,80 +2157,80 @@ parse_args (char *str, struct list_head *list, int nargs, int raw) { /* Have we hit the arg limit? */ if (raw && parsed_args >= nargs) - { - struct sbuf *s = sbuf_new(0); - if (!raw) - while (*i && *i == ' ') i++; - if (*i) - { - sbuf_concat(s, i); - list_add_tail (&s->node, list); - } - len = 0; - break; - } + { + struct sbuf *s = sbuf_new(0); + if (!raw) + while (*i && *i == ' ') i++; + if (*i) + { + sbuf_concat(s, i); + list_add_tail (&s->node, list); + } + len = 0; + break; + } /* Escaped characters always get added. */ if (str_escape) - { - tmp[len] = *i; - len++; - str_escape = 0; - } + { + tmp[len] = *i; + len++; + str_escape = 0; + } else if (*i == '\\') - { - str_escape = 1; - } + { + str_escape = 1; + } else if (*i == '"') - { - if (in_str) - { - /* End the arg. */ - struct sbuf *s = sbuf_new(0); - sbuf_nconcat(s, tmp, len); - list_add_tail (&s->node, list); - len = 0; - gobble = 1; - in_str = 0; - parsed_args++; - } - else if (len == 0) - { - /* A string open can only start at the beginning of an - argument. */ - in_str = 1; - } - else - { - ret = cmdret_new (RET_FAILURE, "parse error in '%s'", str); - break; - } - } + { + if (in_str) + { + /* End the arg. */ + struct sbuf *s = sbuf_new(0); + sbuf_nconcat(s, tmp, len); + list_add_tail (&s->node, list); + len = 0; + gobble = 1; + in_str = 0; + parsed_args++; + } + else if (len == 0) + { + /* A string open can only start at the beginning of an + argument. */ + in_str = 1; + } + else + { + ret = cmdret_new (RET_FAILURE, "parse error in '%s'", str); + break; + } + } else if (*i == ' ' && !in_str) - { - /* End the current arg, and start a new one. */ - struct sbuf *s = sbuf_new(0); - sbuf_nconcat(s, tmp, len); - list_add_tail (&s->node, list); - len = 0; - gobble = 1; - parsed_args++; - } + { + /* End the current arg, and start a new one. */ + struct sbuf *s = sbuf_new(0); + sbuf_nconcat(s, tmp, len); + list_add_tail (&s->node, list); + len = 0; + gobble = 1; + parsed_args++; + } else - { - /* Add the character to the argument. */ - tmp[len] = *i; - len++; - } + { + /* Add the character to the argument. */ + tmp[len] = *i; + len++; + } /* Should we eat the whitespace? */ if (gobble) - { - while (*i && *i == ' ') i++; - /* Did we go too far? */ - if (*i && *i != ' ') i--; - gobble = 0; - } + { + while (*i && *i == ' ') i++; + /* Did we go too far? */ + if (*i && *i != ' ') i--; + gobble = 0; + } } /* Add the remaining text in tmp. */ if (ret == NULL && len) @@ -2271,31 +2271,31 @@ arg_free (struct cmdarg *arg) { /* read_frame doesn't fill in string. */ if (arg->string) - free (arg->string); + free (arg->string); switch (arg->type) - { - case arg_KEY: - free (arg->arg.key); - break; - case arg_REST: - case arg_STRING: - case arg_NUMBER: - case arg_WINDOW: - case arg_FRAME: - case arg_COMMAND: - case arg_SHELLCMD: - case arg_KEYMAP: - case arg_GRAVITY: - case arg_GROUP: - case arg_HOOK: - case arg_VARIABLE: - case arg_RAW: - /* Do nothing */ - break; - default: - PRINT_ERROR (("Missed an arg type.\n")); - break; - } + { + case arg_KEY: + free (arg->arg.key); + break; + case arg_REST: + case arg_STRING: + case arg_NUMBER: + case arg_WINDOW: + case arg_FRAME: + case arg_COMMAND: + case arg_SHELLCMD: + case arg_KEYMAP: + case arg_GRAVITY: + case arg_GROUP: + case arg_HOOK: + case arg_VARIABLE: + case arg_RAW: + /* Do nothing */ + break; + default: + PRINT_ERROR (("Missed an arg type.\n")); + break; + } free (arg); } } @@ -2310,7 +2310,7 @@ command (int interactive, char *data) char *input; user_command *uc; int i; - + if (data == NULL) return cmdret_new (RET_FAILURE, NULL); @@ -2330,97 +2330,97 @@ command (int interactive, char *data) for (i=0; i<alias_list_last; i++) { if (!strcmp (cmd, alias_list[i].name)) - { - struct sbuf *s; - - /* Append any arguments onto the end of the alias' command. */ - s = sbuf_new (0); - sbuf_concat (s, alias_list[i].alias); - if (rest != NULL) - sbuf_printf_concat (s, " %s", rest); - - alias_recursive_depth++; - if (alias_recursive_depth >= MAX_ALIAS_RECURSIVE_DEPTH) - result = cmdret_new (RET_FAILURE, "command: alias recursion has exceeded maximum depth"); - else - result = command (interactive, sbuf_get (s)); - alias_recursive_depth--; - - sbuf_free (s); - goto done; - } + { + struct sbuf *s; + + /* Append any arguments onto the end of the alias' command. */ + s = sbuf_new (0); + sbuf_concat (s, alias_list[i].alias); + if (rest != NULL) + sbuf_printf_concat (s, " %s", rest); + + alias_recursive_depth++; + if (alias_recursive_depth >= MAX_ALIAS_RECURSIVE_DEPTH) + result = cmdret_new (RET_FAILURE, "command: alias recursion has exceeded maximum depth"); + else + result = command (interactive, sbuf_get (s)); + alias_recursive_depth--; + + sbuf_free (s); + goto done; + } } /* If it wasn't an alias, maybe its a command. */ list_for_each_entry (uc, &user_commands, node) { if (!strcmp (cmd, uc->name)) - { - struct sbuf *scur; - struct cmdarg *acur; - struct list_head *iter, *tmp; - struct list_head head, args; - int i, nargs = 0, raw = 0; - - INIT_LIST_HEAD (&args); - INIT_LIST_HEAD (&head); - - /* We need to tell parse_args about arg_REST and arg_SHELLCMD. */ - for (i=0; i<uc->num_args; i++) - if (uc->args[i].type == arg_REST - || uc->args[i].type == arg_SHELLCMD - || uc->args[i].type == arg_RAW) - { - raw = 1; - nargs = i; - break; - } - - /* Parse the arguments and call the function. */ - result = parse_args (rest, &head, nargs, raw); - if (result) - goto free_lists; - - /* Interactive commands prompt the user for missing args. */ - if (interactive) - result = fill_in_missing_args (uc, &head, &args); - else - { - int parsed_args; - result = parsed_input_to_args (uc->num_args, uc->args, &head, &args, &parsed_args); - } - - if (result == NULL) - { - if ((interactive && list_size (&args) < uc->i_required_args) - || (!interactive && list_size (&args) < uc->ni_required_args)) - { - result = cmdret_new (RET_FAILURE, "not enough arguments."); - goto free_lists; - } - else if (list_size (&head) > uc->num_args) - { - result = cmdret_new (RET_FAILURE, "too many arguments."); - goto free_lists; - } - else - { - struct cmdarg **cmdargs = arg_array (&args); - result = uc->func (interactive, cmdargs); - free (cmdargs); - } - } - - free_lists: - /* Free the parsed strings */ - list_for_each_safe_entry (scur, iter, tmp, &head, node) - sbuf_free(scur); - /* Free the args */ - list_for_each_safe_entry (acur, iter, tmp, &args, node) - arg_free (acur); - - goto done; - } + { + struct sbuf *scur; + struct cmdarg *acur; + struct list_head *iter, *tmp; + struct list_head head, args; + int i, nargs = 0, raw = 0; + + INIT_LIST_HEAD (&args); + INIT_LIST_HEAD (&head); + + /* We need to tell parse_args about arg_REST and arg_SHELLCMD. */ + for (i=0; i<uc->num_args; i++) + if (uc->args[i].type == arg_REST + || uc->args[i].type == arg_SHELLCMD + || uc->args[i].type == arg_RAW) + { + raw = 1; + nargs = i; + break; + } + + /* Parse the arguments and call the function. */ + result = parse_args (rest, &head, nargs, raw); + if (result) + goto free_lists; + + /* Interactive commands prompt the user for missing args. */ + if (interactive) + result = fill_in_missing_args (uc, &head, &args); + else + { + int parsed_args; + result = parsed_input_to_args (uc->num_args, uc->args, &head, &args, &parsed_args); + } + + if (result == NULL) + { + if ((interactive && list_size (&args) < uc->i_required_args) + || (!interactive && list_size (&args) < uc->ni_required_args)) + { + result = cmdret_new (RET_FAILURE, "not enough arguments."); + goto free_lists; + } + else if (list_size (&head) > uc->num_args) + { + result = cmdret_new (RET_FAILURE, "too many arguments."); + goto free_lists; + } + else + { + struct cmdarg **cmdargs = arg_array (&args); + result = uc->func (interactive, cmdargs); + free (cmdargs); + } + } + + free_lists: + /* Free the parsed strings */ + list_for_each_safe_entry (scur, iter, tmp, &head, node) + sbuf_free(scur); + /* Free the args */ + list_for_each_safe_entry (acur, iter, tmp, &args, node) + arg_free (acur); + + goto done; + } } result = cmdret_new (RET_FAILURE, MESSAGE_UNKNOWN_COMMAND, cmd); @@ -2464,10 +2464,10 @@ spawn(char *cmd, int raw) int pid; pid = fork(); - if (pid == 0) + if (pid == 0) { /* Some process setup to make sure the spawned process runs - in its own session. */ + in its own session. */ putenv(current_screen()->display_string); #ifdef HAVE_SETSID setsid(); @@ -2479,7 +2479,7 @@ spawn(char *cmd, int raw) #endif /* raw means don't run it through sh. */ if (raw) - execl (cmd, 0); + execl (cmd, 0); execl("/bin/sh", "sh", "-c", cmd, 0); _exit(EXIT_FAILURE); } @@ -2502,7 +2502,7 @@ spawn(char *cmd, int raw) return pid; } -/* Switch to a different Window Manager. Thanks to +/* Switch to a different Window Manager. Thanks to "Chr. v. Stuckrad" <stucki@math.fu-berlin.de> for the patch. */ cmdret * cmd_newwm(int interactive, struct cmdarg **args) @@ -2533,12 +2533,12 @@ cmd_time (int interactive, struct cmdarg **args) timep = time(NULL); tmp = ctime(&timep); msg = xmalloc (strlen (tmp)); - strncpy(msg, tmp, strlen (tmp) - 1); /* Remove the newline */ + strncpy(msg, tmp, strlen (tmp) - 1); /* Remove the newline */ msg[strlen(tmp) - 1] = 0; ret = cmdret_new (RET_SUCCESS, "%s", msg); free (msg); - + return ret; } @@ -2569,17 +2569,17 @@ cmd_number (int interactive, struct cmdarg **args) /* Find other window with same number and give it old number. */ other_win = group_find_window_by_number (rp_current_group, new_number); if (other_win != NULL) - { - old_number = win->number; - other_win->number = old_number; + { + old_number = win->number; + other_win->number = old_number; - /* Resort the window in the list */ - group_resort_window (rp_current_group, other_win); - } + /* Resort the window in the list */ + group_resort_window (rp_current_group, other_win); + } else - { - numset_release (rp_current_group->numset, win->number); - } + { + numset_release (rp_current_group->numset, win->number); + } win->number = new_number; numset_add_num (rp_current_group->numset, new_number); @@ -2613,13 +2613,13 @@ cmd_windows (int interactive, struct cmdarg **args) { s = current_screen (); /* This is a yukky hack. If the bar already hidden then show the - bar. This handles the case when msgwait is 0 (the bar sticks) - and the user uses this command to toggle the bar on and - off. OR the timeout is >0 then show the bar. Which means, - always show the bar if msgwait is >0 which fixes the case - when a command in the prefix hook displays the bar. */ + bar. This handles the case when msgwait is 0 (the bar sticks) + and the user uses this command to toggle the bar on and + off. OR the timeout is >0 then show the bar. Which means, + always show the bar if msgwait is >0 which fixes the case + when a command in the prefix hook displays the bar. */ if (!hide_bar (s) || defaults.bar_timeout > 0) show_bar (s, fmt); - + return cmdret_new (RET_SUCCESS, NULL); } else @@ -2673,9 +2673,9 @@ cmd_escape (int interactive, struct cmdarg **args) { action->key = key->sym; if (key->state != 0) - action->state = 0; + action->state = 0; else - action->state = RP_CONTROL_MASK; + action->state = RP_CONTROL_MASK; } /* Remove the grab on the current prefix key */ @@ -2712,7 +2712,7 @@ static cmdret * read_split (char *str, int max, int *p) { int a, b; - + if (sscanf(str, "%d/%d", &a, &b) == 2) { *p = (int)(max * (float)(a) / (float)(b)); @@ -2720,7 +2720,7 @@ read_split (char *str, int max, int *p) else if (sscanf(str, "%d", p) == 1) { if (*p < 0) - *p = max + *p; + *p = max + *p; } else { @@ -2748,7 +2748,7 @@ cmd_v_split (int interactive, struct cmdarg **args) { ret = read_split (ARG_STRING(0), frame->height, &pixels); if (ret) - return ret; + return ret; } if (pixels > 0) @@ -2776,7 +2776,7 @@ cmd_h_split (int interactive, struct cmdarg **args) { ret = read_split (ARG_STRING(0), frame->width, &pixels); if (ret) - return ret; + return ret; } if (pixels > 0) @@ -2841,27 +2841,27 @@ struct resize_binding }; static resize_binding resize_bindings[] = - { {{INPUT_ABORT_KEY, INPUT_ABORT_MODIFIER}, RESIZE_ABORT}, - {{RESIZE_VGROW_KEY, RESIZE_VGROW_MODIFIER}, RESIZE_VGROW}, - {{RESIZE_VSHRINK_KEY, RESIZE_VSHRINK_MODIFIER}, RESIZE_VSHRINK}, - {{RESIZE_HGROW_KEY, RESIZE_HGROW_MODIFIER}, RESIZE_HGROW}, - {{RESIZE_HSHRINK_KEY, RESIZE_HSHRINK_MODIFIER}, RESIZE_HSHRINK}, + { {{INPUT_ABORT_KEY, INPUT_ABORT_MODIFIER}, RESIZE_ABORT}, + {{RESIZE_VGROW_KEY, RESIZE_VGROW_MODIFIER}, RESIZE_VGROW}, + {{RESIZE_VSHRINK_KEY, RESIZE_VSHRINK_MODIFIER}, RESIZE_VSHRINK}, + {{RESIZE_HGROW_KEY, RESIZE_HGROW_MODIFIER}, RESIZE_HGROW}, + {{RESIZE_HSHRINK_KEY, RESIZE_HSHRINK_MODIFIER}, RESIZE_HSHRINK}, {{RESIZE_SHRINK_TO_WINDOW_KEY,RESIZE_SHRINK_TO_WINDOW_MODIFIER},RESIZE_TO_WINDOW}, - {{RESIZE_END_KEY, RESIZE_END_MODIFIER}, RESIZE_END}, -/* Some more default keys + {{RESIZE_END_KEY, RESIZE_END_MODIFIER}, RESIZE_END}, +/* Some more default keys * (after the values from conf.h, so that they have lower priority): * first the arrow keys: */ - {{XK_Escape, 0}, RESIZE_ABORT}, - {{XK_Down, 0}, RESIZE_VGROW}, - {{XK_Up, 0}, RESIZE_VSHRINK}, - {{XK_Right, 0}, RESIZE_HGROW}, - {{XK_Left, 0}, RESIZE_HSHRINK}, + {{XK_Escape, 0}, RESIZE_ABORT}, + {{XK_Down, 0}, RESIZE_VGROW}, + {{XK_Up, 0}, RESIZE_VSHRINK}, + {{XK_Right, 0}, RESIZE_HGROW}, + {{XK_Left, 0}, RESIZE_HSHRINK}, /* some vi-like bindings: */ - {{XK_j, 0}, RESIZE_VGROW}, - {{XK_k, 0}, RESIZE_VSHRINK}, - {{XK_l, 0}, RESIZE_HGROW}, - {{XK_h, 0}, RESIZE_HSHRINK}, - {{0, 0}, RESIZE_UNKNOWN} }; + {{XK_j, 0}, RESIZE_VGROW}, + {{XK_k, 0}, RESIZE_VSHRINK}, + {{XK_l, 0}, RESIZE_HGROW}, + {{XK_h, 0}, RESIZE_HSHRINK}, + {{0, 0}, RESIZE_UNKNOWN} }; cmdret * @@ -2880,9 +2880,9 @@ cmd_resize (int interactive, struct cmdarg **args) struct list_head *bk; /* If we haven't got at least 2 frames, there isn't anything to - scale. */ + scale. */ if (num_frames (s) < 2) - return cmdret_new (RET_FAILURE, NULL); + return cmdret_new (RET_FAILURE, NULL); XGrabKeyboard (dpy, s->key_window, False, GrabModeSync, GrabModeAsync, CurrentTime); @@ -2890,48 +2890,48 @@ cmd_resize (int interactive, struct cmdarg **args) bk = screen_copy_frameset (s); while (1) - { + { struct resize_binding *binding; - show_frame_message ("Resize frame"); - nbytes = read_key (&c, &mod, buffer, sizeof (buffer)); + show_frame_message ("Resize frame"); + nbytes = read_key (&c, &mod, buffer, sizeof (buffer)); - /* Convert the mask to be compatible with ratpoison. */ - mod = x11_mask_to_rp_mask (mod); + /* Convert the mask to be compatible with ratpoison. */ + mod = x11_mask_to_rp_mask (mod); - for (binding = resize_bindings; binding->action; binding++) + for (binding = resize_bindings; binding->action; binding++) { if (c == binding->key.sym && mod == binding->key.state) break; } - if (binding->action == RESIZE_VGROW) - resize_frame_vertically (current_frame(), defaults.frame_resize_unit); - else if (binding->action == RESIZE_VSHRINK) - resize_frame_vertically (current_frame(), -defaults.frame_resize_unit); - else if (binding->action == RESIZE_HGROW) - resize_frame_horizontally (current_frame(), defaults.frame_resize_unit); - else if (binding->action == RESIZE_HSHRINK) - resize_frame_horizontally (current_frame(), -defaults.frame_resize_unit); - else if (binding->action == RESIZE_TO_WINDOW) - resize_shrink_to_window (current_frame()); - else if (binding->action == RESIZE_ABORT) - { - rp_frame *cur; - - screen_restore_frameset (s, bk); - list_for_each_entry (cur, &s->frames, node) - { - maximize_all_windows_in_frame (cur); - } - break; - } - else if (binding->action == RESIZE_END) - { - frameset_free (bk); - break; - } - } + if (binding->action == RESIZE_VGROW) + resize_frame_vertically (current_frame(), defaults.frame_resize_unit); + else if (binding->action == RESIZE_VSHRINK) + resize_frame_vertically (current_frame(), -defaults.frame_resize_unit); + else if (binding->action == RESIZE_HGROW) + resize_frame_horizontally (current_frame(), defaults.frame_resize_unit); + else if (binding->action == RESIZE_HSHRINK) + resize_frame_horizontally (current_frame(), -defaults.frame_resize_unit); + else if (binding->action == RESIZE_TO_WINDOW) + resize_shrink_to_window (current_frame()); + else if (binding->action == RESIZE_ABORT) + { + rp_frame *cur; + + screen_restore_frameset (s, bk); + list_for_each_entry (cur, &s->frames, node) + { + maximize_all_windows_in_frame (cur); + } + break; + } + else if (binding->action == RESIZE_END) + { + frameset_free (bk); + break; + } + } /* It is our responsibility to free this. */ free (bk); @@ -2942,12 +2942,12 @@ cmd_resize (int interactive, struct cmdarg **args) else { if (args[0] && args[1]) - { - resize_frame_horizontally (current_frame(), ARG(0,number)); - resize_frame_vertically (current_frame(), ARG(1,number)); - } + { + resize_frame_horizontally (current_frame(), ARG(0,number)); + resize_frame_vertically (current_frame(), ARG(1,number)); + } else - return cmdret_new (RET_FAILURE, "resize: two numeric arguments required"); + return cmdret_new (RET_FAILURE, "resize: two numeric arguments required"); } return cmdret_new (RET_SUCCESS, NULL); @@ -3005,10 +3005,10 @@ cmd_ratclick (int interactive, struct cmdarg **args) int button = 1; if (args[0]) - { + { button = ARG(0,number); if (button < 1 || button > 3) - return cmdret_new (RET_SUCCESS, "ratclick: invalid argument"); + return cmdret_new (RET_SUCCESS, "ratclick: invalid argument"); } XTestFakeButtonEvent(dpy, button, True, CurrentTime); @@ -3022,10 +3022,10 @@ cmd_rathold (int interactive, struct cmdarg **args) int button = 1; if (args[1]) - { + { button = ARG(1,number); if (button < 1 || button > 3) - return cmdret_new (RET_SUCCESS, "ratclick: invalid argument"); + return cmdret_new (RET_SUCCESS, "ratclick: invalid argument"); } if (!strcmp(ARG_STRING(0), "down")) @@ -3034,7 +3034,7 @@ cmd_rathold (int interactive, struct cmdarg **args) XTestFakeButtonEvent(dpy, button, False, CurrentTime); else return cmdret_new (RET_FAILURE, "rathold: '%s' invalid argument", ARG_STRING(0)); - + return cmdret_new (RET_SUCCESS, NULL); } @@ -3062,30 +3062,30 @@ cmd_license (int interactive, struct cmdarg **args) int i; int max_width = 0; char *license_text[] = { PACKAGE " " VERSION, "(built " __DATE__ " " __TIME__ ")", - "", - "Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts", - "", - "ratpoison is free software; you can redistribute it and/or modify ", - "it under the terms of the GNU General Public License as published by ", - "the Free Software Foundation; either version 2, or (at your option) ", - "any later version.", - "", - "ratpoison is distributed in the hope that it will be useful, ", - "but WITHOUT ANY WARRANTY; without even the implied warranty of ", - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ", - "GNU General Public License for more details.", - "", - "You should have received a copy of the GNU General Public License ", - "along with this software; see the file COPYING. If not, write to ", - "the Free Software Foundation, Inc., 59 Temple Place, Suite 330, ", - "Boston, MA 02111-1307 USA", - "", - "Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza ", - "to ratpoison-devel@nongnu.org or visit ", - "http://www.nongnu.org/ratpoison/", - "", - "[Press any key to end.] ", - NULL}; + "", + "Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts", + "", + "ratpoison is free software; you can redistribute it and/or modify ", + "it under the terms of the GNU General Public License as published by ", + "the Free Software Foundation; either version 2, or (at your option) ", + "any later version.", + "", + "ratpoison is distributed in the hope that it will be useful, ", + "but WITHOUT ANY WARRANTY; without even the implied warranty of ", + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ", + "GNU General Public License for more details.", + "", + "You should have received a copy of the GNU General Public License ", + "along with this software; see the file COPYING. If not, write to ", + "the Free Software Foundation, Inc., 59 Temple Place, Suite 330, ", + "Boston, MA 02111-1307 USA", + "", + "Send bugreports, fixes, enhancements, t-shirts, money, beer & pizza ", + "to ratpoison-devel@nongnu.org or visit ", + "http://www.nongnu.org/ratpoison/", + "", + "[Press any key to end.] ", + NULL}; XMapRaised (dpy, s->help_window); XGrabKeyboard (dpy, s->help_window, False, GrabModeSync, GrabModeAsync, CurrentTime); @@ -3097,7 +3097,7 @@ cmd_license (int interactive, struct cmdarg **args) tmp = XTextWidth (defaults.font, license_text[i], strlen (license_text[i])); if (tmp > max_width) - max_width = tmp; + max_width = tmp; } /* Offset the text so its in the center. */ @@ -3110,8 +3110,8 @@ cmd_license (int interactive, struct cmdarg **args) for(i=0; license_text[i]; i++) { XDrawString (dpy, s->help_window, s->normal_gc, - x, y + defaults.font->max_bounds.ascent, - license_text[i], strlen (license_text[i])); + x, y + defaults.font->max_bounds.ascent, + license_text[i], strlen (license_text[i])); y += FONT_HEIGHT (defaults.font); } @@ -3148,7 +3148,7 @@ cmd_help (int interactive, struct cmdarg **args) int x = 10; int y = 0; int max_width = 0; - int drawing_keys = 1; /* 1 if we are drawing keys 0 if we are drawing commands */ + int drawing_keys = 1; /* 1 if we are drawing keys 0 if we are drawing commands */ char *keysym_name; XMapRaised (dpy, s->help_window); @@ -3176,66 +3176,66 @@ cmd_help (int interactive, struct cmdarg **args) i = 0; old_i = 0; while (i<map->actions_last || drawing_keys) - { - if (drawing_keys) - { - keysym_name = keysym_to_string (map->actions[i].key, map->actions[i].state); - - XDrawString (dpy, s->help_window, s->normal_gc, - x, y + defaults.font->max_bounds.ascent, - keysym_name, strlen (keysym_name)); - - if (XTextWidth (defaults.font, keysym_name, strlen (keysym_name)) > max_width) - max_width = XTextWidth (defaults.font, keysym_name, strlen (keysym_name)); - - free (keysym_name); - } - else - { - XDrawString (dpy, s->help_window, s->normal_gc, - x, y + defaults.font->max_bounds.ascent, - map->actions[i].data, strlen (map->actions[i].data)); - - if (XTextWidth (defaults.font, map->actions[i].data, strlen (map->actions[i].data)) > max_width) - { - max_width = XTextWidth (defaults.font, map->actions[i].data, strlen (map->actions[i].data)); - } - } - - y += FONT_HEIGHT (defaults.font); - /* Make sure the next line fits entirely within the window. */ - if (y + FONT_HEIGHT (defaults.font) >= (s->top + s->height)) - { - if (drawing_keys) - { - x += max_width + 10; - drawing_keys = 0; - i = old_i; - } - else - { - x += max_width + 20; - drawing_keys = 1; - i++; - old_i = i; - } - - max_width = 0; - y = FONT_HEIGHT (defaults.font) * 4; - } - else - { - i++; - if (i >= map->actions_last && drawing_keys) - { - x += max_width + 10; - drawing_keys = 0; - y = FONT_HEIGHT (defaults.font) * 4; - i = old_i; - max_width = 0; - } - } - } + { + if (drawing_keys) + { + keysym_name = keysym_to_string (map->actions[i].key, map->actions[i].state); + + XDrawString (dpy, s->help_window, s->normal_gc, + x, y + defaults.font->max_bounds.ascent, + keysym_name, strlen (keysym_name)); + + if (XTextWidth (defaults.font, keysym_name, strlen (keysym_name)) > max_width) + max_width = XTextWidth (defaults.font, keysym_name, strlen (keysym_name)); + + free (keysym_name); + } + else + { + XDrawString (dpy, s->help_window, s->normal_gc, + x, y + defaults.font->max_bounds.ascent, + map->actions[i].data, strlen (map->actions[i].data)); + + if (XTextWidth (defaults.font, map->actions[i].data, strlen (map->actions[i].data)) > max_width) + { + max_width = XTextWidth (defaults.font, map->actions[i].data, strlen (map->actions[i].data)); + } + } + + y += FONT_HEIGHT (defaults.font); + /* Make sure the next line fits entirely within the window. */ + if (y + FONT_HEIGHT (defaults.font) >= (s->top + s->height)) + { + if (drawing_keys) + { + x += max_width + 10; + drawing_keys = 0; + i = old_i; + } + else + { + x += max_width + 20; + drawing_keys = 1; + i++; + old_i = i; + } + + max_width = 0; + y = FONT_HEIGHT (defaults.font) * 4; + } + else + { + i++; + if (i >= map->actions_last && drawing_keys) + { + x += max_width + 10; + drawing_keys = 0; + y = FONT_HEIGHT (defaults.font) * 4; + i = old_i; + max_width = 0; + } + } + } XMaskEvent (dpy, KeyPressMask, &ev); XUngrabKeyboard (dpy, CurrentTime); @@ -3257,15 +3257,15 @@ cmd_help (int interactive, struct cmdarg **args) help_list = sbuf_new (0); for (i = 0; i < map->actions_last; i++) - { - keysym_name = keysym_to_string (map->actions[i].key, map->actions[i].state); - sbuf_concat (help_list, keysym_name); - free (keysym_name); - sbuf_concat (help_list, " "); - sbuf_concat (help_list, map->actions[i].data); - if (i < map->actions_last - 1) - sbuf_concat (help_list, "\n"); - } + { + keysym_name = keysym_to_string (map->actions[i].key, map->actions[i].state); + sbuf_concat (help_list, keysym_name); + free (keysym_name); + sbuf_concat (help_list, " "); + sbuf_concat (help_list, map->actions[i].data); + if (i < map->actions_last - 1) + sbuf_concat (help_list, "\n"); + } tmp = sbuf_get (help_list); free (help_list); @@ -3283,10 +3283,10 @@ cmd_rudeness (int interactive, struct cmdarg **args) if (args[0] == NULL) return cmdret_new (RET_SUCCESS, "%d", - rp_honour_transient_raise - | (rp_honour_normal_raise << 1) - | (rp_honour_transient_map << 2) - | (rp_honour_normal_map << 3)); + rp_honour_transient_raise + | (rp_honour_normal_raise << 1) + | (rp_honour_transient_map << 2) + | (rp_honour_normal_map << 3)); num = ARG(0,number); if (num < 0 || num > 15) @@ -3356,7 +3356,7 @@ cmd_gravity (int interactive, struct cmdarg **args) static cmdret * set_wingravity (struct cmdarg **args) { - if (args[0] == NULL) + if (args[0] == NULL) return cmdret_new (RET_SUCCESS, "%s", wingravity_to_string (defaults.win_gravity)); defaults.win_gravity = ARG(0,gravity); @@ -3423,10 +3423,10 @@ update_gc (rp_screen *s) gv.subwindow_mode = IncludeInferiors; gv.font = defaults.font->fid; XFreeGC (dpy, s->normal_gc); - s->normal_gc = XCreateGC(dpy, s->root, - GCForeground | GCBackground - | GCFunction | GCLineWidth - | GCSubwindowMode | GCFont, &gv); + s->normal_gc = XCreateGC(dpy, s->root, + GCForeground | GCBackground + | GCFunction | GCLineWidth + | GCSubwindowMode | GCFont, &gv); } static void @@ -3470,11 +3470,11 @@ set_padding (struct cmdarg **args) int l, t, r, b; if (args[0] == NULL) - return cmdret_new (RET_SUCCESS, "%d %d %d %d", - defaults.padding_left, - defaults.padding_top, - defaults.padding_right, - defaults.padding_bottom); + return cmdret_new (RET_SUCCESS, "%d %d %d %d", + defaults.padding_left, + defaults.padding_top, + defaults.padding_right, + defaults.padding_bottom); l = ARG(0,number); t = ARG(1,number); @@ -3492,33 +3492,33 @@ set_padding (struct cmdarg **args) bk_len = frame->width; if (frame->x == defaults.padding_left) - { - frame->x = l; - frame->width += bk_pos - l; - } + { + frame->x = l; + frame->width += bk_pos - l; + } if ((bk_pos + bk_len) == (current_screen()->left + current_screen()->width - defaults.padding_right)) - frame->width = current_screen()->left + current_screen()->width - r - frame->x; + frame->width = current_screen()->left + current_screen()->width - r - frame->x; /* Resize vertically. */ bk_pos = frame->y; bk_len = frame->height; if (frame->y == defaults.padding_top) - { - frame->y = t; - frame->height += bk_pos - t; - } + { + frame->y = t; + frame->height += bk_pos - t; + } if ((bk_pos + bk_len) == (current_screen()->top + current_screen()->height - defaults.padding_bottom)) - frame->height = current_screen()->top + current_screen()->height - b - frame->y; + frame->height = current_screen()->top + current_screen()->height - b - frame->y; maximize_all_windows_in_frame (frame); } defaults.padding_left = l; defaults.padding_right = r; - defaults.padding_top = t; + defaults.padding_top = t; defaults.padding_bottom = b; return cmdret_new (RET_SUCCESS, NULL); @@ -3541,7 +3541,7 @@ set_border (struct cmdarg **args) list_for_each_entry (win,&rp_mapped_window,node) { if (win_get_frame (win)) - maximize (win); + maximize (win); } return cmdret_new (RET_SUCCESS, NULL); @@ -3628,14 +3628,14 @@ set_winname (struct cmdarg **args) switch (defaults.win_name) { case WIN_NAME_TITLE: - return cmdret_new (RET_SUCCESS, "title"); + return cmdret_new (RET_SUCCESS, "title"); case WIN_NAME_RES_NAME: - return cmdret_new (RET_SUCCESS, "name"); + return cmdret_new (RET_SUCCESS, "name"); case WIN_NAME_RES_CLASS: - return cmdret_new (RET_SUCCESS, "class"); + return cmdret_new (RET_SUCCESS, "class"); default: - PRINT_DEBUG (("Unknown win_name\n")); - return cmdret_new (RET_FAILURE, "unknown"); + PRINT_DEBUG (("Unknown win_name\n")); + return cmdret_new (RET_FAILURE, "unknown"); } name = ARG_STRING(0); @@ -3666,7 +3666,7 @@ set_fgcolor (struct cmdarg **args) for (i=0; i<num_screens; i++) { if (!XAllocNamedColor (dpy, screens[i].def_cmap, ARG_STRING(0), &color, &junk)) - return cmdret_new (RET_FAILURE, "deffgcolor: unknown color"); + return cmdret_new (RET_FAILURE, "deffgcolor: unknown color"); screens[i].fg_color = color.pixel; update_gc (&screens[i]); @@ -3694,7 +3694,7 @@ set_bgcolor (struct cmdarg **args) for (i=0; i<num_screens; i++) { if (!XAllocNamedColor (dpy, screens[i].def_cmap, ARG_STRING(0), &color, &junk)) - return cmdret_new (RET_FAILURE, "defbgcolor: unknown color"); + return cmdret_new (RET_FAILURE, "defbgcolor: unknown color"); screens[i].bg_color = color.pixel; update_gc (&screens[i]); @@ -3758,8 +3758,8 @@ cmd_chdir (int interactive, struct cmdarg **args) dir = getenv ("HOME"); if (dir == NULL || *dir == '\0') { - return cmdret_new (RET_FAILURE, "chdir: HOME not set"); - } + return cmdret_new (RET_FAILURE, "chdir: HOME not set"); + } } else dir = ARG_STRING(0); @@ -3801,21 +3801,21 @@ cmd_info (int interactive, struct cmdarg **args) rp_window_elem *win_elem; win_elem = group_find_window (&rp_current_group->mapped_windows, win); if (!win_elem) - win_elem = group_find_window (&rp_current_group->unmapped_windows, win); + win_elem = group_find_window (&rp_current_group->unmapped_windows, win); if (win_elem) - { - char *s; - - if (args[0] == NULL) - s = defaults.info_fmt; - else - s = ARG_STRING(0); - buf = sbuf_new (0); - format_string (s, win_elem, buf); - tmp = sbuf_free_struct (buf); - return cmdret_new (RET_SUCCESS, "%s", tmp); - } + { + char *s; + + if (args[0] == NULL) + s = defaults.info_fmt; + else + s = ARG_STRING(0); + buf = sbuf_new (0); + format_string (s, win_elem, buf); + tmp = sbuf_free_struct (buf); + return cmdret_new (RET_SUCCESS, "%s", tmp); + } } return cmdret_new (RET_SUCCESS, "No window."); @@ -3955,7 +3955,7 @@ set_barpadding (struct cmdarg **args) defaults.bar_y_padding = y; } else - return cmdret_new (RET_FAILURE, "defbarpadding: invalid arguments"); + return cmdret_new (RET_FAILURE, "defbarpadding: invalid arguments"); return cmdret_new (RET_SUCCESS, NULL); } @@ -3982,9 +3982,9 @@ cmd_unalias (int interactive, struct cmdarg **args) alias_list_last--; /* Free the alias and put the last alias in the the space to - keep alias_list from becoming sparse. This code must jump - through some hoops to correctly handle the case when - alias_list_last == index. */ + keep alias_list from becoming sparse. This code must jump + through some hoops to correctly handle the case when + alias_list_last == index. */ tmp = alias_list[index].alias; alias_list[index].alias = xstrdup (alias_list[alias_list_last].alias); free (tmp); @@ -4067,7 +4067,7 @@ cmd_warp (int interactive, struct cmdarg **args) defaults.warp = 0; else return cmdret_new (RET_FAILURE, "warp: invalid argument"); - + return cmdret_new (RET_SUCCESS, NULL); } @@ -4088,131 +4088,131 @@ sync_wins (rp_screen *s) found = 0; for (i=0; i<nwins; i++) - { - if (win->w == wins[i]) - { - found = 1; - break; - } - } + { + if (win->w == wins[i]) + { + found = 1; + break; + } + } if (!found) - { - ignore_badwindow++; - - /* If, somehow, the window is not withdrawn before it is destroyed, - perform the necessary steps to withdraw the window before it is - unmanaged. */ - if (win->state == IconicState) - { - PRINT_DEBUG (("Destroying Iconic Window (%s)\n", window_name (win))); - withdraw_window (win); - } - else if (win->state == NormalState) - { - rp_frame *frame; - - PRINT_DEBUG (("Destroying Normal Window (%s)\n", window_name (win))); - frame = find_windows_frame (win); - if (frame) - { - cleanup_frame (frame); - if (frame->number == win->scr->current_frame) - set_active_frame (frame); - } - withdraw_window (win); - } - - /* Now that the window is guaranteed to be in the unmapped window - list, we can safely stop managing it. */ - unmanage (win); - ignore_badwindow--; - } + { + ignore_badwindow++; + + /* If, somehow, the window is not withdrawn before it is destroyed, + perform the necessary steps to withdraw the window before it is + unmanaged. */ + if (win->state == IconicState) + { + PRINT_DEBUG (("Destroying Iconic Window (%s)\n", window_name (win))); + withdraw_window (win); + } + else if (win->state == NormalState) + { + rp_frame *frame; + + PRINT_DEBUG (("Destroying Normal Window (%s)\n", window_name (win))); + frame = find_windows_frame (win); + if (frame) + { + cleanup_frame (frame); + if (frame->number == win->scr->current_frame) + set_active_frame (frame); + } + withdraw_window (win); + } + + /* Now that the window is guaranteed to be in the unmapped window + list, we can safely stop managing it. */ + unmanage (win); + ignore_badwindow--; + } } for (i=0; i<nwins; i++) { XGetWindowAttributes(dpy, wins[i], &attr); - if (wins[i] == s->bar_window - || wins[i] == s->key_window - || wins[i] == s->input_window - || wins[i] == s->frame_window - || wins[i] == s->help_window - || attr.override_redirect == True) continue; - + if (wins[i] == s->bar_window + || wins[i] == s->key_window + || wins[i] == s->input_window + || wins[i] == s->frame_window + || wins[i] == s->help_window + || attr.override_redirect == True) continue; + /* Find the window in our mapped window list. */ win = find_window_in_list (wins[i], &rp_mapped_window); if (win) - { - rp_frame *frame; - /* If the window is viewable and it is in a frame, then - maximize it and go to the next window. */ - if (attr.map_state == IsViewable) - { - frame = find_windows_frame (win); - if (frame) - { - maximize (win); - } - else - { - hide_window (win); - } - } - else if (attr.map_state == IsUnmapped - && get_state (win) == IconicState) - { - frame = find_windows_frame (win); - if (frame) - { - unhide_window (win); - maximize (win); - } - } - else - { - PRINT_DEBUG (("I don't know what to do...\n")); - } - - /* We've handled the window. */ - continue; - } + { + rp_frame *frame; + /* If the window is viewable and it is in a frame, then + maximize it and go to the next window. */ + if (attr.map_state == IsViewable) + { + frame = find_windows_frame (win); + if (frame) + { + maximize (win); + } + else + { + hide_window (win); + } + } + else if (attr.map_state == IsUnmapped + && get_state (win) == IconicState) + { + frame = find_windows_frame (win); + if (frame) + { + unhide_window (win); + maximize (win); + } + } + else + { + PRINT_DEBUG (("I don't know what to do...\n")); + } + + /* We've handled the window. */ + continue; + } /* Try the unmapped window list. */ win = find_window_in_list (wins[i], &rp_unmapped_window); if (win) - { - /* If the window is viewable and it is in a frame, then - maximize it and go to the next window. */ - if (attr.map_state == IsViewable) - { - /* We need to map it since it's visible now. */ - map_window (win); - } - else if (attr.map_state == IsUnmapped - && get_state (win) == IconicState) - { - /* We need to map the window and then hide it. */ - map_window (win); - hide_window (win); - } - else - { - PRINT_DEBUG (("I think it's all sync'd up...\n")); - } - - /* We've handled the window. */ - continue; - } + { + /* If the window is viewable and it is in a frame, then + maximize it and go to the next window. */ + if (attr.map_state == IsViewable) + { + /* We need to map it since it's visible now. */ + map_window (win); + } + else if (attr.map_state == IsUnmapped + && get_state (win) == IconicState) + { + /* We need to map the window and then hide it. */ + map_window (win); + hide_window (win); + } + else + { + PRINT_DEBUG (("I think it's all sync'd up...\n")); + } + + /* We've handled the window. */ + continue; + } /* The window isn't in the mapped or unmapped window list so add - it. */ + it. */ win = add_to_window_list (s, wins[i]); - + /* If it's visible or iconized. "Map" it. */ if (attr.map_state == IsViewable - || (attr.map_state == IsUnmapped - && get_state (win) == IconicState)) - map_window (win); + || (attr.map_state == IsUnmapped + && get_state (win) == IconicState)) + map_window (win); } } @@ -4279,8 +4279,8 @@ cmd_tmpwm (int interactive, struct cmdarg **args) for (i=0; i<num_screens; i++) { XSelectInput(dpy, RootWindow (dpy, screens[i].screen_num), - PropertyChangeMask | ColormapChangeMask - | SubstructureRedirectMask | SubstructureNotifyMask); + PropertyChangeMask | ColormapChangeMask + | SubstructureRedirectMask | SubstructureNotifyMask); /* Map its key window */ XMapWindow (dpy, screens[i].key_window); } @@ -4358,14 +4358,14 @@ cmd_fdump (int interactively, struct cmdarg **args) snum = ARG(0,number); if (snum < 0 || num_screens <= snum) - return cmdret_new (RET_FAILURE, "fdump: invalid argument"); + return cmdret_new (RET_FAILURE, "fdump: invalid argument"); else - { - char *s = fdump (&screens[snum]); - cmdret *ret = cmdret_new (RET_SUCCESS, "%s", s); - free (s); - return ret; - } + { + char *s = fdump (&screens[snum]); + cmdret *ret = cmdret_new (RET_SUCCESS, "%s", s); + free (s); + return ret; + } } } @@ -4395,13 +4395,13 @@ frestore (char *data, rp_screen *s) { new = frame_read (token); if (new == NULL) - { - free (dup); - return cmdret_new (RET_SUCCESS, "frestore: invalid frame format");; - } + { + free (dup); + return cmdret_new (RET_SUCCESS, "frestore: invalid frame format");; + } list_add_tail (&new->node, &fset); token = strtok_r (NULL, ",", &nexttok); - } + } free (dup); @@ -4427,37 +4427,37 @@ frestore (char *data, rp_screen *s) PRINT_DEBUG (("restore %d %d\n", cur->number, cur->win_number)); /* Grab the frame's number, but if it already exists request a - new one. */ + new one. */ if (!numset_add_num (s->frames_numset, cur->number)) { - cur->number = numset_request (s->frames_numset); + cur->number = numset_request (s->frames_numset); } /* Find the current frame based on last_access. */ if (cur->last_access > max) - { - s->current_frame = cur->number; - max = cur->last_access; - } + { + s->current_frame = cur->number; + max = cur->last_access; + } /* Update the window the frame points to. */ if (cur->win_number != EMPTY) - { - win = find_window_number (cur->win_number); - set_frames_window (cur, win); - } + { + win = find_window_number (cur->win_number); + set_frames_window (cur, win); + } } /* Show the windows in the frames. */ list_for_each_entry (win, &rp_mapped_window, node) { if (win->frame_number != EMPTY) - { - maximize (win); - unhide_window (win); - } + { + maximize (win); + unhide_window (win); + } } - set_active_frame (current_frame()); + set_active_frame (current_frame()); update_bar (s); show_frame_indicator(); @@ -4556,34 +4556,34 @@ cmd_groups (int interactive, struct cmdarg **args) char separator; if (cur == rp_current_group) - mark_start = strlen (sbuf_get (buffer)); + mark_start = strlen (sbuf_get (buffer)); /* Pad start of group name with a space for row - style. non-Interactive always gets a column.*/ + style. non-Interactive always gets a column.*/ if (defaults.window_list_style == STYLE_ROW && interactive) - sbuf_concat (buffer, " "); + sbuf_concat (buffer, " "); if(cur == rp_current_group) - separator = '*'; + separator = '*'; else - separator = '-'; + separator = '-'; fmt = xsprintf ("%d%c%s", cur->number, separator, cur->name); sbuf_concat (buffer, fmt); /* Pad end of group name with a space for row style. */ if (defaults.window_list_style == STYLE_ROW && interactive) - { - sbuf_concat (buffer, " "); - } + { + sbuf_concat (buffer, " "); + } else - { - if (cur->node.next != &rp_groups) - sbuf_concat (buffer, "\n"); - } + { + if (cur->node.next != &rp_groups) + sbuf_concat (buffer, "\n"); + } if (cur == rp_current_group) - mark_end = strlen (sbuf_get (buffer)); + mark_end = strlen (sbuf_get (buffer)); } /* Display it or return it. */ @@ -4624,7 +4624,7 @@ cmd_addhook (int interactive, struct cmdarg **args) { struct list_head *hook; struct sbuf *cmd; - + hook = hook_lookup (ARG_STRING(0)); if (hook == NULL) return cmdret_new (RET_FAILURE, "addhook: unknown hook '%s'", ARG_STRING(0)); @@ -4672,7 +4672,7 @@ cmd_listhook (int interactive, struct cmdarg **args) { sbuf_printf_concat(buffer, "%s", sbuf_get (cur)); if (cur->node.next != hook) - sbuf_printf_concat(buffer, "\n"); + sbuf_printf_concat(buffer, "\n"); } ret = cmdret_new (RET_SUCCESS, "%s", sbuf_get (buffer)); @@ -4689,7 +4689,7 @@ cmd_gdelete (int interactive, struct cmdarg **args) g = rp_current_group; else g = ARG(0,group); - + switch (group_delete_group (g)) { case GROUP_DELETE_GROUP_OK: @@ -4707,9 +4707,9 @@ cmd_gdelete (int interactive, struct cmdarg **args) static void grab_rat () { - XGrabPointer (dpy, current_screen()->root, True, 0, - GrabModeAsync, GrabModeAsync, - None, current_screen()->rat, CurrentTime); + XGrabPointer (dpy, current_screen()->root, True, 0, + GrabModeAsync, GrabModeAsync, + None, current_screen()->rat, CurrentTime); } static void @@ -4723,8 +4723,8 @@ cmd_readkey (int interactive, struct cmdarg **args) { char *keysym_name; rp_action *key_action; - KeySym keysym; /* Key pressed */ - unsigned int mod; /* Modifiers */ + KeySym keysym; /* Key pressed */ + unsigned int mod; /* Modifiers */ int rat_grabbed = 0; rp_keymap *map; @@ -4816,16 +4816,16 @@ cmd_set (int interactive, struct cmdarg **args) list_last (last, &set_vars, node); list_for_each_entry (cur, &set_vars, node) - { - cmdret *ret; - ret = cur->set_fn (args); - sbuf_printf_concat (s, "%s: %s", cur->var, ret->output); - /* Skip a newline on the last line. */ - if (cur != last) - sbuf_concat (s, "\n"); - cmdret_free (ret); - } - + { + cmdret *ret; + ret = cur->set_fn (args); + sbuf_printf_concat (s, "%s: %s", cur->var, ret->output); + /* Skip a newline on the last line. */ + if (cur != last) + sbuf_concat (s, "\n"); + cmdret_free (ret); + } + /* Return the accumulated string. */ ret = cmdret_new (RET_SUCCESS, "%s", sbuf_get (s)); sbuf_free (s); @@ -4848,40 +4848,40 @@ cmd_set (int interactive, struct cmdarg **args) /* We need to tell parse_args about arg_REST and arg_SHELLCMD. */ for (i=0; i<ARG(0,variable)->nargs; i++) - if (ARG(0,variable)->args[i].type == arg_REST - || ARG(0,variable)->args[i].type == arg_SHELLCMD - || ARG(0,variable)->args[i].type == arg_RAW) - { - raw = 1; - nargs = i; - break; - } + if (ARG(0,variable)->args[i].type == arg_REST + || ARG(0,variable)->args[i].type == arg_SHELLCMD + || ARG(0,variable)->args[i].type == arg_RAW) + { + raw = 1; + nargs = i; + break; + } /* Parse the arguments and call the function. */ if (args[1]) - input = xstrdup (args[1]->string); + input = xstrdup (args[1]->string); else - input = xstrdup (""); + input = xstrdup (""); result = parse_args (input, &head, nargs, raw); free (input); if (result) - goto failed; + goto failed; result = parsed_input_to_args (ARG(0,variable)->nargs, ARG(0,variable)->args, - &head, &arglist, &parsed_args); + &head, &arglist, &parsed_args); if (result) - goto failed; + goto failed; /* 0 or nargs is acceptable */ if (list_size (&arglist) > 0 && list_size (&arglist) < ARG(0,variable)->nargs) - { - result = cmdret_new (RET_FAILURE, "not enough arguments."); - goto failed; - } + { + result = cmdret_new (RET_FAILURE, "not enough arguments."); + goto failed; + } else if (list_size (&head) > ARG(0,variable)->nargs) - { - result = cmdret_new (RET_FAILURE, "too many arguments."); - goto failed; - } + { + result = cmdret_new (RET_FAILURE, "too many arguments."); + goto failed; + } cmdargs = arg_array (&arglist); result = ARG(0,variable)->set_fn (cmdargs); @@ -4891,10 +4891,10 @@ cmd_set (int interactive, struct cmdarg **args) failed: /* Free the parsed strings */ list_for_each_safe_entry (scur, iter, tmp, &head, node) - sbuf_free(scur); + sbuf_free(scur); /* Free the args */ list_for_each_safe_entry (acur, iter, tmp, &arglist, node) - arg_free (acur); + arg_free (acur); return result; } @@ -4917,14 +4917,14 @@ cmd_sfdump (int interactively, struct cmdarg **args) /* FIXME: Oooh, gross! there's a trailing comma, yuk! */ list_for_each_entry (cur, &(screens[i].frames), node) - { - char *tmp; + { + char *tmp; - tmp = frame_dump (cur); - sbuf_concat (s, tmp); - sbuf_concat (s, tmp2); - free (tmp); - } + tmp = frame_dump (cur); + sbuf_concat (s, tmp); + sbuf_concat (s, tmp2); + free (tmp); + } free (tmp2); } @@ -4946,7 +4946,7 @@ cmd_sdump (int interactive, struct cmdarg **args) { tmp = screen_dump (&screens[i]); sbuf_concat (s, tmp); - if (i + 1 != num_screens) /* No trailing comma. */ + if (i + 1 != num_screens) /* No trailing comma. */ sbuf_concat (s, ","); free (tmp); } @@ -4986,7 +4986,7 @@ cmd_cnext (int interactive, struct cmdarg **args) rp_window *cur, *last, *win; cur = current_window(); - if (!cur || !cur->res_class) /* Can't be done. */ + if (!cur || !cur->res_class) /* Can't be done. */ return cmd_next (interactive, args); /* CUR !in cycle list, so LAST marks last node. */ @@ -4994,17 +4994,17 @@ cmd_cnext (int interactive, struct cmdarg **args) if (last) for (win = group_next_window (rp_current_group, cur); - win; - win = group_next_window (rp_current_group, win)) + win; + win = group_next_window (rp_current_group, win)) { - if (win->res_class - && strcmp (cur->res_class, win->res_class)) - { - set_active_window_force (win); - return cmdret_new (RET_SUCCESS, NULL); - } - - if (win == last) break; + if (win->res_class + && strcmp (cur->res_class, win->res_class)) + { + set_active_window_force (win); + return cmdret_new (RET_SUCCESS, NULL); + } + + if (win == last) break; } return cmdret_new (RET_FAILURE, "%s", MESSAGE_NO_OTHER_WINDOW); @@ -5016,7 +5016,7 @@ cmd_cprev (int interactive, struct cmdarg **args) rp_window *cur, *last, *win; cur = current_window(); - if (!cur || !cur->res_class) /* Can't be done. */ + if (!cur || !cur->res_class) /* Can't be done. */ return cmd_next (interactive, args); /* CUR !in cycle list, so LAST marks last node. */ @@ -5024,17 +5024,17 @@ cmd_cprev (int interactive, struct cmdarg **args) if (last) for (win = group_prev_window (rp_current_group, cur); - win; - win = group_prev_window (rp_current_group, win)) + win; + win = group_prev_window (rp_current_group, win)) { - if (win->res_class - && strcmp (cur->res_class, win->res_class)) - { - set_active_window_force (win); - return cmdret_new (RET_SUCCESS, NULL); - } - - if (win == last) break; + if (win->res_class + && strcmp (cur->res_class, win->res_class)) + { + set_active_window_force (win); + return cmdret_new (RET_SUCCESS, NULL); + } + + if (win == last) break; } return cmdret_new (RET_FAILURE, "%s", MESSAGE_NO_OTHER_WINDOW); @@ -5046,7 +5046,7 @@ cmd_inext (int interactive, struct cmdarg **args) rp_window *cur, *last, *win; cur = current_window(); - if (!cur || !cur->res_class) /* Can't be done. */ + if (!cur || !cur->res_class) /* Can't be done. */ return cmd_next (interactive, args); /* CUR !in cycle list, so LAST marks last node. */ @@ -5054,17 +5054,17 @@ cmd_inext (int interactive, struct cmdarg **args) if (last) for (win = group_next_window (rp_current_group, cur); - win; - win = group_next_window (rp_current_group, win)) + win; + win = group_next_window (rp_current_group, win)) { - if (win->res_class - && !strcmp (cur->res_class, win->res_class)) - { - set_active_window_force (win); - return cmdret_new (RET_SUCCESS, NULL); - } - - if (win == last) break; + if (win->res_class + && !strcmp (cur->res_class, win->res_class)) + { + set_active_window_force (win); + return cmdret_new (RET_SUCCESS, NULL); + } + + if (win == last) break; } return cmdret_new (RET_FAILURE, "%s", MESSAGE_NO_OTHER_WINDOW); @@ -5076,7 +5076,7 @@ cmd_iprev (int interactive, struct cmdarg **args) rp_window *cur, *last, *win; cur = current_window(); - if (!cur || !cur->res_class) /* Can't be done. */ + if (!cur || !cur->res_class) /* Can't be done. */ return cmd_next (interactive, args); /* CUR !in cycle list, so LAST marks last node. */ @@ -5084,17 +5084,17 @@ cmd_iprev (int interactive, struct cmdarg **args) if (last) for (win = group_prev_window (rp_current_group, cur); - win; - win = group_prev_window (rp_current_group, win)) + win; + win = group_prev_window (rp_current_group, win)) { - if (win->res_class - && !strcmp (cur->res_class, win->res_class)) - { - set_active_window_force (win); - return cmdret_new (RET_SUCCESS, NULL); - } - - if (win == last) break; + if (win->res_class + && !strcmp (cur->res_class, win->res_class)) + { + set_active_window_force (win); + return cmdret_new (RET_SUCCESS, NULL); + } + + if (win == last) break; } return cmdret_new (RET_FAILURE, "%s", MESSAGE_NO_OTHER_WINDOW); @@ -5180,18 +5180,18 @@ cmd_prompt (int interactive, struct cmdarg **args) { prefix = strchr (ARG_STRING(0), ':'); if (prefix) - { - prefix++; /* Don't return the colon. */ - query = xmalloc (prefix - ARG_STRING(0) + 1); - strncpy (query, ARG_STRING(0), prefix - ARG_STRING(0)); - query[prefix - ARG_STRING(0)] = 0; /* null terminate */ - output = get_more_input (query, prefix, trivial_completions); - free (query); - } + { + prefix++; /* Don't return the colon. */ + query = xmalloc (prefix - ARG_STRING(0) + 1); + strncpy (query, ARG_STRING(0), prefix - ARG_STRING(0)); + query[prefix - ARG_STRING(0)] = 0; /* null terminate */ + output = get_more_input (query, prefix, trivial_completions); + free (query); + } else - { - output = get_input (ARG_STRING(0), trivial_completions); - } + { + output = get_input (ARG_STRING(0), trivial_completions); + } } ret = cmdret_new (RET_SUCCESS, "%s", output); if (output) @@ -5204,8 +5204,8 @@ cmd_describekey (int interactive, struct cmdarg **args) { char *keysym_name; rp_action *key_action; - KeySym keysym; /* Key pressed */ - unsigned int mod; /* Modifiers */ + KeySym keysym; /* Key pressed */ + unsigned int mod; /* Modifiers */ int rat_grabbed = 0; rp_keymap *map; @@ -5250,7 +5250,7 @@ cmdret * cmd_dedicate (int interactive, struct cmdarg **args) { rp_frame *f; - + f = current_frame(); if (!f) return cmdret_new (RET_SUCCESS, NULL); @@ -5262,7 +5262,7 @@ cmd_dedicate (int interactive, struct cmdarg **args) f->dedicated = !(f->dedicated); return cmdret_new (RET_SUCCESS, "Consider this frame %s.", - f->dedicated ? "chaste":"promiscuous"); + f->dedicated ? "chaste":"promiscuous"); } cmdret * diff --git a/src/actions.h b/src/actions.h index 9e323cf..afeb653 100644 --- a/src/actions.h +++ b/src/actions.h @@ -31,19 +31,19 @@ typedef struct user_command user_command; /* arg_REST and arg_SHELLCMD eat the rest of the input. */ enum argtype { arg_REST, - arg_NUMBER, - arg_STRING, - arg_FRAME, - arg_WINDOW, - arg_COMMAND, - arg_SHELLCMD, + arg_NUMBER, + arg_STRING, + arg_FRAME, + arg_WINDOW, + arg_COMMAND, + arg_SHELLCMD, arg_KEYMAP, - arg_KEY, - arg_GRAVITY, - arg_GROUP, - arg_HOOK, - arg_VARIABLE, - arg_RAW}; + arg_KEY, + arg_GRAVITY, + arg_GROUP, + arg_HOOK, + arg_VARIABLE, + arg_RAW}; union arg_union { rp_frame *frame; @@ -1,5 +1,5 @@ /* Functionality for a bar across the bottom of the screen listing the - * windows currently managed. + * windows currently managed. * * Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca> * @@ -75,7 +75,7 @@ show_bar (rp_screen *s, char *fmt) s->bar_is_raised = BAR_IS_WINDOW_LIST; XMapRaised (dpy, s->bar_window); update_window_names (s, fmt); - + reset_alarm(); return 1; } @@ -128,14 +128,14 @@ bar_y (rp_screen *s, int height) case EastGravity: case CenterGravity: case WestGravity: - y = s->top + (s->height - height - - defaults.bar_border_width * 2) / 2; + y = s->top + (s->height - height + - defaults.bar_border_width * 2) / 2; break; case SouthEastGravity: case SouthGravity: case SouthWestGravity: - y = s->top + (s->height - height - - defaults.bar_border_width * 2); + y = s->top + (s->height - height + - defaults.bar_border_width * 2); break; } @@ -207,7 +207,7 @@ count_lines (char* msg, int len) if (len < 1) return 1; - for(i=0; i<len; i++) + for(i=0; i<len; i++) { if (msg[i] == '\n') ret++; } @@ -222,24 +222,24 @@ max_line_length (char* msg) int i; int start; int ret = 0; - + /* Count each line and keep the length of the longest one. */ - for(start=0, i=0; i <= strlen(msg); i++) + for(start=0, i=0; i <= strlen(msg); i++) { - if(msg[i] == '\n' || msg[i] == '\0') - { - int current_width; - - /* Check if this line is the longest so far. */ - current_width = XTextWidth (defaults.font, msg + start, i - start); - if(current_width > ret) - { - ret = current_width; - } - - /* Update the start of the new line. */ - start = i + 1; - } + if(msg[i] == '\n' || msg[i] == '\0') + { + int current_width; + + /* Check if this line is the longest so far. */ + current_width = XTextWidth (defaults.font, msg + start, i - start); + if(current_width > ret) + { + ret = current_width; + } + + /* Update the start of the new line. */ + start = i + 1; + } } return ret; @@ -259,8 +259,8 @@ pos_in_line (char* msg, int pos) ret = 0; for(i=pos-1; i>=0; ret++, i--) { - if(msg[i]=='\n') - break; + if(msg[i]=='\n') + break; } return ret; @@ -272,18 +272,18 @@ line_beginning (char* msg, int pos) int ret = 0; int i; - if(pos <= 0) + if(pos <= 0) return 0; /* Go backwards until we hit a new line or the beginning of the string. */ - for(i=pos-1; i>=0; --i) + for(i=pos-1; i>=0; --i) { if (msg[i]=='\n') - { - ret = i + 1; - break; - } + { + ret = i + 1; + break; + } } return ret; @@ -300,28 +300,28 @@ draw_string (rp_screen *s, char *msg) /* Walk through the string, print each line. */ start = 0; line_no = 0; - for(i=0; i < strlen(msg); ++i) + for(i=0; i < strlen(msg); ++i) { /* When we encounter a new line, print the text up to the new - line, and move down one line. */ + line, and move down one line. */ if (msg[i] == '\n') - { - XDrawString (dpy, s->bar_window, s->normal_gc, - defaults.bar_x_padding, - defaults.bar_y_padding + defaults.font->max_bounds.ascent - + line_no * line_height, - msg + start, i - start); - line_no++; - start = i + 1; - } + { + XDrawString (dpy, s->bar_window, s->normal_gc, + defaults.bar_x_padding, + defaults.bar_y_padding + defaults.font->max_bounds.ascent + + line_no * line_height, + msg + start, i - start); + line_no++; + start = i + 1; + } } - + /* Print the last line. */ XDrawString (dpy, s->bar_window, s->normal_gc, - defaults.bar_x_padding, - defaults.bar_y_padding + defaults.font->max_bounds.ascent - + line_no * line_height, - msg + start, strlen (msg) - start); + defaults.bar_x_padding, + defaults.bar_y_padding + defaults.font->max_bounds.ascent + + line_no * line_height, + msg + start, strlen (msg) - start); XSync (dpy, False); } @@ -359,9 +359,9 @@ correct_mark (int msg_len, int *mark_start, int *mark_end) static void prepare_bar (rp_screen *s, int width, int height) { - XMoveResizeWindow (dpy, s->bar_window, - bar_x (s, width), bar_y (s, height), - width, height); + XMoveResizeWindow (dpy, s->bar_window, + bar_x (s, width), bar_y (s, height), + width, height); /* Map the bar if needed */ if (!s->bar_is_raised) @@ -376,8 +376,8 @@ prepare_bar (rp_screen *s, int width, int height) } static void -get_mark_box (char *msg, int mark_start, int mark_end, - int *x, int *y, int *width, int *height) +get_mark_box (char *msg, int mark_start, int mark_end, + int *x, int *y, int *width, int *height) { int start, end; int mark_end_is_new_line = 0; @@ -406,20 +406,20 @@ get_mark_box (char *msg, int mark_start, int mark_end, end_line_beginning = line_beginning(msg, mark_end); PRINT_DEBUG (("start_line = %d, end_line = %d\n", start_line, end_line)); - PRINT_DEBUG (("start_line_beginning = %d, end_line_beginning = %d\n", - start_line_beginning, end_line_beginning)); + PRINT_DEBUG (("start_line_beginning = %d, end_line_beginning = %d\n", + start_line_beginning, end_line_beginning)); if (mark_start == 0 || start_pos_in_line == 0) start = 0; else - start = XTextWidth (defaults.font, - &msg[start_line_beginning], - start_pos_in_line) + defaults.bar_x_padding; - - end = XTextWidth (defaults.font, - &msg[end_line_beginning], - end_pos_in_line) + defaults.bar_x_padding * 2; - + start = XTextWidth (defaults.font, + &msg[start_line_beginning], + start_pos_in_line) + defaults.bar_x_padding; + + end = XTextWidth (defaults.font, + &msg[end_line_beginning], + end_pos_in_line) + defaults.bar_x_padding * 2; + if (mark_end != strlen (msg)) end -= defaults.bar_x_padding; @@ -433,7 +433,7 @@ get_mark_box (char *msg, int mark_start, int mark_end, { *width = end - start; } - + *x = start; *y = (start_line - 1) * FONT_HEIGHT (defaults.font) + defaults.bar_y_padding; *height = (end_line - start_line + 1) * FONT_HEIGHT (defaults.font); @@ -451,15 +451,15 @@ draw_inverse_box (rp_screen *s, int x, int y, int width, int height) mask = GCForeground | GCFunction; lgc = XCreateGC(dpy, s->root, mask, &lgv); - XFillRectangle (dpy, s->bar_window, lgc, - x, y, width, height); + XFillRectangle (dpy, s->bar_window, lgc, + x, y, width, height); XFreeGC (dpy, lgc); lgv.foreground = s->bg_color; lgc = XCreateGC(dpy, s->root, mask, &lgv); - XFillRectangle (dpy, s->bar_window, lgc, - x, y, width, height); + XFillRectangle (dpy, s->bar_window, lgc, + x, y, width, height); XFreeGC (dpy, lgc); } @@ -472,8 +472,8 @@ draw_mark (rp_screen *s, char *msg, int mark_start, int mark_end) if (mark_end == 0 || mark_start == mark_end) return; - get_mark_box (msg, mark_start, mark_end, - &x, &y, &width, &height); + get_mark_box (msg, mark_start, mark_end, + &x, &y, &width, &height); draw_inverse_box (s, x, y, width, height); } diff --git a/src/communications.c b/src/communications.c index 8c86b60..b3e95f2 100644 --- a/src/communications.c +++ b/src/communications.c @@ -12,7 +12,7 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -43,9 +43,9 @@ receive_command_result (Window w) /* First, find out how big the property is. */ status = XGetWindowProperty (dpy, w, rp_command_result, - 0, 0, False, XA_STRING, - &type_ret, &format_ret, &nitems, &bytes_after, - &result); + 0, 0, False, XA_STRING, + &type_ret, &format_ret, &nitems, &bytes_after, + &result); /* Failed to retrieve property. */ if (status != Success || result == NULL) @@ -61,9 +61,9 @@ receive_command_result (Window w) /* Now that we have the length of the message, we can get the whole message. */ status = XGetWindowProperty (dpy, w, rp_command_result, - 0, (bytes_after / 4) + (bytes_after % 4 ? 1 : 0), - True, XA_STRING, &type_ret, &format_ret, &nitems, - &bytes_after, &result); + 0, (bytes_after / 4) + (bytes_after % 4 ? 1 : 0), + True, XA_STRING, &type_ret, &format_ret, &nitems, + &bytes_after, &result); /* Failed to retrieve property. */ if (status != Success || result == NULL) @@ -76,9 +76,9 @@ receive_command_result (Window w) if (strlen ((char *)result)) { if (result[0] == '1') - printf ("%s\n", &result[1]); + printf ("%s\n", &result[1]); else - fprintf (stderr, "%s\n", &result[1]); + fprintf (stderr, "%s\n", &result[1]); } /* Free the result. */ @@ -109,11 +109,11 @@ send_command (unsigned char interactive, unsigned char *cmd, int screen_num) XSelectInput (dpy, w, PropertyChangeMask); XChangeProperty (dpy, w, rp_command, XA_STRING, - 8, PropModeReplace, sbuf_get(s), strlen ((char *)cmd) + 2); + 8, PropModeReplace, sbuf_get(s), strlen ((char *)cmd) + 2); - XChangeProperty (dpy, root, - rp_command_request, XA_WINDOW, - 8, PropModeAppend, (unsigned char *)&w, sizeof (Window)); + XChangeProperty (dpy, root, + rp_command_request, XA_WINDOW, + 8, PropModeAppend, (unsigned char *)&w, sizeof (Window)); sbuf_free (s); @@ -122,12 +122,12 @@ send_command (unsigned char interactive, unsigned char *cmd, int screen_num) XEvent ev; XMaskEvent (dpy, PropertyChangeMask, &ev); - if (ev.xproperty.atom == rp_command_result - && ev.xproperty.state == PropertyNewValue) - { - receive_command_result(ev.xproperty.window); - done = 1; - } + if (ev.xproperty.atom == rp_command_result + && ev.xproperty.state == PropertyNewValue) + { + receive_command_result(ev.xproperty.window); + done = 1; + } } XDestroyWindow (dpy, w); diff --git a/src/completions.c b/src/completions.c index 4c62d71..fc32c38 100644 --- a/src/completions.c +++ b/src/completions.c @@ -35,7 +35,7 @@ completions_new (completion_fn list_fn) c->last_match = NULL; c->partial = NULL; c->virgin = 1; - + return c; } @@ -110,12 +110,12 @@ completions_prev_match (rp_completions *c) cur = list_prev_entry (cur, &c->completion_list, node)) { if (str_comp (sbuf_get (cur), c->partial, strlen (c->partial))) - { - /* We found a match so update our last_match pointer and - return the string. */ - c->last_match = cur; - return sbuf_get (cur); - } + { + /* We found a match so update our last_match pointer and + return the string. */ + c->last_match = cur; + return sbuf_get (cur); + } } return NULL; @@ -133,12 +133,12 @@ completions_next_match (rp_completions *c) cur = list_next_entry (cur, &c->completion_list, node)) { if (str_comp (sbuf_get (cur), c->partial, strlen (c->partial))) - { - /* We found a match so update our last_match pointer and - return the string. */ - c->last_match = cur; - return sbuf_get (cur); - } + { + /* We found a match so update our last_match pointer and + return the string. */ + c->last_match = cur; + return sbuf_get (cur); + } } return NULL; @@ -151,22 +151,22 @@ completions_complete (rp_completions *c, char *partial, int direction) if (c->virgin) { completions_update (c, partial); - + /* Since it's never been completed on and c->last_match points - to the first element of the list which may be a match. So - check it. FIXME: This is a bit of a hack. */ + to the first element of the list which may be a match. So + check it. FIXME: This is a bit of a hack. */ if (c->last_match == NULL) - return NULL; + return NULL; /* c->last_match contains the first match in the forward - direction. So if we're looking for the previous match, then - check the previous element from last_match. */ + direction. So if we're looking for the previous match, then + check the previous element from last_match. */ if (direction == COMPLETION_PREVIOUS) - c->last_match = list_prev_entry (c->last_match, &c->completion_list, node); + c->last_match = list_prev_entry (c->last_match, &c->completion_list, node); /* Now check if last_match is a match for partial. */ if (str_comp (sbuf_get (c->last_match), c->partial, strlen (c->partial))) - return sbuf_get (c->last_match); + return sbuf_get (c->last_match); } if (c->last_match == NULL) @@ -1,4 +1,4 @@ -/* Config file for ratpoison. Edit these values and recompile. +/* Config file for ratpoison. Edit these values and recompile. * Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca> * * This file is part of ratpoison. @@ -45,7 +45,7 @@ #define RESIZE_VGROW_MODIFIER RP_CONTROL_MASK /* Key used to shrink frame vertically when in resize mode. */ -#define RESIZE_VSHRINK_KEY XK_p +#define RESIZE_VSHRINK_KEY XK_p #define RESIZE_VSHRINK_MODIFIER RP_CONTROL_MASK /* Key used to enlarge frame horizontally when in resize mode. */ @@ -53,15 +53,15 @@ #define RESIZE_HGROW_MODIFIER RP_CONTROL_MASK /* Key used to shrink frame horizontally when in resize mode. */ -#define RESIZE_HSHRINK_KEY XK_b +#define RESIZE_HSHRINK_KEY XK_b #define RESIZE_HSHRINK_MODIFIER RP_CONTROL_MASK /* Key used to shrink frame to fit it's current window. */ -#define RESIZE_SHRINK_TO_WINDOW_KEY XK_s -#define RESIZE_SHRINK_TO_WINDOW_MODIFIER 0 +#define RESIZE_SHRINK_TO_WINDOW_KEY XK_s +#define RESIZE_SHRINK_TO_WINDOW_MODIFIER 0 /* Key used to exit resize mode. */ -#define RESIZE_END_KEY XK_Return +#define RESIZE_END_KEY XK_Return #define RESIZE_END_MODIFIER 0 /* Number of history items to store. */ @@ -1,4 +1,4 @@ -/* our datatypes and global variables +/* our datatypes and global variables * Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca> * * This file is part of ratpoison. @@ -51,7 +51,7 @@ struct rp_frame /* For determining the last frame. */ int last_access; - /* Boolean that is set when a frame is + /* Boolean that is set when a frame is `dedicated' (a.k.a. glued) to one window. */ unsigned int dedicated; @@ -147,15 +147,15 @@ struct rp_screen GC normal_gc; Window root, bar_window, key_window, input_window, frame_window, help_window; int bar_is_raised; - int screen_num; /* Our screen number as dictated my X */ - int xine_screen_num; /* Our screen number for the Xinerama extension */ + int screen_num; /* Our screen number as dictated my X */ + int xine_screen_num; /* Our screen number for the Xinerama extension */ Colormap def_cmap; Cursor rat; unsigned long fg_color, bg_color; /* The pixel color. */ - + /* Here to abstract over the Xinerama vs X screens difference */ int left, top, width, height; - + char *display_string; /* A list of frames that may or may not contain windows. There should @@ -174,7 +174,7 @@ struct rp_action { KeySym key; unsigned int state; - char *data; /* misc data to be passed to the function */ + char *data; /* misc data to be passed to the function */ /* void (*func)(void *); */ }; @@ -211,7 +211,7 @@ struct rp_defaults int bar_location; int bar_timeout; int bar_border_width; - + int frame_indicator_timeout; int frame_resize_unit; @@ -285,10 +285,10 @@ struct rp_child_info comes to compare modifier masks. */ #define RP_SHIFT_MASK 1 #define RP_CONTROL_MASK 2 -#define RP_META_MASK 4 -#define RP_ALT_MASK 8 -#define RP_SUPER_MASK 16 -#define RP_HYPER_MASK 32 +#define RP_META_MASK 4 +#define RP_ALT_MASK 8 +#define RP_SUPER_MASK 16 +#define RP_HYPER_MASK 32 struct modifier_info { @@ -299,9 +299,9 @@ struct modifier_info unsigned int hyper_mod_mask; /* Keep track of these because they mess up the grab and should be - ignored. */ + ignored. */ unsigned int num_lock_mask; - unsigned int scroll_lock_mask; + unsigned int scroll_lock_mask; }; typedef struct list_head *(*completion_fn)(char *string); diff --git a/src/editor.c b/src/editor.c index 6aea958..21fbe63 100644 --- a/src/editor.c +++ b/src/editor.c @@ -69,37 +69,37 @@ struct edit_binding }; static edit_binding edit_bindings[] = - { {{XK_g, RP_CONTROL_MASK}, editor_abort}, - {{XK_Escape, 0}, editor_abort}, - {{XK_f, RP_CONTROL_MASK}, editor_forward_char}, - {{XK_Right, 0}, editor_forward_char}, - {{XK_b, RP_CONTROL_MASK}, editor_backward_char}, - {{XK_Left, 0}, editor_backward_char}, - {{XK_f, RP_META_MASK}, editor_forward_word}, - {{XK_b, RP_META_MASK}, editor_backward_word}, - {{XK_a, RP_CONTROL_MASK}, editor_beginning_of_line}, - {{XK_Home, 0}, editor_beginning_of_line}, - {{XK_e, RP_CONTROL_MASK}, editor_end_of_line}, - {{XK_End, 0}, editor_end_of_line}, - {{XK_d, RP_CONTROL_MASK}, editor_delete_char}, - {{XK_Delete, 0}, editor_delete_char}, - {{XK_BackSpace, 0}, editor_backward_delete_char}, - {{XK_h, RP_CONTROL_MASK}, editor_backward_delete_char}, - {{XK_BackSpace, RP_META_MASK}, editor_backward_kill_word}, - {{XK_d, RP_META_MASK}, editor_kill_word}, - {{XK_k, RP_CONTROL_MASK}, editor_kill_line}, - {{XK_u, RP_CONTROL_MASK}, editor_backward_kill_line}, - {{XK_y, RP_CONTROL_MASK}, editor_paste_selection}, - {{XK_p, RP_CONTROL_MASK}, editor_history_previous}, - {{XK_Up, 0}, editor_history_previous}, - {{XK_n, RP_CONTROL_MASK}, editor_history_next}, - {{XK_Down, 0}, editor_history_next}, - {{XK_Return, 0}, editor_enter}, - {{XK_m, RP_CONTROL_MASK}, editor_enter}, - {{XK_KP_Enter, 0}, editor_enter}, - {{XK_Tab, 0}, editor_complete_next}, - {{XK_ISO_Left_Tab, 0}, editor_complete_prev}, - { {0, 0}, 0} }; + { {{XK_g, RP_CONTROL_MASK}, editor_abort}, + {{XK_Escape, 0}, editor_abort}, + {{XK_f, RP_CONTROL_MASK}, editor_forward_char}, + {{XK_Right, 0}, editor_forward_char}, + {{XK_b, RP_CONTROL_MASK}, editor_backward_char}, + {{XK_Left, 0}, editor_backward_char}, + {{XK_f, RP_META_MASK}, editor_forward_word}, + {{XK_b, RP_META_MASK}, editor_backward_word}, + {{XK_a, RP_CONTROL_MASK}, editor_beginning_of_line}, + {{XK_Home, 0}, editor_beginning_of_line}, + {{XK_e, RP_CONTROL_MASK}, editor_end_of_line}, + {{XK_End, 0}, editor_end_of_line}, + {{XK_d, RP_CONTROL_MASK}, editor_delete_char}, + {{XK_Delete, 0}, editor_delete_char}, + {{XK_BackSpace, 0}, editor_backward_delete_char}, + {{XK_h, RP_CONTROL_MASK}, editor_backward_delete_char}, + {{XK_BackSpace, RP_META_MASK}, editor_backward_kill_word}, + {{XK_d, RP_META_MASK}, editor_kill_word}, + {{XK_k, RP_CONTROL_MASK}, editor_kill_line}, + {{XK_u, RP_CONTROL_MASK}, editor_backward_kill_line}, + {{XK_y, RP_CONTROL_MASK}, editor_paste_selection}, + {{XK_p, RP_CONTROL_MASK}, editor_history_previous}, + {{XK_Up, 0}, editor_history_previous}, + {{XK_n, RP_CONTROL_MASK}, editor_history_next}, + {{XK_Down, 0}, editor_history_next}, + {{XK_Return, 0}, editor_enter}, + {{XK_m, RP_CONTROL_MASK}, editor_enter}, + {{XK_KP_Enter, 0}, editor_enter}, + {{XK_Tab, 0}, editor_complete_next}, + {{XK_ISO_Left_Tab, 0}, editor_complete_prev}, + { {0, 0}, 0} }; rp_input_line * input_line_new (char *prompt, char *preinput, completion_fn fn) @@ -261,7 +261,7 @@ static edit_status editor_kill_word (rp_input_line *line) { int i, diff; - + if (line->position < line->length) { @@ -272,7 +272,7 @@ editor_kill_word (rp_input_line *line) /* Add the word to the X11 selection. */ set_nselection (&line->buffer[line->position], diff); - + for (i = line->position; i <= line->length - diff; i++) line->buffer[i] = line->buffer[i + diff]; @@ -485,7 +485,7 @@ editor_enter (rp_input_line *line) return EDIT_ABORT; } else /* result == 0 || result == 1 */ - { + { history_add (expansion); free (line->buffer); line->buffer = expansion; diff --git a/src/events.c b/src/events.c index 60c4d93..7e6e9ca 100644 --- a/src/events.c +++ b/src/events.c @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -24,7 +24,7 @@ #include <X11/Xutil.h> #include <X11/Xatom.h> #include <X11/keysym.h> -#include <X11/Xmd.h> /* for CARD32. */ +#include <X11/Xmd.h> /* for CARD32. */ #include <stdio.h> #include <stdlib.h> @@ -50,20 +50,20 @@ show_rudeness_raise_msg (rp_window *win) if (g == rp_current_group) { if (win->transient) - marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT, - elem->number, window_name (win)); + marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT, + elem->number, window_name (win)); else - marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW, - elem->number, window_name (win)); + marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW, + elem->number, window_name (win)); } else { if (win->transient) - marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT_GROUP, - elem->number, window_name (win), g->name); + marked_message_printf (0, 0, MESSAGE_RAISE_TRANSIENT_GROUP, + elem->number, window_name (win), g->name); else - marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW_GROUP, - elem->number, window_name (win), g->name); + marked_message_printf (0, 0, MESSAGE_RAISE_WINDOW_GROUP, + elem->number, window_name (win), g->name); } } @@ -93,10 +93,10 @@ new_window (XCreateWindowEvent *e) if (is_rp_window_for_screen(e->window, s)) return; if (s && win == NULL - && e->window != s->key_window - && e->window != s->bar_window - && e->window != s->input_window - && e->window != s->frame_window + && e->window != s->key_window + && e->window != s->bar_window + && e->window != s->input_window + && e->window != s->frame_window && e->window != s->help_window) { win = add_to_window_list (s, e->window); @@ -104,7 +104,7 @@ new_window (XCreateWindowEvent *e) } } -static void +static void unmap_notify (XEvent *ev) { rp_frame *frame; @@ -130,15 +130,15 @@ unmap_notify (XEvent *ev) case NormalState: PRINT_DEBUG (("Withdrawing normal window '%s'\n", window_name (win))); /* If the window was inside a frame, fill the frame with another - window. */ + window. */ frame = find_windows_frame (win); if (frame) - { - cleanup_frame (frame); - if (frame->number == win->scr->current_frame - && current_screen() == win->scr) - set_active_frame (frame); - } + { + cleanup_frame (frame); + if (frame->number == win->scr->current_frame + && current_screen() == win->scr) + set_active_frame (frame); + } withdraw_window (win); break; @@ -147,13 +147,13 @@ unmap_notify (XEvent *ev) update_window_names (win->scr, defaults.window_fmt); } -static void +static void map_request (XEvent *ev) { rp_window *win; win = find_window (ev->xmap.window); - if (win == NULL) + if (win == NULL) { PRINT_DEBUG (("Map request from an unknown window.\n")); XMapWindow (dpy, ev->xmap.window); @@ -166,38 +166,38 @@ map_request (XEvent *ev) { case WithdrawnState: if (unmanaged_window (win->w)) - { - PRINT_DEBUG (("Mapping Unmanaged Window\n")); - XMapWindow (dpy, win->w); - break; - } + { + PRINT_DEBUG (("Mapping Unmanaged Window\n")); + XMapWindow (dpy, win->w); + break; + } else - { - PRINT_DEBUG (("Mapping Withdrawn Window\n")); - map_window (win); - break; - } + { + PRINT_DEBUG (("Mapping Withdrawn Window\n")); + map_window (win); + break; + } break; case IconicState: PRINT_DEBUG (("Mapping Iconic window\n")); if (win->last_access == 0) - { - /* Depending on the rudeness level, actually map the - window. */ - if ((rp_honour_transient_map && win->transient) - || (rp_honour_normal_map && !win->transient)) - set_active_window (win); - } + { + /* Depending on the rudeness level, actually map the + window. */ + if ((rp_honour_transient_map && win->transient) + || (rp_honour_normal_map && !win->transient)) + set_active_window (win); + } else - { - /* Depending on the rudeness level, actually map the - window. */ - if ((rp_honour_transient_raise && win->transient) - || (rp_honour_normal_raise && !win->transient)) - set_active_window (win); - else - show_rudeness_raise_msg (win); - } + { + /* Depending on the rudeness level, actually map the + window. */ + if ((rp_honour_transient_raise && win->transient) + || (rp_honour_normal_raise && !win->transient)) + set_active_window (win); + else + show_rudeness_raise_msg (win); + } break; } } @@ -210,7 +210,7 @@ destroy_window (XDestroyWindowEvent *ev) win = find_window (ev->window); if (win == NULL) return; - ignore_badwindow++; + ignore_badwindow++; /* If, somehow, the window is not withdrawn before it is destroyed, perform the necessary steps to withdraw the window before it is @@ -227,12 +227,12 @@ destroy_window (XDestroyWindowEvent *ev) PRINT_DEBUG (("Destroying Normal Window (%s)\n", window_name (win))); frame = find_windows_frame (win); if (frame) - { - cleanup_frame (frame); - if (frame->number == win->scr->current_frame - && current_screen() == win->scr) - set_active_frame (frame); - } + { + cleanup_frame (frame); + if (frame->number == win->scr->current_frame + && current_screen() == win->scr) + set_active_frame (frame); + } withdraw_window (win); } @@ -253,91 +253,91 @@ configure_request (XConfigureRequestEvent *e) if (win) { if (e->value_mask & CWStackMode) - { - if (e->detail == Above && win->state != WithdrawnState) - { - /* Depending on the rudeness level, actually map the - window. */ - if ((rp_honour_transient_raise && win->transient) - || (rp_honour_normal_raise && !win->transient)) - { - if (win->state == IconicState) - set_active_window (win); - else if (find_windows_frame (win)) - goto_window (win); - } - else if (current_window() != win) - { - show_rudeness_raise_msg (win); - } - - } - - PRINT_DEBUG(("request CWStackMode %d\n", e->detail)); - } + { + if (e->detail == Above && win->state != WithdrawnState) + { + /* Depending on the rudeness level, actually map the + window. */ + if ((rp_honour_transient_raise && win->transient) + || (rp_honour_normal_raise && !win->transient)) + { + if (win->state == IconicState) + set_active_window (win); + else if (find_windows_frame (win)) + goto_window (win); + } + else if (current_window() != win) + { + show_rudeness_raise_msg (win); + } + + } + + PRINT_DEBUG(("request CWStackMode %d\n", e->detail)); + } PRINT_DEBUG (("'%s' window size: %d %d %d %d %d\n", window_name (win), - win->x, win->y, win->width, win->height, win->border)); + win->x, win->y, win->width, win->height, win->border)); /* Collect the changes to be granted. */ if (e->value_mask & CWBorderWidth) - { - changes.border_width = e->border_width; - win->border = e->border_width; - PRINT_DEBUG(("request CWBorderWidth %d\n", e->border_width)); - } + { + changes.border_width = e->border_width; + win->border = e->border_width; + PRINT_DEBUG(("request CWBorderWidth %d\n", e->border_width)); + } if (e->value_mask & CWWidth) - { - changes.width = e->width; - win->width = e->width; - PRINT_DEBUG(("request CWWidth %d\n", e->width)); - } + { + changes.width = e->width; + win->width = e->width; + PRINT_DEBUG(("request CWWidth %d\n", e->width)); + } if (e->value_mask & CWHeight) - { - changes.height = e->height; - win->height = e->height; - PRINT_DEBUG(("request CWHeight %d\n", e->height)); - } + { + changes.height = e->height; + win->height = e->height; + PRINT_DEBUG(("request CWHeight %d\n", e->height)); + } if (e->value_mask & CWX) - { - changes.x = e->x; - win->x = e->x; - PRINT_DEBUG(("request CWX %d\n", e->x)); - } + { + changes.x = e->x; + win->x = e->x; + PRINT_DEBUG(("request CWX %d\n", e->x)); + } if (e->value_mask & CWY) - { - changes.y = e->y; - win->y = e->y; - PRINT_DEBUG(("request CWY %d\n", e->y)); - } + { + changes.y = e->y; + win->y = e->y; + PRINT_DEBUG(("request CWY %d\n", e->y)); + } if (e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight)) - { - /* Grant the request, then immediately maximize it. */ - XConfigureWindow (dpy, win->w, - e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight), - &changes); - XSync(dpy, False); - if (win->state == NormalState) - maximize (win); - } + { + /* Grant the request, then immediately maximize it. */ + XConfigureWindow (dpy, win->w, + e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight), + &changes); + XSync(dpy, False); + if (win->state == NormalState) + maximize (win); + } } else { /* Its an unmanaged window, so give it what it wants. But don't - change the stack mode.*/ + change the stack mode.*/ if (e->value_mask & CWX) changes.x = e->x; if (e->value_mask & CWY) changes.x = e->x; if (e->value_mask & CWWidth) changes.x = e->x; if (e->value_mask & CWHeight) changes.x = e->x; if (e->value_mask & CWBorderWidth) changes.x = e->x; - XConfigureWindow (dpy, e->window, - e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight), - &changes); + XConfigureWindow (dpy, e->window, + e->value_mask & (CWX|CWY|CWBorderWidth|CWWidth|CWHeight), + &changes); } } @@ -355,26 +355,26 @@ client_msg (XClientMessageEvent *ev) win = find_window (ev->window); if (win == NULL) return; if (ev->format == 32 && ev->data.l[0] == IconicState) - { - /* FIXME: This means clients can hide themselves without the - user's intervention. This is bad, but Emacs is the only - program I know of that iconifies itself and this is - generally from the user pressing C-z. */ - PRINT_DEBUG (("Iconify Request.\n")); - if (win->state == NormalState) - { - rp_window *w = find_window_other(win->scr); - - if (w) - set_active_window (w); - else - blank_frame (screen_get_frame (win->scr, win->scr->current_frame)); - } - } + { + /* FIXME: This means clients can hide themselves without the + user's intervention. This is bad, but Emacs is the only + program I know of that iconifies itself and this is + generally from the user pressing C-z. */ + PRINT_DEBUG (("Iconify Request.\n")); + if (win->state == NormalState) + { + rp_window *w = find_window_other(win->scr); + + if (w) + set_active_window (w); + else + blank_frame (screen_get_frame (win->scr, win->scr->current_frame)); + } + } else - { - PRINT_ERROR (("Non-standard WM_CHANGE_STATE format\n")); - } + { + PRINT_ERROR (("Non-standard WM_CHANGE_STATE format\n")); + } } } @@ -414,13 +414,13 @@ handle_key (KeySym ks, unsigned int mod, rp_screen *s) PRINT_DEBUG(("%s\n", key_action->data)); result = command (1, key_action->data); - + if (result) - { - if (result->output) - message (result->output); - cmdret_free (result); - } + { + if (result->output) + message (result->output); + cmdret_free (result); + } } else { @@ -441,7 +441,7 @@ key_press (XEvent *ev) s = find_screen (ev->xkey.root); #ifdef HIDE_MOUSE - XWarpPointer (dpy, None, s->root, 0, 0, 0, 0, s->left + s->width - 2, s->top + s->height - 2); + XWarpPointer (dpy, None, s->root, 0, 0, 0, 0, s->left + s->width - 2, s->top + s->height - 2); #endif if (!s) return; @@ -468,9 +468,9 @@ execute_remote_command (Window w) unsigned char *req; status = XGetWindowProperty (dpy, w, rp_command, - 0, 0, False, XA_STRING, - &type_ret, &format_ret, &nitems, &bytes_after, - &req); + 0, 0, False, XA_STRING, + &type_ret, &format_ret, &nitems, &bytes_after, + &req); if (status != Success || req == NULL) { @@ -479,13 +479,13 @@ execute_remote_command (Window w) } /* XGetWindowProperty always allocates one extra byte even if - the property is zero length. */ + the property is zero length. */ XFree (req); status = XGetWindowProperty (dpy, w, rp_command, - 0, (bytes_after / 4) + (bytes_after % 4 ? 1 : 0), - True, XA_STRING, &type_ret, &format_ret, &nitems, - &bytes_after, &req); + 0, (bytes_after / 4) + (bytes_after % 4 ? 1 : 0), + True, XA_STRING, &type_ret, &format_ret, &nitems, + &bytes_after, &req); if (status != Success || req == NULL) { @@ -530,49 +530,49 @@ receive_command (Window root) length = sizeof (Window) / 4 + (sizeof (Window) % 4 ?1:0); ret = XGetWindowProperty (dpy, root, - rp_command_request, - offset, length, - True, XA_WINDOW, &type_ret, &format_ret, - &nitems, - &bytes_after, &prop_return); + rp_command_request, + offset, length, + True, XA_WINDOW, &type_ret, &format_ret, + &nitems, + &bytes_after, &prop_return); /* Update the offset to point to the next window (if there is - another one). */ + another one). */ offset += length; if (ret != Success) - { - PRINT_ERROR (("XGetWindowProperty Failed\n")); - if (prop_return) - XFree (prop_return); - break; - } + { + PRINT_ERROR (("XGetWindowProperty Failed\n")); + if (prop_return) + XFree (prop_return); + break; + } /* If there was no window, then we're done. */ if (prop_return == NULL) - { - PRINT_DEBUG (("No property to read\n")); - break; - } + { + PRINT_DEBUG (("No property to read\n")); + break; + } /* We grabbed a window, so now read the command stored in - this window and execute it. */ + this window and execute it. */ w = *(Window *)prop_return; XFree (prop_return); cmd_ret = execute_remote_command (w); /* notify the client of any text that was returned by the - command. */ + command. */ if (cmd_ret->output) - result = xsprintf ("%c%s", cmd_ret->success ? '1':'0', cmd_ret->output); + result = xsprintf ("%c%s", cmd_ret->success ? '1':'0', cmd_ret->output); else - result = NULL; + result = NULL; if (result) - XChangeProperty (dpy, w, rp_command_result, XA_STRING, - 8, PropModeReplace, (unsigned char *)result, strlen (result)); + XChangeProperty (dpy, w, rp_command_result, XA_STRING, + 8, PropModeReplace, (unsigned char *)result, strlen (result)); else - XChangeProperty (dpy, w, rp_command_result, XA_STRING, - 8, PropModeReplace, NULL, 0); + XChangeProperty (dpy, w, rp_command_result, XA_STRING, + 8, PropModeReplace, NULL, 0); free (result); cmdret_free (cmd_ret); } while (bytes_after > 0); @@ -594,49 +594,49 @@ property_notify (XEvent *ev) } win = find_window (ev->xproperty.window); - + if (win) { if (ev->xproperty.atom == _net_wm_pid) - { - struct rp_child_info *child_info; + { + struct rp_child_info *child_info; - PRINT_DEBUG (("updating _NET_WM_PID\n")); - child_info = get_child_info(win->w); - if (child_info) - { + PRINT_DEBUG (("updating _NET_WM_PID\n")); + child_info = get_child_info(win->w); + if (child_info) + { if (child_info->frame) - { + { PRINT_DEBUG (("frame=%p\n", child_info->frame)); win->intended_frame_number = child_info->frame->number; - } - /* TODO: also adopt group information? */ - } - } else - switch (ev->xproperty.atom) - { - case XA_WM_NAME: - PRINT_DEBUG (("updating window name\n")); - update_window_name (win); - update_window_names (win->scr, defaults.window_fmt); - break; - - case XA_WM_NORMAL_HINTS: - PRINT_DEBUG (("updating window normal hints\n")); - update_normal_hints (win); - if (win->state == NormalState) - maximize (win); - break; - - case XA_WM_TRANSIENT_FOR: - PRINT_DEBUG (("Transient for\n")); - win->transient = XGetTransientForHint (dpy, win->w, &win->transient_for); - break; - - default: - PRINT_DEBUG (("Unhandled property notify event: %ld\n", ev->xproperty.atom)); - break; - } + } + /* TODO: also adopt group information? */ + } + } else + switch (ev->xproperty.atom) + { + case XA_WM_NAME: + PRINT_DEBUG (("updating window name\n")); + update_window_name (win); + update_window_names (win->scr, defaults.window_fmt); + break; + + case XA_WM_NORMAL_HINTS: + PRINT_DEBUG (("updating window normal hints\n")); + update_normal_hints (win); + if (win->state == NormalState) + maximize (win); + break; + + case XA_WM_TRANSIENT_FOR: + PRINT_DEBUG (("Transient for\n")); + win->transient = XGetTransientForHint (dpy, win->w, &win->transient_for); + break; + + default: + PRINT_DEBUG (("Unhandled property notify event: %ld\n", ev->xproperty.atom)); + break; + } } } @@ -652,20 +652,20 @@ colormap_notify (XEvent *ev) XWindowAttributes attr; /* SDL sets the colormap just before destroying the window, so - ignore BadWindow errors. */ + ignore BadWindow errors. */ ignore_badwindow++; XGetWindowAttributes (dpy, win->w, &attr); win->colormap = attr.colormap; if (win == current_window()) - { - XInstallColormap (dpy, win->colormap); - } + { + XInstallColormap (dpy, win->colormap); + } ignore_badwindow--; } -} +} static void focus_change (XFocusChangeEvent *ev) @@ -738,26 +738,26 @@ selection_request (XSelectionRequestEvent *rq) target_list[2] = (CARD32) xa_text; target_list[3] = (CARD32) xa_compound_text; XChangeProperty(dpy, rq->requestor, rq->property, rq->target, - (8 * sizeof(target_list[0])), PropModeReplace, - (unsigned char *)target_list, - (sizeof(target_list) / sizeof(target_list[0]))); + (8 * sizeof(target_list[0])), PropModeReplace, + (unsigned char *)target_list, + (sizeof(target_list) / sizeof(target_list[0]))); ev.xselection.property = rq->property; } else if (rq->target == XA_STRING - || rq->target == xa_compound_text - || rq->target == xa_text) { + || rq->target == xa_compound_text + || rq->target == xa_text) { if (rq->target == XA_STRING) { style = XStringStyle; target = XA_STRING; } else { target = xa_compound_text; style = (rq->target == xa_compound_text) ? XCompoundTextStyle - : XStdICCTextStyle; + : XStdICCTextStyle; } cl[0] = selection.text; XmbTextListToTextProperty(dpy, cl, 1, style, &ct); XChangeProperty(dpy, rq->requestor, rq->property, - target, 8, PropModeReplace, - ct.value, ct.nitems); + target, 8, PropModeReplace, + ct.value, ct.nitems); ev.xselection.property = rq->property; } XSendEvent(dpy, rq->requestor, False, 0, &ev); @@ -875,8 +875,8 @@ handle_signals () /* Only hide the bar if it times out. */ if (defaults.bar_timeout > 0) - for (i=0; i<num_screens; i++) - hide_bar (&screens[i]); + for (i=0; i<num_screens; i++) + hide_bar (&screens[i]); hide_frame_indicator(); alarm_signalled = 0; @@ -889,18 +889,18 @@ handle_signals () /* Report and remove terminated processes. */ list_for_each_safe_entry (cur, iter, tmp, &rp_children, node) - { - if (cur->terminated) - { - /* Report any child that didn't return 0. */ - if (cur->status != 0) - marked_message_printf (0,0, "/bin/sh -c \"%s\" finished (%d)", - cur->cmd, cur->status); - list_del (&cur->node); - free (cur->cmd); - free (cur); - } - } + { + if (cur->terminated) + { + /* Report any child that didn't return 0. */ + if (cur->status != 0) + marked_message_printf (0,0, "/bin/sh -c \"%s\" finished (%d)", + cur->cmd, cur->status); + list_del (&cur->node); + free (cur->cmd); + free (cur); + } + } chld_signalled = 0; } @@ -925,7 +925,7 @@ handle_signals () { PRINT_DEBUG (("Restarting\n")); hook_run (&rp_restart_hook); - clean_up (); + clean_up (); execvp(myargv[0], myargv); } @@ -957,21 +957,20 @@ listen_for_events () FD_ZERO (&fds); /* Loop forever. */ - for (;;) + for (;;) { handle_signals (); /* Handle the next event. */ FD_SET (x_fd, &fds); XFlush(dpy); - + if (QLength (dpy) > 0 - || select(x_fd+1, &fds, NULL, NULL, NULL) == 1) - { - XNextEvent (dpy, &rp_current_event); - delegate_event (&rp_current_event); - XSync(dpy, False); - } + || select(x_fd+1, &fds, NULL, NULL, NULL) == 1) + { + XNextEvent (dpy, &rp_current_event); + delegate_event (&rp_current_event); + XSync(dpy, False); + } } } - diff --git a/src/events.h b/src/events.h index ce1d61b..838249b 100644 --- a/src/events.h +++ b/src/events.h @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, diff --git a/src/format.c b/src/format.c index bbe463c..a70d6fc 100644 --- a/src/format.c +++ b/src/format.c @@ -105,56 +105,56 @@ format_string (char *fmt, rp_window_elem *win_elem, struct sbuf *buffer) for(; *fmt; fmt++) { if (*fmt == '%' && state == STATE_READ) - { - state = STATE_ESCAPE; - continue; - } + { + state = STATE_ESCAPE; + continue; + } if ((state == STATE_ESCAPE || state == STATE_NUMBER) && isdigit(*fmt)) - { - /* Accumulate the width one digit at a time. */ - if (state == STATE_ESCAPE) - width = 0; - width *= 10; - width += *fmt - '0'; - state = STATE_NUMBER; - continue; - } + { + /* Accumulate the width one digit at a time. */ + if (state == STATE_ESCAPE) + width = 0; + width *= 10; + width += *fmt - '0'; + state = STATE_NUMBER; + continue; + } found = 0; if (state == STATE_ESCAPE || state == STATE_NUMBER) - { - if (*fmt == '%') - sbuf_concat (buffer, "%"); - else - { - for (fip = 0; fmt_items[fip].fmt_char; fip++) - { - if (fmt_items[fip].fmt_char == *fmt) - { - sbuf_clear (retbuf); - fmt_items[fip].fmt_fn(win_elem, retbuf); - concat_width (buffer, sbuf_get (retbuf), width); - found = 1; - break; - } - } - if (!found) - { - sbuf_printf_concat (buffer, "%%%c", *fmt); - break; - } - } - state = STATE_READ; - width = -1; - } + { + if (*fmt == '%') + sbuf_concat (buffer, "%"); + else + { + for (fip = 0; fmt_items[fip].fmt_char; fip++) + { + if (fmt_items[fip].fmt_char == *fmt) + { + sbuf_clear (retbuf); + fmt_items[fip].fmt_fn(win_elem, retbuf); + concat_width (buffer, sbuf_get (retbuf), width); + found = 1; + break; + } + } + if (!found) + { + sbuf_printf_concat (buffer, "%%%c", *fmt); + break; + } + } + state = STATE_READ; + width = -1; + } else - { - /* Insert the character. */ - dbuf[0] = *fmt; - dbuf[1] = 0; - sbuf_concat (buffer, dbuf); - } + { + /* Insert the character. */ + dbuf[0] = *fmt; + dbuf[1] = 0; + sbuf_concat (buffer, dbuf); + } } sbuf_free (retbuf); #undef STATE_READ diff --git a/src/frame.c b/src/frame.c index 2d6c4f3..d101588 100644 --- a/src/frame.c +++ b/src/frame.c @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -171,15 +171,15 @@ frame_dump (rp_frame *frame) win = find_window_number (frame->win_number); s = sbuf_new (0); - sbuf_printf (s, "(frame :number %d :x %d :y %d :width %d :height %d :window %ld :last-access %d :dedicated %d)", - frame->number, - frame->x, - frame->y, - frame->width, - frame->height, - win ? win->w:0, - frame->last_access, - frame->dedicated); + sbuf_printf (s, "(frame :number %d :x %d :y %d :width %d :height %d :window %ld :last-access %d :dedicated %d)", + frame->number, + frame->x, + frame->y, + frame->width, + frame->height, + win ? win->w:0, + frame->last_access, + frame->dedicated); /* Extract the string and return it, and don't forget to free s. */ tmp = sbuf_get (s); @@ -203,7 +203,7 @@ frame_read (char *str) init_frame(f); PRINT_DEBUG(("parsing '%s'\n", str)); - + dup = xstrdup(str); tmp = strtok (dup, " "); @@ -220,25 +220,25 @@ frame_read (char *str) while (tmp) { if (!strcmp(tmp, ":number")) - read_slot(f->number); + read_slot(f->number); else if (!strcmp(tmp, ":x")) - read_slot(f->x); + read_slot(f->x); else if (!strcmp(tmp, ":y")) - read_slot(f->y); + read_slot(f->y); else if (!strcmp(tmp, ":width")) - read_slot(f->width); + read_slot(f->width); else if (!strcmp(tmp, ":height")) - read_slot(f->height); + read_slot(f->height); else if (!strcmp(tmp, ":window")) - read_slot(w); + read_slot(w); else if (!strcmp(tmp, ":last-access")) - read_slot(f->last_access); + read_slot(f->last_access); else if (!strcmp(tmp, ":dedicated")) - read_slot(f->dedicated); + read_slot(f->dedicated); else if (!strcmp(tmp, ")")) - break; + break; else - PRINT_ERROR(("Unknown slot %s\n", tmp)); + PRINT_ERROR(("Unknown slot %s\n", tmp)); /* Read the next token. */ tmp = strtok(NULL, " "); } diff --git a/src/frame.h b/src/frame.h index 44c67e3..b228c4d 100644 --- a/src/frame.h +++ b/src/frame.h @@ -6,12 +6,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, diff --git a/src/getopt.c b/src/getopt.c index b81fc0d..d5c40f1 100644 --- a/src/getopt.c +++ b/src/getopt.c @@ -4,7 +4,7 @@ before changing it! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 - Free Software Foundation, Inc. + Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. @@ -70,12 +70,12 @@ /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ +#ifdef __GNU_LIBRARY__ /* Don't include stdlib.h for non-GNU C libraries because some of them contain conflicting prototypes for getopt. */ #include <stdlib.h> #include <unistd.h> -#endif /* GNU C library. */ +#endif /* GNU C library. */ #ifdef VMS #include <unixlib.h> @@ -89,9 +89,9 @@ When compiling libc, the _ macro is predefined. */ #ifdef HAVE_LIBINTL_H # include <libintl.h> -# define _(msgid) gettext (msgid) +# define _(msgid) gettext (msgid) #else -# define _(msgid) (msgid) +# define _(msgid) (msgid) #endif #endif @@ -197,13 +197,13 @@ static enum /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; -#ifdef __GNU_LIBRARY__ +#ifdef __GNU_LIBRARY__ /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work in GCC. */ #include <string.h> -#define my_index strchr +#define my_index strchr #else /* Avoid depending on library functions or files @@ -219,7 +219,7 @@ my_index (str, chr) while (*str) { if (*str == chr) - return (char *) str; + return (char *) str; str++; } return 0; @@ -278,15 +278,15 @@ text_set_element (__libc_subinit, store_args_and_env); # endif /* text_set_element */ # define SWAP_FLAGS(ch1, ch2) \ - if (nonoption_flags_len > 0) \ - { \ - char __tmp = __getopt_nonoption_flags[ch1]; \ - __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ - __getopt_nonoption_flags[ch2] = __tmp; \ + if (nonoption_flags_len > 0) \ + { \ + char __tmp = __getopt_nonoption_flags[ch1]; \ + __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ + __getopt_nonoption_flags[ch2] = __tmp; \ } -#else /* !_LIBC */ +#else /* !_LIBC */ # define SWAP_FLAGS(ch1, ch2) -#endif /* _LIBC */ +#endif /* _LIBC */ /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) @@ -322,57 +322,57 @@ exchange (argv) if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) { /* We must extend the array. The user plays games with us and - presents new arguments. */ + presents new arguments. */ char *new_str = malloc (top + 1); if (new_str == NULL) - nonoption_flags_len = nonoption_flags_max_len = 0; + nonoption_flags_len = nonoption_flags_max_len = 0; else - { - memset (__mempcpy (new_str, __getopt_nonoption_flags, - nonoption_flags_max_len), - '\0', top + 1 - nonoption_flags_max_len); - nonoption_flags_max_len = top + 1; - __getopt_nonoption_flags = new_str; - } + { + memset (__mempcpy (new_str, __getopt_nonoption_flags, + nonoption_flags_max_len), + '\0', top + 1 - nonoption_flags_max_len); + nonoption_flags_max_len = top + 1; + __getopt_nonoption_flags = new_str; + } } #endif while (top > middle && middle > bottom) { if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } + { + /* Bottom segment is the short one. */ + int len = middle - bottom; + register int i; + + /* Swap it with the top part of the top segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[top - (middle - bottom) + i]; + argv[top - (middle - bottom) + i] = tem; + SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); + } + /* Exclude the moved bottom segment from further swapping. */ + top -= len; + } else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - SWAP_FLAGS (bottom + i, middle + i); - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } + { + /* Top segment is the short one. */ + int len = top - middle; + register int i; + + /* Swap it with the bottom part of the bottom segment. */ + for (i = 0; i < len; i++) + { + tem = argv[bottom + i]; + argv[bottom + i] = argv[middle + i]; + argv[middle + i] = tem; + SWAP_FLAGS (bottom + i, middle + i); + } + /* Exclude the moved top segment from further swapping. */ + bottom += len; + } } /* Update records for the slots the non-options now occupy. */ @@ -424,25 +424,25 @@ _getopt_initialize (argc, argv, optstring) && argc == original_argc && argv == original_argv) { if (nonoption_flags_max_len == 0) - { - if (__getopt_nonoption_flags == NULL - || __getopt_nonoption_flags[0] == '\0') - nonoption_flags_max_len = -1; - else - { - const char *orig_str = __getopt_nonoption_flags; - int len = nonoption_flags_max_len = strlen (orig_str); - if (nonoption_flags_max_len < argc) - nonoption_flags_max_len = argc; - __getopt_nonoption_flags = - (char *) malloc (nonoption_flags_max_len); - if (__getopt_nonoption_flags == NULL) - nonoption_flags_max_len = -1; - else - memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), - '\0', nonoption_flags_max_len - len); - } - } + { + if (__getopt_nonoption_flags == NULL + || __getopt_nonoption_flags[0] == '\0') + nonoption_flags_max_len = -1; + else + { + const char *orig_str = __getopt_nonoption_flags; + int len = nonoption_flags_max_len = strlen (orig_str); + if (nonoption_flags_max_len < argc) + nonoption_flags_max_len = argc; + __getopt_nonoption_flags = + (char *) malloc (nonoption_flags_max_len); + if (__getopt_nonoption_flags == NULL) + nonoption_flags_max_len = -1; + else + memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), + '\0', nonoption_flags_max_len - len); + } + } nonoption_flags_len = nonoption_flags_max_len; } else @@ -522,7 +522,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) if (optind == 0 || !__getopt_initialized) { if (optind == 0) - optind = 1; /* Don't scan ARGV[0], the program name. */ + optind = 1; /* Don't scan ARGV[0], the program name. */ optstring = _getopt_initialize (argc, argv, optstring); __getopt_initialized = 1; } @@ -532,9 +532,9 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #ifdef _LIBC -#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ - || (optind < nonoption_flags_len \ - && __getopt_nonoption_flags[optind] == '1')) +#define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ + || (optind < nonoption_flags_len \ + && __getopt_nonoption_flags[optind] == '1')) #else #define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') #endif @@ -544,76 +544,76 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been - moved back by the user (who may also have changed the arguments). */ + moved back by the user (who may also have changed the arguments). */ if (last_nonopt > optind) - last_nonopt = optind; + last_nonopt = optind; if (first_nonopt > optind) - first_nonopt = optind; + first_nonopt = optind; if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ + { + /* If we have just processed some options following some non-options, + exchange them so that the options come first. */ - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; + if (first_nonopt != last_nonopt && last_nonopt != optind) + exchange ((char **) argv); + else if (last_nonopt != optind) + first_nonopt = optind; - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ + /* Skip any additional non-options + and extend the range of non-options previously skipped. */ - while (optind < argc && NONOPTION_P) - optind++; - last_nonopt = optind; - } + while (optind < argc && NONOPTION_P) + optind++; + last_nonopt = optind; + } /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ + Skip it like a null option, + then exchange with previous non-options as if it were an option, + then skip everything else like a non-option. */ if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; + { + optind++; - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; + if (first_nonopt != last_nonopt && last_nonopt != optind) + exchange ((char **) argv); + else if (first_nonopt == last_nonopt) + first_nonopt = optind; + last_nonopt = argc; - optind = argc; - } + optind = argc; + } /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ + and back over any non-options that we skipped and permuted. */ if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return -1; - } + { + /* Set the next-arg-index to point at the non-options + that we previously skipped, so the caller will digest them. */ + if (first_nonopt != last_nonopt) + optind = first_nonopt; + return -1; + } /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ + either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) - { - if (ordering == REQUIRE_ORDER) - return -1; - optarg = argv[optind++]; - return 1; - } + { + if (ordering == REQUIRE_ORDER) + return -1; + optarg = argv[optind++]; + return 1; + } /* We have found another option-ARGV-element. - Skip the initial punctuation. */ + Skip the initial punctuation. */ nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); + + (longopts != NULL && argv[optind][1] == '-')); } /* Decode the current option-ARGV-element. */ @@ -633,7 +633,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) if (longopts != NULL && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) + || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) { char *nameend; const struct option *p; @@ -644,124 +644,124 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int option_index; for (nameend = nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; + /* Do nothing. */ ; /* Test all long options for either exact match - or abbreviated matches. */ + or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) - == (unsigned int) strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } + if (!strncmp (p->name, nextchar, nameend - nextchar)) + { + if ((unsigned int) (nameend - nextchar) + == (unsigned int) strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else + /* Second or later nonexact match found. */ + ambig = 1; + } if (ambig && !exact) - { - if (opterr) - fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - optopt = 0; - return '?'; - } + { + if (opterr) + fprintf (stderr, _("%s: option `%s' is ambiguous\n"), + argv[0], argv[optind]); + nextchar += strlen (nextchar); + optind++; + optopt = 0; + return '?'; + } if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - { - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - _("%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - _("%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], pfound->name); - } - nextchar += strlen (nextchar); - - optopt = pfound->val; - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - optopt = pfound->val; - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } + { + option_index = indfound; + optind++; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + optarg = nameend + 1; + else + { + if (opterr) + { + if (argv[optind - 1][1] == '-') + /* --option */ + fprintf (stderr, + _("%s: option `--%s' doesn't allow an argument\n"), + argv[0], pfound->name); + else + /* +option or -option */ + fprintf (stderr, + _("%s: option `%c%s' doesn't allow an argument\n"), + argv[0], argv[optind - 1][0], pfound->name); + } + nextchar += strlen (nextchar); + + optopt = pfound->val; + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (optind < argc) + optarg = argv[optind++]; + else + { + if (opterr) + fprintf (stderr, + _("%s: option `%s' requires an argument\n"), + argv[0], argv[optind - 1]); + nextchar += strlen (nextchar); + optopt = pfound->val; + return optstring[0] == ':' ? ':' : '?'; + } + } + nextchar += strlen (nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ + or the option starts with '--' or is not a valid short + option, then it's an error. + Otherwise interpret it as a short option. */ if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) - { - if (opterr) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - optopt = 0; - return '?'; - } + || my_index (optstring, *nextchar) == NULL) + { + if (opterr) + { + if (argv[optind][1] == '-') + /* --option */ + fprintf (stderr, _("%s: unrecognized option `--%s'\n"), + argv[0], nextchar); + else + /* +option or -option */ + fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), + argv[0], argv[optind][0], nextchar); + } + nextchar = (char *) ""; + optind++; + optopt = 0; + return '?'; + } } /* Look at and handle the next short option-character. */ @@ -776,188 +776,188 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only) if (temp == NULL || c == ':') { - if (opterr) - { - if (posixly_correct) - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: illegal option -- %c\n"), - argv[0], c); - else - fprintf (stderr, _("%s: invalid option -- %c\n"), - argv[0], c); - } - optopt = c; - return '?'; + if (opterr) + { + if (posixly_correct) + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, _("%s: illegal option -- %c\n"), + argv[0], c); + else + fprintf (stderr, _("%s: invalid option -- %c\n"), + argv[0], c); + } + optopt = c; + return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ if (temp[0] == 'W' && temp[1] == ';') { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = 0; - int option_index; - - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - return c; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - - /* optarg is now the argument, see if it's in the - table of longopts. */ - - for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - if (ambig && !exact) - { - if (opterr) - fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - return '?'; - } - if (pfound != NULL) - { - option_index = indfound; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (opterr) - fprintf (stderr, _("\ + char *nameend; + const struct option *p; + const struct option *pfound = NULL; + int exact = 0; + int ambig = 0; + int indfound = 0; + int option_index; + + /* This is an option that requires an argument. */ + if (*nextchar != '\0') + { + optarg = nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + optind++; + } + else if (optind == argc) + { + if (opterr) + { + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, _("%s: option requires an argument -- %c\n"), + argv[0], c); + } + optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + return c; + } + else + /* We already incremented `optind' once; + increment it again when taking next ARGV-elt as argument. */ + optarg = argv[optind++]; + + /* optarg is now the argument, see if it's in the + table of longopts. */ + + for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) + /* Do nothing. */ ; + + /* Test all long options for either exact match + or abbreviated matches. */ + for (p = longopts, option_index = 0; p->name; p++, option_index++) + if (!strncmp (p->name, nextchar, nameend - nextchar)) + { + if ((unsigned int) (nameend - nextchar) == strlen (p->name)) + { + /* Exact match found. */ + pfound = p; + indfound = option_index; + exact = 1; + break; + } + else if (pfound == NULL) + { + /* First nonexact match found. */ + pfound = p; + indfound = option_index; + } + else + /* Second or later nonexact match found. */ + ambig = 1; + } + if (ambig && !exact) + { + if (opterr) + fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), + argv[0], argv[optind]); + nextchar += strlen (nextchar); + optind++; + return '?'; + } + if (pfound != NULL) + { + option_index = indfound; + if (*nameend) + { + /* Don't test has_arg with >, because some C compilers don't + allow it to be used on enums. */ + if (pfound->has_arg) + optarg = nameend + 1; + else + { + if (opterr) + fprintf (stderr, _("\ %s: option `-W %s' doesn't allow an argument\n"), - argv[0], pfound->name); - - nextchar += strlen (nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (opterr) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - nextchar = NULL; - return 'W'; /* Let the application handle it. */ + argv[0], pfound->name); + + nextchar += strlen (nextchar); + return '?'; + } + } + else if (pfound->has_arg == 1) + { + if (optind < argc) + optarg = argv[optind++]; + else + { + if (opterr) + fprintf (stderr, + _("%s: option `%s' requires an argument\n"), + argv[0], argv[optind - 1]); + nextchar += strlen (nextchar); + return optstring[0] == ':' ? ':' : '?'; + } + } + nextchar += strlen (nextchar); + if (longind != NULL) + *longind = option_index; + if (pfound->flag) + { + *(pfound->flag) = pfound->val; + return 0; + } + return pfound->val; + } + nextchar = NULL; + return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = NULL; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (opterr) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, - _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } + if (temp[2] == ':') + { + /* This is an option that accepts an argument optionally. */ + if (*nextchar != '\0') + { + optarg = nextchar; + optind++; + } + else + optarg = NULL; + nextchar = NULL; + } + else + { + /* This is an option that requires an argument. */ + if (*nextchar != '\0') + { + optarg = nextchar; + /* If we end this ARGV-element by taking the rest as an arg, + we must advance to the next element now. */ + optind++; + } + else if (optind == argc) + { + if (opterr) + { + /* 1003.2 specifies the format of this message. */ + fprintf (stderr, + _("%s: option requires an argument -- %c\n"), + argv[0], c); + } + optopt = c; + if (optstring[0] == ':') + c = ':'; + else + c = '?'; + } + else + /* We already incremented `optind' once; + increment it again when taking next ARGV-elt as argument. */ + optarg = argv[optind++]; + nextchar = NULL; + } } return c; } @@ -970,12 +970,12 @@ getopt (argc, argv, optstring) const char *optstring; { return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); + (const struct option *) 0, + (int *) 0, + 0); } -#endif /* Not ELIDE_CODE. */ +#endif /* Not ELIDE_CODE. */ #ifdef TEST @@ -996,51 +996,51 @@ main (argc, argv) c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) - break; + break; switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value `%s'\n", optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) - printf ("%s ", argv[optind++]); + printf ("%s ", argv[optind++]); printf ("\n"); } diff --git a/src/getopt.h b/src/getopt.h index c4adc30..d0ae1c6 100644 --- a/src/getopt.h +++ b/src/getopt.h @@ -22,7 +22,7 @@ #ifndef _GETOPT_H #define _GETOPT_H 1 -#ifdef __cplusplus +#ifdef __cplusplus extern "C" { #endif @@ -63,9 +63,9 @@ extern int optopt; zero. The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. + no_argument (or 0) if the option does not take an argument, + required_argument (or 1) if the option requires an argument, + optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but @@ -94,9 +94,9 @@ struct option /* Names for the values of the `has_arg' field of `struct option'. */ -#define no_argument 0 -#define required_argument 1 -#define optional_argument 2 +#define no_argument 0 +#define required_argument 1 +#define optional_argument 2 #if defined (__STDC__) && __STDC__ #ifdef __GNU_LIBRARY__ @@ -108,16 +108,16 @@ extern int getopt (int argc, char *const *argv, const char *shortopts); extern int getopt (); #endif /* __GNU_LIBRARY__ */ extern int getopt_long (int argc, char *const *argv, const char *shortopts, - const struct option *longopts, int *longind); + const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind); + const char *shortopts, + const struct option *longopts, int *longind); /* Internal only. Users should not call this directly. */ extern int _getopt_internal (int argc, char *const *argv, - const char *shortopts, - const struct option *longopts, int *longind, - int long_only); + const char *shortopts, + const struct option *longopts, int *longind, + int long_only); #else /* not __STDC__ */ extern int getopt (); extern int getopt_long (); @@ -126,7 +126,7 @@ extern int getopt_long_only (); extern int _getopt_internal (); #endif /* __STDC__ */ -#ifdef __cplusplus +#ifdef __cplusplus } #endif diff --git a/src/getopt1.c b/src/getopt1.c index d872f65..5c1fd42 100644 --- a/src/getopt1.c +++ b/src/getopt1.c @@ -63,7 +63,7 @@ #include <stdlib.h> #endif -#ifndef NULL +#ifndef NULL #define NULL 0 #endif @@ -95,7 +95,7 @@ getopt_long_only (argc, argv, options, long_options, opt_index) } -#endif /* Not ELIDE_CODE. */ +#endif /* Not ELIDE_CODE. */ #ifdef TEST @@ -115,74 +115,74 @@ main (argc, argv) int option_index = 0; static struct option long_options[] = { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} + {"add", 1, 0, 0}, + {"append", 0, 0, 0}, + {"delete", 1, 0, 0}, + {"verbose", 0, 0, 0}, + {"create", 0, 0, 0}, + {"file", 1, 0, 0}, + {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); + long_options, &option_index); if (c == -1) - break; + break; switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case 'd': - printf ("option d with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } + { + case 0: + printf ("option %s", long_options[option_index].name); + if (optarg) + printf (" with arg %s", optarg); + printf ("\n"); + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value `%s'\n", optarg); + break; + + case 'd': + printf ("option d with value `%s'\n", optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) - printf ("%s ", argv[optind++]); + printf ("%s ", argv[optind++]); printf ("\n"); } diff --git a/src/globals.c b/src/globals.c index b7306a6..e9755dd 100644 --- a/src/globals.c +++ b/src/globals.c @@ -20,7 +20,7 @@ #include "ratpoison.h" -#include <unistd.h> /* for usleep(). */ +#include <unistd.h> /* for usleep(). */ int alarm_signalled = 0; int kill_signalled = 0; @@ -28,7 +28,7 @@ int hup_signalled = 0; int chld_signalled = 0; int rat_x; int rat_y; -int rat_visible = 1; /* rat is visible by default */ +int rat_visible = 1; /* rat is visible by default */ char *rp_exec_newwm = NULL; @@ -89,7 +89,7 @@ x_export_selection () if (XGetSelectionOwner(dpy, XA_PRIMARY) != screens[0].key_window) PRINT_ERROR(("can't get primary selection")); XChangeProperty(dpy, screens[0].root, XA_CUT_BUFFER0, XA_STRING, 8, - PropModeReplace, selection.text, selection.len); + PropModeReplace, selection.text, selection.len); } void @@ -119,7 +119,7 @@ set_selection (char *txt) free(selection.text); selection.text = xstrdup (txt); selection.len = strlen (txt); - + x_export_selection(); } @@ -155,9 +155,9 @@ get_primary_selection() for (nread = 0, bytes_after = 1; bytes_after > 0; nread += ct.nitems) { if ((XGetWindowProperty(dpy, current_screen()->input_window, rp_selection, (nread / 4), 4096, - True, AnyPropertyType, &ct.encoding, - &ct.format, &ct.nitems, &bytes_after, - &ct.value) != Success)) { + True, AnyPropertyType, &ct.encoding, + &ct.format, &ct.nitems, &bytes_after, + &ct.value) != Success)) { XFree(ct.value); sbuf_free(s); return NULL; @@ -194,24 +194,24 @@ get_selection () /* This seems like a hack. */ while (!XCheckTypedWindowEvent (dpy, s->input_window, SelectionNotify, &ev)) - { - if (loops == 0) - { - PRINT_ERROR (("selection request timed out\n")); - return NULL; - } - usleep (10000); - loops--; - } + { + if (loops == 0) + { + PRINT_ERROR (("selection request timed out\n")); + return NULL; + } + usleep (10000); + loops--; + } PRINT_DEBUG (("SelectionNotify event\n")); property = ev.xselection.property; if (property != None) - return get_primary_selection (); + return get_primary_selection (); else - return get_cut_buffer (); + return get_cut_buffer (); } } @@ -225,30 +225,30 @@ LIST_HEAD (rp_quit_hook); LIST_HEAD (rp_restart_hook); LIST_HEAD (rp_delete_window_hook); -struct rp_hook_db_entry rp_hook_db[]= - {{"key", &rp_key_hook}, - {"switchwin", &rp_switch_win_hook}, - {"switchframe", &rp_switch_frame_hook}, - {"switchgroup", &rp_switch_group_hook}, - {"deletewindow", &rp_delete_window_hook}, - {"quit", &rp_quit_hook}, - {"restart", &rp_restart_hook}, +struct rp_hook_db_entry rp_hook_db[]= + {{"key", &rp_key_hook}, + {"switchwin", &rp_switch_win_hook}, + {"switchframe", &rp_switch_frame_hook}, + {"switchgroup", &rp_switch_group_hook}, + {"deletewindow", &rp_delete_window_hook}, + {"quit", &rp_quit_hook}, + {"restart", &rp_restart_hook}, {NULL, NULL}}; void set_rp_window_focus (rp_window *win) { PRINT_DEBUG (("Giving focus to '%s'\n", window_name (win))); - XSetInputFocus (dpy, win->w, - RevertToPointerRoot, CurrentTime); + XSetInputFocus (dpy, win->w, + RevertToPointerRoot, CurrentTime); } void set_window_focus (Window window) { PRINT_DEBUG (("Giving focus to %ld\n", window)); - XSetInputFocus (dpy, window, - RevertToPointerRoot, CurrentTime); + XSetInputFocus (dpy, window, + RevertToPointerRoot, CurrentTime); } LIST_HEAD (rp_frame_undos); diff --git a/src/globals.h b/src/globals.h index 080d31d..59561dc 100644 --- a/src/globals.h +++ b/src/globals.h @@ -37,17 +37,17 @@ #define EMPTY -1 /* Possible values for defaults.window_list_style */ -#define STYLE_ROW 0 +#define STYLE_ROW 0 #define STYLE_COLUMN 1 /* Possible values for defaults.win_name */ -#define WIN_NAME_TITLE 0 -#define WIN_NAME_RES_CLASS 1 -#define WIN_NAME_RES_NAME 2 +#define WIN_NAME_TITLE 0 +#define WIN_NAME_RES_CLASS 1 +#define WIN_NAME_RES_NAME 2 /* Possible directions to traverse the completions list. */ -#define COMPLETION_NEXT 0 -#define COMPLETION_PREVIOUS 1 +#define COMPLETION_NEXT 0 +#define COMPLETION_PREVIOUS 1 /* Error codes for group_delete_group() */ #define GROUP_DELETE_GROUP_OK 0 diff --git a/src/group.c b/src/group.c index 759f5c9..5f2a3fd 100644 --- a/src/group.c +++ b/src/group.c @@ -66,7 +66,7 @@ group_new (int number, char *name) g->numset = numset_new(); INIT_LIST_HEAD (&g->unmapped_windows); INIT_LIST_HEAD (&g->mapped_windows); - + return g; } @@ -111,10 +111,10 @@ groups_find_group_by_name (char *s) list_for_each_entry (cur, &rp_groups, node) { if (cur->name) - { - if (str_comp (s, cur->name, strlen (s))) - return cur; - } + { + if (str_comp (s, cur->name, strlen (s))) + return cur; + } } return NULL; @@ -128,7 +128,7 @@ groups_find_group_by_number (int n) list_for_each_entry (cur, &rp_groups, node) { if (cur->number == n) - return cur; + return cur; } return NULL; @@ -145,7 +145,7 @@ groups_find_group_by_window (rp_window *win) { elem = group_find_window (&cur->mapped_windows, win); if (elem) - return cur; + return cur; } return NULL; @@ -161,7 +161,7 @@ groups_find_group_by_group (rp_group *g) list_for_each_entry (cur, &rp_groups, node) { if (cur == g) - return cur; + return cur; } return NULL; @@ -175,7 +175,7 @@ group_find_window (struct list_head *list, rp_window *win) list_for_each_entry (cur, list, node) { if (cur->win == win) - return cur; + return cur; } return NULL; @@ -189,11 +189,11 @@ group_find_window_by_number (rp_group *g, int num) list_for_each_entry (cur, &g->mapped_windows, node) { if (cur->number == num) - return cur; + return cur; } return NULL; - + } @@ -207,10 +207,10 @@ group_insert_window (struct list_head *h, rp_window_elem *w) list_for_each_entry (cur, h, node) { if (cur->number > w->number) - { - list_add_tail (&w->node, &cur->node); - return; - } + { + list_add_tail (&w->node, &cur->node); + return; + } } list_add_tail(&w->node, h); @@ -224,7 +224,7 @@ group_in_list (struct list_head *h, rp_window_elem *w) list_for_each_entry (cur, h, node) { if (cur == w) - return 1; + return 1; } return 0; @@ -321,10 +321,10 @@ group_del_window (rp_group *g, rp_window *win) list_for_each_safe_entry (cur, iter, tmp, &g->unmapped_windows, node) { if (cur->win == win) - { - list_del (&cur->node); - free (cur); - } + { + list_del (&cur->node); + free (cur); + } } /* Make sure the window isn't in the list of mapped windows. This @@ -333,7 +333,7 @@ group_del_window (rp_group *g, rp_window *win) list_for_each_entry (cur, &g->mapped_windows, node) { if (cur->win == win) - PRINT_DEBUG (("This window wasn't removed from the mapped window list.\n")); + PRINT_DEBUG (("This window wasn't removed from the mapped window list.\n")); } #endif } @@ -359,19 +359,19 @@ group_last_window (rp_group *g, rp_screen *s) list_for_each_entry (cur, &g->mapped_windows, node) { - if (cur->win->last_access >= last_access - && cur->win != current_window() - && !find_windows_frame (cur->win) - && (cur->win->scr == s || rp_have_xinerama)) - { - most_recent = cur; - last_access = cur->win->last_access; - } + if (cur->win->last_access >= last_access + && cur->win != current_window() + && !find_windows_frame (cur->win) + && (cur->win->scr == s || rp_have_xinerama)) + { + most_recent = cur; + last_access = cur->win->last_access; + } } if (most_recent) return most_recent->win; - + return NULL; } @@ -381,7 +381,7 @@ group_next_window (rp_group *g, rp_window *win) rp_window_elem *cur, *we; /* If there is no window, then get the last accessed one. */ - if (win == NULL) + if (win == NULL) return group_last_window (g, current_screen()); /* If we can't find the window, then it's in a different group, so @@ -392,14 +392,14 @@ group_next_window (rp_group *g, rp_window *win) /* The window is in this group, so find the next one in the list that isn't already displayed. */ - for (cur = list_next_entry (we, &g->mapped_windows, node); - cur != we; + for (cur = list_next_entry (we, &g->mapped_windows, node); + cur != we; cur = list_next_entry (cur, &g->mapped_windows, node)) { if (!find_windows_frame (cur->win) && (cur->win->scr == win->scr || rp_have_xinerama)) - { - return cur->win; - } + { + return cur->win; + } } return NULL; @@ -411,7 +411,7 @@ group_prev_window (rp_group *g, rp_window *win) rp_window_elem *cur, *we; /* If there is no window, then get the last accessed one. */ - if (win == NULL) + if (win == NULL) return group_last_window (g, current_screen()); /* If we can't find the window, then it's in a different group, so @@ -422,14 +422,14 @@ group_prev_window (rp_group *g, rp_window *win) /* The window is in this group, so find the previous one in the list that isn't already displayed. */ - for (cur = list_prev_entry (we, &g->mapped_windows, node); - cur != we; + for (cur = list_prev_entry (we, &g->mapped_windows, node); + cur != we; cur = list_prev_entry (cur, &g->mapped_windows, node)) { if (!find_windows_frame (cur->win) && (cur->win->scr == win->scr || rp_have_xinerama)) - { - return cur->win; - } + { + return cur->win; + } } return NULL; @@ -449,10 +449,10 @@ group_move_window (rp_group *to, rp_window *win) { we = group_find_window (&cur->mapped_windows, win); if (we) - { - from = cur; - break; - } + { + from = cur; + break; + } } if (we == NULL || from == NULL) @@ -505,7 +505,7 @@ set_current_group (rp_group *g) return; rp_current_group = g; - + /* Call the switch group hook. */ hook_run (&rp_switch_group_hook); } @@ -513,26 +513,26 @@ set_current_group (rp_group *g) int group_delete_group (rp_group *g) { - if (list_empty (&(g->mapped_windows)) + if (list_empty (&(g->mapped_windows)) && list_empty (&(g->unmapped_windows))) { /* we can safely delete the group */ - if (g == rp_current_group) - { - rp_current_group = group_next_group (); - } + if (g == rp_current_group) + { + rp_current_group = group_next_group (); + } list_del (&(g->node)); group_free (g); if (list_empty (&rp_groups)) - { - /* Create the first group in the list (We always need at least - one). */ - g = group_new (numset_request (group_numset), DEFAULT_GROUP_NAME); - rp_current_group = g; - list_add_tail (&g->node, &rp_groups); - } + { + /* Create the first group in the list (We always need at least + one). */ + g = group_new (numset_request (group_numset), DEFAULT_GROUP_NAME); + rp_current_group = g; + list_add_tail (&g->node, &rp_groups); + } return GROUP_DELETE_GROUP_OK; } else @@ -552,20 +552,20 @@ group_last_window_by_class (rp_group *g, char *class) list_for_each_entry (cur, &g->mapped_windows, node) { - if (cur->win->last_access >= last_access - && cur->win != current_window() - && !find_windows_frame (cur->win) - && (cur->win->scr == s || rp_have_xinerama) - && strcmp(class, cur->win->res_class)) - { - most_recent = cur; - last_access = cur->win->last_access; - } + if (cur->win->last_access >= last_access + && cur->win != current_window() + && !find_windows_frame (cur->win) + && (cur->win->scr == s || rp_have_xinerama) + && strcmp(class, cur->win->res_class)) + { + most_recent = cur; + last_access = cur->win->last_access; + } } if (most_recent) return most_recent->win; - + return NULL; } @@ -580,19 +580,19 @@ group_last_window_by_class_complement (rp_group *g, char *class) list_for_each_entry (cur, &g->mapped_windows, node) { - if (cur->win->last_access >= last_access - && cur->win != current_window() - && !find_windows_frame (cur->win) - && (cur->win->scr == s || rp_have_xinerama) - && !strcmp(class, cur->win->res_class)) - { - most_recent = cur; - last_access = cur->win->last_access; - } + if (cur->win->last_access >= last_access + && cur->win != current_window() + && !find_windows_frame (cur->win) + && (cur->win->scr == s || rp_have_xinerama) + && !strcmp(class, cur->win->res_class)) + { + most_recent = cur; + last_access = cur->win->last_access; + } } if (most_recent) return most_recent->win; - + return NULL; } diff --git a/src/history.c b/src/history.c index 4f283f1..e8e513a 100644 --- a/src/history.c +++ b/src/history.c @@ -85,7 +85,7 @@ void history_add (char *item) { HIST_ENTRY *h = history_get (history_length); - + if (item == NULL || *item == '\0' || isspace (*item) || (h != NULL && !strcmp (h->line, item))) return; @@ -6,12 +6,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -34,7 +34,7 @@ hook_add (struct list_head *hook, struct sbuf *s) list_for_each_entry (cur, hook, node) { if (!strcmp (sbuf_get (cur), sbuf_get (s))) - return; + return; } /* It's not in the list, so add it. */ @@ -51,10 +51,10 @@ hook_remove (struct list_head *hook, struct sbuf *s) list_for_each_safe_entry (cur, iter, tmp, hook, node) { if (!strcmp (sbuf_get (cur), sbuf_get (s))) - { - list_del (&cur->node); - sbuf_free (cur); - } + { + list_del (&cur->node); + sbuf_free (cur); + } } } @@ -77,10 +77,10 @@ hook_lookup (char *s) for (entry = rp_hook_db; entry->name; entry++) { if (!strcmp (s, entry->name)) - { - return entry->hook; - } + { + return entry->hook; + } } - + return NULL; } @@ -6,12 +6,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, diff --git a/src/input.c b/src/input.c index df94d84..f53caff 100644 --- a/src/input.c +++ b/src/input.c @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -78,9 +78,9 @@ rp_mask_to_x11_mask (unsigned int mask) void update_modifier_map () { - unsigned int modmasks[] = + unsigned int modmasks[] = { Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, Mod5Mask }; - int row, col; /* The row and column in the modifier table. */ + int row, col; /* The row and column in the modifier table. */ XModifierKeymap *mods; rp_modifier_info.meta_mod_mask = 0; @@ -95,56 +95,56 @@ update_modifier_map () for (row=3; row < 8; row++) for (col=0; col < mods->max_keypermod; col++) { - KeyCode code = mods->modifiermap[(row * mods->max_keypermod) + col]; - - if (code == 0) continue; - - switch (XKeycodeToKeysym(dpy, code, 0)) - { - case XK_Meta_L: - case XK_Meta_R: - rp_modifier_info.meta_mod_mask |= modmasks[row - 3]; - PRINT_DEBUG (("Found Meta on %d\n", - rp_modifier_info.meta_mod_mask)); - break; - - case XK_Alt_L: - case XK_Alt_R: - rp_modifier_info.alt_mod_mask |= modmasks[row - 3]; - PRINT_DEBUG (("Found Alt on %d\n", - rp_modifier_info.alt_mod_mask)); - break; - - case XK_Super_L: - case XK_Super_R: - rp_modifier_info.super_mod_mask |= modmasks[row - 3]; - PRINT_DEBUG (("Found Super on %d\n", - rp_modifier_info.super_mod_mask)); - break; - - case XK_Hyper_L: - case XK_Hyper_R: - rp_modifier_info.hyper_mod_mask |= modmasks[row - 3]; - PRINT_DEBUG (("Found Hyper on %d\n", - rp_modifier_info.hyper_mod_mask)); - break; - - case XK_Num_Lock: - rp_modifier_info.num_lock_mask |= modmasks[row - 3]; - PRINT_DEBUG (("Found NumLock on %d\n", - rp_modifier_info.num_lock_mask)); - break; - - case XK_Scroll_Lock: - rp_modifier_info.scroll_lock_mask |= modmasks[row - 3]; - PRINT_DEBUG (("Found ScrollLock on %d\n", - rp_modifier_info.scroll_lock_mask)); - break; - default: - break; - } + KeyCode code = mods->modifiermap[(row * mods->max_keypermod) + col]; + + if (code == 0) continue; + + switch (XKeycodeToKeysym(dpy, code, 0)) + { + case XK_Meta_L: + case XK_Meta_R: + rp_modifier_info.meta_mod_mask |= modmasks[row - 3]; + PRINT_DEBUG (("Found Meta on %d\n", + rp_modifier_info.meta_mod_mask)); + break; + + case XK_Alt_L: + case XK_Alt_R: + rp_modifier_info.alt_mod_mask |= modmasks[row - 3]; + PRINT_DEBUG (("Found Alt on %d\n", + rp_modifier_info.alt_mod_mask)); + break; + + case XK_Super_L: + case XK_Super_R: + rp_modifier_info.super_mod_mask |= modmasks[row - 3]; + PRINT_DEBUG (("Found Super on %d\n", + rp_modifier_info.super_mod_mask)); + break; + + case XK_Hyper_L: + case XK_Hyper_R: + rp_modifier_info.hyper_mod_mask |= modmasks[row - 3]; + PRINT_DEBUG (("Found Hyper on %d\n", + rp_modifier_info.hyper_mod_mask)); + break; + + case XK_Num_Lock: + rp_modifier_info.num_lock_mask |= modmasks[row - 3]; + PRINT_DEBUG (("Found NumLock on %d\n", + rp_modifier_info.num_lock_mask)); + break; + + case XK_Scroll_Lock: + rp_modifier_info.scroll_lock_mask |= modmasks[row - 3]; + PRINT_DEBUG (("Found ScrollLock on %d\n", + rp_modifier_info.scroll_lock_mask)); + break; + default: + break; + } } - + /* Stolen from Emacs 21.0.90 - xterm.c */ /* If we couldn't find any meta keys, accept any alt keys as meta keys. */ if (! rp_modifier_info.meta_mod_mask) @@ -189,7 +189,7 @@ grab_key (KeySym keysym, unsigned int modifiers, Window grab_window) int i; KeyCode keycode; unsigned int mod; - + /* Convert to a modifier mask that X Windows will understand. */ modifiers = rp_mask_to_x11_mask (modifiers); keysym_to_keycode_mod (keysym, &keycode, &mod); @@ -211,7 +211,7 @@ grab_key (KeySym keysym, unsigned int modifiers, Window grab_window) for (i=0; i<8; i++) { XGrabKey(dpy, keycode, modifiers | mod_list[i], - grab_window, True, GrabModeAsync, GrabModeAsync); + grab_window, True, GrabModeAsync, GrabModeAsync); } } @@ -232,7 +232,7 @@ keysym_to_string (KeySym keysym, unsigned int modifier) if (modifier & RP_ALT_MASK) sbuf_concat (name, "A-"); if (modifier & RP_HYPER_MASK) sbuf_concat (name, "H-"); if (modifier & RP_SUPER_MASK) sbuf_concat (name, "s-"); - + /* On solaris machines (perhaps other machines as well) this call can return NULL. In this case use the "NULL" string. */ tmp = XKeysymToString (keysym); @@ -250,7 +250,7 @@ keysym_to_string (KeySym keysym, unsigned int modifier) /* Cooks a keycode + modifier into a keysym + modifier. This should be used anytime meaningful key information is to be extracted from a - KeyPress or KeyRelease event. + KeyPress or KeyRelease event. returns the number of bytes in keysym_name. If you are not interested in the keysym name pass in NULL for keysym_name and 0 @@ -261,12 +261,12 @@ cook_keycode (XKeyEvent *ev, KeySym *keysym, unsigned int *mod, char *keysym_nam int nbytes; int shift = 0; KeySym lower, upper; - + if (ignore_bad_mods) { ev->state &= ~(LockMask - | rp_modifier_info.num_lock_mask - | rp_modifier_info.scroll_lock_mask); + | rp_modifier_info.num_lock_mask + | rp_modifier_info.scroll_lock_mask); } if (len > 0) len--; @@ -283,18 +283,18 @@ cook_keycode (XKeyEvent *ev, KeySym *keysym, unsigned int *mod, char *keysym_nam lower = XKeycodeToKeysym (dpy, ev->keycode, 0); upper = XKeycodeToKeysym (dpy, ev->keycode, 1); /* If the keysym isn't affected by the shift key, then keep the - shift modifier. */ + shift modifier. */ if (lower == upper) - shift = ShiftMask; + shift = ShiftMask; } *mod = ev->state; *mod &= (rp_modifier_info.meta_mod_mask - | rp_modifier_info.alt_mod_mask - | rp_modifier_info.hyper_mod_mask - | rp_modifier_info.super_mod_mask - | ControlMask - | shift); + | rp_modifier_info.alt_mod_mask + | rp_modifier_info.hyper_mod_mask + | rp_modifier_info.super_mod_mask + | ControlMask + | shift); return nbytes; } @@ -319,9 +319,9 @@ read_key (KeySym *keysym, unsigned int *modifiers, char *keysym_name, int len) static void update_input_window (rp_screen *s, rp_input_line *line) { - int prompt_width = XTextWidth (defaults.font, line->prompt, strlen (line->prompt)); - int input_width = XTextWidth (defaults.font, line->buffer, line->length); - int total_width; + int prompt_width = XTextWidth (defaults.font, line->prompt, strlen (line->prompt)); + int input_width = XTextWidth (defaults.font, line->buffer, line->length); + int total_width; GC lgc; XGCValues gv; int height; @@ -334,35 +334,35 @@ update_input_window (rp_screen *s, rp_input_line *line) total_width = defaults.input_window_size + prompt_width; } - XMoveResizeWindow (dpy, s->input_window, - bar_x (s, total_width), bar_y (s, height), total_width, - (FONT_HEIGHT (defaults.font) + defaults.bar_y_padding * 2)); + XMoveResizeWindow (dpy, s->input_window, + bar_x (s, total_width), bar_y (s, height), total_width, + (FONT_HEIGHT (defaults.font) + defaults.bar_y_padding * 2)); XClearWindow (dpy, s->input_window); XSync (dpy, False); - XDrawString (dpy, s->input_window, s->normal_gc, - defaults.bar_x_padding, - defaults.bar_y_padding + defaults.font->max_bounds.ascent, - line->prompt, - strlen (line->prompt)); - - XDrawString (dpy, s->input_window, s->normal_gc, - defaults.bar_x_padding + prompt_width, - defaults.bar_y_padding + defaults.font->max_bounds.ascent, - line->buffer, - line->length); + XDrawString (dpy, s->input_window, s->normal_gc, + defaults.bar_x_padding, + defaults.bar_y_padding + defaults.font->max_bounds.ascent, + line->prompt, + strlen (line->prompt)); + + XDrawString (dpy, s->input_window, s->normal_gc, + defaults.bar_x_padding + prompt_width, + defaults.bar_y_padding + defaults.font->max_bounds.ascent, + line->buffer, + line->length); gv.function = GXxor; gv.foreground = s->fg_color ^ s->bg_color; lgc = XCreateGC (dpy, s->input_window, GCFunction | GCForeground, &gv); /* Draw a cheap-o cursor - MkII */ - XFillRectangle (dpy, s->input_window, lgc, - defaults.bar_x_padding + prompt_width + XTextWidth (defaults.font, line->buffer, line->position), - defaults.bar_y_padding, - XTextWidth (defaults.font, &line->buffer[line->position], 1), - FONT_HEIGHT (defaults.font)); + XFillRectangle (dpy, s->input_window, lgc, + defaults.bar_x_padding + prompt_width + XTextWidth (defaults.font, line->buffer, line->position), + defaults.bar_y_padding, + XTextWidth (defaults.font, &line->buffer[line->position], 1), + FONT_HEIGHT (defaults.font)); XFlush (dpy); XFreeGC (dpy, lgc); @@ -412,11 +412,11 @@ get_input (char *prompt, completion_fn fn) } char * -get_more_input (char *prompt, char *preinput, - completion_fn compl_fn) +get_more_input (char *prompt, char *preinput, + completion_fn compl_fn) { /* Emacs 21 uses a 513 byte string to store the keysym name. */ - char keysym_buf[513]; + char keysym_buf[513]; int keysym_bufsize = sizeof (keysym_buf); int nbytes; rp_screen *s = current_screen (); @@ -449,18 +449,18 @@ get_more_input (char *prompt, char *preinput, { nbytes = read_key (&ch, &modifier, keysym_buf, keysym_bufsize); modifier = x11_mask_to_rp_mask (modifier); - PRINT_DEBUG (("ch = %ld, modifier = %d, keysym_buf = %s, keysym_bufsize = %d\n", - ch, modifier, keysym_buf, keysym_bufsize)); + PRINT_DEBUG (("ch = %ld, modifier = %d, keysym_buf = %s, keysym_bufsize = %d\n", + ch, modifier, keysym_buf, keysym_bufsize)); status = execute_edit_action (line, ch, modifier, keysym_buf); if (status == EDIT_DELETE || status == EDIT_INSERT || status == EDIT_MOVE - || status == EDIT_COMPLETE) + || status == EDIT_COMPLETE) { - /* If the text changed (and we didn't just complete - something) then set the virgin bit. */ - if (status != EDIT_COMPLETE) - line->compl->virgin = 1; - /* In all cases, we need to redisplay the input string. */ + /* If the text changed (and we didn't just complete + something) then set the virgin bit. */ + if (status != EDIT_COMPLETE) + line->compl->virgin = 1; + /* In all cases, we need to redisplay the input string. */ update_input_window (s, line); } else if (status == EDIT_NO_OP) @@ -487,4 +487,4 @@ get_more_input (char *prompt, char *preinput, XUnmapWindow (dpy, s->input_window); return final_input; -} +} diff --git a/src/linkedlist.c b/src/linkedlist.c index 51564a6..f79757b 100644 --- a/src/linkedlist.c +++ b/src/linkedlist.c @@ -1,4 +1,4 @@ -/* This file was taken from the Linux kernel and is +/* This file was taken from the Linux kernel and is * Copyright (C) 2003 Linus Torvalds * * Modified by Shawn Betts. Portions created by Shawn Betts are @@ -10,12 +10,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -29,15 +29,15 @@ prefetch(const void *x) {;} /* - * Insert a new entry between two known consecutive entries. + * Insert a new entry between two known consecutive entries. * * This is only for internal list manipulation where we know * the prev/next entries already! */ void __list_add(struct list_head *new, - struct list_head *prev, - struct list_head *next) + struct list_head *prev, + struct list_head *next) { next->prev = new; new->next = next; @@ -107,7 +107,7 @@ void list_del_init(struct list_head *entry) { __list_del(entry->prev, entry->next); - INIT_LIST_HEAD(entry); + INIT_LIST_HEAD(entry); } /** @@ -129,7 +129,7 @@ list_move(struct list_head *list, struct list_head *head) */ void list_move_tail(struct list_head *list, - struct list_head *head) + struct list_head *head) { __list_del(list->prev, list->next); list_add_tail(list, head); @@ -147,7 +147,7 @@ list_empty(struct list_head *head) void __list_splice(struct list_head *list, - struct list_head *head) + struct list_head *head) { struct list_head *first = list->next; struct list_head *last = list->prev; @@ -181,7 +181,7 @@ list_splice(struct list_head *list, struct list_head *head) */ void list_splice_init(struct list_head *list, - struct list_head *head) + struct list_head *head) { if (!list_empty(list)) { __list_splice(list, head); diff --git a/src/linkedlist.h b/src/linkedlist.h index 2a60589..7f147b1 100644 --- a/src/linkedlist.h +++ b/src/linkedlist.h @@ -1,4 +1,4 @@ -/* This file was taken from the Linux kernel and is +/* This file was taken from the Linux kernel and is * Copyright (C) 2003 Linus Torvalds * * Modified by Shawn Betts. Portions created by Shawn Betts are @@ -10,12 +10,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -36,35 +36,35 @@ */ struct list_head { - struct list_head *next, *prev; + struct list_head *next, *prev; }; #define LIST_HEAD_INIT(name) { &(name), &(name) } #define LIST_HEAD(name) \ - struct list_head name = LIST_HEAD_INIT(name) + struct list_head name = LIST_HEAD_INIT(name) #define INIT_LIST_HEAD(ptr) do { \ - (ptr)->next = (ptr); (ptr)->prev = (ptr); \ + (ptr)->next = (ptr); (ptr)->prev = (ptr); \ } while (0) /* Prototypes of C functions. */ int list_size (struct list_head *list); void list_splice_init(struct list_head *list, - struct list_head *head); + struct list_head *head); void list_splice_init(struct list_head *list, - struct list_head *head); + struct list_head *head); void list_splice(struct list_head *list, struct list_head *head); void __list_splice(struct list_head *list, - struct list_head *head); + struct list_head *head); int list_empty(struct list_head *head); void list_move_tail(struct list_head *list, - struct list_head *head); + struct list_head *head); void list_move(struct list_head *list, struct list_head *head); @@ -74,16 +74,16 @@ void __list_del(struct list_head * prev, struct list_head * next); void list_add_tail(struct list_head *new, struct list_head *head); void list_add(struct list_head *new, struct list_head *head); void __list_add(struct list_head *new, - struct list_head *prev, - struct list_head *next); + struct list_head *prev, + struct list_head *next); void prefetch(const void *x); /* Return the last element in the list. */ -#define list_last(last, head, member) \ -{ \ - last = list_entry((head)->prev, typeof(*last), member); \ - if (&last->member == (head)) \ - last = NULL; \ +#define list_last(last, head, member) \ +{ \ + last = list_entry((head)->prev, typeof(*last), member); \ + if (&last->member == (head)) \ + last = NULL; \ } @@ -101,18 +101,18 @@ void prefetch(const void *x); /** * list_entry - get the struct for this entry - * @ptr: the &struct list_head pointer. - * @type: the type of the struct this is embedded in. - * @member: the name of the list_struct within the struct. + * @ptr: the &struct list_head pointer. + * @type: the type of the struct this is embedded in. + * @member: the name of the list_struct within the struct. */ #define list_entry(ptr, type, member) \ - container_of(ptr, type, member) + container_of(ptr, type, member) /** - * __list_for_each - iterate over a list - * @pos: the &struct list_head to use as a loop counter. - * @head: the head for your list. + * __list_for_each - iterate over a list + * @pos: the &struct list_head to use as a loop counter. + * @head: the head for your list. * * This variant differs from list_for_each() in that it's the * simplest possible list iteration code, no prefetching is done. @@ -120,70 +120,70 @@ void prefetch(const void *x); * or 1 entry) most of the time. */ #define list_for_each(pos, head) \ - for (pos = (head)->next; pos != (head); pos = pos->next) + for (pos = (head)->next; pos != (head); pos = pos->next) /** - * list_for_each_prev - iterate over a list backwards - * @pos: the &struct list_head to use as a loop counter. - * @head: the head for your list. + * list_for_each_prev - iterate over a list backwards + * @pos: the &struct list_head to use as a loop counter. + * @head: the head for your list. */ #define list_for_each_prev(pos, head) \ - for (pos = (head)->prev, prefetch(pos->prev); pos != (head); \ - pos = pos->prev, prefetch(pos->prev)) - + for (pos = (head)->prev, prefetch(pos->prev); pos != (head); \ + pos = pos->prev, prefetch(pos->prev)) + /** - * list_for_each_safe - iterate over a list safe against removal of list entry - * @pos: the &struct list_head to use as a loop counter. - * @n: another &struct list_head to use as temporary storage - * @head: the head for your list. + * list_for_each_safe - iterate over a list safe against removal of list entry + * @pos: the &struct list_head to use as a loop counter. + * @n: another &struct list_head to use as temporary storage + * @head: the head for your list. */ #define list_for_each_safe(pos, n, head) \ - for (pos = (head)->next, n = pos->next; pos != (head); \ - pos = n, n = pos->next) + for (pos = (head)->next, n = pos->next; pos != (head); \ + pos = n, n = pos->next) #define list_for_each_safe_entry(item, pos, n, head, member) \ - for (pos = (head)->next, \ + for (pos = (head)->next, \ item = list_entry(pos, typeof(*item), member), \ n = pos->next \ - ; \ - pos != (head) \ - ; \ - pos = n, \ - item = list_entry(pos, typeof(*item), member), \ + ; \ + pos != (head) \ + ; \ + pos = n, \ + item = list_entry(pos, typeof(*item), member), \ n = pos->next) \ /** - * list_for_each_entry - iterate over list of given type - * @pos: the type * to use as a loop counter. - * @head: the head for your list. - * @member: the name of the list_struct within the struct. + * list_for_each_entry - iterate over list of given type + * @pos: the type * to use as a loop counter. + * @head: the head for your list. + * @member: the name of the list_struct within the struct. */ -#define list_for_each_entry(pos, head, member) \ - for (pos = list_entry((head)->next, typeof(*pos), member), \ - prefetch(pos->member.next); \ - &pos->member != (head); \ - pos = list_entry(pos->member.next, typeof(*pos), member), \ - prefetch(pos->member.next)) - -#define list_for_each_entry_safe(pos, n, head, member) \ - for (pos = list_entry((head)->next, typeof(*pos), member), \ - n = list_entry(pos->member.next, typeof(*pos), member); \ - &pos->member != (head); \ - pos = n, \ - n = list_entry(pos->member.next, typeof(*pos), member)) +#define list_for_each_entry(pos, head, member) \ + for (pos = list_entry((head)->next, typeof(*pos), member), \ + prefetch(pos->member.next); \ + &pos->member != (head); \ + pos = list_entry(pos->member.next, typeof(*pos), member), \ + prefetch(pos->member.next)) + +#define list_for_each_entry_safe(pos, n, head, member) \ + for (pos = list_entry((head)->next, typeof(*pos), member), \ + n = list_entry(pos->member.next, typeof(*pos), member); \ + &pos->member != (head); \ + pos = n, \ + n = list_entry(pos->member.next, typeof(*pos), member)) #define list_direction_entry(pos, head, member, direction) \ ({ \ - typeof(pos) ret = NULL; \ - struct list_head *a_head = head; \ - if (pos->member.direction == a_head) { \ - ret = list_entry(a_head->direction, \ - typeof(*pos), member); \ - } else { \ - ret = list_entry(pos->member.direction, \ - typeof(*pos), member); \ - } \ - ret; \ + typeof(pos) ret = NULL; \ + struct list_head *a_head = head; \ + if (pos->member.direction == a_head) { \ + ret = list_entry(a_head->direction, \ + typeof(*pos), member); \ + } else { \ + ret = list_entry(pos->member.direction, \ + typeof(*pos), member); \ + } \ + ret; \ }) #define list_next_entry(pos, head, member) \ @@ -192,21 +192,20 @@ void prefetch(const void *x); #define list_prev_entry(pos, head, member) \ list_direction_entry(pos, head, member, prev) -#define list_for_each_entry_prev(pos, head, member) \ - for (pos = list_entry((head)->prev, typeof(*pos), member), \ - prefetch(pos->member.prev); \ - &pos->member != (head); \ - pos = list_entry(pos->member.prev, typeof(*pos), member), \ - prefetch(pos->member.prev)) +#define list_for_each_entry_prev(pos, head, member) \ + for (pos = list_entry((head)->prev, typeof(*pos), member), \ + prefetch(pos->member.prev); \ + &pos->member != (head); \ + pos = list_entry(pos->member.prev, typeof(*pos), member), \ + prefetch(pos->member.prev)) #endif /* Return the first element in the list. */ -#define list_first(first, head, member) \ -{ \ - first = list_entry((head)->next, typeof(*first), member); \ - if (&first->member == (head)) \ - first = NULL; \ +#define list_first(first, head, member) \ +{ \ + first = list_entry((head)->next, typeof(*first), member); \ + if (&first->member == (head)) \ + first = NULL; \ } - @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -45,15 +45,15 @@ #endif /* Command line options */ -static struct option ratpoison_longopts[] = - { {"help", no_argument, 0, 'h'}, - {"interactive", no_argument, 0, 'i'}, - {"version", no_argument, 0, 'v'}, - {"command", required_argument, 0, 'c'}, - {"display", required_argument, 0, 'd'}, - {"screen", required_argument, 0, 's'}, - {"file", required_argument, 0, 'f'}, - {0, 0, 0, 0} }; +static struct option ratpoison_longopts[] = + { {"help", no_argument, 0, 'h'}, + {"interactive", no_argument, 0, 'i'}, + {"version", no_argument, 0, 'v'}, + {"command", required_argument, 0, 'c'}, + {"display", required_argument, 0, 'd'}, + {"screen", required_argument, 0, 's'}, + {"file", required_argument, 0, 'f'}, + {0, 0, 0, 0} }; static char ratpoison_opts[] = "hvic:d:s:f:"; @@ -112,9 +112,9 @@ xvsprintf (char *fmt, va_list ap) __va_copy (ap_copy, ap); #else /* If there is no copy macro then this MAY work. On some systems - this could fail because va_list is a pointer so assigning one - to the other as below wouldn't make a copy of the data, but - just the pointer to the data. */ + this could fail because va_list is a pointer so assigning one + to the other as below wouldn't make a copy of the data, but + just the pointer to the data. */ ap_copy = ap; #endif nchars = vsnprintf (buffer, size, fmt, ap_copy); @@ -123,11 +123,11 @@ xvsprintf (char *fmt, va_list ap) #endif if (nchars > -1 && nchars < size) - return buffer; + return buffer; else if (nchars > -1) - size = nchars + 1; + size = nchars + 1; else - size *= 2; + size *= 2; /* Resize the buffer and try again. */ buffer = (char *)xrealloc (buffer, size); @@ -192,20 +192,20 @@ check_child_procs () { pid = waitpid (WAIT_ANY, &status, WNOHANG); if (pid <= 0) - break; + break; PRINT_DEBUG(("Child status: %d\n", WEXITSTATUS (status))); /* Find the child and update its structure. */ list_for_each_entry (cur, &rp_children, node) - { - if (cur->pid == pid) - { - cur->terminated = 1; - cur->status = WEXITSTATUS (status); - break; - } - } + { + if (cur->pid == pid) + { + cur->terminated = 1; + cur->status = WEXITSTATUS (status); + break; + } + } chld_signalled = 1; } @@ -218,7 +218,7 @@ chld_handler (int signum) serrno = errno; check_child_procs(); - errno = serrno; + errno = serrno; } int @@ -226,11 +226,11 @@ handler (Display *d, XErrorEvent *e) { char error_msg[100]; - if (e->request_code == X_ChangeWindowAttributes && e->error_code == BadAccess) + if (e->request_code == X_ChangeWindowAttributes && e->error_code == BadAccess) { fprintf(stderr, "ratpoison: There can be only ONE.\n"); exit(EXIT_FAILURE); - } + } #ifdef IGNORE_BADWINDOW return 0; @@ -243,7 +243,7 @@ handler (Display *d, XErrorEvent *e) /* If there is already an error to report, replace it with this new one. */ - if (rp_error_msg) + if (rp_error_msg) free (rp_error_msg); rp_error_msg = xstrdup (error_msg); @@ -257,26 +257,26 @@ set_sig_handler (int sig, void (*action)(int)) handler by default which is a tip of the hat to some god-aweful ancient code. So use the POSIX sigaction call instead. */ struct sigaction act; - + /* check setting for sig */ - if (sigaction (sig, NULL, &act)) + if (sigaction (sig, NULL, &act)) { PRINT_ERROR (("Error %d fetching SIGALRM handler\n", errno )); - } - else + } + else { /* if the existing action is to ignore then leave it intact - otherwise add our handler */ - if (act.sa_handler != SIG_IGN) - { - act.sa_handler = action; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; - if (sigaction (sig, &act, NULL)) - { - PRINT_ERROR (("Error %d setting SIGALRM handler\n", errno )); - } - } + otherwise add our handler */ + if (act.sa_handler != SIG_IGN) + { + act.sa_handler = action; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + if (sigaction (sig, &act, NULL)) + { + PRINT_ERROR (("Error %d setting SIGALRM handler\n", errno )); + } + } } } @@ -287,7 +287,7 @@ print_version () printf ("Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts\n\n"); exit (EXIT_SUCCESS); -} +} void print_help () @@ -330,39 +330,39 @@ read_rc_file (FILE *file) while (fgets (partial, n, file) != NULL) { if ((strlen (line) + strlen (partial)) >= linesize) - { - linesize *= 2; - line = (char*) xrealloc (line, linesize); - } + { + linesize *= 2; + line = (char*) xrealloc (line, linesize); + } strcat (line, partial); if (feof(file) || (*(line + strlen(line) - 1) == '\n')) - { - /* FIXME: this is a hack, command() should properly parse - the command and args (ie strip whitespace, etc) - - We should not care if there is a newline (or vertical - tabs or linefeeds for that matter) at the end of the - command (or anywhere between tokens). */ - if (*(line + strlen(line) - 1) == '\n') - *(line + strlen(line) - 1) = '\0'; - - PRINT_DEBUG (("rcfile line: %s\n", line)); - - /* do it */ - if (*line != '#') - { - cmdret *result; - result = command (0, line); - - /* Gobble the result. */ - if (result) - cmdret_free (result); - } - - *line = '\0'; - } + { + /* FIXME: this is a hack, command() should properly parse + the command and args (ie strip whitespace, etc) + + We should not care if there is a newline (or vertical + tabs or linefeeds for that matter) at the end of the + command (or anywhere between tokens). */ + if (*(line + strlen(line) - 1) == '\n') + *(line + strlen(line) - 1) = '\0'; + + PRINT_DEBUG (("rcfile line: %s\n", line)); + + /* do it */ + if (*line != '#') + { + cmdret *result; + result = command (0, line); + + /* Gobble the result. */ + if (result) + cmdret_free (result); + } + + *line = '\0'; + } } @@ -379,39 +379,39 @@ read_startup_files (char *alt_rcfile) if (alt_rcfile) { if ((fileptr = fopen (alt_rcfile, "r")) == NULL) - { - /* we probably don't need to report this, its not an error */ - PRINT_DEBUG (("ratpoison: could not open %s\n", alt_rcfile)); - } + { + /* we probably don't need to report this, its not an error */ + PRINT_DEBUG (("ratpoison: could not open %s\n", alt_rcfile)); + } } else { /* first check $HOME/.ratpoisonrc and if that does not exist then try - /etc/ratpoisonrc */ + /etc/ratpoisonrc */ homedir = getenv ("HOME"); if (!homedir) - { - PRINT_ERROR (("ratpoison: $HOME not set!?\n")); - } + { + PRINT_ERROR (("ratpoison: $HOME not set!?\n")); + } else - { - char *filename; - filename = xsprintf ("%s/.ratpoisonrc", homedir); - - if ((fileptr = fopen (filename, "r")) == NULL) - { - /* we probably don't need to report this, its not an error */ - PRINT_DEBUG (("ratpoison: could not open %s\n", filename)); - - if ((fileptr = fopen ("/etc/ratpoisonrc", "r")) == NULL) - { - /* neither is this */ - PRINT_DEBUG (("ratpoison: could not open /etc/ratpoisonrc\n")); - } - } - free (filename); - } + { + char *filename; + filename = xsprintf ("%s/.ratpoisonrc", homedir); + + if ((fileptr = fopen (filename, "r")) == NULL) + { + /* we probably don't need to report this, its not an error */ + PRINT_DEBUG (("ratpoison: could not open %s\n", filename)); + + if ((fileptr = fopen ("/etc/ratpoisonrc", "r")) == NULL) + { + /* neither is this */ + PRINT_DEBUG (("ratpoison: could not open /etc/ratpoisonrc\n")); + } + } + free (filename); + } } if (fileptr) @@ -430,10 +430,10 @@ show_welcome_message () rp_action *help_action; char *prefix, *help; rp_keymap *map; - + prefix = keysym_to_string (prefix_key.sym, prefix_key.state); - map = find_keymap (ROOT_KEYMAP); + map = find_keymap (ROOT_KEYMAP); /* Find the help key binding. */ help_action = find_keybinding_by_action ("help " ROOT_KEYMAP, map); @@ -446,11 +446,11 @@ show_welcome_message () if (help) { /* A little kludge to use ? instead of `question' for the help - key. */ + key. */ if (!strcmp (help, "question")) - marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, "?"); + marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, "?"); else - marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, help); + marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, help); free (help); } @@ -458,7 +458,7 @@ show_welcome_message () { marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, ":help"); } - + free (prefix); } @@ -474,7 +474,7 @@ init_defaults () defaults.bar_x_padding = 4; defaults.bar_y_padding = 0; defaults.bar_location = NorthEastGravity; - defaults.bar_timeout = 5; + defaults.bar_timeout = 5; defaults.bar_border_width = 1; defaults.frame_indicator_timeout = 1; @@ -482,7 +482,7 @@ init_defaults () defaults.padding_left = 0; defaults.padding_right = 0; - defaults.padding_top = 0; + defaults.padding_top = 0; defaults.padding_bottom = 0; defaults.font = XLoadQueryFont (dpy, DEFAULT_FONT); @@ -535,44 +535,44 @@ main (int argc, char *argv[]) if (c == -1) break; switch (c) - { - case 'h': - print_help (); - break; - case 'v': - print_version (); - break; - case 'c': - if (!command) - { - command = xmalloc (sizeof(char *)); - cmd_count = 0; - } - else - { - command = xrealloc (command, sizeof (char *) * (cmd_count + 1)); - } - - command[cmd_count] = xstrdup (optarg); - cmd_count++; - break; - case 'd': - display = xstrdup (optarg); - break; - case 's': - screen_arg = 1; - screen_num = strtol (optarg, NULL, 10); - break; - case 'i': - interactive = 1; - break; - case 'f': - alt_rcfile = xstrdup (optarg); - break; - - default: - exit (EXIT_FAILURE); - } + { + case 'h': + print_help (); + break; + case 'v': + print_version (); + break; + case 'c': + if (!command) + { + command = xmalloc (sizeof(char *)); + cmd_count = 0; + } + else + { + command = xrealloc (command, sizeof (char *) * (cmd_count + 1)); + } + + command[cmd_count] = xstrdup (optarg); + cmd_count++; + break; + case 'd': + display = xstrdup (optarg); + break; + case 's': + screen_arg = 1; + screen_num = strtol (optarg, NULL, 10); + break; + case 'i': + interactive = 1; + break; + case 'f': + alt_rcfile = xstrdup (optarg); + break; + + default: + exit (EXIT_FAILURE); + } } /* Report extra unparsed arguments. */ @@ -580,7 +580,7 @@ main (int argc, char *argv[]) { fprintf (stderr, "Error: junk arguments: "); while (optind < argc) - fprintf (stderr, "%s ", argv[optind++]); + fprintf (stderr, "%s ", argv[optind++]); fputc ('\n', stderr); exit (EXIT_FAILURE); } @@ -602,14 +602,14 @@ main (int argc, char *argv[]) int i; for (i=0; i<cmd_count; i++) - { - if (screen_arg) - send_command (interactive, (unsigned char *)command[i], screen_num); - else - send_command (interactive, (unsigned char *)command[i], -1); + { + if (screen_arg) + send_command (interactive, (unsigned char *)command[i], screen_num); + else + send_command (interactive, (unsigned char *)command[i], -1); - free (command[i]); - } + free (command[i]); + } free (command); XCloseDisplay (dpy); @@ -632,7 +632,7 @@ main (int argc, char *argv[]) PRINT_DEBUG (("_NET_SUPPORTED = %ld\n", _net_supported)); /* Setup signal handlers. */ - XSetErrorHandler(handler); + XSetErrorHandler(handler); set_sig_handler (SIGALRM, alrm_handler); set_sig_handler (SIGTERM, sighandler); set_sig_handler (SIGINT, sighandler); @@ -668,9 +668,9 @@ main (int argc, char *argv[]) { rp_current_screen = 0; for (i=0; i<num_screens; i++) - { - scanwins (&screens[i]); - } + { + scanwins (&screens[i]); + } } read_startup_files (alt_rcfile); @@ -703,7 +703,7 @@ free_screen (rp_screen *s) { frame_free (s, frame); } - + XDestroyWindow (dpy, s->bar_window); XDestroyWindow (dpy, s->key_window); XDestroyWindow (dpy, s->input_window); @@ -732,7 +732,7 @@ clean_up () free_groups (); free_window_stuff (); - + for (i=0; i<num_screens; i++) { free_screen (&screens[i]); @@ -759,4 +759,3 @@ clean_up () XSetInputFocus (dpy, PointerRoot, RevertToPointerRoot, CurrentTime); XCloseDisplay (dpy); } - diff --git a/src/manage.c b/src/manage.c index 7a3898f..d787c02 100644 --- a/src/manage.c +++ b/src/manage.c @@ -39,12 +39,12 @@ static int num_unmanaged_windows = 0; void clear_unmanaged_list () { - if (unmanaged_window_list) + if (unmanaged_window_list) { int i; for (i = 0; i < num_unmanaged_windows; i++) - free(unmanaged_window_list[i]); + free(unmanaged_window_list[i]); free(unmanaged_window_list); @@ -57,23 +57,23 @@ char * list_unmanaged_windows () { char *tmp = NULL; - if (unmanaged_window_list) + if (unmanaged_window_list) { char *tpos; int len = 0; int i; for (i = 0; i < num_unmanaged_windows; i++) - len += (strlen(unmanaged_window_list[i]) + 1); + len += (strlen(unmanaged_window_list[i]) + 1); tmp = xmalloc(len + 1); tpos = tmp; - for (i = 0; i < num_unmanaged_windows; i++) - { - sprintf(tpos, "%s\n", unmanaged_window_list[i]); - tpos += strlen(unmanaged_window_list[i])+1; - } + for (i = 0; i < num_unmanaged_windows; i++) + { + sprintf(tpos, "%s\n", unmanaged_window_list[i]); + tpos += strlen(unmanaged_window_list[i])+1; + } tpos--; *tpos = '\0'; } @@ -89,7 +89,7 @@ add_unmanaged_window (char *name) tmp = xmalloc((num_unmanaged_windows + 1) * sizeof(char *)); - if (unmanaged_window_list) + if (unmanaged_window_list) { memcpy(tmp, unmanaged_window_list, num_unmanaged_windows * sizeof(char *)); free(unmanaged_window_list); @@ -107,8 +107,8 @@ void grab_top_level_keys (Window w) { #ifdef HIDE_MOUSE - XGrabKey(dpy, AnyKey, AnyModifier, w, True, - GrabModeAsync, GrabModeAsync); + XGrabKey(dpy, AnyKey, AnyModifier, w, True, + GrabModeAsync, GrabModeAsync); #else rp_keymap *map = find_keymap (TOP_KEYMAP); int i; @@ -166,9 +166,9 @@ current_screen () for (i=0; i<num_screens; i++) { if (screens[i].xine_screen_num == rp_current_screen) - return &screens[i]; + return &screens[i]; } - + /* This should never happen. */ return &screens[0]; } @@ -193,7 +193,7 @@ update_normal_hints (rp_window *win) #endif } - + static char * get_wmname (Window w) @@ -206,12 +206,12 @@ get_wmname (Window w) unsigned char *name = NULL; char *ret; - status = XGetWindowProperty (dpy, w, wm_name, 0L, 100L, False, - XA_STRING, &actual_type, &actual_format, - &n, &bytes_after, &name); + status = XGetWindowProperty (dpy, w, wm_name, 0L, 100L, False, + XA_STRING, &actual_type, &actual_format, + &n, &bytes_after, &name); - PRINT_DEBUG (("XGetWindowProperty: %d %ld %d %ld %ld '%s'\n", status, actual_type, - actual_format, n, bytes_after, name)); + PRINT_DEBUG (("XGetWindowProperty: %d %ld %d %ld %ld '%s'\n", status, actual_type, + actual_format, n, bytes_after, name)); if (status != Success || name == NULL) { @@ -334,7 +334,7 @@ update_window_name (rp_window *win) return 1; } -/* Send an artificial configure event to the window. */ +/* Send an artificial configure event to the window. */ void send_configure (Window w, int x, int y, int width, int height, int border) { @@ -366,7 +366,7 @@ window_is_transient (rp_window *win) #ifdef MAXSIZE_WINDOWS_ARE_TRANSIENTS || (win->hints->flags & PMaxSize && (win->hints->max_width < win->scr->width - || win->hints->max_height < win->scr->height)) + || win->hints->max_height < win->scr->height)) #endif ; } @@ -402,19 +402,19 @@ unmanage (rp_window *w) list_del (&w->node); groups_del_window (w); - free_window (w); + free_window (w); #ifdef AUTO_CLOSE if (rp_mapped_window->next == &rp_mapped_window && rp_mapped_window->prev == &rp_mapped_window) { /* If the mapped window list is empty then we have run out of - managed windows, so kill ratpoison. */ + managed windows, so kill ratpoison. */ /* FIXME: The unmapped window list may also have to be checked - in the case that the only mapped window in unmapped and - shortly after another window is mapped most likely by the - same app. */ + in the case that the only mapped window in unmapped and + shortly after another window is mapped most likely by the + same app. */ kill_signalled = 1; } @@ -433,43 +433,43 @@ scanwins(rp_screen *s) XQueryTree(dpy, s->root, &dw1, &dw2, &wins, &nwins); PRINT_DEBUG (("windows: %d\n", nwins)); - for (i = 0; i < nwins; i++) + for (i = 0; i < nwins; i++) { XGetWindowAttributes(dpy, wins[i], &attr); if (is_rp_window_for_screen(wins[i], s) - || attr.override_redirect == True - || unmanaged_window (wins[i])) continue; + || attr.override_redirect == True + || unmanaged_window (wins[i])) continue; /* FIXME - with this code, windows which are entirely off-screen * when RP starts won't ever be managed when Xinerama is enabled. */ - { - XWindowAttributes root_attr; + { + XWindowAttributes root_attr; - XGetWindowAttributes (dpy, s->root, &root_attr); - PRINT_DEBUG (("attrs: %d %d %d %d %d %d\n", root_attr.x, root_attr.y, - s->left, s->top, s->left + s->width, s->top + s->height));} + XGetWindowAttributes (dpy, s->root, &root_attr); + PRINT_DEBUG (("attrs: %d %d %d %d %d %d\n", root_attr.x, root_attr.y, + s->left, s->top, s->left + s->width, s->top + s->height));} if (rp_have_xinerama - && ((attr.x > s->left + s->width) + && ((attr.x > s->left + s->width) || (attr.x < s->left) - || (attr.y > s->top + s->height) - || (attr.y < s->top))) continue; + || (attr.y > s->top + s->height) + || (attr.y < s->top))) continue; win = add_to_window_list (s, wins[i]); - PRINT_DEBUG (("map_state: %s\n", - attr.map_state == IsViewable ? "IsViewable": - attr.map_state == IsUnviewable ? "IsUnviewable" : "IsUnmapped")); - PRINT_DEBUG (("state: %s\n", - get_state(win) == IconicState ? "Iconic": - get_state(win) == NormalState ? "Normal" : "Other")); - + PRINT_DEBUG (("map_state: %s\n", + attr.map_state == IsViewable ? "IsViewable": + attr.map_state == IsUnviewable ? "IsUnviewable" : "IsUnmapped")); + PRINT_DEBUG (("state: %s\n", + get_state(win) == IconicState ? "Iconic": + get_state(win) == NormalState ? "Normal" : "Other")); + /* Collect mapped and iconized windows. */ if (attr.map_state == IsViewable - || (attr.map_state == IsUnmapped - && get_state (win) == IconicState)) - map_window (win); + || (attr.map_state == IsUnmapped + && get_state (win) == IconicState)) + map_window (win); } XFree(wins); @@ -483,15 +483,15 @@ unmanaged_window (Window w) if (!unmanaged_window_list) return 0; - for (i = 0; i < num_unmanaged_windows; i++) + for (i = 0; i < num_unmanaged_windows; i++) { wname = get_wmname(w); if (!wname) return 0; - if (!strcmp(unmanaged_window_list[i], wname)) - { - free(wname); - return 1; - } + if (!strcmp(unmanaged_window_list[i], wname)) + { + free(wname); + return 1; + } free(wname); } return 0; @@ -502,14 +502,14 @@ void set_state (rp_window *win, int state) { long data[2]; - + win->state = state; data[0] = (long)win->state; data[1] = (long)None; XChangeProperty (dpy, win->w, wm_state, wm_state, 32, - PropModeReplace, (unsigned char *)data, 2); + PropModeReplace, (unsigned char *)data, 2); } /* Get the WM state of the window. */ @@ -523,13 +523,13 @@ get_state (rp_window *win) unsigned long bytes_left; unsigned char *data; - if (win == NULL) + if (win == NULL) return state; - if (XGetWindowProperty (dpy, win->w, wm_state, 0L, 2L, - False, wm_state, &type, &format, - &nitems, &bytes_left, - &data) == Success && nitems > 0) + if (XGetWindowProperty (dpy, win->w, wm_state, 0L, 2L, + False, wm_state, &type, &format, + &nitems, &bytes_left, + &data) == Success && nitems > 0) { state = *(long *)data; XFree (data); @@ -543,7 +543,7 @@ move_window (rp_window *win) { rp_frame *frame; - if (win->frame_number == EMPTY) + if (win->frame_number == EMPTY) return; frame = win_get_frame (win); @@ -614,8 +614,8 @@ maximize_transient (rp_window *win) /* Fit the window inside its frame (if it has one) */ if (frame) { - PRINT_DEBUG (("frame width=%d height=%d\n", - frame->width, frame->height)); + PRINT_DEBUG (("frame width=%d height=%d\n", + frame->width, frame->height)); if (maxx + win->border * 2 > frame->width) maxx = frame->width - win->border * 2; if (maxy + win->border * 2 > frame->height) maxy = frame->height - win->border * 2; @@ -630,22 +630,22 @@ maximize_transient (rp_window *win) /* Avoid a divide by zero if width/height_inc is 0. */ if (win->hints->width_inc) - { - amount = maxx - win->width; - delta = amount % win->hints->width_inc; - amount -= delta; - if (amount < 0 && delta) amount -= win->hints->width_inc; - maxx = amount + win->width; - } + { + amount = maxx - win->width; + delta = amount % win->hints->width_inc; + amount -= delta; + if (amount < 0 && delta) amount -= win->hints->width_inc; + maxx = amount + win->width; + } if (win->hints->height_inc) - { - amount = maxy - win->height; - delta = amount % win->hints->height_inc; - amount -= delta; - if (amount < 0 && delta) amount -= win->hints->height_inc; - maxy = amount + win->height; - } + { + amount = maxy - win->height; + delta = amount % win->hints->height_inc; + amount -= delta; + if (amount < 0 && delta) amount -= win->hints->height_inc; + maxy = amount + win->height; + } } PRINT_DEBUG (("maxsize: %d %d\n", maxx, maxy)); @@ -685,28 +685,28 @@ maximize_normal (rp_window *win) /* Honour the window's aspect ratio. */ PRINT_DEBUG (("aspect: %ld\n", win->hints->flags & PAspect)); - if (win->hints->flags & PAspect) + if (win->hints->flags & PAspect) { float ratio = (float)maxx / maxy; float min_ratio = (float)win->hints->min_aspect.x / win->hints->min_aspect.y; float max_ratio = (float)win->hints->max_aspect.x / win->hints->max_aspect.y; - PRINT_DEBUG (("ratio=%f min_ratio=%f max_ratio=%f\n", - ratio,min_ratio,max_ratio)); - if (ratio < min_ratio) - { - maxy = (int) (maxx / min_ratio); - } - else if (ratio > max_ratio) - { - maxx = (int) (maxy * max_ratio); - } + PRINT_DEBUG (("ratio=%f min_ratio=%f max_ratio=%f\n", + ratio,min_ratio,max_ratio)); + if (ratio < min_ratio) + { + maxy = (int) (maxx / min_ratio); + } + else if (ratio > max_ratio) + { + maxx = (int) (maxy * max_ratio); + } } /* Fit the window inside its frame (if it has one) */ if (frame) { - PRINT_DEBUG (("frame width=%d height=%d\n", - frame->width, frame->height)); + PRINT_DEBUG (("frame width=%d height=%d\n", + frame->width, frame->height)); if (maxx > frame->width) maxx = frame->width - win->border * 2; if (maxy > frame->height) maxy = frame->height - win->border * 2; @@ -720,22 +720,22 @@ maximize_normal (rp_window *win) int delta; if (win->hints->width_inc) - { - amount = maxx - win->width; - delta = amount % win->hints->width_inc; - if (amount < 0 && delta) amount -= win->hints->width_inc; - amount -= delta; - maxx = amount + win->width; - } + { + amount = maxx - win->width; + delta = amount % win->hints->width_inc; + if (amount < 0 && delta) amount -= win->hints->width_inc; + amount -= delta; + maxx = amount + win->width; + } if (win->hints->height_inc) - { - amount = maxy - win->height; - delta = amount % win->hints->height_inc; - if (amount < 0 && delta) amount -= win->hints->height_inc; - amount -= delta; - maxy = amount + win->height; - } + { + amount = maxy - win->height; + delta = amount % win->hints->height_inc; + if (amount < 0 && delta) amount -= win->hints->height_inc; + amount -= delta; + maxy = amount + win->height; + } } PRINT_DEBUG (("maxsize: %d %d\n", maxx, maxy)); @@ -761,8 +761,8 @@ maximize (rp_window *win) /* Reposition the window. */ move_window (win); - PRINT_DEBUG (("Resizing window '%s' to x:%d y:%d w:%d h:%d\n", window_name (win), - win->x, win->y, win->width, win->height)); + PRINT_DEBUG (("Resizing window '%s' to x:%d y:%d w:%d h:%d\n", window_name (win), + win->x, win->y, win->width, win->height)); /* Actually do the maximizing. */ @@ -792,8 +792,8 @@ force_maximize (rp_window *win) if (win->hints->flags & PResizeInc) { XMoveResizeWindow (dpy, win->w, win->scr->left + win->x, win->scr->top + win->y, - win->width + win->hints->width_inc, - win->height + win->hints->height_inc); + win->width + win->hints->width_inc, + win->height + win->hints->height_inc); } else { @@ -822,7 +822,7 @@ map_window (rp_window *win) /* Put win in the mapped window list */ list_del (&win->node); - insert_into_list (win, &rp_mapped_window); + insert_into_list (win, &rp_mapped_window); /* Update all groups. */ groups_map_window (win); @@ -841,11 +841,11 @@ map_window (rp_window *win) else { if (win->transient) - marked_message_printf (0, 0, MESSAGE_MAP_TRANSIENT, - win->number, window_name (win)); + marked_message_printf (0, 0, MESSAGE_MAP_TRANSIENT, + win->number, window_name (win)); else - marked_message_printf (0, 0, MESSAGE_MAP_WINDOW, - win->number, window_name (win)); + marked_message_printf (0, 0, MESSAGE_MAP_WINDOW, + win->number, window_name (win)); } } @@ -950,10 +950,10 @@ hide_others (rp_window *win) list_for_each_entry (cur, &rp_mapped_window, node) { - if (find_windows_frame (cur) - || cur->state != NormalState - || cur->frame_number != frame->number) - continue; + if (find_windows_frame (cur) + || cur->state != NormalState + || cur->frame_number != frame->number) + continue; hide_window (cur); } diff --git a/src/manage.h b/src/manage.h index 6b15f98..cdb70e4 100644 --- a/src/manage.h +++ b/src/manage.h @@ -1,4 +1,4 @@ -/* manage.h +/* manage.h * Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca> * * This file is part of ratpoison. @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, diff --git a/src/messages.h b/src/messages.h index dfebc2a..e8ec126 100644 --- a/src/messages.h +++ b/src/messages.h @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -24,30 +24,30 @@ #include "config.h" -#define MESSAGE_NO_OTHER_WINDOW "No other window" -#define MESSAGE_NO_OTHER_FRAME "No other frame" -#define MESSAGE_NO_MANAGED_WINDOWS "No managed windows" -#define MESSAGE_UNKNOWN_COMMAND ": unknown command '%s'" -#define MESSAGE_WINDOW_INFORMATION "This is window %d (%s)" +#define MESSAGE_NO_OTHER_WINDOW "No other window" +#define MESSAGE_NO_OTHER_FRAME "No other frame" +#define MESSAGE_NO_MANAGED_WINDOWS "No managed windows" +#define MESSAGE_UNKNOWN_COMMAND ": unknown command '%s'" +#define MESSAGE_WINDOW_INFORMATION "This is window %d (%s)" -#define MESSAGE_RAISE_TRANSIENT "Raise request from transient window %d (%s)" -#define MESSAGE_RAISE_WINDOW "Raise request from window %d (%s)" -#define MESSAGE_RAISE_TRANSIENT_GROUP "Raise request from transient window %d (%s) in group %s" -#define MESSAGE_RAISE_WINDOW_GROUP "Raise request from window %d (%s) in group %s" -#define MESSAGE_MAP_TRANSIENT "New transient window %d (%s)" -#define MESSAGE_MAP_WINDOW "New window %d (%s)" +#define MESSAGE_RAISE_TRANSIENT "Raise request from transient window %d (%s)" +#define MESSAGE_RAISE_WINDOW "Raise request from window %d (%s)" +#define MESSAGE_RAISE_TRANSIENT_GROUP "Raise request from transient window %d (%s) in group %s" +#define MESSAGE_RAISE_WINDOW_GROUP "Raise request from window %d (%s) in group %s" +#define MESSAGE_MAP_TRANSIENT "New transient window %d (%s)" +#define MESSAGE_MAP_WINDOW "New window %d (%s)" #define MESSAGE_PROMPT_SWITCH_TO_WINDOW "Switch to window: " -#define MESSAGE_PROMPT_NEW_WINDOW_NAME "Set window's title to: " -#define MESSAGE_PROMPT_SHELL_COMMAND "/bin/sh -c " -#define MESSAGE_PROMPT_COMMAND ":" -#define MESSAGE_PROMPT_SWITCH_WM "Switch to wm: " -#define MESSAGE_PROMPT_XTERM_COMMAND MESSAGE_PROMPT_SHELL_COMMAND TERM_PROG " -e " +#define MESSAGE_PROMPT_NEW_WINDOW_NAME "Set window's title to: " +#define MESSAGE_PROMPT_SHELL_COMMAND "/bin/sh -c " +#define MESSAGE_PROMPT_COMMAND ":" +#define MESSAGE_PROMPT_SWITCH_WM "Switch to wm: " +#define MESSAGE_PROMPT_XTERM_COMMAND MESSAGE_PROMPT_SHELL_COMMAND TERM_PROG " -e " #define MESSAGE_PROMPT_SWITCH_TO_GROUP "Switch to group: " #define MESSAGE_PROMPT_SELECT_VAR "Variable: " #define MESSAGE_PROMPT_VAR_VALUE "Value: " -#define MESSAGE_WELCOME "Welcome to ratpoison! Hit `%s %s' for help." -#define MESSAGE_FRAME_STRING "Current Frame" +#define MESSAGE_WELCOME "Welcome to ratpoison! Hit `%s %s' for help." +#define MESSAGE_FRAME_STRING "Current Frame" #endif /* ! _RATPOISON_MESSAGES_H */ diff --git a/src/number.c b/src/number.c index ee96b42..6bb959a 100644 --- a/src/number.c +++ b/src/number.c @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -75,7 +75,7 @@ numset_add_num (struct numset *ns, int n) PRINT_DEBUG(("ns=%p add_num %d\n", ns, n)); - if (numset_num_is_taken (ns, n)) + if (numset_num_is_taken (ns, n)) return 0; /* failed. */ /* numset_find_empty_cell calls realloc on numbers_taken. So store the ret val in ec then use ec as an index into the array. */ @@ -115,11 +115,11 @@ numset_release (struct numset *ns, int n) for (i=0; i<ns->num_taken; i++) { - if (ns->numbers_taken[i] == n) - { - ns->numbers_taken[i] = -1; - return; - } + if (ns->numbers_taken[i] == n) + { + ns->numbers_taken[i] = -1; + return; + } } } diff --git a/src/number.h b/src/number.h index 585411b..bac958a 100644 --- a/src/number.h +++ b/src/number.h @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, diff --git a/src/ratpoison.h b/src/ratpoison.h index ea8ec65..614abc5 100644 --- a/src/ratpoison.h +++ b/src/ratpoison.h @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -43,18 +43,18 @@ #define PRINT_LINE(type) printf (PACKAGE ":%s:%d: %s: ",__FILE__, __LINE__, #type) /* Error and debug reporting macros. */ -#define PRINT_ERROR(fmt) \ -do { \ - PRINT_LINE (error); \ - printf fmt; \ - fflush (stdout); \ +#define PRINT_ERROR(fmt) \ +do { \ + PRINT_LINE (error); \ + printf fmt; \ + fflush (stdout); \ } while (0) #ifdef DEBUG -#define PRINT_DEBUG(fmt) \ -do { \ - PRINT_LINE (debug); \ - printf fmt; \ +#define PRINT_DEBUG(fmt) \ +do { \ + PRINT_LINE (debug); \ + printf fmt; \ fflush (stdout); \ } while (0) #else @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -29,7 +29,7 @@ sbuf_new (size_t initsz) { struct sbuf *b = (struct sbuf*) xmalloc (sizeof (struct sbuf)); - if (initsz < 1) + if (initsz < 1) initsz = 1; b->data = (char*) xmalloc (initsz); @@ -47,8 +47,8 @@ sbuf_free (struct sbuf *b) if (b != NULL) { if (b->data != NULL) - free (b->data); - + free (b->data); + free (b); } } @@ -78,7 +78,7 @@ sbuf_nconcat (struct sbuf *b, const char *str, int len) b->data = (char*) xrealloc (b->data, minsz); b->maxsz = minsz; } - + memcpy (b->data + b->len, str, minsz - b->len - 1); b->len = minsz - 1; *(b->data + b->len) = 0; @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -24,7 +24,7 @@ #include <stdlib.h> -struct +struct sbuf { char *data; diff --git a/src/screen.c b/src/screen.c index 07446d7..4bf17c0 100644 --- a/src/screen.c +++ b/src/screen.c @@ -6,12 +6,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -115,7 +115,7 @@ frameset_free (struct list_head *head) list_for_each_safe_entry (frame, iter, tmp, head, node) { /* FIXME: what if frames has memory inside its struct - that needs to be freed? */ + that needs to be freed? */ free (frame); } } @@ -128,9 +128,9 @@ screen_get_frame (rp_screen *s, int frame_num) list_for_each_entry (cur, &s->frames, node) { if (cur->number == frame_num) - return cur; + return cur; } - + return NULL; } @@ -143,9 +143,9 @@ screen_find_frame_by_frame (rp_screen *s, rp_frame *f) { PRINT_DEBUG (("cur=%p f=%p\n", cur, f)); if (cur == f) - return cur; + return cur; } - + return NULL; } @@ -176,13 +176,13 @@ void init_screens (int screen_arg, int screen_num) { int i; - + /* Get the number of screens */ if (rp_have_xinerama) num_screens = xine_screen_count; else num_screens = ScreenCount (dpy); - + /* make sure the screen specified is valid. */ if (screen_arg) { @@ -190,18 +190,18 @@ init_screens (int screen_arg, int screen_num) * disable Xinerama in this case. */ if (rp_have_xinerama) - { - fprintf (stderr, "Warning: selecting a specific Xinerama screen is not implemented.\n"); - rp_have_xinerama = 0; - screen_num = 0; - num_screens = ScreenCount(dpy); - } - + { + fprintf (stderr, "Warning: selecting a specific Xinerama screen is not implemented.\n"); + rp_have_xinerama = 0; + screen_num = 0; + num_screens = ScreenCount(dpy); + } + if (screen_num < 0 || screen_num >= num_screens) - { - fprintf (stderr, "%d is an invalid screen for the display\n", screen_num); - exit (EXIT_FAILURE); - } + { + fprintf (stderr, "%d is an invalid screen for the display\n", screen_num); + exit (EXIT_FAILURE); + } /* we're only going to use one screen. */ num_screens = 1; @@ -221,9 +221,9 @@ init_screens (int screen_arg, int screen_num) else { for (i=0; i<num_screens; i++) - { - init_screen (&screens[i], i); - } + { + init_screen (&screens[i], i); + } } } @@ -250,7 +250,7 @@ init_screen (rp_screen *s, int screen_num) xine_screen_num = screen_num; screen_num = DefaultScreen(dpy); xinerama_get_screen_info(xine_screen_num, - &s->left, &s->top, &s->width, &s->height); + &s->left, &s->top, &s->width, &s->height); } else { @@ -265,13 +265,13 @@ init_screen (rp_screen *s, int screen_num) there is already a WM running and the X Error handler will catch it, terminating ratpoison. */ XSelectInput(dpy, RootWindow (dpy, screen_num), - PropertyChangeMask | ColormapChangeMask - | SubstructureRedirectMask | SubstructureNotifyMask ); + PropertyChangeMask | ColormapChangeMask + | SubstructureRedirectMask | SubstructureNotifyMask ); XSync (dpy, False); /* Add netwm support. FIXME: I think this is busted. */ XChangeProperty (dpy, RootWindow (dpy, screen_num), - _net_supported, XA_ATOM, 32, PropModeReplace, &_net_wm_pid, 1); + _net_supported, XA_ATOM, 32, PropModeReplace, &_net_wm_pid, 1); /* Set the numset for the frames to our global numset. */ s->frames_numset = rp_frame_numset; @@ -285,7 +285,7 @@ init_screen (rp_screen *s, int screen_num) dot = strrchr(s->display_string, '.'); if (dot) - sprintf(dot, ".%i", screen_num); + sprintf(dot, ".%i", screen_num); } PRINT_DEBUG (("%s\n", s->display_string)); @@ -294,7 +294,7 @@ init_screen (rp_screen *s, int screen_num) s->xine_screen_num = xine_screen_num; s->root = RootWindow (dpy, screen_num); s->def_cmap = DefaultColormap (dpy, screen_num); - + init_rat_cursor (s); s->fg_color = BlackPixel (dpy, s->screen_num); @@ -307,38 +307,38 @@ init_screen (rp_screen *s, int screen_num) gv.line_width = 1; gv.subwindow_mode = IncludeInferiors; gv.font = defaults.font->fid; - s->normal_gc = XCreateGC(dpy, s->root, - GCForeground | GCBackground | GCFunction - | GCLineWidth | GCSubwindowMode | GCFont, - &gv); + s->normal_gc = XCreateGC(dpy, s->root, + GCForeground | GCBackground | GCFunction + | GCLineWidth | GCSubwindowMode | GCFont, + &gv); /* Create the program bar window. */ s->bar_is_raised = 0; - s->bar_window = XCreateSimpleWindow (dpy, s->root, 0, 0, 1, 1, - defaults.bar_border_width, - s->fg_color, s->bg_color); + s->bar_window = XCreateSimpleWindow (dpy, s->root, 0, 0, 1, 1, + defaults.bar_border_width, + s->fg_color, s->bg_color); /* Setup the window that will receive all keystrokes once the prefix key has been pressed. */ - s->key_window = XCreateSimpleWindow (dpy, s->root, 0, 0, 1, 1, 0, - WhitePixel (dpy, s->screen_num), - BlackPixel (dpy, s->screen_num)); + s->key_window = XCreateSimpleWindow (dpy, s->root, 0, 0, 1, 1, 0, + WhitePixel (dpy, s->screen_num), + BlackPixel (dpy, s->screen_num)); XSelectInput (dpy, s->key_window, KeyPressMask | KeyReleaseMask); XMapWindow (dpy, s->key_window); /* Create the input window. */ - s->input_window = XCreateSimpleWindow (dpy, s->root, 0, 0, 1, 1, - defaults.bar_border_width, - s->fg_color, s->bg_color); + s->input_window = XCreateSimpleWindow (dpy, s->root, 0, 0, 1, 1, + defaults.bar_border_width, + s->fg_color, s->bg_color); XSelectInput (dpy, s->input_window, KeyPressMask | KeyReleaseMask); /* Create the frame indicator window */ - s->frame_window = XCreateSimpleWindow (dpy, s->root, 1, 1, 1, 1, defaults.bar_border_width, - s->fg_color, s->bg_color); + s->frame_window = XCreateSimpleWindow (dpy, s->root, 1, 1, 1, 1, defaults.bar_border_width, + s->fg_color, s->bg_color); /* Create the help window */ s->help_window = XCreateSimpleWindow (dpy, s->root, s->left, s->top, s->width, - s->height, 0, s->fg_color, s->bg_color); + s->height, 0, s->fg_color, s->bg_color); XSelectInput (dpy, s->help_window, KeyPressMask); XSync (dpy, 0); @@ -378,16 +378,16 @@ screen_dump (rp_screen *screen) { char *tmp; struct sbuf *s; - + s = sbuf_new (0); - sbuf_printf (s, "%d %d %d %d %d %d", - (rp_have_xinerama)?screen->xine_screen_num:screen->screen_num, - screen->left, - screen->top, - screen->width, - screen->height, - (current_screen() == screen)?1:0 /* is current? */ - ); + sbuf_printf (s, "%d %d %d %d %d %d", + (rp_have_xinerama)?screen->xine_screen_num:screen->screen_num, + screen->left, + screen->top, + screen->width, + screen->height, + (current_screen() == screen)?1:0 /* is current? */ + ); /* Extract the string and return it, and don't forget to free s. */ tmp = sbuf_get (s); diff --git a/src/screen.h b/src/screen.h index ee5b3eb..adad4f1 100644 --- a/src/screen.h +++ b/src/screen.h @@ -6,12 +6,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, diff --git a/src/split.c b/src/split.c index 62da8e7..109740f 100644 --- a/src/split.c +++ b/src/split.c @@ -96,7 +96,7 @@ set_frames_window (rp_frame *frame, rp_window *win) { frame->win_number = win->number; win->frame_number = frame->number; - + /* We need to make sure that win and frame are on the same screen, * since with Xinerama, windows can move from one screen to another. */ @@ -119,8 +119,8 @@ frames_screen (rp_frame *frame) for (i=0; i<num_screens; i++) list_for_each_entry (cur, &screens[i].frames, node) { - if (frame == cur) - return &screens[i]; + if (frame == cur) + return &screens[i]; } /* This SHOULD be impossible to get to. FIXME: It'll crash higher up if we @@ -136,9 +136,9 @@ maximize_all_windows_in_frame (rp_frame *frame) list_for_each_entry (win, &rp_mapped_window, node) { if (win->frame_number == frame->number) - { - maximize (win); - } + { + maximize (win); + } } } @@ -200,14 +200,14 @@ find_last_frame () rp_screen *s = &screens[i]; list_for_each_entry (cur, &s->frames, node) - { - if (cur->number != current_screen()->current_frame - && cur->last_access > last_access) - { - last_access = cur->last_access; - last = cur; - } - } + { + if (cur->number != current_screen()->current_frame + && cur->last_access > last_access) + { + last_access = cur->last_access; + last = cur; + } + } } return last; @@ -258,11 +258,11 @@ window_fits_in_frame (rp_window *win, rp_frame *frame) if (win->hints->flags & PMinSize) { if (win->hints->min_width > frame->width - || - win->hints->min_height > frame->height) - { - return 0; - } + || + win->hints->min_height > frame->height) + { + return 0; + } } return 1; @@ -281,15 +281,15 @@ find_window_for_frame (rp_frame *frame) list_for_each_entry (cur, &rp_current_group->mapped_windows, node) { if ((cur->win->scr == s || rp_have_xinerama) - && cur->win != current_window() - && !find_windows_frame (cur->win) - && cur->win->last_access >= last_access - && window_fits_in_frame (cur->win, frame) - && cur->win->frame_number == EMPTY) - { - most_recent = cur; - last_access = cur->win->last_access; - } + && cur->win != current_window() + && !find_windows_frame (cur->win) + && cur->win->last_access >= last_access + && window_fits_in_frame (cur->win, frame) + && cur->win->frame_number == EMPTY) + { + most_recent = cur; + last_access = cur->win->last_access; + } } if (most_recent) @@ -393,17 +393,17 @@ remove_all_splits () list_for_each_entry (win, &rp_mapped_window, node) { if (win->frame_number != s->current_frame && win->scr == s) - hide_window (win); + hide_window (win); } /* Delete all the frames except the current one. */ list_for_each_safe_entry (frame, iter, tmp, &s->frames, node) { if (frame->number != s->current_frame) - { - list_del (&frame->node); - frame_free (s, frame); - } + { + list_del (&frame->node); + frame_free (s, frame); + } } /* Maximize the frame and the windows in the frame. */ @@ -431,11 +431,11 @@ resize_shrink_to_window (rp_frame *frame) success. */ static int resize_frame (rp_frame *frame, rp_frame *pusher, int diff, - int (*c1)(rp_frame *), int (c2)(rp_frame *), - int (*c3)(rp_frame *), int (c4)(rp_frame *), - void (*resize1)(rp_frame *, int), - void (*resize2)(rp_frame *, int), - int (*resize3)(rp_frame *, rp_frame *, int)) + int (*c1)(rp_frame *), int (c2)(rp_frame *), + int (*c3)(rp_frame *), int (c4)(rp_frame *), + void (*resize1)(rp_frame *, int), + void (*resize2)(rp_frame *, int), + int (*resize3)(rp_frame *, rp_frame *, int)) { rp_screen *s = frames_screen (frame); rp_frame *cur; @@ -446,46 +446,46 @@ resize_frame (rp_frame *frame, rp_frame *pusher, int diff, { if (cur == frame || cur == pusher) continue; /* If cur is touching frame along the axis that is being - moved then this frame is affected by the resize. */ + moved then this frame is affected by the resize. */ if ((*c1)(cur) == (*c3)(frame)) - { - /* If the frame can't get any smaller, then fail. */ - if (diff > 0 - && abs ((*c3)(cur) - (*c1)(cur)) - diff <= defaults.window_border_width * 2) - return -1; - /* Test for this circumstance: - --+ - | |+-+ - |f||c| - | |+-+ - --+ - - In this case, resizing cur will not affect any other - frames, so just do the resize. - */ - if (((*c2)(cur) >= (*c2)(frame)) - && (*c4)(cur) <= (*c4)(frame)) - { - (*resize2)(cur, -diff); - maximize_all_windows_in_frame (cur); - } - /* Otherwise, cur's corners are either strictly outside - frame's corners, or one of them is inside and the other - isn't. In either of these cases, resizing cur will affect - other adjacent frames, so find them and resize them first - (recursive step) and then resize cur. */ - else if (((*c2)(cur) < (*c2)(frame) - && (*c4)(cur) > (*c4)(frame)) - || ((*c2)(cur) >= (*c2)(frame) - && (*c2)(cur) < (*c4)(frame)) - || ((*c4)(cur) > (*c2)(frame) - && (*c4)(cur) <= (*c4)(frame))) - { - /* Attempt to resize cur. */ - if (resize3 (cur, frame, -diff) == -1) - return -1; - } - } + { + /* If the frame can't get any smaller, then fail. */ + if (diff > 0 + && abs ((*c3)(cur) - (*c1)(cur)) - diff <= defaults.window_border_width * 2) + return -1; + /* Test for this circumstance: + --+ + | |+-+ + |f||c| + | |+-+ + --+ + + In this case, resizing cur will not affect any other + frames, so just do the resize. + */ + if (((*c2)(cur) >= (*c2)(frame)) + && (*c4)(cur) <= (*c4)(frame)) + { + (*resize2)(cur, -diff); + maximize_all_windows_in_frame (cur); + } + /* Otherwise, cur's corners are either strictly outside + frame's corners, or one of them is inside and the other + isn't. In either of these cases, resizing cur will affect + other adjacent frames, so find them and resize them first + (recursive step) and then resize cur. */ + else if (((*c2)(cur) < (*c2)(frame) + && (*c4)(cur) > (*c4)(frame)) + || ((*c2)(cur) >= (*c2)(frame) + && (*c2)(cur) < (*c4)(frame)) + || ((*c4)(cur) > (*c2)(frame) + && (*c4)(cur) <= (*c4)(frame))) + { + /* Attempt to resize cur. */ + if (resize3 (cur, frame, -diff) == -1) + return -1; + } + } } /* Finally, resize the frame and the windows inside. */ @@ -505,8 +505,8 @@ static int resize_frame_right (rp_frame *frame, rp_frame *pusher, int diff) { return resize_frame (frame, pusher, diff, - frame_left, frame_top, frame_right, frame_bottom, - frame_resize_right, frame_resize_left, resize_frame_left); + frame_left, frame_top, frame_right, frame_bottom, + frame_resize_right, frame_resize_left, resize_frame_left); } /* Resize frame by moving it's left side. */ @@ -514,8 +514,8 @@ static int resize_frame_left (rp_frame *frame, rp_frame *pusher, int diff) { return resize_frame (frame, pusher, diff, - frame_right, frame_top, frame_left, frame_bottom, - frame_resize_left, frame_resize_right, resize_frame_right); + frame_right, frame_top, frame_left, frame_bottom, + frame_resize_left, frame_resize_right, resize_frame_right); } /* Resize frame by moving it's top side. */ @@ -523,8 +523,8 @@ static int resize_frame_top (rp_frame *frame, rp_frame *pusher, int diff) { return resize_frame (frame, pusher, diff, - frame_bottom, frame_left, frame_top, frame_right, - frame_resize_up, frame_resize_down, resize_frame_bottom); + frame_bottom, frame_left, frame_top, frame_right, + frame_resize_up, frame_resize_down, resize_frame_bottom); } /* Resize frame by moving it's bottom side. */ @@ -532,8 +532,8 @@ static int resize_frame_bottom (rp_frame *frame, rp_frame *pusher, int diff) { return resize_frame (frame, pusher, diff, - frame_top, frame_left, frame_bottom, frame_right, - frame_resize_down, frame_resize_up, resize_frame_top); + frame_top, frame_left, frame_bottom, frame_right, + frame_resize_down, frame_resize_up, resize_frame_top); } /* Resize frame diff pixels by expanding it to the right. If the frame @@ -696,9 +696,9 @@ frame_overlaps (rp_frame *frame) list_for_each_entry (cur, &s->frames, node) { if (cur != frame && frames_overlap (cur, frame)) - { - return 1; - } + { + return 1; + } } return 0; } @@ -729,92 +729,92 @@ remove_frame (rp_frame *frame) int fits = 0; /* if (cur->win_number != EMPTY) */ -/* { */ -/* PRINT_DEBUG (("Trying frame containing window '%s'\n", window_name (cur->win))); */ -/* } */ +/* { */ +/* PRINT_DEBUG (("Trying frame containing window '%s'\n", window_name (cur->win))); */ +/* } */ /* else */ -/* { */ -/* PRINT_DEBUG (("Trying some empty frame\n")); */ -/* } */ +/* { */ +/* PRINT_DEBUG (("Trying some empty frame\n")); */ +/* } */ /* Backup the frame */ memcpy (&tmp_frame, cur, sizeof (rp_frame)); if (frame_is_below (frame, cur) - || frame_is_above (frame, cur)) - { - if (frame_is_below (frame, cur)) - cur->y = frame->y; - cur->height += frame->height; - } + || frame_is_above (frame, cur)) + { + if (frame_is_below (frame, cur)) + cur->y = frame->y; + cur->height += frame->height; + } PRINT_DEBUG (("Attempting vertical Frame y=%d height=%d\n", cur->y, cur->height)); PRINT_DEBUG (("New Total Area: %d\n", total_frame_area(s))); /* If the area is bigger than before, the frame takes up too - much space. If the current frame and the deleted frame DON'T - overlap then the current window took up just the right amount - of space but didn't take up the space left behind by the - deleted window. If any active frames overlap, it could have - taken up the right amount of space, overlaps with the deleted - frame but obviously didn't fit. */ + much space. If the current frame and the deleted frame DON'T + overlap then the current window took up just the right amount + of space but didn't take up the space left behind by the + deleted window. If any active frames overlap, it could have + taken up the right amount of space, overlaps with the deleted + frame but obviously didn't fit. */ if (total_frame_area(s) > area || !frames_overlap (cur, frame) || frame_overlaps (cur)) - { - PRINT_DEBUG (("Didn't fit vertically\n")); + { + PRINT_DEBUG (("Didn't fit vertically\n")); - /* Restore the current window's frame */ - memcpy (cur, &tmp_frame, sizeof (rp_frame)); - } + /* Restore the current window's frame */ + memcpy (cur, &tmp_frame, sizeof (rp_frame)); + } else - { - PRINT_DEBUG (("It fit vertically!!\n")); + { + PRINT_DEBUG (("It fit vertically!!\n")); - /* update the frame backup */ - memcpy (&tmp_frame, cur, sizeof (rp_frame)); - fits = 1; - } + /* update the frame backup */ + memcpy (&tmp_frame, cur, sizeof (rp_frame)); + fits = 1; + } if (frame_is_left (frame, cur) - || frame_is_right (frame, cur)) - { - if (frame_is_right (frame, cur)) - cur->x = frame->x; - cur->width += frame->width; - } + || frame_is_right (frame, cur)) + { + if (frame_is_right (frame, cur)) + cur->x = frame->x; + cur->width += frame->width; + } PRINT_DEBUG (("Attempting horizontal Frame x=%d width=%d\n", cur->x, cur->width)); PRINT_DEBUG (("New Total Area: %d\n", total_frame_area(s))); /* Same test as the vertical test, above. */ if (total_frame_area(s) > area || !frames_overlap (cur, frame) || frame_overlaps (cur)) - { - PRINT_DEBUG (("Didn't fit horizontally\n")); + { + PRINT_DEBUG (("Didn't fit horizontally\n")); - /* Restore the current window's frame */ - memcpy (cur, &tmp_frame, sizeof (rp_frame)); - } + /* Restore the current window's frame */ + memcpy (cur, &tmp_frame, sizeof (rp_frame)); + } else - { - PRINT_DEBUG (("It fit horizontally!!\n")); - fits = 1; - } + { + PRINT_DEBUG (("It fit horizontally!!\n")); + fits = 1; + } if (fits) - { - /* The current frame fits into the new space so keep its - new frame parameters and maximize the window to fit - the new frame size. */ - if (cur->win_number != EMPTY) - { - win = find_window_number (cur->win_number); - maximize_all_windows_in_frame (cur); - XRaiseWindow (dpy, win->w); - } - } + { + /* The current frame fits into the new space so keep its + new frame parameters and maximize the window to fit + the new frame size. */ + if (cur->win_number != EMPTY) + { + win = find_window_number (cur->win_number); + maximize_all_windows_in_frame (cur); + XRaiseWindow (dpy, win->w); + } + } else - { - memcpy (cur, &tmp_frame, sizeof (rp_frame)); - } + { + memcpy (cur, &tmp_frame, sizeof (rp_frame)); + } } frame_free (s, frame); @@ -859,7 +859,7 @@ set_active_frame (rp_frame *frame) show_frame_indicator(); /* run the frame switch hook. We call it in here because this is - when a frame switch ACTUALLY (for sure) happens. */ + when a frame switch ACTUALLY (for sure) happens. */ hook_run (&rp_switch_frame_hook); } @@ -927,18 +927,18 @@ show_frame_message (char *msg) hide_frame_indicator (); XMoveResizeWindow (dpy, s->frame_window, - s->left + frame->x + frame->width / 2 - width / 2, - s->top + frame->y + frame->height / 2 - height / 2, - width, height); + s->left + frame->x + frame->width / 2 - width / 2, + s->top + frame->y + frame->height / 2 - height / 2, + width, height); XMapRaised (dpy, s->frame_window); XClearWindow (dpy, s->frame_window); XSync (dpy, False); XDrawString (dpy, s->frame_window, s->normal_gc, - defaults.bar_x_padding, - defaults.bar_y_padding + defaults.font->max_bounds.ascent, - msg, strlen (msg)); + defaults.bar_x_padding, + defaults.bar_y_padding + defaults.font->max_bounds.ascent, + msg, strlen (msg)); } rp_frame * @@ -950,10 +950,10 @@ find_frame_up (rp_frame *frame) list_for_each_entry (cur, &s->frames, node) { if (frame->y == cur->y + cur->height) - { - if (frame->x >= cur->x && frame->x < cur->x + cur->width) - return cur; - } + { + if (frame->x >= cur->x && frame->x < cur->x + cur->width) + return cur; + } } return NULL; @@ -968,10 +968,10 @@ find_frame_down (rp_frame *frame) list_for_each_entry (cur, &s->frames, node) { if (frame->y + frame->height == cur->y) - { - if (frame->x >= cur->x && frame->x < cur->x + cur->width) - return cur; - } + { + if (frame->x >= cur->x && frame->x < cur->x + cur->width) + return cur; + } } return NULL; @@ -986,10 +986,10 @@ find_frame_left (rp_frame *frame) list_for_each_entry (cur, &s->frames, node) { if (frame->x == cur->x + cur->width) - { - if (frame->y >= cur->y && frame->y < cur->y + cur->height) - return cur; - } + { + if (frame->y >= cur->y && frame->y < cur->y + cur->height) + return cur; + } } return NULL; @@ -1004,10 +1004,10 @@ find_frame_right (rp_frame *frame) list_for_each_entry (cur, &s->frames, node) { if (frame->x + frame->width == cur->x) - { - if (frame->y >= cur->y && frame->y < cur->y + cur->height) - return cur; - } + { + if (frame->y >= cur->y && frame->y < cur->y + cur->height) + return cur; + } } return NULL; @@ -1022,14 +1022,13 @@ find_frame_number (int num) for (i=0; i<num_screens; i++) { rp_screen *s = &screens[i]; - + list_for_each_entry (cur, &s->frames, node) - { - if (cur->number == num) - return cur; - } + { + if (cur->number == num) + return cur; + } } return NULL; } - diff --git a/src/window.c b/src/window.c index 89e48d1..e3a1e89 100644 --- a/src/window.c +++ b/src/window.c @@ -1,4 +1,4 @@ -/* functions for handling the window list +/* functions for handling the window list * Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca> * * This file is part of ratpoison. @@ -19,7 +19,7 @@ * Boston, MA 02111-1307 USA */ -#include <unistd.h> /* for getsid */ +#include <unistd.h> /* for getsid */ #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -38,7 +38,7 @@ get_mouse_position (rp_window *win, int *mouse_x, int *mouse_y) Window root_win, child_win; int root_x, root_y; unsigned int mask; - + XQueryPointer (dpy, win->scr->root, &root_win, &child_win, mouse_x, mouse_y, &root_x, &root_y, &mask); } @@ -63,11 +63,11 @@ update_window_gravity (rp_window *win) /* if (win->hints->win_gravity == ForgetGravity) */ /* { */ if (win->transient) - win->gravity = defaults.trans_gravity; + win->gravity = defaults.trans_gravity; else if (win->hints->flags & PMaxSize || win->hints->flags & PAspect) - win->gravity = defaults.maxsize_gravity; + win->gravity = defaults.maxsize_gravity; else - win->gravity = defaults.win_gravity; + win->gravity = defaults.win_gravity; /* } */ /* else */ /* { */ @@ -87,19 +87,19 @@ window_name (rp_window *win) { case WIN_NAME_RES_NAME: if (win->res_name) - return win->res_name; + return win->res_name; else return win->user_name; - + case WIN_NAME_RES_CLASS: if (win->res_class) - return win->res_class; + return win->res_class; else return win->user_name; /* if we're not looking for the res name or res class, then - we're looking for the window title. */ + we're looking for the window title. */ default: if (win->wm_name) - return win->wm_name; + return win->wm_name; else return win->user_name; } @@ -122,8 +122,8 @@ get_child_info (Window w) pid_t sid; status = XGetWindowProperty (dpy, w, _net_wm_pid, - 0, 0, False, XA_CARDINAL, - &type_ret, &format_ret, &nitems, &bytes_after, &req); + 0, 0, False, XA_CARDINAL, + &type_ret, &format_ret, &nitems, &bytes_after, &req); if (status != Success || req == NULL) { @@ -132,13 +132,13 @@ get_child_info (Window w) } /* XGetWindowProperty always allocates one extra byte even if - the property is zero length. */ + the property is zero length. */ XFree (req); status = XGetWindowProperty (dpy, w, _net_wm_pid, - 0, (bytes_after / 4) + (bytes_after % 4 ? 1 : 0), - False, XA_CARDINAL, &type_ret, &format_ret, &nitems, - &bytes_after, &req); + 0, (bytes_after / 4) + (bytes_after % 4 ? 1 : 0), + False, XA_CARDINAL, &type_ret, &format_ret, &nitems, + &bytes_after, &req); if (status != Success || req == NULL) { @@ -157,9 +157,9 @@ get_child_info (Window w) { PRINT_DEBUG(("cur->pid=%d sid=%d\n", cur->pid, getsid (cur->pid))); if (sid == getsid (cur->pid)) - return cur; + return cur; } - + return NULL; } @@ -225,7 +225,7 @@ add_to_window_list (rp_screen *s, Window w) PRINT_DEBUG(("frame_num: %d\n", frame_num)); if (frame_num >= 0) new_window->intended_frame_number = frame_num; - + return new_window; } @@ -252,13 +252,13 @@ find_window (Window w) win = find_window_in_list (w, &rp_mapped_window); - if (!win) + if (!win) { win = find_window_in_list (w, &rp_unmapped_window); if (win) - PRINT_DEBUG (("Window found in unmapped window list\n")); + PRINT_DEBUG (("Window found in unmapped window list\n")); else - PRINT_DEBUG (("Window not found.\n")); + PRINT_DEBUG (("Window not found.\n")); } else { @@ -296,8 +296,8 @@ find_window_name (char *name) list_for_each_entry (cur, &rp_current_group->mapped_windows, node) { - if (str_comp (name, window_name (cur->win), strlen (name))) - return cur->win; + if (str_comp (name, window_name (cur->win), strlen (name))) + return cur->win; } /* didn't find it */ @@ -313,14 +313,14 @@ find_window_prev (rp_window *w) if (!w) return NULL; - for (cur = list_prev_entry (w, &rp_mapped_window, node); - cur != w; + for (cur = list_prev_entry (w, &rp_mapped_window, node); + cur != w; cur = list_prev_entry (cur, &rp_mapped_window, node)) { if (!find_windows_frame (cur)) - { - return cur; - } + { + return cur; + } } return NULL; @@ -335,14 +335,14 @@ find_window_next (rp_window *w) if (!w) return NULL; - for (cur = list_next_entry (w, &rp_mapped_window, node); - cur != w; + for (cur = list_next_entry (w, &rp_mapped_window, node); + cur != w; cur = list_next_entry (cur, &rp_mapped_window, node)) { if (!find_windows_frame (cur)) - { - return cur; - } + { + return cur; + } } return NULL; @@ -366,10 +366,10 @@ insert_into_list (rp_window *win, struct list_head *list) list_for_each_entry (cur, list, node) { if (cur->number > win->number) - { - list_add_tail (&win->node, &cur->node); - return; - } + { + list_add_tail (&win->node, &cur->node); + return; + } } list_add_tail(&win->node, list); @@ -381,7 +381,7 @@ save_mouse_position (rp_window *win) Window root_win, child_win; int root_x, root_y; unsigned int mask; - + /* In the case the XQueryPointer raises a BadWindow error, the window is not mapped or has been destroyed so it doesn't matter what we store in mouse_x and mouse_y since they will never be @@ -389,8 +389,8 @@ save_mouse_position (rp_window *win) ignore_badwindow++; - XQueryPointer (dpy, win->w, &root_win, &child_win, - &root_x, &root_y, &win->mouse_x, &win->mouse_y, &mask); + XQueryPointer (dpy, win->w, &root_win, &child_win, + &root_x, &root_y, &win->mouse_x, &win->mouse_y, &mask); ignore_badwindow--; } @@ -417,10 +417,10 @@ give_window_focus (rp_window *win, rp_window *last_win) if (defaults.warp) { PRINT_DEBUG (("Warp pointer\n")); - XWarpPointer (dpy, None, win->w, - 0, 0, 0, 0, win->mouse_x, win->mouse_y); + XWarpPointer (dpy, None, win->w, + 0, 0, 0, 0, win->mouse_x, win->mouse_y); } - + /* Swap colormaps */ if (last_win != NULL) XUninstallColormap (dpy, last_win->colormap); XInstallColormap (dpy, win->colormap); @@ -444,7 +444,7 @@ unhide_transient_for (rp_window *win) frame = find_windows_frame (win); transient_for = find_window (win->transient_for); - if (transient_for == NULL) + if (transient_for == NULL) { PRINT_DEBUG (("Can't find transient_for for '%s'\n", win->name )); return; @@ -456,17 +456,17 @@ unhide_transient_for (rp_window *win) maximize (transient_for); PRINT_DEBUG (("unhide transient window: %s\n", transient_for->name)); - + unhide_window_below (transient_for); - if (transient_for->transient) - { - unhide_transient_for (transient_for); - } + if (transient_for->transient) + { + unhide_transient_for (transient_for); + } set_frames_window (frame, win); } - else if (transient_for->transient) + else if (transient_for->transient) { unhide_transient_for (transient_for); } @@ -484,7 +484,7 @@ hide_transient_for_between (rp_window *win, rp_window *last) if (!win->transient) return; transient_for = find_window (win->transient_for); - if (transient_for == last) + if (transient_for == last) { PRINT_DEBUG (("Can't find transient_for for '%s'\n", win->name )); return; @@ -496,7 +496,7 @@ hide_transient_for_between (rp_window *win, rp_window *last) hide_window (transient_for); } - if (transient_for->transient) + if (transient_for->transient) { hide_transient_for (transient_for); } @@ -530,9 +530,9 @@ is_transient_ancestor (rp_window *win, rp_window *transient_for) { tmp = find_window (tmp->transient_for); if (tmp == transient_for) - return 1; + return 1; } while (tmp && tmp->transient); - + return 0; } #endif @@ -540,7 +540,7 @@ is_transient_ancestor (rp_window *win, rp_window *transient_for) /* In the current frame, set the active window to win. win will have focus. */ void set_active_window (rp_window *win) { - set_active_window_body(win, 0); + set_active_window_body(win, 0); } void set_active_window_force (rp_window *win) @@ -567,29 +567,29 @@ set_active_window_body (rp_window *win, int force) { /* use the intended frame if we can. */ if (win->intended_frame_number >= 0) - { - frame = screen_get_frame (current_screen(), win->intended_frame_number); - win->intended_frame_number = -1; - if (frame != current_frame()) - last_frame = current_frame(); - } + { + frame = screen_get_frame (current_screen(), win->intended_frame_number); + win->intended_frame_number = -1; + if (frame != current_frame()) + last_frame = current_frame(); + } if (!frame) - frame = screen_get_frame (current_screen(), current_screen()->current_frame); + frame = screen_get_frame (current_screen(), current_screen()->current_frame); } else { /* use the intended frame if we can. */ if (win->intended_frame_number >= 0) - { - frame = screen_get_frame (win->scr, win->intended_frame_number); - win->intended_frame_number = -1; - if (frame != current_frame()) - last_frame = current_frame(); - } + { + frame = screen_get_frame (win->scr, win->intended_frame_number); + win->intended_frame_number = -1; + if (frame != current_frame()) + last_frame = current_frame(); + } if (!frame) - frame = screen_get_frame (win->scr, win->scr->current_frame); + frame = screen_get_frame (win->scr, win->scr->current_frame); } if (frame->dedicated && !force) @@ -597,46 +597,46 @@ set_active_window_body (rp_window *win, int force) /* Try to find a non-dedicated frame. */ rp_frame *cur; rp_screen *scr; - int done; + int done; scr = (rp_have_xinerama)?&screens[rp_current_screen]:win->scr; done = 0; /* Try the only / current screen... */ - for (cur = list_next_entry (frame, &scr->frames, node); - cur != frame && !done; - cur = list_next_entry (cur, &scr->frames, node)) - { - if (!cur->dedicated) - { - set_active_frame (cur); - last_frame = frame; - frame = cur; - done = 1; - } - } + for (cur = list_next_entry (frame, &scr->frames, node); + cur != frame && !done; + cur = list_next_entry (cur, &scr->frames, node)) + { + if (!cur->dedicated) + { + set_active_frame (cur); + last_frame = frame; + frame = cur; + done = 1; + } + } /* If we have Xinerama, we can check *all* screens... */ if (rp_have_xinerama && !done) - { - int i; - - for (i=0; i<num_screens && !done; i++) - { - if (scr == &screens[i]) continue; - list_for_each_entry (cur,&screens[i].frames,node) - { - if (!cur->dedicated) - { - set_active_frame (cur); - last_frame = frame; - frame = cur; - done = 1; /* Break outer loop. */ - break; /* Break inner loop. */ - } - } - } - } + { + int i; + + for (i=0; i<num_screens && !done; i++) + { + if (scr == &screens[i]) continue; + list_for_each_entry (cur,&screens[i].frames,node) + { + if (!cur->dedicated) + { + set_active_frame (cur); + last_frame = frame; + frame = cur; + done = 1; /* Break outer loop. */ + break; /* Break inner loop. */ + } + } + } + } } last_win = set_frames_window (frame, win); @@ -698,19 +698,19 @@ print_window_information (rp_group *group, rp_window *win) of windows existing in multiple groups. */ win_elem = group_find_window (&group->mapped_windows, win); if (win_elem) - marked_message_printf (0, 0, MESSAGE_WINDOW_INFORMATION, - win_elem->number, window_name (win)); + marked_message_printf (0, 0, MESSAGE_WINDOW_INFORMATION, + win_elem->number, window_name (win)); else marked_message_printf (0, 0, "%s doesn't exist in group %d\n", - window_name(win), group->number); + window_name(win), group->number); } /* get the window list and store it in buffer delimiting each window with delim. mark_start and mark_end will be filled with the text positions for the start and end of the current window. */ void -get_window_list (char *fmt, char *delim, struct sbuf *buffer, - int *mark_start, int *mark_end) +get_window_list (char *fmt, char *delim, struct sbuf *buffer, + int *mark_start, int *mark_end) { rp_window_elem *we; rp_window *other_window; @@ -726,29 +726,29 @@ get_window_list (char *fmt, char *delim, struct sbuf *buffer, PRINT_DEBUG (("%d-%s\n", we->number, window_name (we->win))); if (we->win == current_window()) - *mark_start = strlen (sbuf_get (buffer)); + *mark_start = strlen (sbuf_get (buffer)); /* A hack, pad the window with a space at the beginning and end if there is no delimiter. */ if (!delim) - sbuf_concat (buffer, " "); + sbuf_concat (buffer, " "); format_string (fmt, we, buffer); /* A hack, pad the window with a space at the beginning and end if there is no delimiter. */ if (!delim) - sbuf_concat (buffer, " "); + sbuf_concat (buffer, " "); /* Only put the delimiter between the windows, and not after the the last window. */ if (delim && we->node.next != &rp_current_group->mapped_windows) - sbuf_concat (buffer, delim); + sbuf_concat (buffer, delim); - if (we->win == current_window()) - { - *mark_end = strlen (sbuf_get (buffer)); - } + if (we->win == current_window()) + { + *mark_end = strlen (sbuf_get (buffer)); + } } if (!strcmp (sbuf_get (buffer), "")) diff --git a/src/window.h b/src/window.h index 3b51316..13080c1 100644 --- a/src/window.h +++ b/src/window.h @@ -1,4 +1,4 @@ -/* functions for managing the window list +/* functions for managing the window list * Copyright (C) 2000, 2001, 2002, 2003, 2004 Shawn Betts <sabetts@vcn.bc.ca> * * This file is part of ratpoison. @@ -7,12 +7,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, @@ -58,8 +58,8 @@ void sort_window_list_by_number (); void insert_into_list (rp_window *win, struct list_head *list); void print_window_information (rp_group *group, rp_window *win); -void get_window_list (char *fmt, char *delim, struct sbuf *buffer, - int *mark_start, int *mark_end); +void get_window_list (char *fmt, char *delim, struct sbuf *buffer, + int *mark_start, int *mark_end); void init_window_stuff (); void free_window_stuff (); diff --git a/src/xinerama.c b/src/xinerama.c index 3c94d56..ab3db32 100644 --- a/src/xinerama.c +++ b/src/xinerama.c @@ -36,48 +36,48 @@ static XineramaScreenInfo *xine_screens = NULL; void init_xinerama() { - int evbase, errbase, major, minor; - - rp_have_xinerama = 0; + int evbase, errbase, major, minor; -#ifdef XINERAMA - if (xine_screens) XFree(xine_screens); + rp_have_xinerama = 0; - if (!XineramaQueryExtension(dpy, &evbase, &errbase)) { - return; - } +#ifdef XINERAMA + if (xine_screens) XFree(xine_screens); + + if (!XineramaQueryExtension(dpy, &evbase, &errbase)) { + return; + } - if (!XineramaQueryVersion(dpy, &major, &minor) != Success) { - return; - } + if (!XineramaQueryVersion(dpy, &major, &minor) != Success) { + return; + } - if (major != 1) { - fprintf (stderr, "Warning: Xinerama version %d.%d not supported\n", major, minor); - return; - } - - if (!XineramaIsActive(dpy)) { - return; - } + if (major != 1) { + fprintf (stderr, "Warning: Xinerama version %d.%d not supported\n", major, minor); + return; + } - xine_screens = XineramaQueryScreens(dpy, &xine_screen_count); - if ((xine_screens == NULL) || (xine_screen_count < 2)) { - return; - } + if (!XineramaIsActive(dpy)) { + return; + } - rp_have_xinerama = 1; + xine_screens = XineramaQueryScreens(dpy, &xine_screen_count); + if ((xine_screens == NULL) || (xine_screen_count < 2)) { + return; + } + + rp_have_xinerama = 1; #endif } void xinerama_get_screen_info(int sc, int *x, int *y, int *w, int *h) { #ifdef XINERAMA - if ((sc < xine_screen_count) && (sc >= 0)) { - *x = xine_screens[sc].x_org; - *y = xine_screens[sc].y_org; - *w = xine_screens[sc].width; - *h = xine_screens[sc].height; - } + if ((sc < xine_screen_count) && (sc >= 0)) { + *x = xine_screens[sc].x_org; + *y = xine_screens[sc].y_org; + *w = xine_screens[sc].width; + *h = xine_screens[sc].height; + } #endif } @@ -85,10 +85,9 @@ void free_xinerama() { #ifdef XINERAMA - if (xine_screens) { - XFree(xine_screens); - } - rp_have_xinerama = 0; + if (xine_screens) { + XFree(xine_screens); + } + rp_have_xinerama = 0; #endif } - diff --git a/src/xinerama.h b/src/xinerama.h index a3d19c9..2785b48 100644 --- a/src/xinerama.h +++ b/src/xinerama.h @@ -6,12 +6,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. - * + * * ratpoison is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, |