This fixes two problems:
- stop before max char displayed with wide chars
- preserve combining chars in the output
Before the fix (wrong):
>> ${cutscr:3,+,こんにちは世界}
== [こん+]
>> ${cutscr:1,+,a${\u0308}}
== [a+]
After the fix (OK):
>> ${cutscr:3,+,こんにちは世界}
== [こ+]
>> ${cutscr:1,+,a${\u0308}}
== [ä]
Sending the signal after the refreshs will let scripts receive the good
size for windows/bars/terminal, ie the size computed with the new
terminal size.
The code in signal handers (SIGHUP, SIGQUIT, SIGTERM) is moved into main
loop, this hopefully fixes the deadlock when quitting after receiving
one of these signals.
The code in SIGWINCH signal handler is moved too (even if it shouldn't
be a problem).
This could cause crash in case of memory allocation error
(but WeeChat would probably crash or have problems anyway if there's not
enough memory for the input line).
Options moved from irc.conf to weechat.conf:
* "irc.look.nick_color_force" moved to "weechat.look.nick_color_force"
* "irc.look.nick_color_hash" moved to "weechat.look.nick_color_hash"
* "irc.look.nick_color_stop_chars" moved to
"weechat.look.nick_color_stop_chars"
New info (for API function "info_get"):
* "nick_color" (replaces "irc_nick_color")
* "nick_color_name" (replaced "irc_nick_color_name")
Info "irc_nick_color" and "irc_nick_color_name" are now deprecated.
And a bug has been fixed in nick coloring: stop chars are removed before
looking at a forced color.
This pointer is the first argument received by callbacks, and the
existing argument "data" is now automatically freed by WeeChat when the
object containing the callback is removed.
With this new pointer, the linked list of callbacks in scripts has been
removed. This will improve speed of scripts (using a lot of hooks),
reduce memory used by scripts and reduce time to unload scripts.
Following functions are affected in the C API:
* exec_on_files
* config_new
* config_new_section
* config_new_option
* hook_command
* hook_command_run
* hook_timer
* hook_fd
* hook_process
* hook_process_hashtable
* hook_connect
* hook_print
* hook_signal
* hook_hsignal
* hook_config
* hook_completion
* hook_modifier
* hook_info
* hook_info_hashtable
* hook_infolist
* hook_hdata
* hook_focus
* unhook_all_plugin
* buffer_new
* bar_item_new
* upgrade_new
* upgrade_read
Inherited values are now displayed in /set output when the value is
null, if a parent option name is defined in option.
New option: weechat.color.chat_value_null