summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2013-04-10cmd_prompt: handle NULL outputJérémie Courrèges-Anglas
* if the user aborted we receive a NULL pointer; don't attempt to dereference it, and treat this case as a failure. Matches the behaviour of cmd_colon and cmd_select
2013-04-07In strtok_ws() use "last", not "pointer" for the static variableJérémie Courrèges-Anglas
* since X11/Xdefs.h may define it too. Found by -Wshadow. Bonus: "last" carries more meaning.
2013-04-07Don't use a flexible array member in struct history_itemJérémie Courrèges-Anglas
* They are a c99 feature, which makes it impossible to build ratpoison on some platforms. GCC supports zero-sized arrays, more conservative approaches say to use foo[1], but as brlink says a compiler with aggressive optimization turned on might play nasty tricks. Just use a traditional struct.
2013-02-22receive_command_result() fixupJérémie Courrèges-Anglas
* forgot a break statement when moving things around * braino in comment: '1' is RET_SUCCESS, '0' is RET_FAILURE
2013-02-22fixup return values of several commandsJérémie Courrèges-Anglas
* in cmd_select(), consistently set the return value for all cases we deal with * in cmd_unmanage(), don't attempt to use a NULL pointer if the unmanaged windows list is empty; just report success * in cmd_kill, only report failure if XKillClient() actually failed * in command(), remove a useless test: cmd can't be NULL * in cmd_gravity, don't call current_window() twice
2013-02-22make ratpoison -c provide a useful exit statusJérémie Courrèges-Anglas
* properly define the way the wm may give feedback to ratpoison -c; see communications.c:receive_command_result() * follow this protocol in events.c:receive_command() * modify receive_command_result() to return an int (which is the mirror of the struct cmdret "success" member used on the wm side) * pass that error status back to main.c; exit with an error status if any of the commands we sent failed
2013-02-18silence minor compilation warning in src/manage.cJérémie Courrèges-Anglas
2013-02-18more correct cmd_help()Jérémie Courrèges-Anglas
* only print the "Command key: ..." bits if we're dealing with the root kmap * don't read (and print) uninitialized data (foomap->actions[foomap->actions_last] shouldn't be accessed) It seems like keymap actions and other things like aliases use arrays because they were implemented before linkedlist.[ch] were introduced. Perhaps should we just switch them to more fool-proof linked lists?
2013-02-13move xa_string initialisation before first useBernhard R. Link
otherwise ratpoison -c no longer works
2013-02-06rp_text_width: remove "font" argumentJérémie Courrèges-Anglas
* (globals.[ch]): remove rp_text_width "font" arg, since its value is always the global variable defaults.font (non-Xft case). remove one #ifdef while here * update rp_text_width() calls to match new signature
2013-02-06use utf8-handling Xft functions if we are in an UTF-8 localeJérémie Courrèges-Anglas
* (manage.c) in get_wmname(), try to get the (UTF-8 encoded) _NET_WM_NAME property. Fallback to GetWMName() if unavailable. Add some debugging bits to see which TEXT encoding clients use for WM_NAME. * (globals.c) use Xft*Utf8 functions to compute text width and draw strings. No regressions with or without Xft, UTF-8 locale or not. * assume we can use Xft*Utf8 functions whenever we have Xft, to reduce the #ifdef dance Original patch from Bernhard R. Link
2013-02-06make TEXT atoms global variablesJérémie Courrèges-Anglas
* (events.c) extract xa_compound_text from selection_request(), make it a global * introduce xa_string (same as XA_STRING) and rename utf8_string to xa_utf8_string, for consistency
2013-02-06introduce defaults.utf8_localeJérémie Courrèges-Anglas
* use nl_langinfo() to detect if locale codeset is UTF-8
2013-01-20tmpwm fix: SIG_IGN -> SIG_DFLJérémie Courrèges-Anglas
for waitpid(SIGCHLD, SIG_IGN) behaves wildly differently across OSes. Fixes tmpwm hanging after child wm exits on OpenBSD.
2012-12-26environment handling fixesJérémie Courrèges-Anglas
* AC_CHECK_FUNCS: +setenv +unsetenv -putenv (the check for putenv() wasn't used anyway) * prefer setenv() to putenv() in cmd_setenv() * prefer unsetenv() to putenv() in cmd_unsetenv() - putenv("FOO") isn't legit everywhere - putenv("FOO=") will only work on MinGW * make the getenv command return an empty output if the variable wasn't found * while here, split and sort AC_CHECK_FUNCS |cos| on #ratpoison reported that environment variables weren't properly removed, and proposed a different fix. thanks!
2012-07-01cmd_info: also display a window not in the current groupBernhard R. Link
Without this change, cmd_info displays "No Window" if called with the current window not in the current group (for example directly after a gselect). This change makes it also look in other groups. In that case it might show a number not the one to switch back to it without switching the group first, but I guess that is less confusing than just claiming there is no window.
2011-05-10Fix display_string construction to handle new XDisplayString() behaviouranthony
XDisplayString does not append ".screen number" to return value after http://gitorious.org/omcfadde/libx11/commit/f92e754297ec5fdb81068b56a4435026666224fa Fix by appending .screen_num to the end of s->display_string in such case
2010-12-23don't follow a pointer that might be NULL (HIDE_MOUSE specific)Bernhard R. Link
In events.c's key_press, the screen the local pointer variable s points to is accessed if HIDE_MOUSE is defined when hiding the cursor. Directly after that there is a "if (!s) return;", which is obviously too late. By default HIDE_MOUSE is not defined in src/conf.h, so this is not a problem unless this feature was enabled at compile time. Found by cppcheck.
2010-05-18add a titlechanged hookZed Lopez
2010-05-07fix alias bugKeith Amling
When an alias is executed without arguments, for example aliasing "reload" to "source .ratpoisonrc" and then running "reload" by itself results in "source: .ratpoisonrc : No such file or directory" implying it was trying to load ".ratpoisonrc " (note the extra space).
2010-04-16in init_screen, properly handle a dot in the display stringShawn Betts
2010-04-12add a new_window_hook to the map_window function of manage.c.Eric A
2010-03-31Cleaned up some cmdret, sbuf, char * usage; eliminating associated memory leaksKipling Inscore
2010-03-17fix swap across multiple screensBernhard R. Link
exchange_with_frame now always selects the second frame given, simplifying the code (getting rid of segfaults when both were on different screens). This changes the behaviour of cmd_swap to always focus the first argument when two arguments are given. This patch also removes the screen argument of exchange_with_frame, which is now no longer needed (and cmd_swap was giving the wrong screen anyway in the case of multiple arguments given).
2010-01-31change error message for gdelete to reduce confusion.Shawn Betts
2010-01-31cother/iother Segfault patchRob Paisley
As reported by "Gentooer" in the #ratpoison IRC channel, there is a bug in :cother and :iother. If are no windows and you issue either :cother, or :iother ratpoison segfaults. This patch resolves the issue.
2009-07-17move libraries from LDFLAGS to LDADD to avoid problems in argument orderBernhard R. Link
2009-07-15silence gcc false-positive undefined warningBernhard R. Link
2009-07-15silence gcc warnings against empty if branchesBernhard R. Link
2009-07-15silence unused variables and unused parameters warningsBernhard R. Link
2009-07-15use gcc's __builtin_prefetch if available to silence problems with the empty ↵Bernhard R. Link
prefetch function
2009-07-15silence warnings about signed/unsigned char mismatchBernhard R. Link
2009-07-15do not shadow identifiers (silencing gcc's -Wshadow warnings)Bernhard R. Link
2009-07-04fix inverted text when using xftwinliststyle-row_brokenShawn Betts
Now the inverted rectangle is drawn first and the text overtop in the bg color.
2009-05-31only add command to general history if it was entered interactivelywinliststyle-row_worksBernhard R. Link
2009-04-30fix 'set fgcolor' for xft. Change screen's ft_font and color slots to ↵Shawn Betts
xft_font and xft_color.
2009-04-29Fix issues when historysize is zero.Bernhard R. Link
If historysize is 0, do not create .ratpoison_history at exit and do keep no entries in history. (Previously ratpoison would always at least store the last entry).
2009-04-13grab the keyboard and pointer in cmd_resizeShawn Betts
* fixes a bug that hangs rp: in resize mode, click firefox and rp hangs
2009-04-13make ratinfo and ratrelinfo work with ratpoison -c and return coordinates ↵Shawn Betts
relative to current frame when there's no window * update docs
2009-04-13fix segfault in banishrel and make it banish to the corner of the frame when ↵Shawn Betts
there's no window * update documentation
2009-04-13Add ratinfo, ratrelinfo, and banishrel commandsRob Paisley
2009-04-13resize the help window when a screen is resizedShawn
2009-01-16set _net_wm_name for the root window to ratpoisonBernhard R. Link
2009-01-16Move screen activation code to new (de)activate_screen functions,Bernhard R. Link
making sure _NET atoms are reset after tmpwm and deleted when exiting.
2008-11-18fix AUTO_CLOSE code in unmanage()Shawn
2008-11-01in cmd_tmpwm wait for a second if it failed to re-select the root events.Shawn
2008-11-01fix (i hope) the tmpwm race condition and the bug that sometimes keys don't ↵Shawn
work after tmpwm the race condition is fixed by spinning in a loop with a special error handler until it is confirmed that the root event selections were successfully. Existing windows don't get their top level keys grabbed, so after the windows are synced up, grab the top level keys on all windows.
2008-10-22include limits.h for INT_MAXShawn
2008-10-22make history expansion an option (switched off by default)Bernhard R. Link
2008-10-22remove libhistory history handling, only feed it on demand when doing ! ↵Bernhard R. Link
expansion