At the moment, building WeeChat triggers several thousand -Wstrict-prototypes
diagnostics. This is due to its source code using an empty argument list for
functions and function pointers that take no arguments, instead of explicitly
declaring that they take no arguments by using a void list.
This commit replaces all empty argument lists with a void list.
Note that Ruby's headers also suffer the same problem, which WeeChat can't
do anything to fix. Thus, building WeeChat with the Ruby plugin enabled
will still issue approximately 30 such diagnostics.
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
New option: weechat.look.buffer_auto_renumber, boolean which is on by
default, so the behavior is the same: no gap is allowed in numbers,
they start at number 1 and they are auto-renumbered after each command
like /buffer move, /buffer merge, ...
A new option "renumber" has been added in command /buffer, to renumber
a range of buffers (or all).
Changes when the option weechat.look.buffer_auto_renumber is off:
- command "/buffer move":
- the current number will be left free for use, and the
target number can be any number >= 1 (possibly higher than the
current last buffer number)
- the value can be "-" (which moves the buffer to number 1)
or "+" (which moves the buffer to the end, ie last number + 1)
- command "/buffer swap":
- now the buffers are swapped in the list without being "moved"
- comand "/buffer [+/-]N":
- it is now working with gaps in buffer numbers
- command "/buffer merge":
- it can now merge a group of merged buffers into another buffer
(or buffers merged themselves)
- layout can restore buffer numbers with gaps in numbers