The bug was string_match returning 0 (instead of 1) if mask begins and ends with
"*" and if string and mask have same length (except both "*") with same content:
string_match("abc", "*abc*", 0) == 0 // BUG: it should return 1
string_match("abcd", "*abc*", 0) == 1 // OK
This is an experimental feature, that must be explicitely enabled by clients
(for weechat protocol) in the init command with option "nicklistdiff", for example:
init password=mypasswd,nicklistdiff=1
This option will be removed when clients will handle nicklist diff.
New signals: nicklist_group_removing and nicklist_nick_removing.
New hsignals: nicklist_group_added, nicklist_nick_added, nicklist_group_removing,
nicklist_nick_removing, nicklist_group_changed, nicklist_nick_changed.
New option script.scripts.autoload, new options autoload/noautoload/toggleautoload
for command /script, new action "A" (meta-A) on script buffer (toggle autoload).
Unfortunately this breaks compatibility with existing guile scripts, but this
change is needed to keep consistency with other scripting languages.
Now guile >= 2.0 is required, WeeChat can not compile any more with guile 1.8.
The nick changes are tracked and will be unmasked with the join.
Events triggering the unmask of join are: a message (can be CTCP), a notice or
an update of topic.
This was causing a bug in relay plugin (weechat protocol): when a buffer was
closed, local variables were removed after buffer name, and when signal is sent
to client, the buffer name was wrong (already freed).
Fix:
- use proper arguments in commands sync/desync (use argv[0] instead of argv[1])
- when searching if a buffer is synchronized, its name has higher priority on "*"
(so first check if buffer is synchronized, and if not found, search if "*" is
synchronized)
- when receiving a "nicklist_*" signal, check if the buffer is synchronized with
flag "RELAY_WEECHAT_PROTOCOL_SYNC_NICKLIST"
Two hashtables have been added to store the spellers currently used (in all
buffers) and info for each buffer: array with pointers to spellers and state of
aspell for this buffer.
Therefore the spellers are not destroyed and created again on each buffer switch,
or each time screen is refreshed when window is split.
Argument "*" is now silently ignored in command /window.
When item "buffer_nicklist" is in a root bar, we use current window/buffer to
find which nick has been clicked (same behaviour as callback used to display bar
item "buffer_nicklist").
This reverts commit 8b61a55764.
The local variable in buffers introduced new display bugs and would need
some extra code and optimizations to fix.
This will be reintroduced after the release of version 0.4.0.