about summary refs log tree commit diff stats
path: root/client.c
Commit message (Expand)AuthorAgeFilesLines
* sanitization of several clunky stuff, removed heretag (rarely of use), simpli...arg@10ksloc.org2006-07-211-2/+15
* applied sanders no_sizehints for tiled mode patch (thx!)arg@10ksloc.org2006-07-201-10/+10
* serious mistake in pop() (forgot to set c->prev to NULL on pop)arg@10ksloc.org2006-07-201-0/+1
* using double-linked list in order to get correct prev focus handlingarg@10ksloc.org2006-07-201-15/+31
* made status bar drawing more robust, implemented togglemax and togglemode, wo...arg@10ksloc.org2006-07-201-15/+38
* cleaned up codearg@10ksloc.org2006-07-201-6/+10
* removed c->f{x,y,w,h} and c->t{x,y,w,h} in favor for the new rule handling re...arg@10ksloc.org2006-07-201-76/+52
* implemented regexp matching for rulesarg@10ksloc.org2006-07-191-2/+3
* applied Jukka's patch with s/ModKeyMask/MODKEY/garg@10ksloc.org2006-07-191-3/+3
* fixed the bug mentioned by Sanderarg@10ksloc.org2006-07-191-3/+7
* refactored Sanders code somewhatarg@10ksloc.org2006-07-191-2/+2
* implemented fallback for too many clients in stacked modearg@10ksloc.org2006-07-191-2/+3
* and another fix...arg@10ksloc.org2006-07-191-1/+1
* yet another typo fixarg@10ksloc.org2006-07-191-2/+2
* fixed a typoarg@10ksloc.org2006-07-191-1/+1
* floating clients get random (x,y) offsets nowarg@10ksloc.org2006-07-191-0/+7
* applied Sanders resize patch, fixed lower bugarg@10ksloc.org2006-07-191-2/+8
* implemened distinguishing float/managed geometries of clients (works quite well)Anselm R. Garbe2006-07-181-48/+68
* pop on heretagAnselm R. Garbe2006-07-181-7/+14
* added heretag command which allows to tag a client of a foreign tag with curr...Anselm R. Garbe2006-07-181-4/+4
* another XSyncAnselm R. Garbe2006-07-161-0/+1
* several additions in mouse handling ;)Anselm R. Garbe2006-07-161-6/+7
* fixed XSync handling and finished man pageAnselm R. Garbe2006-07-151-4/+3
* sanitized other stuffAnselm R. Garbe2006-07-151-2/+2
* proceeded with cleaning up, sorting functions, etcAnselm R. Garbe2006-07-151-205/+206
* rearranged several stuffAnselm R. Garbe2006-07-151-58/+87
* sanitized namesAnselm R. Garbe2006-07-141-14/+14
* rearrangedAnselm R. Garbe2006-07-141-227/+3
* bar shows if currently is tiled (Mod1-space) or floating (Mod1-Shift-space) modeAnselm R. Garbe2006-07-141-0/+2
* fixed crash on zoom if only 1 client existsAnselm R. Garbe2006-07-141-3/+9
* removed a bunch of lines through swap removalAnselm R. Garbe2006-07-141-2/+2
* searching for a better way to discard enter notifiesAnselm R. Garbe2006-07-141-13/+11
* focus on view change as wellAnselm R. Garbe2006-07-141-0/+3
* made stdin reader more robustAnselm R. Garbe2006-07-141-4/+9
* implemented bar for dwm (I miss status text), I plan that status text is read...Anselm R. Garbe2006-07-141-12/+18
* continued with man pageAnselm R. Garbe2006-07-141-1/+1
* except improvements to the mouse handling this is already nearly feature comp...Anselm R. Garbe2006-07-131-0/+5
* added mini stuffAnselm R. Garbe2006-07-131-20/+31
* fixed several things, nearly feature completeAnselm R. Garbe2006-07-131-25/+30
* new stuffAnselm R. Garbe2006-07-131-44/+78
* several other additions/fixes, dwm is quite usable alreadyAnselm R. Garbe2006-07-131-95/+140
* implemented tagging a clientAnselm R. Garbe2006-07-131-57/+113
* added xlock command (I need it regularly)Anselm R. Garbe2006-07-131-20/+10
* added pointer warps on kb-driven/manage-driven focusAnselm R. Garbe2006-07-131-0/+3
* changed back to urxvt, dwm has no problems with it, because it doesn't use fr...Anselm R. Garbe2006-07-131-1/+1
* changed default colorsAnselm R. Garbe2006-07-131-7/+8
* added logo+descriptionAnselm R. Garbe2006-07-131-22/+33
* new stuff (some warning elimination)Anselm R. Garbe2006-07-131-3/+3
* removed unnecessary crapAnselm R. Garbe2006-07-131-20/+14
* before leaning things upAnselm R. Garbe2006-07-131-9/+52
span>}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd=$cpprog shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "$0: no input file specified" >&2 exit 1 else : fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d "$dst" ]; then instcmd=: chmodcmd="" else instcmd=$mkdirprog fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f "$src" ] || [ -d "$src" ] then : else echo "$0: $src does not exist" >&2 exit 1 fi if [ x"$dst" = x ] then echo "$0: no destination specified" >&2 exit 1 else : fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d "$dst" ] then dst=$dst/`basename "$src"` else : fi fi ## this sed command emulates the dirname command dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` IFS=$oIFS pathcomp='' while [ $# -ne 0 ] ; do pathcomp=$pathcomp$1 shift if [ ! -d "$pathcomp" ] ; then $mkdirprog "$pathcomp" else : fi pathcomp=$pathcomp/ done fi if [ x"$dir_arg" != x ] then $doit $instcmd "$dst" && if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename "$dst"` else dstfile=`basename "$dst" $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename "$dst"` else : fi # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/#inst.$$# rmtmp=$dstdir/#rm.$$# # Trap to clean up temp files at exit. trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0 trap '(exit $?); exit' 1 2 13 15 # Move or copy the file name to the temp name $doit $instcmd "$src" "$dsttmp" && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi && # Now remove or move aside any old file at destination location. We try this # two ways since rm can't unlink itself on some systems and the destination # file might be busy for other reasons. In this case, the final cleanup # might fail but the new file should still install successfully. { if [ -f "$dstdir/$dstfile" ] then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" fi && # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit }