summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
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
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