summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2013-05-25Adapt group bar to be updated on group number or name change.cr/implement_gnumbercos
2013-05-25Remove redundant check for NULL.cos
Since add_command() for cmd_gnumber is forcing one (or two) numerical argument, command() will never allow calling the cmd_gnumber() with arg[0] set to NULL.
2013-05-25Add initial cmd_gnumber implementation.cos
2013-05-25Make group_add_new_group() sort groups numerically.cos
2013-05-25Merge branch 'cr/deprecate_winliststyle'cos
2013-05-25Deprecate winliststyle variable & functionality.cr/deprecate_winliststylecos
Window lists in ratpoison were initially displayed in one row, as modelled by how :windows work in screen. When originally implementing column display format an option to select between row & column was introduced. Setting winliststyle to row has been broken for almost four years. Given that no error reports have been seen during this time, it is fair to assume no one is using the functionality. Since allowing two values of winliststyle complicates the code to display winlists & requires different code paths for interactive & non-interactive use, it seems more sane to deprecate the unused feature rather than fix its bug(s).
2013-04-27avoid get_wmname spammingJérémie Courrèges-Anglas
This should be a PRINT_DEBUG, not a PRINT_ERROR.
2013-04-15Support UTF-8 in the input barJérémie Courrèges-Anglas
* introduce RP_IS_UTF8_{CHAR,CONT,START} macros. Those yield non-zero only if the locale is UTF-8. * use those macros in editor.c to properly handle UTF-8 multibyte characters. * use them also in input.c:update_input_window, to draw the cursor Reviewing and comments are welcome. Patches for generic support of multibyte encodings are welcome too. UTF-8 was chosen because of its processing simplicity and its wide use, not because of any political opinion or religious belief. ;)
2013-04-13read_rc_file: use getline(3) instead of emulating itJérémie Courrèges-Anglas
2013-04-13Make our fallback getline implementation re-usableJérémie Courrèges-Anglas
2013-04-13get_more_input: use a proper while loop and a switch statementJérémie Courrèges-Anglas
2013-04-13get_more_input: remove useless variableJérémie Courrèges-Anglas
2013-04-10destroy_window: frame could be NULLJérémie Courrèges-Anglas
* don't dereference it if NULL, as in unmap_notify
2013-04-10free_bar: make this function reusableJérémie Courrèges-Anglas
* set last_msg to NULL after freeing it * no need to test for last_msg being NULL before freeing it (likewise in update_last_message)
2013-04-10main: in case XOpenDisplay fails, use exit not returnJérémie Courrèges-Anglas
* this is consistent with surrounding code, and helps code analyzers not to barf about possible memory leaks
2013-04-10strtok_ws: account for erroneous usageJérémie Courrèges-Anglas
* if s and last are both NULL then we'll get a fatal error; instead of waiting for the segfault, display an error message and call abort()
2013-04-10main: free display and alt_rcfileJérémie Courrèges-Anglas
* otherwise specifying -d or -f more than once would lead to a memory leak
2013-04-10history_add: make 2nd parameter constJérémie Courrèges-Anglas
2013-04-10Get rid of several unused variablesJérémie Courrèges-Anglas
* cmd_definekey: actually use cmd * cmd_meta: remove ev1 * cmd_resize: remove nbytes * cmd_ratrelwarp: remove s * draw_string: remove lgv, lgc, mask; lgc wasn't XFreeGC'ed * get_more_input: remove nbytes * cleanup_frame: remove last_win * get_window_list: remove other_window Patch from Bernhard R. Link
2013-04-10Refactor cmd_promptJérémie Courrèges-Anglas
* use a local variable instead of using ARG_STRING(0) ten times * minimize scope of local variables * use a struct sbuf instead of playing with xmalloc and strncpy * correct indentation
2013-04-10Refactor cmd_timeJérémie Courrèges-Anglas
* instead of playing with xmalloc, strlen and strncpy, use xstrdup to do the copying and strcspn to delete the newline
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