When there are multiple addresses for a server and a TLS handshake failure
occurs, the next server in the list will connect and then timeout without
performing any TLS handshake.
This is because irc_server_close_connection closes server->sock so the next
pipe to be created reuses that fd, but the hook for the handshake fd still
exists when the next connection attempt is started.
The hook for network_connect_child_read_cb is never added because a hook
for the reused fd number still exists.
Resolve this by removing the handshake hook before calling the connect
callback.
This works around hangs where only a couple of bytes could be sent
to the socket and retrying to send the last bytes of the ack never
seem to work.
Closes#1167.
Generated with:
$ sed -i 's|openssl ecparam -genkey -name prime256v1 >~/.weechat/ecdsa.pem|openssl ecparam -genkey -name prime256v1 -out ~/.weechat/ecdsa.pem|' $(git grep -l 'openssl ecparam')
There's no reason to involve shell redirection, which we've had since
88073243 (doc: add instructions for SASL "ecdsa-nist256p-challenge",
2015-01-21). We already use -in or -out for our other openssl
invocations, as shown by:
$ git grep 'openssl.*\(<\|>\|-in\|-out\)'
From the getdtablesize(3) man page:
It is not specified in POSIX.1; portable applications should
employ sysconf(_SC_OPEN_MAX) instead of this call.
Specifically, this fixes a compilation problem on Android.
Automatic tests of scripting API are made with Python scripts:
- unparse.py: convert Python code to other languages
- testapigen.py: generate scripts in all languages to test the API
- testapi.py scripting API tests
The default value is 0 (legacy behavior).
When it is set to 1, an empty input (just by pressing Return with nothing in
input) is sent to the input callback, which receives an empty string.
In addition to searching the statically configured WEECHAT_LIBDIR
(weechat's installation directory) for plugins, search the path
given in the environment variable WEECHAT_EXTRA_LIBDIR. This makes
departing from the FHS standard while keeping the plugins packaged
separately easier. This change was made specifically with the Nix
package manager in mind, but can easily be used by others.
Existing filter:
- by option name (part of name)
New filters:
- by configuration file ("f:xxx")
- by section name ("s:xxx")
- by options changed ("d:" or "d:xxx")
- by exact value ("==xxx")
- by value, format ("=xxx")
It's faster to use a string with dynamic size, rather than looping on the whole
nicklist to compute the length of result string, before looping again to build
the string.
If hashmap creation fails (eg. not enough memory), it jumps to the label
"end", where it checks the pointer tags, that hadn't been initialized
before.
The simple fix is to initialize it before creating the hashmap.
This is better for symmetry of comparison callback (comparing buffer1 and
buffer2 will give same as comparing buffer2 and bufer1).
Thanks to Simmo Saan for reporting the problem.
The function hdata_search (which evaluates a condition for each item in a list)
is too slow to search server and channel on each buffer. It is replaced by a
manual search in the list (using weechat_hdata_string to get the name), much
faster.
The format to use is one of:
- ${cut:+max,suffix,string}
- ${cutscr:+max,suffix,string}
With the "+" before max, WeeChat ensures there are at most "max" chars in
output, including the length of suffix string.
The option buflist.look.signals_refresh is not an extra list of signals for
refresh, so it is empty by default.
The default list of signals is handled directly by buflist and not visible to
the user.
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}}
== [ä]
The syntax is: ${cutscr:max,suffix,string}.
The string is cut after max chars displayed on screen. If the string is cut,
the optional suffix is added after.
When extra variables are evaluated, to prevent infinite loop if the evaluated
variable is calling itself, it is removed from hashtable "extra_vars" before
evaluation.
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 help on commands /window and /alias contain percent chars, so we
have to force xgettext to NOT use "c-format", using the string
"xgettext:no-c-format".
Previously using option values
irc.look.buffer_open_before_join off
irc.look.buffer_switch_join on
and manually joining a channel which gets forwarded
(e.g. #linux -> ##linux-overflow on freenode) the channel buffer for
##linux-overflow was not switched to even though the option says it should
have.
This patch copies manual join and noswitch information for channels which
get forwarded.
these 3 configure tests were bogus in that they didnt return a result:
```
checking for flock() support...
checking for execinfo.h and backtrace...
checking for eat_newline_glitch support...
```
looking at config.log reveals:
```
configure:24327: checking for eat_newline_glitch support
configure:24344: gcc -c -g -O2 -DHAVE_GNUTLS -D_FILE_OFFSET_BITS=64 ...
conftest.c: In function 'main':
conftest.c:134:2: error: assignment of read-only location '*(cur_term->flags ...
configure:24344: $? = 1
configure: failed program was:
...
configure:24351: result:
```
but due to the misnamed variables configure ended up enabling
eat_newline_glitch.
fixes#814
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).
Now string_expand_home() can return NULL if the HOME environment
variable it not set, so this commit adds an extra check on the variable
"filename2" before using it.
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).
* fset: new plugin "fset" (fast set of WeeChat and plugins options) (issue #584)
* php: new plugin "php" (issue #909)
* script: add local variable "filter" in the script buffer (issue #1037)
Bug fixes::
* core: do not change the chat prefix size when a filtered line is added (issue #1092)
* core: fix display of nicks in nicklist when they are in a group with sub-groups (issue #1079)
* core, plugins: check return code of strftime function
* core: fix cast of time_t (to "long long" instead of "long") (issue #1051)
* core: call the config hook when options are renamed or removed
* api: change type of arguments status/gnutls_rc/sock in hook_connect() callback from string to integer (in scripts)
* api: change type of argument fd in hook_fd() callback from string to integer (in scripts)
* buflist: remove recursive evaluation of extra variables (issue #1060)
* guile: return integer (0/1) instead of boolean in API functions
* guile: fix return value of static strings in API functions
* irc: do not clear nicklist when joining an already joined channel if the option irc.look.buffer_open_before_join is on (issue #1081)
* irc: fix CTCP PING reply when the option irc.ctcp.ping is set to non-empty value
* lua: fix boolean return value (as integer) in API functions
* relay: fix parsing of CAP command without arguments in irc protocol, send ACK only if all capabilities received are OK and NAK otherwise (issue #1040)
Tests::
* scripts: add scripting API tests (issue #104)
* unit: display an error if the required locale en_US.UTF-8 is not installed
Build::
* core: fix build with ncurses and separate tinfo (bug #41245, issue #1090)
* javascript: fix detection of libv8 with autotools on Ubuntu Trusty
[[v1.9.1]]
== Version 1.9.1 (2017-09-23)
Bug fixes::
* buflist: fix crash in auto-scroll of bar when the buflist item is not the first item in the bar
* logger: call strftime before replacing buffer local variables (CVE-2017-14727)
* relay: fix send of "PART" command in backlog (irc protocol)
[[v1.9]]
== Version 1.9 (2017-06-25)
New features::
* core: improve speed of nicklist bar item callback
* core: allow index for hdata arrays in evaluation of expressions
* api: allow update of variables "scroll_x" and "scroll_y" in bar_window with function hdata_update
* api: add functions config_option_get_string() and hdata_compare()
* api: add special key "__quiet" in hashtable for function key_bind()
* api: add `${re:#}` to get the index of last group captured in function string_eval_expression()
* aspell: add options to control delimiters in suggestions: aspell.color.suggestion_delimiter_{dict|word} and aspell.look.suggestion_delimiter_{dict|word} (issue #940)
* buflist: new plugin "buflist" (bar item with list of buffers)
* irc: add option "open" in command /server (issue #966)
* irc: send signal "irc_server_lag_changed" and store the lag in the server buffer (local variable)
* irc: send multiple masks by message in commands /ban, /unban, /quiet and /unquiet, use ban mask default for nicks in /quiet and /unquiet, display an error if /quiet and /unquiet are not supported by server (issue #579, issue #15, issue #577)
* irc: add option "-include" in commands /allchan, /allpv and /allserv (issue #572)
* irc: don't smart filter modes given to you (issue #530, issue #897)
* script: remove option script.scripts.url_force_https, use HTTPS by default in option script.scripts.url
Bug fixes::
* core: fix memory leak in display of mouse event debug info
* core: fix command /cursor stop (do not toggle cursor mode) (issue #964)
* core: fix delayed refresh when the signal SIGWINCH is received (terminal resized), send signal "signal_sigwinch" after refreshes (issue #902)
* irc: fix update of server addresses on reconnection when the evaluated content has changed (issue #925)
* irc: fix crash in case of invalid server reply during SASL authentication with dh-blowfish or dh-aes mechanism
* irc: fix double decoding of IRC colors in messages sent/displayed by commands /msg and /query (issue #943)
* irc: fix parsing of message 324 (modes) when there is a colon before the modes (issue #913)
* relay: check buffer pointer received in "sync" and "desync" commands (weechat protocol) (issue #936)
* relay: remove buffer from synchronized buffers when it is closed (fix memory leak)
Build::
* core: fix compilation on FreeBSD with autotools (issue #276)
* python: add detection of Python 3.6
* ruby: add detection of Ruby 2.4 (issue #895)
[[v1.7.1]]
== Version 1.7.1 (2017-04-22)
Bug fixes::
* irc: fix parsing of DCC filename (CVE-2017-8073)
* core: add optional command prefix in completion templates "commands", "plugins_commands" and "weechat_commands"
* core: add optional arguments in completion template, sent to the callback
* core: add option "time" in command /debug
* core, xfer: display more information on fork errors (issue #573)
* core: add a slash before commands completed in arguments of /command, /debug time, /key bind, /key bindctxt, /mute, /repeat, /wait
* core: add a warning in header of configuration files to not edit by hand (issue #851)
* api: add info "uptime" (WeeChat uptime)
* api: add info "pid" (WeeChat PID) (issue #850)
* alias: add a slash before commands completed in arguments of /alias
* exec: add option "-oc" in command /exec to execute commands in process output, don't execute commands by default with "-o" (issue #877)
* fifo: add file fifo.conf and option fifo.file.path to customize FIFO pipe path/filename (issue #850, issue #122)
* irc: add server option "usermode" (issue #377, issue #820)
* irc: add tag "self_msg" on self messages (issue #840)
* irc: evaluate content of server option "ssl_fingerprint" (issue #858)
* irc: change default value of option irc.network.lag_reconnect from 0 to 300 (issue #818)
* trigger: do not hide email in command "/msg nickserv register password email" (issue #849)
Bug fixes::
* core: fix deadlock when quitting after a signal SIGHUP/SIGQUIT/SIGTERM is received (issue #32)
* core: fix display of empty lines in search mode (issue #829)
* api: fix crash in function string_expand_home() when the HOME environment variable is not set (issue #827)
* exec: fix memory leak in display of process output
* irc: fix option "-temp" in command /server (issue #880)
* irc: fix close of server channels which are waiting for the JOIN when the server buffer is closed (issue #873)
* irc: fix buffer switching on manual join for forwarded channels (issue #876)
* irc: add missing tags on CTCP message sent
* lua: fix integers returned in Lua >= 5.3 (issue #834)
* relay: make HTTP headers case-insensitive for WebSocket connections (issue #888)
* relay: set status to "authentication failed" and close immediately connection in case of authentication failure in weechat and irc protocols (issue #825)
* script: reload a script after upgrade only if it was loaded, set autoload only if the script was auto-loaded (issue #855)
Build::
* core, irc, xfer: fix compilation on Mac OS X (add link with resolv) (issue #276)
* core: add build of xz package with make dist (cmake)
* tests: fix compilation of tests on FreeBSD 11.0
[[v1.6]]
== Version 1.6 (under dev)
== Version 1.6 (2016-10-02)
New features::
* core: add optional argument "lowest", "highest" or level mask in command /input hotlist_clear
* core: add option "cycle" in command /buffer
* core, irc, xfer: display more information on memory allocation errors (issue #573)
* api: add "extra" argument to evaluate extra variables in function string_eval_expression() (issue #534)
* relay: allow escape of comma in command "init" (weechat protocol) (issue #730)
* trigger: add support for one-time triggers (issue #399, issue #509)
Bug fixes::
* core, irc, xfer: refresh domain name and name server addresses before connection to servers (fix connection to servers after suspend mode) (issue #771)
* api: fix return of function string_match() when there are multiple masks in the string (issue #812)
* api: fix crash in function network_connect_to() if address is NULL
* api: fix connection to servers with hook_connect() on Windows 10 with Windows subsystem for Linux (issue #770)
* api: fix crash in function string_split_command() when the separator is not a semicolon (issue #731)
* irc: fix socket leak in connection to server (issue #358, issue #801)
* irc: fix display of service notice mask (message 008) (issue #429)
* core: evaluate content of option "weechat.look.item_time_format" (issue #791)
* core: change default value of option weechat.look.nick_color_hash to "djb2"
* core: move nick coloring from irc plugin to core, move options irc.look.nick_color_force, irc.look.nick_color_hash and irc.look.nick_color_stop_chars to core, add info "nick_color" and "nick_color_name", deprecate info "irc_nick_color" and "irc_color_name" (issue #262)
* core: move irc bar item "away" to core, move options irc.look.item_away_message and irc.color.item_away to core (issue #692)
* api: add support of functions in hook_process
* api: add pointer in callbacks used in scripting API (issue #406)
* core: display a more explicit error when a filter fails to be added (issue #522)
* api: add argument "length" in function utf8_is_valid()
* alias: display completion in /alias list (issue #518)
* irc: evaluate content of server option "addresses"
* irc: move option irc.network.alternate_nick into servers (irc.server.xxx.nicks_alternate) (issue #633)
* irc: use current channel and current server channels first in completions "irc_server_channels" and "irc_channels" (task #12923, issue #260, issue #392)
* logger: display system error when the log file can not be written (issue #541)
* core: allow incomplete commands if unambiguous, new option weechat.look.command_incomplete (task #5419)
* core: check bar conditions in root bars and on each update of a bar item
* core: fully evaluate commands bound to keys in cursor and mouse contexts
* core: move bar item "scroll" between buffer name and lag in default bar items of status bar
* api: add regex replace feature in function string_eval_expression()
* api: send value returned by command callback in function command(), remove WeeChat error after command callback if return code is WEECHAT_RC_ERROR
* api: use microseconds instead of milliseconds in functions util_timeval_diff() and util_timeval_add()
* irc: add option "reorder" in command /server (issue #229)
* irc: open channel buffers before the JOIN is received from server (autojoin and manual joins), new options irc.look.buffer_open_before_{autojoin|join} (issue #216)
* irc: add server option "sasl_fail" (continue/reconnect/disconnect if SASL fails) (issue #265, task #12204)
@@ -311,23 +591,15 @@ New features::
* irc: add support of "extended-join" capability (issue #143, issue #212)
* irc: display own nick changes in server buffer (issue #188)
* irc: disable creation of temporary servers by default with command /connect, new option irc.look.temporary_servers
* relay: add options "stop" and "restart" in command /relay
* trigger: evaluate and replace regex groups at same time, new format for regex option in triggers (incompatible with version 1.0) (issue #224)
* trigger: add option "restore" in command /trigger
* trigger: add `${tg_displayed}` in conditions of default trigger "beep"
Bug fixes::
@@ -383,7 +655,7 @@ Bug fixes::
Tests::
* fix memory leak in tests launcher
* unit: fix memory leak in tests launcher
Build::
@@ -413,6 +685,11 @@ New features::
* core: add options "-beep" and "-current" in command /print
* core: add bare display mode for easy text selection and click on URLs, new key: kbd:[Alt+l], new option "bare" in command /window, new options: weechat.look.bare_display_exit_on_input and weechat.look.bare_display_time_format
* trigger: add trigger plugin: new command /trigger and file trigger.conf
Improvements::
* core: add terabyte unit for size displayed
* core: display a warning in case of inconsistency between the options weechat.look.save_{config|layout}_on_exit
* core: add option "-mask" in command /unset (issue #112)
* core: set option weechat.look.buffer_search_where to prefix_message by default
* core: mute all buffers by default in command /mute (replace option -all by -core)
* api: add argument "flags" in function hdata_new_list()
* api: allow wildcard "*" inside the mask in function string_match()
* api: allow negative value for y in function printf_y()
* irc: display locally away status changes in private buffers (in addition to channels) (issue #117)
* irc: allow many fingerprints in server option ssl_fingerprint (issue #49)
* irc: rename option irc.look.item_channel_modes_hide_key to irc.look.item_channel_modes_hide_args, value is now a string (task #12070, task #12163, issue #48)
@@ -458,7 +721,13 @@ Improvements::
* irc: evaluate content of server options "username" and "realname"
* irc: set option irc.network.autoreconnect_delay_max to 600 by default, increase max value to 604800 seconds (7 days)
* irc: set option irc.network.whois_double_nick to "off" by default
* relay: add messages "_buffer_cleared", "_buffer_hidden" and "_buffer_unhidden"
* relay: add info "relay_client_count" with optional status name as argument
* relay: add signals "relay_client_xxx" for client status changes (issue #2)
* script: set option script.scripts.cache_expire to 1440 by default
* trigger: add trigger plugin: new command /trigger and file trigger.conf
Bug fixes::
@@ -554,7 +823,7 @@ Build::
Tests::
* add unit tests using CppUTest
* unit: add unit tests using CppUTest (issue #104)
[[v0.4.3]]
== Version 0.4.3 (2014-02-09)
@@ -576,6 +845,15 @@ New features::
* core: add default keys kbd:[Alt+Home] / kbd:[Alt+End] (`meta2-1;3H` / `meta2-1;3F`) and kbd:[Alt+F11] / kbd:[Alt+F12] (`meta2-23;3~` / `meta2-24;3~`) for xterm
* core: add support of italic text (requires ncurses >= 5.9 patch 20130831)
* core: add options to customize default text search in buffers: weechat.look.buffer_search_{case_sensitive|force_default|regex|where}
* core: add support of UTF-8 chars in horizontal/vertical separators (options weechat.look.separator_{horizontal|vertical})
* core: add support of logical and/or for argument "tags" in function hook_print()
* core: rename buffer property "highlight_tags" to "highlight_tags_restrict", new behavior for buffer property "highlight_tags" (force highlight on tags), rename option irc.look.highlight_tags to irc.look.highlight_tags_restrict
* core: rename options save/reset to store/del in command /layout
* core: replace default key kbd:[Ctrl+c], kbd:[r] by kbd:[Ctrl+c], kbd:[v] for reverse video in messages
* core: replace default key kbd:[Ctrl+c], kbd:[u] by kbd:[Ctrl+c], kbd:[_] for underlined text in messages
* core: rename option weechat.look.set_title to weechat.look.window_title, value is now a string (evaluated)
* core: set option weechat.look.paste_bracketed to "on" by default
* core: use one date format when day changes from day to day+1
* api: add function infolist_search_var()
* api: add stdin options in functions hook_process_hashtable() and hook_set() to send data on stdin of child process, add function hook_set() in script API (task #10847, task #13031)
* api: add hdata "buffer_visited"
@@ -588,23 +866,11 @@ New features::
* irc: add option irc.network.lag_max
* irc: add option irc.look.notice_welcome_tags
* irc: add server option "default_msg_kick" to customize default kick/kickban message (task #12777)
* irc: use MONITOR instead of ISON for /notify when it is available on server (task #11477)
* relay: send backlog for irc private buffers
* xfer: add support of IPv6 for DCC chat/file (patch #7992)
* core: add support of UTF-8 chars in horizontal/vertical separators (options weechat.look.separator_{horizontal|vertical})
* core: add support of logical and/or for argument "tags" in function hook_print()
* core: rename buffer property "highlight_tags" to "highlight_tags_restrict", new behavior for buffer property "highlight_tags" (force highlight on tags), rename option irc.look.highlight_tags to irc.look.highlight_tags_restrict
* core: rename options save/reset to store/del in command /layout
* core: replace default key kbd:[Ctrl+c], kbd:[r] by kbd:[Ctrl+c], kbd:[v] for reverse video in messages
* core: replace default key kbd:[Ctrl+c], kbd:[u] by kbd:[Ctrl+c], kbd:[_] for underlined text in messages
* core: rename option weechat.look.set_title to weechat.look.window_title, value is now a string (evaluated)
* core: set option weechat.look.paste_bracketed to "on" by default
* core: use one date format when day changes from day to day+1
* irc: use MONITOR instead of ISON for /notify when it is available on server (task #11477)
Bug fixes::
* core: fix hotlist problems after apply of a layout (bug #41481)
* core: add infolist "layout" and hdata "layout", "layout_buffer" and "layout_window"
* core: reduce memory used by using shared strings for nicklist and lines in buffers
* core: change color format for options weechat.look.buffer_time_format and weechat.look.prefix_{action|error|join|network|quit} from `${xxx}` to `${color:xxx}`
* core: optimize the removal of lines in buffers (a lot faster to clear/close buffers with lot of lines)
* core: set options weechat.look.color_inactive_{buffer|window} to "on" by default
* api: return hashtable item pointer in functions hashtable_set() and hashtable_set_with_size()
* api: add "callback_free_key" in hashtable
* api: add support of colors with format `${color:xxx}` in function string_eval_expression() and command /eval
@@ -696,17 +966,10 @@ New features::
* plugins: remove the demo plugin
* relay: add command "ping" in weechat protocol (task #12689)
* rmodifier: add option "missing" in command /rmodifier
* script: add info about things defined by script (like commands, options, ...) in the detailed view of script (/script show)
* scripts: add hdata with script callback
* xfer: add option xfer.look.pv_tags
Improvements::
* core: reduce memory used by using shared strings for nicklist and lines in buffers
* core: change color format for options weechat.look.buffer_time_format and weechat.look.prefix_{action|error|join|network|quit} from `${xxx}` to `${color:xxx}`
* core: optimize the removal of lines in buffers (a lot faster to clear/close buffers with lot of lines)
* core: set options weechat.look.color_inactive_{buffer|window} to "on" by default
* script: add info about things defined by script (like commands, options, ...) in the detailed view of script (/script show)
Bug fixes::
* core: clear whole line before displaying content instead of clearing after the end of content (bug #40115)
@@ -758,10 +1021,12 @@ New features::
* core: add count for groups, nicks, and total in nicklist
* core: add option "dirs" in command /debug
* core: add signal "window_opened" (task #12464)
* core: allow read of array in hdata without using index
* api: add new function hdata_search()
* api: add property "completion_freeze" for function buffer_set(): do not stop completion when command line is updated
* aspell: add completion "aspell_dicts" (list of aspell installed dictionaries)
* aspell: add info "aspell_dict" (dictionaries used on a buffer)
* aspell: optimization on spellers to improve speed (save state by buffer)
* irc: add support of "dh-aes" SASL mechanism (patch #8020)
* irc: add support of UHNAMES (capability "userhost-in-names") (task #9353)
* irc: add tag "irc_nick_back" for messages displayed in private buffer when a nick is back on server (task #12576)
* irc: hide passwords in commands or messages sent to nickserv (/msg nickserv) with new modifiers "irc_command_auth" and "irc_message_auth", remove option irc.look.hide_nickserv_pwd, add option irc.look.nicks_hide_password (bug #38346)
* irc: unmask smart filtered join if nick speaks in channel some minutes after the join, new option irc.look.smart_filter_join_unmask (task #12405)
* irc: rename option irc.network.lag_disconnect to irc.network.lag_reconnect, value is now a number of seconds
* relay: add message "_nicklist_diff" (differences between old and current nicklist)
* relay: add support of multiple servers on same port for irc protocol (the client must send the server in the "PASS" command)
* relay: add WebSocket server support (RFC 6455) for irc and weechat protocols, new option relay.network.websocket_allowed_origins
@@ -777,12 +1043,6 @@ New features::
* script: add option script.scripts.autoload, add options "autoload", "noautoload" and "toggleautoload" for command /script, add action "A" (kbd:[Alt+a]) on script buffer (toggle autoload) (task #12393)
* core: allow read of array in hdata without using index
* aspell: optimization on spellers to improve speed (save state by buffer)
* irc: rename option irc.network.lag_disconnect to irc.network.lag_reconnect, value is now a number of seconds
Bug fixes::
* core: fix display of long lines without time (message beginning with two tabs)
@@ -863,14 +1123,11 @@ New features::
* irc: add option irc.network.alternate_nick to disable dynamic nick generation when all nicks are already in use on server (task #12281)
* irc: add option irc.network.whois_double_nick to double nick in command /whois
* irc: add option "-noswitch" in command /join (task #12275)
* perl: display script filename in error messages
* relay: add backlog and server capability "server-time" for irc protocol, add new options relay.irc.backlog_max_minutes, relay.irc.backlog_max_number, relay.irc.backlog_since_last_disconnect, relay.irc.backlog_tags, relay.irc.backlog_time_format (task #12076)
* relay: add support of IPv6, new option relay.network.ipv6, add support of "ipv4." and/or "ipv6." before protocol name, to force IPv4/IPv6 (task #12270)
* xfer: display remote IP address for DCC chat/file (task #12289)
Improvements::
* perl: display script filename in error messages
Bug fixes::
* core: fix infinite loop when a regex gives an empty match (bug #38112)
@@ -929,14 +1186,14 @@ Build::
Bug fixes::
* core: do not call shell to execute command in hook_process() (fix security problem when a plugin/script gives untrusted command) (bug #37764)
* core: do not call shell to execute command in hook_process() (fix security problem when a plugin/script gives untrusted command) (bug #37764, CVE-2012-5534)
[[v0.3.9.1]]
== Version 0.3.9.1 (2012-11-09)
Bug fixes::
* irc: fix crash when decoding IRC colors in strings (bug #37704)
* irc: fix crash when decoding IRC colors in strings (bug #37704, CVE-2012-5854)
[[v0.3.9]]
== Version 0.3.9 (2012-09-29)
@@ -964,19 +1221,16 @@ New features::
* irc: generate alternate nicks dynamically when all nicks are already in use (task #12209)
* irc: add option irc.look.ctcp_time_format to customize reply to CTCP TIME (task #12150)
* irc: move options from core to irc plugin: weechat.look.nickmode to irc.look.nick_mode (new type: integer with values: none/prefix/action/both) and weechat.look.nickmode_empty to irc.look.nick_mode_empty
* logger: add tags in backlog lines displayed when opening buffer
* relay: add support of SSL (for irc and weechat protocols), new option relay.network.ssl_cert_key (task #12044)
* relay: add option relay.color.client
* relay: add object type "arr" (array) in WeeChat protocol
* script: new plugin "script" (scripts manager, replacing scripts weeget.py and script.pl)
* script: new plugin "script" (script manager, replacing scripts weeget.py and script.pl)
* scripts: add signals for scripts loaded/unloaded/installed/removed
* scripts: add hdata with list of scripts for each language
Improvements::
* irc: move options from core to irc plugin: weechat.look.nickmode to irc.look.nick_mode (new type: integer with values: none/prefix/action/both) and weechat.look.nickmode_empty to irc.look.nick_mode_empty
Bug fixes::
* core: fix display bug when end of a line is displayed on top of chat (last line truncated and MORE(0) in status bar) (bug #37203)
@@ -1038,11 +1292,15 @@ New features::
* core: convert tabs to spaces in text pasted (bug #25028)
* core: add a connection timeout for child process in hook_connect() (bug #35966)
* core: add support of terminal "bracketed paste mode", new options weechat.look.paste_bracketed and weechat.look.paste_bracketed_timer_delay (task #11316)
* core: support lines of 16 Kb long in configuration files (instead of 1 Kb)
* core: convert options weechat.look.prefix_align_more and weechat.look.prefix_buffer_align_more from boolean to string (task #11197)
* core: add option weechat.history.max_buffer_lines_minutes: maximum number of minutes in history per buffer (task #10900), rename option weechat.history.max_lines to weechat.history.max_buffer_lines_number
* core: add optional arguments for command /plugin load/reload/autoload
* core: use extended regex in filters (task #9497, patch #7616)
* core: dynamically allocate color pairs (extended colors can be used without being added with command "/color"), auto reset of color pairs with option weechat.look.color_pairs_auto_reset
* core: allow background for nick colors (using ":")
* core: remember scroll position for all buffers in windows (bug #25555)
* core: improve display of commands lists in /help (add arguments -list and -listfull) (task #10299)
* core: improve arguments displayed in /help of commands
* api: add new function config_set_desc_plugin() (task #10925)
* api: add new functions buffer_match_list() and window_search_with_buffer()
* aspell: add section "option" in aspell.conf for speller options (task #11083)
@@ -1313,12 +1561,6 @@ New features::
* irc: add new options irc.look.buffer_switch_autojoin and irc.look.buffer_switch_join (task #8542, task #10506)
* irc: add new option irc.look.smart_filter_nick
* irc: add new options irc.look.color_nicks_in_nicklist and irc.look.color_nicks_in_names
Improvements::
* core: remember scroll position for all buffers in windows (bug #25555)
* core: improve display of commands lists in /help (add arguments -list and -listfull) (task #10299)
* core: improve arguments displayed in /help of commands
* irc: replace options irc.color.nick_prefix_{op|halfop|voice|user} by a single option irc.color.nick_prefixes (task #10888)
Bug fixes::
@@ -1332,7 +1574,7 @@ Bug fixes::
* core: fix bug with repeat of last completion ("%*"), which failed when many templates are used in completion
* core: reload file with certificate authorities when option weechat.network.gnutls_ca_file is changed
* core: rebuild bar content when items are changed in an hidden bar
* core: fix verification of SSL certificates by calling GnuTLS verify callback (patch #7459)
* core: fix verification of SSL certificates by calling GnuTLS verify callback (patch #7459, CVE-2011-1428)
* core: fix crash when using column filling in bars with some empty items (bug #32565)
* core: fix terminal title when $TERM starts with "screen"
* plugins: fix memory leaks when setting buffer callbacks after /upgrade (plugins: irc, relay, xfer, scripts)
@@ -1374,6 +1616,8 @@ New features::
* core: add property "hotlist_max_level_nicks" in buffers to set max hotlist level for some nicks in buffer
* core: add new options weechat.look.input_share and weechat.look.input_share_overwrite (task #9228)
* core: add new option weechat.look.prefix_align_min (task #10650)
* core: replace the 10 nick color options and number of nick colors by a single option weechat.color.chat_nick_colors (comma separated list of colors)
* core: add color support in option weechat.look.buffer_time_format
* irc: add option "-server" in command /join (task #10837)
@@ -1388,16 +1632,11 @@ New features::
* irc: display old channel topic when topic is unset (task #9780)
* irc: add new info_hashtable "irc_parse_message"
* irc: add signal "irc_input_send"
* irc: rename options irc.look.open_channel_near_server and irc.look.open_pv_near_server to irc.look.new_channel_position and irc.look.new_pv_position with new values (none, next or near_server)
* rmodifier: new plugin "rmodifier": alter modifier strings with regular expressions (bug #26964)
* relay: beta version of IRC proxy, now relay plugin is compiled by default
* python: add info "python2_bin" (path to Python 2.x interpreter)
Improvements::
* core: replace the 10 nick color options and number of nick colors by a single option weechat.color.chat_nick_colors (comma separated list of colors)
* core: add color support in option weechat.look.buffer_time_format
* irc: rename options irc.look.open_channel_near_server and irc.look.open_pv_near_server to irc.look.new_channel_position and irc.look.new_pv_position with new values (none, next or near_server)
Bug fixes::
* core: fix scroll problem on buffers with free content and non-allocated lines (bug #32039)
@@ -1452,9 +1691,6 @@ New features::
* irc: add message in private buffer when nick is back on server after a /quit
* irc: add new options irc.network.autoreconnect_delay_growing and irc.network.autoreconnect_delay_max (task #10338)
* irc: improve lag indicator: two colors (counting and finished), update item even when pong has not been received, lag_min_show is now in milliseconds
* irc: move options weechat.color.nicklist_prefix to irc plugin
* logger: use tag "no_log" to prevent a line from being written in log file
* api: new plugin API with many new functions: hooks, buffer management and nicklist, bars, configuration files, network, infos/infolists, lists, upgrade
Improvements::
* core: improve main loop: higher timeout in select(), less CPU usage
Internationalization::
* add Polish translations
@@ -1703,7 +1933,7 @@ Bug fixes::
Bug fixes::
* fix crash with some special chars in IRC messages (bug #25862)
* fix crash with some special chars in IRC messages (bug #25862, CVE-2009-0661)
[[v0.2.6]]
== Version 0.2.6 (2007-09-06)
@@ -1958,7 +2188,7 @@ Bug fixes::
* fix bug with spaces in script names (bug #16957)
* fix random crash when "MODE #chan -l" is received
* fix bug in IRC parser (random crash with malformed IRC messages)
* fix refresh bugs when terminal is resized: too many refreshs, display bug with split windows
* fix refresh bugs when terminal is resized: too many refreshes, display bug with split windows
* case ignored for channel names in charset options (bug #16858)
* fix crash when setting look_one_server_buffer to ON (bug #16932)
* fix display bug with special char (bug #16732)
@@ -2191,7 +2421,7 @@ Bug fixes::
* fix FIFO pipe (command now authorized on a buffer not connected to an IRC server)
* Modular chat client with a lightweight core and optional plugins.
* Multi-platform (GNU/Linux, *BSD, Mac OS X, QNX, Windows & other).
* Multi-protocols architecture (mainly IRC).
* Compliant with IRC RFCs 1459, 2810, 2811, 2812 and 2813.
* Small, fast and very light.
* Customizable and extensible with plugins (C, Perl, Python, Ruby, Lua, Tcl,
Guile, Javascript).
* Fully documented and translated into several languages.
* Developed from scratch.
* Free software, released under GPLv3.
* *Modular chat client*: WeeChat has a lightweight core and optional plugins. All plugins (including IRC) are independent and can be unloaded.
* *Multi-platform*: WeeChat runs on GNU/Linux, *BSD, GNU/Hurd, Mac OS X and Windows (Bash/Ubuntu and Cygwin).
* *Multi-protocols*: WeeChat is designed to support multiple protocols by plugins, like IRC.
* *Standards-compliant*: the IRC plugin is compliant with RFCs 1459, 2810, 2811, 2812 and 2813.
* *Small, fast and very light*: the core is and should stay as light and fast as possible.
* *Customizable and extensible*: there are a lot of options to customize WeeChat, and it is extensible with C plugins and scripts (Perl, Python, Ruby, Lua, Tcl, Scheme, JavaScript and PHP).
* *Fully documented*: there is comprehensive documentation, which is translated into several languages.
* *Developed from scratch*: WeeChat was built from scratch and is not based on any other client.
* *Free software*: WeeChat is released under GPLv3.
AC_ARG_ENABLE(ncurses, [ --disable-ncurses turn off ncurses interface (default=compiled if found)],enable_ncurses=$enableval,enable_ncurses=yes)
AC_ARG_ENABLE(headless, [ --disable-headless turn off headless binary (default=compiled), this is required for tests],enable_headless=$enableval,enable_headless=yes)
AC_ARG_ENABLE(gnutls, [ --disable-gnutls turn off gnutls support (default=compiled if found)],enable_gnutls=$enableval,enable_gnutls=yes)
AC_ARG_ENABLE(largefile, [ --disable-largefile turn off Large File Support (default=on)],enable_largefile=$enableval,enable_largefile=yes)
AC_ARG_ENABLE(alias, [ --disable-alias turn off Alias plugin (default=compiled)],enable_alias=$enableval,enable_alias=yes)
AC_ARG_ENABLE(aspell, [ --disable-aspell turn off Aspell plugin (default=compiled)],enable_aspell=$enableval,enable_aspell=yes)
AC_ARG_ENABLE(enchant, [ --enable-enchant turn on Enchant lib for Aspell plugin (default=off)],enable_enchant=$enableval,enable_enchant=no)
AC_ARG_ENABLE(charset, [ --disable-charset turn off Charset plugin (default=compiled if found)],enable_charset=$enableval,enable_charset=yes)
AC_ARG_ENABLE(buflist, [ --disable-buflist turn off Buflist plugin (default=compiled)],enable_buflist=$enableval,enable_buflist=yes)
AC_ARG_ENABLE(charset, [ --disable-charset turn off Charset plugin (default=compiled)],enable_charset=$enableval,enable_charset=yes)
AC_ARG_ENABLE(exec, [ --disable-exec turn off Exec plugin (default=compiled)],enable_exec=$enableval,enable_exec=yes)
AC_ARG_ENABLE(fifo, [ --disable-fifo turn off Fifo plugin (default=compiled)],enable_fifo=$enableval,enable_fifo=yes)
AC_ARG_ENABLE(fset, [ --disable-fset turn off Fast Set plugin (default=compiled)],enable_fset=$enableval,enable_fset=yes)
AC_ARG_ENABLE(irc, [ --disable-irc turn off IRC plugin (default=compiled)],enable_irc=$enableval,enable_irc=yes)
AC_ARG_ENABLE(logger, [ --disable-logger turn off Logger plugin (default=compiled)],enable_logger=$enableval,enable_logger=yes)
AC_ARG_ENABLE(relay, [ --disable-relay turn off Relay plugin (default=compiled)],enable_relay=$enableval,enable_relay=yes)
| alias | alias | Liste der Alias | Alias Pointer (optional) | Name des Alias (Platzhalter "*" kann verwendet werden) (optional)
| alias | alias_default | Liste der standardmäßigen Aliase | - | -
| fset | fset_option | Auflistung der fset Optionen | fset Option-Pointer (optional) | Name einer Einstellung (Platzhalter "*" kann verwendet werden) (optional)
| guile | guile_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| irc | irc_channel | Liste der Channels eines IRC-Servers | Channel Pointer (optional) | Server,Channel (Channel ist optional)
@@ -16,6 +20,10 @@
| irc | irc_ignore | Liste von ignorierten IRCs | Ignore Pointer (optional) | -
| irc | irc_modelist | Liste der Channel-Mode-Liste für einen IRC-Channel | Modelist Pointer (optional) | Server,Channel,Type (Type ist optional)
| irc | irc_modelist_item | Liste der Items in der Channel-Modeliste | Modelist Item Pointer (optional) | Server,Channel,Type,Nummer (Nummer ist optional)
| irc | irc_nick | Liste der Nicks im IRC-Channel | Nick Pointer (optional) | server,channel,nick (nick ist optional)
| irc | irc_notify | Liste mit Benachrichtigungen | Benachrichtigungspointer (optional) | Servername (Platzhalter "*" kann verwendet werden) (optional)
@@ -30,6 +38,8 @@
| perl | perl_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| php | php_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| python | python_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (Platzhalter "*" kann verwendet werden) (optional)
| relay | relay | Liste der Relay-Clients | Relay Pointer (optional) | -
| weechat | date | Datum der WeeChat Kompilierung | -
| weechat | date | Datum/Zeit der WeeChat Kompilierung | -
| weechat | dir_separator | Trennzeichen für Verzeichnis | -
@@ -58,10 +106,14 @@
| weechat | nick_color_name | zeigt Farbnamen des Nick | Nickname
| weechat | pid | WeeChat PID (Prozess-ID) | -
| weechat | term_height | Höhe des Terminals | -
| weechat | term_width | Breite des Terminals | -
| weechat | uptime | Laufzeit von Weechat (Format: "days:hh:mm:ss") | "days" (Anzahl der Tage) oder "seconds" (Anzahl der Sekunden) (optional)
| weechat | version | WeeChat-Version | -
| weechat | version_git | WeeChat Git Version (Ausgabe des Befehls "git describe", ausschließlich für eine Entwicklerversion. Eine stabile Version gibt keine Information zurück) | -
| irc | irc_message_parse | Parse eine IRC Nachricht | "message": IRC Nachricht, "server": Servername (optional) | "tags": Tags, "message_without_tags": Nachrichten ohne Tags, "nick": Nick, "host": Host, "command": Befehl, "channel": Channel, "arguments": Argumente (schließt Channel ein), "text": Text (zum Beispiel eine Nachricht von einem User), "pos_command": Index der "command" Nachricht ("-1" falls "command" nicht gefunden wird), "pos_arguments": Index der "arguments" Nachricht ("-1" falls "arguments" nicht gefunden wird), "pos_channel": Index der "channel" Nachricht ("-1" falls "channel" nicht gefunden wird),"pos_text": Index für "text" Nachricht ("-1" falls "text" nicht gefunden wird)
| irc | irc_message_split | dient zum Aufteilen einer überlangen IRC Nachricht (in maximal 512 Bytes große Nachrichten) | "message": IRC Nachricht, "server": Servername (optional) | "msg1" ... "msgN": Nachrichten die versendet werden sollen (ohne abschließendes "\r\n"), "args1" ... "argsN": Argumente für Nachrichten, "count": Anzahl der Nachrichten
| irc | irc_message_split | trennt eine IRC Nachricht (standardmäßig in 512 Bytes große Nachrichten) | "message": IRC Nachricht, "server": Servername (optional) | "msg1" ... "msgN": Nachrichten die versendet werden sollen (ohne abschließendes "\r\n"), "args1" ... "argsN": Argumente für Nachrichten, "count": Anzahl der Nachrichten
|===
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.