about summary refs log tree commit diff
path: root/util.c
Commit message (Collapse)AuthorAgeFilesLines
* cvsimportLeah Neukirchen2020-05-141-4/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/heads/master: Fixed memory leak in xu_get_strprop. Prevent out of boundary write with configuration files in which too many quoted arguments are stored for other window managers. Allow configuring a percentage window size of the master window during htile/vtile actions. From Uwe Werler, with a few manpage tweaks. zap stray tabs Instead of using _NET_ACTIVE_WINDOW on restart, use the pointer location to determine what client to set active. Reduces a round trip for every window. Add support for SIGINT/SIGTERM. Simplify conditional construct. Trim event_mask to those that the root window actually needs. No need to lookup current client early; move to right before it is needed. Recommit 1.259, but now with TAILQ_FOREACH_SAFE. Revert previous. Causes a crash as reported by Tom Murphy. Simplify list markup. Plug two memory leaks. Also get rid of a variable that is no longer necessary. Remove ColormaskChange from event-mask since there's no event handler. Unrelated style fixes, consistency changes and sorting, appropriate dosage/removal of wrappers, simplification of name queue, client cycle joins other kb/mb bound functions.
| * Prevent out of boundary write with configuration files in which too manytobias2020-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | quoted arguments are stored for other window managers. The quotation handling happens within the while loop without checking if the "end" limit has been already reached. If this happens, the final NULL assignment leads to an out of boundary write on stack. OK okan@
| * Unrelated style fixes, consistency changes and sorting, appropriateokan2020-02-271-3/+3
| | | | | | | | | | dosage/removal of wrappers, simplification of name queue, client cycle joins other kb/mb bound functions.
* | cvsimportokan2019-08-131-0/+1
|\| | | | | | | | | | | | | | | | | | | * refs/heads/master: Because cwm warps the pointer during a client move (to stay within the client), there's a window of time where an expose or enternotify event will get generated for a lower client; use a hammer and drain events after keyboard move/resize, until such a time that cwm doesn't warp the pointer. Behavior noticed by kn. Fix regression from r1.107 (lost a return); kettenis@ pointed out the high potential for a use-after-free (true!) where kn@ ran into the regression using an app that actually exercised the XGrabPointer() failure path. Add application section command uses execvp(3) not execve(2) Plug a memory leak in log_debug(); OK okan@ Handle _NET_WM_NAME changes.
| * Plug a memory leak in log_debug(); OK okan@tim2019-04-291-0/+1
| |
* | cvsimportLeah Neukirchen2019-02-251-0/+1
|\| | | | | | | | | | | | | | | | | | | * refs/heads/master: Add 'group-close-[n]' action to close all windows within specified group. simplify screen 'area' usage for initial client placement restore order from before r1.248 (vtile/vtile containment changes). Rename internal functions to delinate between client remove, delete and xproto delete; 'window-close' is now the proper action, but 'window-delete' as an alias will remain until more interesting changes require breaking configs. Limit vtile/htile actions to clients fully within the screen of master client. fix missing includes
| * fix missing includesokan2019-02-131-0/+1
| |
* | cvsimportokan2018-02-061-2/+34
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refs/heads/master: (28 commits) Use screen's saved view instead of re-querying the server. Slightly expand and expose verbose debugging. add debugging for x events Add a simple debug logging mechanism. Simplification; use asprintf where appropriate now. Use func attributes where appropriate. Fix wins comparison declaration since it's unsigned from XQueryTree(). Generate name_to_func[] in a clean and readable fashion. Shrink tier[] by one after removing matchname in r1.55. If the requested group number is invalid, bail but don't kill cwm. Quick fix: exit after a failed execvp in u_spawn instead; previously we did in u_exec, but the introduction of re-exec'ing the previous invocation of cwm if 'exec_wm' failed missed the 'exec' failing path. Will likely split out as a proper fix. Only exec the fallback when in CWM_EXEC_WM state. Typo, from Julien Steinhauser. Convert menu-exec-wm from an abritrary exec menu, into a config-based menu from which one may configure (wm <name> <path_and_args>) (and choose) specific window managers to replace the running one. 'wm cwm cwm' is included by default. As done for buttonrelease, work specific un-cycling and un-highlighting actions into the keyrelease event, only performing what's actually needed for each; should result in much fewer events against keyreleases. No intended behaviour change. Merge group_toggle_membership_leave into the buttonrelease event and only do border work for a group/ungroup action. add helper function client_show to bring together like actions for unhide/raise Add support for re-exec'ing with SIGHUP; equivalent to the already built-in 'restart' function. Use poll and XNextEvent to replace XNextEvent blocking inside the x11 event handler. zap stray that snuck in ...
| * Slightly expand and expose verbose debugging.okan2018-02-041-3/+5
| |
| * Add a simple debug logging mechanism.okan2018-02-021-0/+30
| |
| * Quick fix: exit after a failed execvp in u_spawn instead; previously we did inokan2018-01-081-1/+1
| | | | | | | | | | | | | | | | u_exec, but the introduction of re-exec'ing the previous invocation of cwm if 'exec_wm' failed missed the 'exec' failing path. Will likely split out as a proper fix. Odd behaviour reported by Ve Telko.
| * If the replacement window manager fails to start, restart the fallback (theokan2017-12-291-1/+1
| |\ | | | | | | | | | original invocation of cwm).
* | | cvsimportokan2015-09-231-4/+28
|\| | | | | | | | | | | | | | | | | * refs/heads/master: Only when mapping clients from an initial wm start or restart, query the pointer and if it matches the child window, activate it; new clients will not need to make this roundtrip to the server. On execwm, we should properly release resources before exec'ing into a new window manager; so allow CWM_EXEC_WM to assign new wm to wm_argv and pass through cwm_status (now EXECWM) so that x_teardown() gets called before exec'ing the new window manager. Removes the need for a separate x_restart() now, using new wm_argv; and consolidates errno for execvp.
| * | On execwm, we should properly release resources before exec'ing into aokan2015-09-161-4/+28
| | | | | | | | | | | | | | | | | | | | | new window manager; so allow CWM_EXEC_WM to assign new wm to wm_argv and pass through cwm_status (now EXECWM) so that x_teardown() gets called before exec'ing the new window manager. Removes the need for a separate x_restart() now, using new wm_argv; and consolidates errno for execvp.
* | | cvsimportChristian Neukirchen2015-01-221-1/+2
|\| |
| * | Switch to limits.h; replace MAXPATHLEN and MAXHOSTNAMELEN with PATH_MAXokan2015-01-191-1/+2
| | | | | | | | | | | | | | | | | | and HOST_NAME_MAX+1, respectively. ok doug@
* | | Use vendored queue.h everywhereChristian Neukirchen2012-11-261-1/+1
|/ /
* | sortokan2012-11-091-1/+1
| |
* | We are inconsistent when it comes to function returns, so just go allokan2011-07-251-2/+2
| | | | | | | | | | | | the way with the cwm specific parts. ok oga@
* | alter a few function returns and prototypes; found by lint.okan2011-06-241-4/+1
| | | | | | | | ok oga@
* | tag and comment cleanup; ok oga@okan2011-05-111-1/+1
| |
* | pull all non-X11 headers from calmwm.h and place them only where theyokan2009-12-151-0/+10
| | | | | | | | | | | | are required. encourged to go all the way by oga@
* | merge the 2 common header files; specific includes to be pulled out asokan2009-12-151-1/+0
| | | | | | | | | | | | separate commits. ok oga@
* | spacing, declaration lineup to be consistent throughout cwm,okan2008-07-111-3/+2
| | | | | | | | | | | | readability, and a bit of knf. ok oga@
* | KNF, no binary change.oga2008-05-151-2/+2
| | | | | | | | From Pierre Riteau. Thanks!
* | make the argument parser for commands accept quoted strings, while i'moga2008-04-151-15/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | there make u_spawn use exec_wm (renamed to u_exec) for it's execution to remove duplicated code. This means constructs like this work in .cwmrc: bind CM-t "ssh -Y 192.168.1.2 \"xterm -e top\"" or alternatively: bind CM-t "ssh -Y 192.168.1.2 'xterm -e top'" "in it goes" okan@.
* | Kill dirent_isdir() and dirent_islink() nothing used them since the newoga2008-04-151-28/+0
| | | | | | | | | | | | parser went in. ok okan.
* | hit it with the knf stick.oga2008-04-151-18/+20
| |
* | add exec_wm to calmwm.h, it was missing (bad ian@!)oga2008-02-201-1/+1
| | | | | | | | | | | | | | | | | | Also, exec_wm() currenty err()s out if something failed with the exec, killing the currently running wm. This is bad. Replace the err() with warn() instead. from Gleydson Soares, thanks!
* | huge amount of cleanup and dead code removal.oga2008-01-161-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | full description of changes: -remove fontlist, and all associated structures/calls, it's not needed. this also removes any doubt about leftover 9wm code (the list was borrowed from it). Since cwm now uses Xft for everything, the legacy font handling is just not needed. -add /* FALLTHROUGH */ comments into grab_{label,menu}. I actually didn't intend grab_menu to be a fallthrough, but it actually works quite well there, so remove the extra rectangle drawing. I love it when that happens. -remove a couple of unused prototypes that were obviously missed before. -remove a bunch of commented out or if 0ed out code. It doesn't look to be coming back anytime soon. -several functions returned an int, but this was never checked. most of them only failed if they failed to grab the pointer (thus the internal state didn't change), so just make them void and return early if this is the case. -remove several unused functions and some useless variables. knocks something like 200bytes off the stripped binary size for me. ok marc@, tested by several others.
* | - Remove the "all rights reserved" tag at the top of most of the sourceoga2008-01-111-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | files, and replace them with the actual ISC license. - add license to the manpage (it was lacking before) - correct license statement in the README Permission given by Marius (copyright holder): "1. please replace with the standard ISC license 2. you may add the ISC license to the man page 3. feel free to replace the information in the README as well" and Dros (copyright holder for group.c): "Please switch group.c to the ISC License." ok ian@
* | Add a "restart wm" function. ok oga@ian2007-11-281-0/+16
|/
* Initial revisionbernd2007-04-271-0/+72