Age | Commit message (Collapse) | Author |
|
This should be a PRINT_DEBUG, not a PRINT_ERROR.
|
|
* 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. ;)
|
|
|
|
|
|
|
|
|
|
* don't dereference it if NULL, as in unmap_notify
|
|
* 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)
|
|
* this is consistent with surrounding code, and helps code analyzers
not to barf about possible memory leaks
|
|
* 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()
|
|
* otherwise specifying -d or -f more than once would lead to
a memory leak
|
|
|
|
* 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
|
|
* 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
|
|
* instead of playing with xmalloc, strlen and strncpy, use xstrdup
to do the copying and strcspn to delete the newline
|
|
* 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
|
|
* since X11/Xdefs.h may define it too. Found by -Wshadow.
Bonus: "last" carries more meaning.
|
|
* 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.
|
|
* forgot a break statement when moving things around
* braino in comment: '1' is RET_SUCCESS, '0' is RET_FAILURE
|
|
* 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
|
|
* 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
|
|
|
|
* 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?
|
|
otherwise ratpoison -c no longer works
|
|
* (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
|
|
* (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
|
|
* (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
|
|
* use nl_langinfo() to detect if locale codeset is UTF-8
|
|
for waitpid(SIGCHLD, SIG_IGN) behaves wildly differently across OSes. Fixes
tmpwm hanging after child wm exits on OpenBSD.
|
|
* 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!
|
|
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.
|
|
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
|
|
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.
|
|
|
|
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).
|
|
|
|
|
|
|
|
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).
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
prefetch function
|
|
|
|
|
|
Now the inverted rectangle is drawn first and the text overtop in the bg color.
|
|
|