= WeeChat ChangeLog
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc2:
:max-width: 100%


This document lists all changes for each version
(the latest formatted version of this document can be found
https://weechat.org/files/changelog/ChangeLog-devel.html[here]).

For a list of important changes that require manual action, please look at
https://weechat.org/files/releasenotes/ReleaseNotes-devel.html[release notes]
(file 'ReleaseNotes.asciidoc' in sources).


[[1.5]]
== Version 1.5 (2016-05-01)

[[1.5_features]]
=== New features

* core: add Portuguese translations
* 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)
* irc: add option irc.network.sasl_fail_unavailable (issue #600, issue #697)
* irc: add multiple targets and support of "-server" in command /ctcp
  (issue #204, issue #493)
* ruby: add detection of Ruby 2.3 (issue #698)
* trigger: add "recover" in default triggers cmd_pass/msg_auth, and "regain"
  in default trigger "msg_auth" (issue #511)

[[1.5_bugs]]
=== Bugs fixed

* core: fix nick coloring when stop chars and a forced color are used: first
  remove chars then look for forced color
* core: check that pointers received in arguments are not NULL in buffers and
  windows functions
* core: fix truncation of buffer names in hotlist (issue #668)
* core: fix update of window title under Tmux (issue #685)
* core: fix detection of Python shared libraries (issue #676)
* api: fix number of arguments returned by function string_split() when
  keep_eol is 2 and the string ends with separators
* irc: fix first message displayed in raw buffer when the message is modified
  by a modifier (issue #719)
* irc: add missing completion "*" for target in command /msg
* irc: fix /msg command with multiple targets including "*"
* lua: fix crash when a lua function doesn't return a value and a string was
  expected (issue #718)
* relay: do not execute any command received in a PRIVMSG message from an irc
  relay client (issue #699)
* relay: fix the max number of clients connected on a port, allow value 0 for
  "no limit" (issue #669)
* relay: fix decoding of multiple frames in a single websocket message,
  send PONG on PING received in a websocket frame (issue #675)
* relay: fix command "input" received from clients with only spaces in
  content of message (weechat protocol) (issue #663)
* script: force refresh of scripts buffer after download of scripts list
  (issue #693)
* xfer: fix DCC file received when the terminal is resized
  (issue #677, issue #680)

[[1.4]]
== Version 1.4 (2016-01-10)

[[1.4_features]]
=== New features

* core: add a parent name in options, display inherited values if null in
  /set output, add option weechat.color.chat_value_null (issue #629)
* core: add tag "term_warning" in warnings about wrong $TERM on startup
* core: add option weechat.look.paste_auto_add_newline (issue #543)
* core: display a more explicit error when a filter fails to be added
  (issue #522)
* api: add function string_hex_dump()
* api: add argument "length" in function utf8_is_valid()
* alias: display completion in /alias list (issue #518)
* fifo: add /fifo command
* irc: evaluate content of server option "addresses"
* irc: move option irc.network.alternate_nick into servers
  (irc.server.xxx.nicks_alternate) (issue #633)
* irc: track real names using extended-join and WHO (issue #351)
* irc: add support of SNI (Server Name Indication) in SSL connection to
  IRC server (issue #620)
* irc: use current channel and current server channels first in completions
  "irc_server_channels" and "irc_channels" (task #12923, issue #260,
  issue #392)
* irc: add support of "cap-notify" capability (issue #182, issue #477)
* irc: add command /cap (issue #8)
* irc: add hex dump of messages in raw buffer when debug is enabled for irc
  plugin (level 2 or more)
* logger: display system error when the log file can not be written
  (issue #541)
* relay: add option relay.irc.backlog_since_last_message (issue #347)
* script: add completion with languages and extensions, support search by
  language/extension in /script search
* script: add option script.scripts.download_timeout
* doc: add Czech man page and quickstart guide (issue #490)
* build: add scripts version.sh and build-debian.sh, separate stable from devel
  Debian packaging
* tests: check if all plugins are loaded

[[1.4_bugs]]
=== Bugs fixed

* core: fix execution of empty command name ("/" and "/ " are not valid
  commands)
* core: fix memory leak when using multiple "-d" or "-r" in command line
  arguments
* core: don't complain any more about "tmux" and "tmux-256color" $TERM values
  when WeeChat is running under Tmux (issue #519)
* core: fix truncated messages after a word with a length of zero on screen
  (for example a zero width space: U+200B) (bug #40985, issue #502)
* api: fix handle of invalid escape in function string_convert_escaped_chars()
* alias: do not allow slashes and spaces in alias name (issue #646)
* irc: fix channel forwarding when option
  irc.look.buffer_open_before_{autojoin|join} is on (issue #643)
* irc: add a missing colon before the password in PASS message, if the password
  has spaces or begins with a colon (issue #602)
* irc: fix charset decoding in incoming private messages (issue #520)
* irc: display the arrow before server name in raw buffer
* irc: fix display of messages sent to server in raw buffer
* irc: fix display of invalid UTF-8 chars in raw buffer
* relay: display the arrow before client id and protocol in raw buffer
* ruby: fix load of scripts requiring "uri" (issue #433)
* ruby: fix Ruby detection when pkg-config is not installed
* tests: fix locale used to execute tests (issue #631)

[[1.3]]
== Version 1.3 (2015-08-16)

[[1.3_features]]
=== New features

* core: add completion "colors" (issue #481)
* core: start/stop search in buffer at current scroll position by default,
  add key key[ctrl-q] to stop search and reset scroll (issue #76, issue #393)
* core: add option weechat.look.key_grab_delay to set the default delay when
  grabbing a key with key[alt-k]
* core: add option weechat.look.confirm_upgrade (issue #463)
* core: allow key[ctrl-c] to exit WeeChat when the passphrase is asked on
  startup (issue #452)
* core: allow pointer as list name in evaluation of hdata (issue #450)
* core: add signal "signal_sighup"
* api: add support of evaluated sub-strings and current date/time in function
  string_eval_expression() and command /eval
* api: add function string_eval_path_home()
* alias: add options "add", "addcompletion" and "del" in command /alias, remove
  command /unalias (issue #458)
* irc: add option irc.network.channel_encode (issue #218, issue #482)
* irc: add option irc.color.topic_current (issue #475)
* irc: evaluate content of server option "nicks"
* logger: evaluate content of option logger.file.path (issue #388)
* lua: add detection of Lua 5.3
* relay: display value of HTTP header "X-Real-IP" for websocket connections
  (issue #440)
* ruby: add detection of Ruby 2.2
* script: rename option script.scripts.dir to script.scripts.path, evaluate
  content of option (issue #388)
* xfer: evaluate content of options xfer.file.download_path and
  xfer.file.upload_path (issue #388)

[[1.3_bugs]]
=== Bugs fixed

* core: flush stdout/stderr after sending text directly on them
  (fix corrupted data sent to hook_process() callback) (issue #442)
* core: allow execution of command "/input return" on a buffer which is not
  displayed in a window
* core: allow jump from current to previous buffer with default keys
  key[alt-j,NN] (issue #466)
* core: fix crash if a file descriptor used in hook_fd() is too high
  (> 1024 on Linux/BSD) (issue #465)
* core: fix display of invalid UTF-8 chars in bars
* core: fix bar item "scroll" after /buffer clear (issue #448)
* core: fix display of time in bare display when option
  weechat.look.buffer_time_format is set to empty string (issue #441)
* api: add missing function infolist_search_var() in script API (issue #484)
* api: add missing function hook_completion_get_string() in script API
  (issue #484)
* api: fix type of value returned by functions strcasestr, utf8_prev_char,
  utf8_next_char, utf8_add_offset and util_get_time_string
* api: fix type of value returned by function strcasestr
* fifo: fix send error on Cygwin when something is received in the pipe
  (issue #436)
* irc: fix update of lag item when the server lag changes
* irc: do not allow command /query with a channel name (issue #459)
* irc: decode/encode only text in IRC messages and not the headers
  (bug #29886, issue #218, issue #451)
* irc: fix crash with commands /allchan, /allpv and /allserv if the executed
  command closes buffers (issue #445)
* irc: do not open auto-joined channels buffers when option "-nojoin" is used
  in command /connect (even if the option irc.look.buffer_open_before_autojoin
  is on)
* irc: fix errors displayed on WHOX messages received (issue #376)
* xfer: fix crash if the DCC file socket number is too high
  (> 1024 on Linux/BSD) (issue #465)
* xfer: fix parsing of DCC chat messages (handle "\r\n" at the end of messages)
  (issue #425, issue #426)
* doc: replace PREFIX with CMAKE_INSTALL_PREFIX in cmake instructions
  (issue #354)

[[1.2]]
== Version 1.2 (2015-05-10)

[[1.2_features]]
=== New features

* core: add signals "signal_sigterm" and "signal_sigquit" (issue #114)
* core: use environment variable WEECHAT_HOME on startup (issue #391)
* core: remove WeeChat version from config files (issue #407)
* core: add options weechat.look.quote_{nick_prefix|nick_suffix|time_format} to
  customize quoted messages in cursor mode (issue #403)
* core: add a welcome message on first WeeChat run (issue #318)
* core: add options weechat.look.word_chars_{highlight|input}
  (issue #55, task #9459)
* core: display a warning on startup if the locale can not be set (issue #373)
* core: allow "*" as plugin name in command /plugin reload to reload all
  plugins with options
* core: add option "-s" in command /eval to split expression before evaluating
  it (no more split by default) (issue #324)
* core: add priority in plugins to initialize them in order
* api: add support of environment variables in function
  string_eval_expression() and command /eval
* api: add support of full color option name in functions color() and
  string_eval_expression() and in command /eval
* api: add "_chat_line" (line pointer) in hashtable of hook_focus
* irc: display a warning when the option irc.look.display_away is set to
  "channel"
* irc: optimize search of a nick in nicklist (up to 3x faster)
* irc: add support of SHA-256 and SHA-512 algorithms in server option
  "ssl_fingerprint" (issue #281)
* irc: add option "-noswitch" in command /query (issue #394)
* irc: format message 008 (RPL_SNOMASK) (issue #144)
* irc: add support of "account-notify" capability (issue #11, issue #246)
* irc: remove server "freenode" from default config file (issue #309)
* irc: add support of "ecdsa-nist256p-challenge" SASL mechanism (issue #251)
* doc: add Russian man page
* javascript: new script plugin for javascript

[[1.2_bugs]]
=== Bugs fixed

* core: add missing completions in command /input
* guile: fix value returned in case of error in functions:
  config_option_reset, config_color, config_color_default, config_write,
  config_read, config_reload, hook_command, buffer_string_replace_local_var,
  command
* irc: fix color of new nick in nick changes messages when option
  irc.look.color_nicks_in_server_messages is off
* irc: fix crash when setting an invalid regex with "/list -re" during a /list
  server response (issue #412)
* irc: fix display of PART messages on channels with +a (anonymous flag)
  (issue #396)
* irc: remove useless rename of channel buffer on JOIN received with different
  case (issue #336)
* irc: fix completion of commands /allchan and /allpv
* lua: fix wrong argument usage in functions nicklist_remove_group,
  nicklist_remove_nick and nicklist_remove_all (issue #346)
* lua: fix value returned in case of error in functions:
  config_option_reset, config_string, config_string_default, config_color,
  config_color_default, config_write, config_read, config_reload,
  hook_modifier_exec, buffer_string_replace_local_var, nicklist_group_set,
  nicklist_nick_set, command, upgrade_read, upgrade_close
* relay: fix up/down keys on relay buffer (issue #335)
* relay: remove v4-mapped addresses in /help relay.network.allowed_ips
  (issue #325)
* perl: fix value returned in case of error in functions:
  config_option_reset, config_color, config_color_default, config_write,
  config_read, config_reload, buffer_string_replace_local_var, command
* python: fix value returned in case of error in functions:
  config_option_reset, config_color, config_color_default, config_write,
  config_read, config_reload, config_is_set_plugin, buffer_get_string,
  buffer_string_replace_local_var, nicklist_group_get_string,
  nicklist_nick_get_string, command, hdata_time
* python: fix name of function "bar_update" in case of error
* python: fix restore of old interpreter when a function is not found in the
  script
* ruby: fix crash on /plugin reload (issue #364)
* ruby: fix value returned in case of error in functions:
  config_option_reset, config_color, config_color_default, config_write,
  config_read, config_reload, buffer_string_replace_local_var, command
* script: fix state of script plugins when list of scripts has not been
  downloaded
* scripts: reset current script pointer when load of script fails in
  python/perl/ruby/lua/tcl plugins
* scripts: fix return code of function bar_set in
  python/perl/ruby/lua/tcl/guile plugins
* scripts: fix type of value returned by function hdata_time (from string to
  long integer) in perl/ruby/lua/tcl/guile plugins
* tcl: fix value returned in case of error in functions:
  mkdir_home, mkdir, mkdir_parents, config_option_reset, config_color,
  config_color_default, config_write, config_read, config_reload,
  print_date_tags, buffer_string_replace_local_var, command, infolist_new_item,
  infolist_new_var_integer, infolist_new_var_string, infolist_new_var_pointer,
  infolist_new_var_time, upgrade_write_object, upgrade_read, upgrade_close
* trigger: do not hook anything if the trigger is disabled (issue #405)

[[1.1.1]]
== Version 1.1.1 (2015-01-25)

[[1.1.1_bugs]]
=== Bugs fixed

* core: fix random error when creating symbolic link weechat-curses on
  make install with cmake (bug #40313)
* core: fix crash when a root bar has conditions different from
  active/inactive/nicklist (issue #317)
* irc: don't close channel buffer on second /part when option
  irc.look.part_closes_buffer is off (issue #313)
* irc: fix /join on a channel buffer opened with autojoin but which failed to
  join
* irc: send QUIT to server and no PART for channels when the server buffer
  is closed (issue #294)
* irc: fix order of channel buffers opened when option irc.look.server_buffer
  is set to "independent", irc.look.buffer_open_before_autojoin to "on" and
  irc.look.new_channel_position to "near_server" (issue #303)
* irc: fix crash in buffer close when server name is the same as a channel name
  (issue #305)

[[1.1]]
== Version 1.1 (2015-01-11)

[[1.1_features]]
=== New features

* 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: add option weechat.completion.command_inline (task #12491)
* core: add bar item "mouse_status", new options weechat.look.item_mouse_status
  and weechat.color.status_mouse (issue #247)
* core: add signals "mouse_enabled" and "mouse_disabled" (issue #244)
* core: add hide of chars in string in evaluation of expressions
* core: add arraylists, improve speed of completions (about 50x faster)
* core: move bar item "scroll" between buffer name and lag in default bar items
  of status bar
* core: allow incomplete commands if unambiguous, new option
  weechat.look.command_incomplete (task #5419)
* api: send value returned by command callback in function command(), remove
  WeeChat error after command callback if return code is WEECHAT_RC_ERROR
* api: add regex replace feature in function string_eval_expression()
* 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)
* irc: add support for color codes 16-99 in IRC messages (issue #228), add
  infolist "irc_color_weechat"
* irc: disable SSLv3 by default in server option "ssl_priorities" (issue #248)
* irc: add support of "extended-join" capability (issue #143, issue #212)
* irc: automatically add current channel in command /samode (issue #241)
* 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
* lua: add detection of Lua 5.2
* relay: add options "stop" and "restart" in command /relay
* relay: add option relay.network.ssl_priorities (issue #234)
* relay: add host in sender for IRC backlog PRIVMSG messages sent to clients
* script: add option script.scripts.url_force_https (issue #253)
* 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 `${tg_displayed}` in conditions of default trigger "beep"
* trigger: add option "restore" in command /trigger

[[1.1_bugs]]
=== Bugs fixed

* core: fix compilation of plugins with cmake >= 3.1 (issue #287)
* core: fix display bug when scrolling in buffer on a filtered line
  (issue #240)
* core: send mouse code only one time to terminal with command
  /mouse enable|disable|toggle
* core: fix buffer property "lines_hidden" when merging buffers or when a line
  is removed from a buffer (issue #226)
* core: display time in bare display only if option
  weechat.look.buffer_time_format is not an empty string
* core: fix translation of message displayed after /upgrade
* doc: fix compilation of man pages with autotools in source directory
* api: fix truncated process output in hook_process() (issue #266)
* api: fix crash when reading config options with NULL value (issue #238)
* irc: defer the auto-connection to servers with a timer
  (issue #279, task #13038)
* irc: add missing server options "sasl_timeout" and "notify" in output of
  /server listfull
* irc: use option irc.look.nick_mode_empty to display nick prefix in bar item
  "input_prompt"
* irc: remove IRC color codes from buffer title in channels (issue #237)
* irc: add tag "nick_xxx" in invite messages
* irc: fix completion of commands /msg, /notice and /query
* irc: fix translation of CTCP PING reply (issue #137)
* python: fix Python detection with Homebrew (issue #217)
* relay: wait for message CAP END before sending join of channels and backlog
  to the client (issue #223)
* relay: send messages "_buffer_localvar_*" and "_buffer_type_changed" with
  sync "buffers" (issue #191)
* relay: don't remove relay from config when the binding fails (issue #225)
* relay: use comma separator in option relay.irc.backlog_tags, check the value
  of option when it is changed with /set
* relay: remove "::ffff:" from IPv4-mapped IPv6 client address (issue #111)
* trigger: fix memory leak when allocating a new trigger with several regex
* xfer: fix freeze when accepting DCC (issue #160, issue #174)
* xfer: bind to wildcard address when sending (issue #173)
* tests: fix compilation of tests with clang (issue #275)

[[1.0.1]]
== Version 1.0.1 (2014-09-28)

[[1.0.1_bugs]]
=== Bugs fixed

* core: fix crash on buffer close when option weechat.look.hotlist_remove is
  set to "merged" (issue #199)
* core: fix highlight of IRC action messages when option irc.look.nick_mode is
  set to "action" or "both" (issue #206)
* core: fix compilation of plugin API functions (macros) when compiler
  optimizations are enabled (issue #200)
* core: fix window/buffer pointers used in command /eval
* core: fix modifier "weechat_print": discard only one line when several lines
  are displayed in same message (issue #171)
* api: fix bug in function hdata_move() when absolute value of count is greater
  than 1
* aspell: fix compilation with Enchant < 1.6.0 (issue #192)
* aspell: fix crash with command "/aspell addword" if no word is given
  (issue #164, issue #165)
* irc: fix display of channel exception list (348) with 6 arguments (date
  missing)
* irc: fix type of value stored in hashtable when joining a channel
  (issue #211)
* guile: fix compilation with Guile < 2.0.4 (issue #198)
* perl: fix detection of Perl >= 5.20 with autotools
* relay: fix send of signals "relay_client_xxx" (issue #214)
* script: fix crash on "/script update" if a script detail is displayed in
  buffer (issue #177)
* trigger: do not allow any changes on a trigger when it is currently running
  (issue #189)
* trigger: fix regex used in default triggers to hide passwords ("\S" is not
  supported on *BSD) (issue #172)
* tests: fix build of tests when the build directory is outside source tree
  (issue #178)
* tests: fix memory leak in tests launcher

[[1.0]]
== Version 1.0 (2014-08-15)

[[1.0_features]]
=== New features

* core: add terabyte unit for size displayed
* core: display a warning on startup if $TERM does not start with "screen"
  under Screen/Tmux
* core: add option weechat.color.status_nicklist_count (issue #109,
  issue #110)
* core: add option "env" in command /set (manage environment variables)
* core: add bar item "buffer_short_name" (task #10882)
* core: add option "send" in command /input (send text to a buffer)
* core: add support of negated tags in filters (with "!")
  (issue #72, issue #74)
* core: add hidden buffers, add options hide/unhide in command /buffer
* core: add default key key[alt--] (toggle filters in current buffer)
  (issue #17)
* core: add non-active merged buffers with activity in hotlist (if another
  merged buffer is zoomed) (task #12845)
* core: add text search in buffers with free content (task #13051)
* core: add buffer property "clear"
* core: add option weechat.look.hotlist_add_conditions, remove option
  weechat.look.hotlist_add_buffer_if_away
* core: add option weechat.look.hotlist_remove (issue #99)
* core: add options "-beep" and "-current" in command /print
* core: add bare display mode (for easy text selection and click on URLs), new
  key: key[alt-l], new option "bare" in command /window, new options:
  weechat.look.bare_display_exit_on_input and
  weechat.look.bare_display_time_format
* core: add signals "key_combo_{default|search|cursor}"
* core: display a warning in case of inconsistency between the options
  weechat.look.save_{config|layout}_on_exit
* api: add argument "flags" in function hdata_new_list()
* api: allow wildcard "*" inside the mask in function string_match()
* api: allow value "-1" for property "hotlist" in function buffer_set()
  (to remove a buffer from hotlist)
* api: add option "buffer_flush" in function hook_process_hashtable()
* api: allow negative value for y in function printf_y()
* api: add support of case insensitive search and search by buffer full name
  in function buffer_search() (bug #34318)
* api: add option "detached" in function hook_process_hashtable()
* api: add option "signal" in function hook_set() to send a signal to the child
  process
* api: add support of nested variables in function string_eval_expression() and
  command /eval (issue #35)
* api: add support of escaped strings with format `${esc:xxx}` or `${\xxx}` in
  function string_eval_expression() and command /eval
* api: add functions hashtable_dup(), string_replace_regex(),
  string_split_shell(), string_convert_escaped_chars()
* api: add integer return code for functions hook_{signal|hsignal}_send()
* alias: add default alias "msgbuf" (send text to a buffer)
* exec: add exec plugin: new command /exec and file exec.conf
* irc: display locally away status changes in private buffers (in addition to
  channels) (issue #117)
* irc: add value "+" for option irc.look.smart_filter_mode to use modes from
  server prefixes (this is now the default value) (issue #90)
* irc: add bar item "irc_nick_modes" (issue #71)
* irc: add support of message 324 (channel modes) in option
  irc.look.display_join_message (issue #75)
* irc: add option irc.look.join_auto_add_chantype (issue #65)
* irc: add tag with host ("host_xxx") in IRC messages displayed (task #12018)
* 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)
* irc: add option irc.color.item_nick_modes (issue #47)
* irc: allow "$ident" in option irc.network.ban_mask_default (issue #18)
* irc: add support of "away-notify" capability (issue #12)
* irc: add command /remove (issue #91)
* irc: add command /unquiet (issue #36)
* irc: add command /allpv (task #13111)
* irc: evaluate content of server options "username" and "realname"
* 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)
* relay: add option relay.network.clients_purge_delay
* rmodifier: remove plugin (replaced by trigger)
* ruby: add detection of Ruby 2.1
* trigger: add trigger plugin: new command /trigger and file trigger.conf
* tests: add unit tests using CppUTest

[[1.0_bugs]]
=== Bugs fixed

* core: fix zero-length malloc of an hashtable item with type "buffer"
* core: fix memory leak on /upgrade when file signature in upgrade file is
  invalid
* core: fix memory leak in completion of config options values
* core: fix memory leak when removing script files
* core: fix result of hash function (in hashtables) on 32-bit systems
* core: fix insert of mouse code in input line after a partial key combo
  (issue #130)
* core: check code point value in UTF-8 check function (issue #108)
* core: add option "-mask" in command /unset (issue #112)
* core: fix socks5 proxy for curl downloads (issue #119)
* core: display curl error after a failed download
* core: do not display content of passphrase on /secure buffer
* core: fix potential memory leak with infolists not freed in plugins
  (debian #751108)
* core: fix color display of last terminal color number + 1 (issue #101)
* core: add option "-buffer" in command /command (issue #67)
* core: fix restoration of core buffer properties after /upgrade
* core: fix "/buffer clear" with a name (don't clear all merged buffers with
  same number)
* core: fix evaluation of expression with regex: when a comparison char is in
  the regex and don't evaluate the regex itself (issue #63)
* core: close .upgrade files before deleting them after /upgrade
* core: fix refresh of bar item "buffer_zoom" on buffer switch
* core: fix reset of attributes in bars when "resetcolor" is used (issue #41)
* core: fix alignment of lines in merged buffers when options
  weechat.look.prefix_align and weechat.look.prefix_buffer_align are set to
  "none" (issue #43)
* core: quit WeeChat on signal SIGHUP, remove signal "signal_sighup"
* core: fix add of filter on OS X when regex for message is empty (filter regex
  ending with "\t")
* core: check validity of buffer pointer when data is sent to a buffer
  (command/text from user and API function command())
* core: fix crash when buffer is closed during execution of multiple commands
  (issue #27)
* core: fix compilation on SmartOS (bug #40981, issue #23)
* core: add missing \0 at the end of stderr buffer in function hook_process()
* core: fix highlight problem with "(?-i)" and upper case letters in option
  weechat.look.highlight (issue #24)
* core: use glibtoolize on Mac OS X (autotools) (issue #22)
* core: fix detection of terminated process in function hook_process()
* core: set option weechat.look.buffer_search_where to prefix_message by
  default
* core: fix "/window scroll -N" on a buffer with free content
* core: fix recursive calls to function eval_expression()
* core: mute all buffers by default in command /mute (replace option -all by
  -core)
* core: save and restore mute state in command /mute (bug #41748)
* core: fix memory leak when removing a hdata
* core: fix memory leak in evaluation of sub-conditions
* core: fix memory leak in function gui_key_add_to_infolist() (in case of
  insufficient memory)
* core: fix use of invalid pointer in function gui_bar_window_content_alloc()
  (in case of insufficient memory)
* core: fix uninitialized value in function string_decode_base64()
* core: fix memory leak and use of invalid pointer in split of string (in case
  of insufficient memory)
* core: fix potential NULL pointer in function gui_color_emphasize()
* core: use same return code and message in all commands when arguments are
  wrong/missing
* core: allow empty arguments for command /print
* core: fix freeze/crash in GnuTLS (bug #41576)
* core: fix cmake warning CMP0007 on "make uninstall" (bug #41528)
* api: fix function string_decode_base64()
* api: fix function string_format_size() on 32-bit systems
* api: change type of arguments displayed/highlight in hook_print() callback
  from string to integer (in scripts)
* alias: change default command for alias /beep to "/print -beep"
* guile: fix module used after unload of a script
* irc: fix memory leak in CTCP answer
* irc: fix duplicate sender name in display of wallops (issue #142,
  issue #145)
* irc: fix extract of channel in parser for JOIN/PART messages when there is a
  colon before the channel name (issue #83)
* irc: fix duplicate sender name in display of notice (issue #87)
* irc: fix refresh of buffer name in bar items after join/part/kick/kill
  (issue #86)
* irc: display message 936 (censored word) on channel instead of server buffer
* irc: make reason optional in command /kill
* irc: add alias "whois" for target buffer of messages 401/402 (issue #54)
* irc: fix truncated read on socket with SSL (bug #41558)
* irc: display output of CAP LIST in server buffer
* irc: fix colors in message with CTCP reply sent to another user
* irc: set option irc.network.autoreconnect_delay_max to 600 by default,
  increase max value to 604800 seconds (7 days)
* irc: fix read of MODES server value when in commands /op, /deop, /voice,
  /devoice, /halfop, /dehalfop
* irc: set option irc.network.whois_double_nick to "off" by default
* irc: fix parsing of nick in host when '!' is not found (bug #41640)
* lua: fix interpreter used after unload of a script
* perl: fix context used after unload of a script
* python: fix read of return value for callbacks returning an integer
  in Python 2.x (issue #125)
* python: fix interpreter used after unload of a script
* relay: fix memory leak during handshake on websocket
* relay: fix memory leak when receiving commands from client (weechat protocol)
* relay: fix crash when an IRC "MODE" command is received from client without
  arguments
* relay: fix number of bytes sent/received on 32-bit systems
* relay: fix crash when closing relay buffers (issue #57, issue #78)
* relay: check pointers received in hdata command to prevent crashes with bad
  pointers (WeeChat protocol)
* relay: remove warning on /reload of relay.conf when ports are defined
* relay: fix client disconnection on empty websocket frames received (PONG)
* relay: add support of Internet Explorer websocket (issue #73)
* relay: fix crash on /upgrade received from a client (weechat protocol)
* relay: fix freeze after /upgrade when many disconnected clients still exist
* relay: fix NULL pointer when reading buffer lines for irc backlog
* ruby: fix crash when trying to load a directory with /ruby load
* script: fix display of curl errors
* script: set option script.scripts.cache_expire to 1440 by default
* script: fix scroll on script buffer in the detailed view of script
  (issue #6)
* scripts: fix crash when a signal is received with type "int" and NULL pointer
  in signal_data
* xfer: fix problem with option xfer.file.auto_accept_nicks when the server
  name contains dots
* xfer: fix freeze/problems when sending empty files with DCC (issue #53)
* xfer: fix connection to remote host in DCC receive on Mac OS X (issue #25)
* xfer: remove bind on xfer.network.own_ip (issue #5)

[[0.4.3]]
== Version 0.4.3 (2014-02-09)

[[0.4.3_features]]
=== New features

* core: add signals "signal_sighup" and "signal_sigwinch" (terminal resized)
* core: add command /print, add support of more escaped chars in command
  "/input insert"
* core: add option weechat.look.tab_width
* core: add completion "plugins_installed"
* core: add support of UTF-8 chars in horizontal/vertical separators (options
  weechat.look.separator_{horizontal|vertical})
* core: add option weechat.look.window_auto_zoom, disable automatic zoom by
  default when terminal becomes too small for windows
* 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: use "+" separator to make a logical "and" between tags in command
  /filter, option weechat.look.highlight_tags and buffer property
  "highlight_tags"
* core: rename options save/reset to store/del in command /layout
* core: add options weechat.look.buffer_auto_renumber and
  weechat.look.buffer_position, add option "renumber" in command /buffer, add
  bar item "buffer_last_number" (task #12766)
* core: add signal "buffer_cleared"
* core: add buffer property "day_change" to hide messages for the day change in
  specific buffers
* core: replace default key key[ctrl-c,r] by key[ctrl-c,v] for reverse video in
  messages
* core: replace default key key[ctrl-c,u] by key[ctrl-c,_] for underlined text
  in messages
* core: add option "libs" in command /debug
* core: rename option weechat.look.set_title to weechat.look.window_title,
  value is now a string (evaluated)
* core: add infos "term_width" and "term_height"
* core: add bar item "buffer_zoom", add signals "buffer_{zoomed|unzoomed}"
  (patch #8204)
* core: add default keys key[alt-]key[Home]/key[End] (`meta2-1;3H` /
  `meta2-1;3F`) and key[alt-]key[F11]/key[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}
* doc: add French developer's guide and relay protocol
* doc: add Japanese plugin API reference and developer's guide
* doc: add Polish man page and user's guide
* 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"
* api: add support of infos with format `${info:name,arguments}` in function
  string_eval_expression() and command /eval
* api: add support for C++ plugins
* alias: add default alias /beep => /print -stderr \a
* irc: use MONITOR instead of ISON for /notify when it is available on server
  (task #11477)
* irc: add server option "ssl_fingerprint" (task #12724)
* irc: add option irc.look.smart_filter_mode (task #12499)
* irc: add option irc.network.ban_mask_default (bug #26571)
* 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)
* relay: send backlog for irc private buffers
* xfer: add support of IPv6 for DCC chat/file (patch #7992)
* xfer: add option xfer.file.auto_check_crc32 (patch #7963)

[[0.4.3_bugs]]
=== Bugs fixed

* core: fix hotlist problems after apply of a layout (bug #41481)
* core: fix installation of weechat-plugin.h with autotools (patch #8305)
* core: fix compilation on Android (bug #41420, patch #8301, bug #41434)
* core: fix crash when creating two bars with same name but different case
  (bug #41418)
* core: fix display of read marker when all buffer lines are unread and that
  option weechat.look.read_marker_always_show is on
* core: fix memory leak in regex matching when evaluating expression
* core: fix crash in /eval when config option has a NULL value
* core: fix crash with hdata_update() on shared strings, add hdata type
  "shared_string" (bug #41104)
* core: fix text emphasis with wide chars on screen like Japanese (patch #8253)
* core: remove option on /unset of plugin description option (plugins.desc.xxx)
  (bug #40768)
* core: fix random crash when closing a buffer
* core: fix crash on /buffer close core.weechat
* core: apply color attributes when clearing a window (patch #8236)
* core: set option weechat.look.paste_bracketed to "on" by default
* core: fix truncated text when pasting several long lines (bug #40210)
* core: create .conf file with default options only if the file does not exist
  (and not on read error with existing file)
* core: fix highlight on action messages: skip the nick at beginning to prevent
  highlight on it (bug #40516)
* core: fix bind of keys in cursor/mouse context when key starts with "@"
  (remove the warning about unsafe key)
* core: fix truncated prefix when filters are toggled (bug #40204)
* core: use one date format when day changes from day to day+1
* api: fix read of arrays in hdata functions hdata_<type>() (bug #40354)
* aspell: fix detection of nicks with non-alphanumeric chars
* guile: disable guile gmp allocator (fix crash on unload of relay plugin)
  (bug #40628)
* irc: clear the GnuTLS session in all cases after SSL connection error
* irc: do not display names by default when joining a channel (task #13045)
* irc: display PONG answer when resulting from manual /ping command
* irc: fix time parsed in tag of messages on Cygwin
* irc: use statusmsg from message 005 to check prefix char in status
  notices/messages
* irc: remove display of channel in channel notices, display "PvNotice" for
  channel welcome notices
* irc: fix ignore on a host without nick
* irc: use color code 0x1F (`ctrl-_`) for underlined text in input line (same
  code as messages) (bug #40756)
* irc: use color code 0x16 (`ctrl-v`) for reverse video in messages
* irc: use option irc.network.colors_send instead of irc.network.colors_receive
  when displaying messages sent by commands /away, /me, /msg, /notice, /query
* irc: fix memory leak when checking the value of ssl_priorities option in
  servers
* irc: fix memory leak when a channel is deleted
* irc: fix groups in channel nicklist when reconnecting to a server that
  supports more nick prefixes than the previously connected server
* irc: fix auto-switch to channel buffer when doing /join channel (without "#")
* logger: fix memory leaks in backlog
* logger: replace backslashs in name by logger replacement char under Cygwin
  (bug #41207)
* lua: fix detection of Lua 5.2 in autotools (patch #8270)
* lua: fix crash on calls to callbacks during load of script
* python: fix load of scripts with Python >= 3.3
* relay: fix memory leak on unload of relay plugin
* ruby: add detection and fix compilation with Ruby 2.0 (patch #8209)
* ruby: fix ruby init with Ruby >= 2.0 (bug #41115)
* scripts: fix script interpreter used after register during load of script
  in python/perl/ruby/lua/guile plugins (bug #41345)
* xfer: use same infolist for hook and signals (patch #7974)

[[0.4.2]]
== Version 0.4.2 (2013-10-06)

[[0.4.2_features]]
=== New features

* core: reduce memory used by using shared strings for nicklist and lines in
  buffers
* core: display day change message dynamically (do not store it as a line in
  buffer), split option weechat.look.day_change_time_format into two options
  weechat.look.day_change_message_{1date|2dates}, new option
  weechat.color.chat_day_change (task #12775)
* core: add syntax "@buffer:item" in bar items to force the buffer used when
  displaying the bar item (task #12717)
* core: add search of regular expression in buffer, don't reset search type on
  a new search, select where to search (messages/prefixes), add keys in search
  context: key[alt-c] (case (in)sensitive search), key[Tab] (search in
  messages/prefixes)
* core: add text emphasis in messages when searching text in buffer, new
  options: weechat.look.emphasized_attributes, weechat.color.emphasized,
  weechat.color.emphasized_bg
* 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: add secured data (encryption of passwords or private data): add new
  command /secure and new file sec.conf (task #7395)
* core: rename binary and man page from "weechat-curses" to "weechat"
  (task #11027)
* core: disable build of doc by default, add cmake option ENABLE_MAN to compile
  man page (off by default)
* core: add option "-o" in command /color
* core: add CA_FILE option in cmake and configure to setup default
  value of option weechat.network.gnutls_ca_file (default is
  "/etc/ssl/certs/ca-certificates.crt") (task #12725)
* core: add option "scroll_beyond_end" for command /window (task #6745)
* core: add options weechat.look.hotlist_prefix and weechat.look.hotlist_suffix
  (task #12730)
* core: add option weechat.look.key_bind_safe
* core: update man page and add translations (in French, German, Italian, and
  Japanese)
* core: add option weechat.network.proxy_curl (task #12651)
* core: add "proxy" infolist and hdata
* core: add infolist "layout" and hdata "layout", "layout_buffer" and
  "layout_window"
* 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
* api: add argument "options" in function string_eval_expression(), add option
  "-c" in command /eval (to evaluate a condition)
* api: add new function strlen_screen()
* aspell: rename option aspell.look.color to aspell.color.misspelled, add
  option aspell.color.suggestions
* aspell: add support of enchant library (patch #6858)
* irc: add option irc.look.notice_welcome_redirect to automatically redirect
  channel welcome notices to the channel buffer
* irc: add support of wildcards in commands (de)op/halfop/voice, split IRC
  message sent if number of nicks is greater than server MODES (from message
  005) (task #9221)
* irc: add option irc.look.pv_tags
* irc: add support of special variables $nick/$channel/$server in commands
  /allchan and /allserv
* irc: add option irc.look.nick_color_hash: hash algorithm to find nick color
  (patch #8062)
* logger: add option "flush" in command /logger
* 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

[[0.4.2_bugs]]
=== Bugs fixed

* core: clear whole line before displaying content instead of clearing after
  the end of content (bug #40115)
* core: fix time displayed in status bar (it was one second late) (bug #40097)
* core: fix memory leak on unhook of a print hook (if using tags)
* core: fix computation of columns in output of /help (take care about size of
  time/buffer/prefix)
* core: fix random crash on "/buffer close" with a buffer number (or a range of
  buffers)
* core: optimize the removal of lines in buffers (a lot faster to clear/close
  buffers with lot of lines)
* core: fix priority of logical operators in evaluation of expression
  (AND takes precedence over the OR) and first evaluate sub-expressions between
  parentheses
* core: remove gap after read marker line when there is no bar on the right
  (bug #39548)
* core: use "/dev/null" for stdin in hook_process() instead of closing stdin
  (bug #39538)
* core: fix char displayed at the intersection of three windows (bug #39331)
* core: fix crash in evaluation of expression when reading a string in hdata
  with a NULL value (bug #39419)
* core: fix display bugs with some UTF-8 chars that truncates messages displayed
  (for example U+26C4) (bug #39201)
* core: remove extra space after empty prefix (when prefix for action, error,
  join, network or quit is set to empty string) (bug #39218)
* core: fix random crash on mouse actions (bug #39094)
* core: set options weechat.look.color_inactive_{buffer|window} to "on" by
  default
* core: fix line alignment when option weechat.look.buffer_time_format is set
  to empty string
* api: change type of hashtable key hash to unsigned long
* api: use pointer for infolist "hook" to return only one hook
* aspell: fix detection of word start/end when there are apostrophes or minus
  chars before/after word
* irc: fix reconnection to server using IPv6 (bug #38819, bug #40166)
* irc: replace default prefix modes "qaohvu" by the standard ones "ov" when
  PREFIX is not sent by server (bug #39802)
* irc: use 6697 as default port for SSL servers created with URL "ircs://"
  (bug #39621)
* irc: display number of ops/halfops/voices on channel join only for supported
  modes on server (bug #39582)
* irc: fix self nick color in server messages after nick is changed with /nick
  (bug #39415)
* irc: fix error message on /invite without arguments (bug #39272)
* irc: fix multiple nicks in command /query (separated by commas): open one
  buffer per nick
* lua: fix interpreter used in API functions (bug #39470)
* relay: fix decoding of websocket frames when there are multiple frames in a
  single message received (only the first one was decoded)
* relay: fix binding to an IP address (bug #39119)
* xfer: fix compilation on OpenBSD (bug #39071)

[[0.4.1]]
== Version 0.4.1 (2013-05-20)

[[0.4.1_features]]
=== New features

* core: make nick prefix/suffix dynamic (not stored in the line): move options
  irc.look.nick_{prefix|suffix} to weechat.look.nick_{prefix|suffix} and
  options irc.color.nick_{prefix|suffix} to
  weechat.color.chat_nick_{prefix|suffix}, add new options
  weechat.look.prefix_align_more_after,
  weechat.look.prefix_buffer_align_more_after, logger.file.nick_{prefix|suffix}
  (bug #37531)
* core: add support of multiple layouts (task #11274)
* core: add signals nicklist_{group|nick}_removing and hsignals
  nicklist_{group|nick}_{added|removing|changed}
* core: add count for groups, nicks, and total in nicklist
* core: allow read of array in hdata without using index
* core: add option "dirs" in command /debug
* core: add signal "window_opened" (task #12464)
* 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: add option irc.look.display_join_message (task #10895)
* irc: add option irc.look.pv_buffer: automatically merge private buffers
  (optionally by server) (task #11924)
* irc: rename option irc.network.lag_disconnect to irc.network.lag_reconnect,
  value is now a number of seconds
* 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)
* 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
* relay: add options "buffers" and "upgrade" in commands sync/desync (weechat
  protocol)
* rmodifier: rename default rmodifier "nickserv" to "command_auth" (with new
  modifier "irc_command_auth"), add default rmodifier "message_auth" (modifier
  "irc_message_auth")
* script: add option script.scripts.autoload, add options "autoload",
  "noautoload" and "toggleautoload" for command /script, add action "A"
  (key[alt-a]) on script buffer (toggle autoload) (task #12393)
* xfer: add option xfer.file.auto_accept_nicks (patch #7962)

[[0.4.1_bugs]]
=== Bugs fixed

* core: fix display of long lines without time (message beginning with two
  tabs)
* core: reset scroll in window before zooming on a merged buffer (bug #38207)
* core: install icon file (patch #7972)
* core: fix refresh of item "completion": clear it after any action that is
  changing content of command line and after switch of buffer (bug #38214)
* core: fix detection of iconv with cmake on OS X (bug #38321)
* core: fix structures before buffer data when a buffer is closed
* core: fix refresh of line after changes with hdata_update() (update flag
  "displayed" according to filters)
* core: fix detection of Python on Ubuntu Raring
* core: fix hidden lines for messages without date when option
  weechat.history.max_buffer_lines_minutes is set (bug #38197)
* core: use default hash/comparison callback for keys of type
  integer/pointer/time in hashtable
* api: do not display a warning by default when loading a script with a license
  different from GPL
* api: fix connection to servers with hook_connect() on OS X (bug #38496)
* api: fix bug in function string_match() when mask begins and ends with "*"
* api: allow hashtable with keys that are not strings in function
  hashtable_add_to_infolist()
* api: fix function string_mask_to_regex(): escape all special chars used in
  regex (bug #38398)
* guile: fix crash in function hdata_move()
* guile: fix arguments given to callbacks (separate arguments instead of one
  list with arguments inside), Guile >= 2.0 is now required (bug #38350)
* guile: fix crash on calls to callbacks during load of script (bug #38343)
* guile: fix compilation with Guile 2.0
* irc: fix name of server buffer after /server rename (set name "server.name"
  instead of "name")
* irc: fix uncontrolled format string when sending unknown irc commands
  (if option irc.network.send_unknown_commands is on)
* irc: fix uncontrolled format string when sending ison command (for nicks
  monitored by /notify)
* irc: fix refresh of nick in input bar when joining a new channel with op
  status (bug #38969)
* irc: fix display of CTCP messages that contain bold attribute (bug #38895)
* irc: fix duplicate nick completion when someone rejoins the channel with same
  nick but a different case (bug #38841)
* irc: fix crash on command "/allchan /close"
* irc: fix default completion (like nicks) in commands /msg, /notice, /query
  and /topic
* irc: fix prefix color for nick when the prefix is not in
  irc.color.nick_prefixes: use default color (key "*")
* irc: fix display of malformed CTCP (without closing char) (bug #38347)
* irc: fix memory leak in purge of hashtables with joins (it was done only for
  the first server in the list)
* irc: add color in output of /names when result is on server buffer (channel
  not joined) (bug #38070)
* lua: remove use of functions for API constants
* lua: fix crash on stack overflow: call lua_pop() for values returned by lua
  functions (bug #38510)
* perl: simplify code to load scripts
* python: fix crash when loading scripts with Python 3.x (patch #8044)
* relay: fix uncontrolled format string in redirection of irc commands
* relay: rename compression "gzip" to "zlib" (compression is zlib, not gzip)
* relay: fix commands sync/desync in weechat protocol (bug #38215)
* ruby: fix crash in function hdata_move()
* ruby: fix crash with Ruby 2.0: use one array for the last 6 arguments of
  function config_new_option() (bug #31050)
* script: fix compilation on GNU/Hurd (patch #7977)
* script: create "script" directory on each action, just in case it has been
  removed (bug #38472)
* scripts: create directories (language and language/autoload) on each action
  (install/remove/autoload), just in case they have been removed (bug #38473)
* scripts: do not allow empty script name in function register()
* xfer: fix freeze of DCC file received: use non-blocking socket after
  connection to sender and ensure the ACK is properly sent (bug #38340)

[[0.4.0]]
== Version 0.4.0 (2013-01-20)

[[0.4.0_features]]
=== New features

* core: add buffer pointer in arguments for signals "input_search",
  "input_text_changed" and "input_text_cursor_moved"
* core: add option "diff" in command /set (list options with changed value)
* core: add git version in build, display it in "weechat-curses --help" and
  /version
* core: add color support in options
  weechat.look.prefix_{action|error|join|network|quit} (task #9555)
* core: display default values for changed config options in output of /set
* core: add command /eval, use expression in conditions for bars
* core: add option "-quit" in command /upgrade (save session and quit without
  restarting WeeChat, for delayed restoration)
* api: allow return code WEECHAT_RC_OK_EAT in callbacks of hook_signal() and
  hook_hsignal() (stop sending the signal immediately)
* api: allow creation of structure with hdata_update() (allowed for hdata
  "history")
* api: use hashtable "options" for command arguments in function
  hook_process_hashtable() (optional, default is a split of string with
  command)
* api: add new function string_eval_expression()
* api: connect with IPv6 by default in hook_connect() (with fallback to IPv4),
  shuffle list of hosts for a same address, add argument "retry" for
  hook_connect(), move "sock" from hook_connect() arguments to callback of
  hook_connect() (task #11205)
* aspell: add signal "aspell_suggest" (sent when new suggestions are displayed)
* aspell: add bar items "aspell_dict" (dictionary used on current buffer) and
  "aspell_suggest" (suggestions for misspelled word at cursor), add option
  aspell.check.suggestions (task #12061)
* irc: add tags "irc_nick1_xxx" and "irc_nick2_yyy" in message displayed for
  command "NICK"
* irc: return git version in CTCP VERSION and FINGER by default, add "$git"
  and "$versiongit" in format of CTCP replies
* irc: read local variable "autorejoin" in buffer to override server option
  "autorejoin" (task #12256)
* irc: add option "-auto" in command /connect (task #9340)
* irc: add support of "server-time" capability (task #12255)
* irc: add support of tags in messages
* irc: add command /quiet, fix display of messages 728/729 (quiet list, end of
  quiet list) (task #12278)
* 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)

[[0.4.0_bugs]]
=== Bugs fixed

* core: fix infinite loop when a regex gives an empty match (bug #38112)
* core: fix detection of Guile in configure
* core: fix click in item "buffer_nicklist" when nicklist is a root bar
  (bug #38080)
* core: fix line returned when clicking on a bar (according to position and
  filling) (bug #38069)
* core: fix refresh of bars when applying layout (bug #37944, bug #37952)
* core: fix scroll to bottom of window (default key: key[alt-End]) when line
  displayed is bigger than chat area
* core: fix scroll in buffer after enabling/disabling some filters (if scroll
  is on a hidden line) (bug #37885)
* core: fix memory leak in case of error when building content of bar item for
  display
* core: fix detection of command in input: a single command char is considered
  as a command (API function string_input_for_buffer())
* core: search for a fallback template when a no template is matching command
  arguments
* core: fix refresh of windows after split (fix bug with horizontal separator
  between windows) (bug #37874)
* core: fix stuck mouse (bug #36533)
* core: fix default mouse buttons actions for script buffer (focus the window
  before executing action)
* core: fix scroll of one page down when weechat.look.scroll_page_percent is
  less than 100 (bug #37875)
* core: disable paste detection and confirmation if bar item "input_paste" is
  not used in a visible bar (task #12327)
* core: use high priority (50000) for commands /command and /input so that an
  alias will not take precedence over these commands (bug #36353)
* core: execute command with higher priority when many commands with same name
  are found with different priorities
* core: fix display of combining chars (bug #37775)
* core: stop cmake if gcrypt lib is not found (bug #37671)
* core: add incomplete mouse events "event-down" and "event-drag" (task #11840)
* core: fix display of zoomed/merged buffer (with number >= 2) after switching
  to it (bug #37593)
* core: fix display problem when option weechat.look.prefix_same_nick is set
  (problem with nick displayed in first line of screen) (bug #37556)
* core: fix wrapping of words with wide chars (the break was made before the
  correct position)
* api: do not call shell to execute command in hook_process() (fix security
  problem when a plugin/script gives untrusted command) (bug #37764)
* alias: give higher priority to aliases (2000) so that they take precedence
  over an existing command
* aspell: ignore self and remote nicks in private buffers
* aspell: fix creation of spellers when number of dictionaries is different
  between two buffers
* guile: fix bad conversion of shared strings (replace calls to
  scm_i_string_chars() by scm_to_locale_string()) (bug #38067)
* irc: fix display of actions (/me) when they are received from a relay client
  (in channel and private buffers) (bug #38027)
* irc: fix memory leak when updating modes of channel
* irc: fix crash on /upgrade (free channels before server data when a server
  is destroyed) (bug #37736)
* irc: fix crash when decoding IRC colors in strings (bug #37704)
* irc: fix refresh of bar item "away" after command /away or /disconnect
* irc: send whois on self nick when /whois is done without argument on a
  channel (task #12273)
* irc: remove local variable "away" in server/channels buffers after server
  disconnection (bug #37582)
* irc: fix crash when message 352 has too few arguments (bug #37513)
* irc: remove unneeded server disconnect when server buffer is closed and
  server is already disconnected
* perl: fix calls to callbacks during load of script when multiplicity is
  disabled (bug #38044)
* relay: fix duplicated messages sent to irc clients (when messages are
  redirected) (bug #37870)
* relay: fix memory leak when adding hdata to a message (weechat protocol)
* relay: fix crash after /upgrade when a client is connected
* relay: add missing "ssl." in output of /relay listrelay
* script: fix scroll with mouse when window with script buffer is not the
  current window (do not force a switch to script buffer in current window)
* script: fix compilation on OS X
* xfer: fix memory leak when refreshing xfer buffer
* xfer: add missing tags in DCC chat messages: nick_xxx, prefix_nick_ccc, logN
* xfer: limit bytes received to file size (for DCC file received), fix crash
  when displaying a xfer file with pos greater than size

[[0.3.9.2]]
== Version 0.3.9.2 (2012-11-18)

[[0.3.9.2_bugs]]
=== Bugs fixed

* core: do not call shell to execute command in hook_process() (fix security
  problem when a plugin/script gives untrusted command) (bug #37764)

[[0.3.9.1]]
== Version 0.3.9.1 (2012-11-09)

[[0.3.9.1_bugs]]
=== Bugs fixed

* irc: fix crash when decoding IRC colors in strings (bug #37704)

[[0.3.9]]
== Version 0.3.9 (2012-09-29)

[[0.3.9_features]]
=== New features

* core: add signals for plugins loaded/unloaded
* core: add default key key[alt-x] (zoom on merged buffer) (task #11029)
* core: add mouse bindings key[ctrl-] wheel up/down to scroll horizontally
  buffers with free content
* core: add option weechat.startup.sys_rlimit to set system resource limits for
  WeeChat process
* core: add option "swap" in command /buffer (task #11373)
* core: add hdata "hotlist"
* core: add support of arrays in hdata variables
* core: add command line option "-r" (or "--run-command") to run command(s)
  after startup of WeeChat
* core: add function hook_set() in plugin API, add "subplugin" in hooks (set by
  script plugins), display subplugin in /help on commands (task #12049)
* core: add option weechat.look.jump_smart_back_to_buffer (jump back to initial
  buffer after reaching end of hotlist, on by default, which is old behavior)
* core: add default key key[alt-s] (toggle aspell)
* core: add cmake option "MANDIR" (bug #36776)
* core: add callback "nickcmp" in buffers
* core: add horizontal separator between windows, new options
  weechat.look.window_separator_{horizontal|vertical}
* core: add options weechat.look.color_nick_offline and
  weechat.color.chat_nick_offline{_highlight|_highlight_bg} to use different
  color for offline nicks in prefix (task #11109)
* doc: add Japanese user's guide (patch #7827), scripting guide and tester's
  guide
* api: allow update for some variables of hdata, add new functions
  hdata_update() and hdata_set()
* api: add info "locale" for info_get() (locale used to translate messages)
* api: add new function util_version_number()
* aspell: add option aspell.check.enabled, add options enable/disable/toggle
  for command /aspell (rename options enable/disable/dictlist to
  setdict/deldict/listdict), display aspell status with /aspell (task #11988)
* irc: generate alternate nicks dynamically when all nicks are already in use
  (task #12209)
* 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
* irc: add bar item "buffer_modes", remove option irc.look.item_channel_modes
  (task #12022)
* irc: add option irc.look.ctcp_time_format to customize reply to CTCP TIME
  (task #12150)
* logger: add tags in backlog lines displayed when opening buffer
* logger: add messages "Day changed to" in backlog (task #12187)
* lua: add support of Lua 5.2
* 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
* ruby: add detection of Ruby 1.9.3
* script: new plugin "script" (scripts 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

[[0.3.9_bugs]]
=== Bugs fixed

* core: move the set of cmake policy CMP0003 in directory src (so it applies to
  all plugins) (bug #37311)
* 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)
* core: fix IP address returned by hook_connect() (return IP really used, not
  first IP for hostname)
* core: display spaces at the end of messages in chat area (bug #37024)
* core: fix infinite loop in display when chat area has width of 1 with
  a bar displayed on the right (nicklist by default) (bug #37089)
* core: fix display of "bar more down" char when text is truncated by size_max
  in bars with vertical filling (bug #37054)
* core: fix color of long lines (displayed on more than one line on screen)
  under FreeBSD (bug #36999)
* core: return error string to callback of hook_connect() if getaddrinfo fails
  in child process
* core: fix names of cache variables in configure.in (bug #36971)
* core: scroll to bottom of window after reaching first or last highlight with
  keys key[alt-p] / key[alt-n]
* core: fix refresh of bar items when switching window
* core: fix refresh of bar items "buffer_filter" and "scroll" in root bars
  (bug #36816)
* core: allow again names beginning with "#" for bars, proxies and filters
* core: escape special chars (`#[\`) in configuration files for name of options
  (bug #36584)
* aspell: add missing dictionaries (ast/grc/hus/kn/ky)
* charset: do not allow "UTF-8" in charset decoding options (useless because
  UTF-8 is the internal WeeChat charset)
* fifo: ignore read failing with error EAGAIN (bug #37019)
* guile: fix crash when unloading a script without pointer to interpreter
* guile: fix path of Guile include dirs in cmake build (patch #7790)
* irc: fix rejoin of channels with a key, ignore value "*" sent by server for
  key (bug #24131)
* irc: fix SASL mechanism "external" (bug #37274)
* irc: fix parsing of message 346 when no nick/time are given (bug #37266)
* irc: switch to next address after a timeout when connecting to server
  (bug #37216)
* irc: fix bug when changing server option "addresses" with less addresses
  (bug #37215)
* irc: add network prefix in irc (dis)connection messages
* irc: fix split of received IRC message: keep spaces at the end of message
* irc: fix bug with prefix chars which are in chanmodes with a type different
  from "B" (bug #36996)
* irc: fix format of message "USER" (according to RFC 2812) (bug #36825)
* irc: fix parsing of user modes (ignore everything after first space)
  (bug #36756, bug #31572)
* irc: fix freeze when reading on socket with SSL enabled (use non-blocking
  sockets) (bug #35097)
* irc: allow again names beginning with "#" for servers
* lua: fix crash when unloading a script without pointer to interpreter
* python: fix detection of Python (first try "python2.x" and then "python")
  (bug #36835)
* python: fix crash when unloading a script without pointer to interpreter
* relay: fix freeze when writing on relay socket (use non-blocking sockets in
  relay for irc and weechat protocols) (bug #36655)
* scripts: fix deletion of configuration files when script is unloaded
  (bug #36977)
* scripts: fix function unhook_all(): delete only callbacks of hooks and add
  missing call to unhook()
* scripts: ignore call to register() (with a warning) if script is already
  registered
* xfer: fix DCC transfer error (bug #37432)

[[0.3.8]]
== Version 0.3.8 (2012-06-03)

[[0.3.8_features]]
=== New features

* 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.look.prefix_same_nick (hide or change prefix on
  messages whose nick is the same as previous message) (task #11965)
* core: convert tabs to spaces in text pasted (bug #25028)
* core: add a connection timeout for child process in hook_connect()
  (bug #35966)
* core: follow symbolic links when writing configuration files (.conf)
  (task #11779)
* core: add support of terminal "bracketed paste mode", new options
  weechat.look.paste_bracketed and weechat.look.paste_bracketed_timer_delay
  (task #11316)
* doc: add Japanese FAQ (patch #7781)
* api: add list "gui_buffer_last_displayed" in hdata "buffer"
* irc: add option "fakerecv" in command /server to simulate a received IRC
  message (not documented, for debug only)
* irc: add option "-pending" in command /disconnect (cancel auto-reconnection
  on servers currently reconnecting) (task #11985)
* irc: allow more than one nick in command /invite
* irc: add signals and tags in messages for irc notify (task #11887)
* irc: add support of "external" SASL mechanism (task #11864)
* logger: add colors for backlog lines and end of backlog, new options:
  logger.color.backlog_line and logger.color.backlog_end (task #11966)
* relay: add signals "upgrade" and "upgrade_ended" in WeeChat protocol
* relay: add "date_printed" and "highlight" in signal "_buffer_line_added"
  (WeeChat protocol)
* rmodifier: add default rmodifier "quote_pass" to hide password in command
  "/quote pass" (bug #36250)
* rmodifier: add default rmodifier "server" to hide passwords in commands
  /server and /connect (task #11993)
* rmodifier: add option "release" in default rmodifier "nickserv" (used to hide
  passwords in command "/msg nickserv") (bug #35705)

[[0.3.8_bugs]]
=== Bugs fixed

* core: fix crash in focus hook for nicklist (bug #36271)
* core: fix truncated configuration files (zero-length) after system crash
  (bug #36383)
* core: fix display bugs and crashes with small windows (bug #36107)
* core: fix display bug with prefix when length is greater than max and prefix
  is ending with a wide char (bug #36032)
* core: fix lost scroll when switching to a buffer with a pending search
* core: fix display of wide chars on last column of chat area (patch #7733)
* api: display warning in scripts when invalid pointers (malformed strings) are
  given to plugin API functions (warning displayed if debug for plugin is >= 1)
* scripts: fix type of argument "rc" in callback of hook_process() (from string
  to integer)
* guile: fix crash on ARM when loading guile plugin (bug #36479)
* guile: add missing function hook_process_hashtable() in API
* irc: update channel modes by using chanmodes from message 005 (do not send
  extra command "MODE" to server), fix parsing of modes (bug #36215)
* irc: hide everything after "identify" or "register" in messages to nickserv
  when option irc.look.hide_nickserv_pwd is on (bug #36362)
* irc: set user modes only if target nick is self nick in message 221
  (patch #7754)
* irc: force the clear of nicklist when joining a channel (nicklist was not
  sync after znc reconnection) (bug #36008)
* irc: do not send command "MODE #channel" on manual /names (do it only when
  names are received on join of channel) (bug #35930)
* irc: do not allow the creation of two servers with same name but different
  case (fix error when writing file irc.conf) (bug #35840)
* irc: update away flag for nicks on manual /who
* irc: display privmsg messages to "@#channel" and "+#channel" in channel
  buffer (bug #35331)
* irc: fix redirection of message when message is queued for sending on server
* irc: check notify immediately when adding a nick to notify list, improve
  first notify message for a nick (bug #35731)
* irc: fix display of color in hostname (join/part/quit messages)
* irc: compute hash to find nick color for nick in server message when nick
  is not in nicklist
* irc: close server buffer when server is deleted
* irc: add search for lower case nicks in option irc.look.nick_color_force
* logger: fix charset of lines displayed in backlog when terminal charset is
  different from UTF-8 (bug #36379)
* perl: fix compilation on OS X (bug #30701)
* perl: fix crash on quit on OS X
* relay: keep spaces in beginning of "input" received from client (WeeChat
  protocol)
* relay: fix crash on /upgrade when client is connected using WeeChat protocol
* relay: redirect some irc messages from clients to hide output (messages:
  mode, ison, list, names, topic, who, whois, whowas, time, userhost)
  (bug #33516)
* tcl: add missing function hdata_char() in API
* tcl: fix pointer sent to function hook_signal_send() when type of data is
  a pointer

[[0.3.7]]
== Version 0.3.7 (2012-02-26)

[[0.3.7_features]]
=== New features

* core: add Japanese translations
* core: add support of flags in regular expressions and highlight options
* core: use extended regex in filters (task #9497, patch #7616)
* core: add type "hashtable" for hdata
* core: add signals "buffer_line_added" and "window_switch"
* core: add default keys key[ctrl-]key[Left]/key[Right] (`meta2-1;5D` /
  `meta2-1;5C`) for gnome-terminal
* core: add option "hooks" in command /debug
* core: add option weechat.look.scroll_bottom_after_switch (if enabled,
  restore old behavior before fix of bug #25555 in version 0.3.5)
* core: add new option weechat.completion.base_word_until_cursor: allow
  completion in middle of words (enabled by default) (task #9771)
* core: add option "jump_last_buffer_displayed" in command /input
  (key: key[alt-/]) (task #11553)
* core: add developer's guide (task #5416)
* 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 WEECHAT_HOME option in cmake and configure to setup default
  WeeChat home (default is "~/.weechat") (task #11266)
* core: add optional arguments for command /plugin load/reload/autoload
* api: add modifier "input_text_for_buffer" (bug #35317)
* api: add support of URL in hook_process() / hook_process_hashtable()
  (task #10247)
* api: add new functions strcasecmp_range(), strncasecmp_range(),
  string_regex_flags(), string_regcomp(), hashtable_map_string(),
  hook_process_hashtable(), hdata_check_pointer(), hdata_char(),
  hdata_hashtable() and nicklist_get_next_item()
* alias: add default alias /umode => /mode $nick
* irc: add option "capabilities" in servers to enable client capabilities on
  connection
* irc: add signal "irc_server_opened"
* irc: add signal "xxx,irc_out1_yyy" and modifier "irc_out1_xxx" (outgoing
  message before automatic split to fit in 512 bytes)
* irc: add alias "ctcp" for target buffer of CTCP messages
* irc: add options irc.look.highlight_{server|channel|pv} to customize or
  disable default nick highlight (task #11128)
* irc: use extended regex in commands /ignore and /list
* irc: use redirection to get channel modes after update of modes on channel,
  display output of /mode #channel, allow /mode without argument (display modes
  of current channel or user modes on server buffer)
* irc: add optional server in info "irc_is_channel" (before channel name)
  (bug #35124), add optional server in info_hashtable "irc_message_parse"
* irc: add case insensitive string comparison based on casemapping of server
  (rfc1459, strict-rfc1459, ascii) (bug #34239)
* irc: add option irc.color.mirc_remap to remap mirc colors in messages to
  WeeChat colors
* irc: allow URL "irc://" in command /connect
* guile: new script plugin for scheme (task #7289)
* python: add support of Python 3.x (task #11704)
* relay: add WeeChat protocol for remote GUI
* xfer: display origin of xfer in core and xfer buffers (task #10956)

[[0.3.7_bugs]]
=== Bugs fixed

* core: fix expand of path `~` to home of user in function string_expand_home()
  (`~/xxx` was OK, but not `~`)
* core: fix memory leak when closing buffer
* core: fix memory leak in function util_search_full_lib_name()
* core: automatically add newline char after last pasted line (when pasting
  many lines with confirmation) (task #10703)
* core: fix bug with layout: assign layout number in buffers when doing
  /layout save
* core: do not auto add space after nick completer if option
  weechat.completion.nick_add_space is off
* core: fix signal "buffer_switch": send it only once when switching buffer
  (bug #31158)
* core: move option "scroll_unread" from command /input to /window
* core: add library "pthread" in cmake file for link on OpenBSD
* core: save current mouse state in option weechat.look.mouse (set option when
  mouse state is changed with command /mouse)
* core: apply filters after full reload of configuration files (with /reload)
  (bug #31182)
* core: allow list for option weechat.plugin.extension (makes weechat.conf
  portable across Un*x and Windows) (task #11479)
* core: fix compilation under OpenBSD 5.0 (lib utf8 not needed any more)
  (bug #34727)
* core: display error in command /buffer if arguments are wrong (bug #34180)
* core: fix help on plugin option when config_set_desc_plugin() is called to
  set help on newly created option
* core: fix compilation error with "pid_t" on Mac OS X (bug #34639)
* core: enable background process under Cygwin to connect to servers, fix
  reconnection problem (bug #34626)
* aspell: fix URL detection (do not check spelling of URLs) (bug #34040)
* irc: fix memory leak in SASL/blowfish authentication
* irc: fix memory leak when a server is deleted
* irc: fix self-highlight when using /me with an IRC bouncer like znc
  (bug #35123)
* irc: use low priority for MODE sent automatically by WeeChat (when joining
  channel)
* irc: do not use option irc.look.nick_color_stop_chars for forced nick colors
  (bug #33480)
* irc: reset read marker of current buffer on manual /join
* irc: fix crash when signon time in message 317 (whois, idle) is invalid
  (too large) (bug #34905)
* irc: do not delete servers added in irc.conf on /reload (bug #34872)
* irc: remove autorejoin on channels when disconnected from server (bug #32207)
* irc: display messages kick/kill/mode/topic even if nick is ignored
  (bug #34853)
* irc: display channel voice notices received in channel buffer (bug #34762),
  display channel/op notices sent in channel buffer
* irc: auto-connect to servers created with "irc://" on command line but not
  other servers if "-a" ("--no-connect") is given
* perl: increment count of hash returned by API (fix crash when script tries to
  read hash without making a copy)
* relay: do not create relay if there is a problem with socket creation
  (bug #35345)
* ruby: fix crash when reloading ruby plugin (bug #34474)

[[0.3.6]]
== Version 0.3.6 (2011-10-22)

[[0.3.6_features]]
=== New features

* core: add color attribute "|" (keep attributes) and value "resetcolor" for
  function color() in plugin API (used by irc plugin to keep
  bold/reverse/underlined in message when changing color) (bug #34550)
* core: add new option weechat.look.color_basic_force_bold, off by default:
  bold is used only if terminal has less than 16 colors (patch #7621)
* core: add default key key[F5] (`meta2-[E`) for Linux console
* core: add "inactive" colors for inactive windows and lines in merged buffers,
  new options: weechat.look.color_inactive_window,
  weechat.look.color_inactive_buffer, weechat.look.color_inactive_message,
  weechat.look.color_inactive_prefix,
  weechat.look.color_inactive_prefix_buffer,
  weechat.look.color_inactive_time, weechat.color.chat_inactive_line,
  weechat.color.chat_inactive_window,
  weechat.color.chat_prefix_buffer_inactive_line
* core: do automatic zoom on current window when terminal becomes too small
  for windows
* core: add new options weechat.look.bar_more_left/right/up/down
* core: add new option weechat.look.item_buffer_filter
* core: allow name of buffer for command /buffer clear (task #11269)
* core: add new command /repeat (execute a command several times)
* core: save and restore layout for buffers and windows on /upgrade
* core: add option "-all" in command /buffer unmerge
* core: add number in windows (add optional argument "-window" so some actions
  for command /window)
* core: allow buffer name in /buffer close
* core: add support of mouse: new command /mouse, new key context "mouse",
  new options weechat.look.mouse and weechat.look.mouse_timer_delay
  (task #5435)
* core: add command /cursor (free movement of cursor on screen), with key
  context "cursor"
* core: automatic scroll direction in /bar scroll (x/y is now optional)
* core: add optional delay for key grab (commands /input grab_key and
  /input grab_key_command, default is 500 milliseconds)
* core: allow plugin name in command /buffer name
* core: add context "search" for keys (to define keys used during search in
  buffer with key[ctrl-r])
* core: add new option weechat.look.separator_vertical, rename option
  weechat.look.hline_char to weechat.look.separator_horizontal
* core: add local variable "highlight_regex" in buffers
* core: add "hdata" (direct access to WeeChat/plugin data)
* core: add option weechat.look.eat_newline_glitch (do not add new line at end
  of each line displayed)
* core: add options "infolists", "hdata" and "tags" for command /debug
* core: add horizontal scrolling for buffers with free content (command
  /window scroll_horiz) (task #11112)
* api: add info "cursor_mode"
* api: add new functions key_bind(), key_unbind(), hook_focus(), hdata_new(),
  hdata_new_var(), hdata_new_list(), hdata_get(), hdata_get_var_offset(),
  hdata_get_var_type(), hdata_get_var_type_string(), hdata_get_var_hdata(),
  hdata_get_var(), hdata_get_var_at_offset(), hdata_get_list(), hdata_move(),
  hdata_integer(), hdata_string(), hdata_pointer(), hdata_time(),
  hdata_get_string()
* irc: allow reason for command /disconnect
* irc: allow server name for commands /die and /restart
* irc: add new info_hashtable "irc_message_split"
* irc: improve split of privmsg message (keep ctcp), add split of ison, join,
  notice, wallops, 005, 353 (bug #29879, bug #33448, bug #33592)
* irc: add prefix "#" for all channels on join (if no prefix given)
* logger: add option logger.file.flush_delay (task #11118)

[[0.3.6_bugs]]
=== Bugs fixed

* core: fix freeze when calling function util_file_get_content() with a
  directory instead of a filename
* core: fix compilation error (INSTALLPREFIX undeclared) on OS X and when
  compiling with included gettext (bug #26690)
* core: display timeout for hook_process() command only if debug for core is
  enabled (task #11401)
* core: bufferize lines displayed before core buffer is created, to display
  them in buffer when it is created
* core: fix display of background color in chat area after line feed
* core: fix paste detection (problem with end of lines)
* core: fix display of paste multi-line prompt with a root input bar
  (bug #34305)
* core: change default value of option weechat.network.gnutls_ca_file to
  "/etc/ssl/certs/ca-certificates.crt"
* core: replace deprecated GnuTLS function
  gnutls_certificate_client_set_retrieve_function() by new function
  gnutls_certificate_set_retrieve_function() (GnuTLS >= 2.11.0)
* core: use dynamic buffer size for calls to vsnprintf()
* core: fix memory leak in unhook of hook_connect()
* core: fix memory leak in display of empty bar items
* core: fix input of wide UTF-8 chars under Cygwin (bug #34061)
* core: fix bugs with automatic layout (bug #26110), add support of merged
  buffers in layout (task #10893)
* core: fix crash when invalid UTF-8 chars are inserted in command line
  (bug #33471)
* core: stop horizontal bar scroll at the end of content (for bars with
  horizontal filling) (bug #27908)
* core: fix crash when building hashtable string with keys and values
* core: replace buffer name by window number in /bar scroll
* core: fix bugs with key "^" (bug #32072, bug #21381)
* core: fix bugs with bar windows: do not create bar windows for hidden bars
* core: fix completion bug when two words for completion are equal but with
  different case
* core: fix completion for command arguments when same command exists in many
  plugins (bug #33753)
* core: fix freeze when hook_fd() is called with a bad file/socket (bug #33619)
* core: fix bug with option weechat.look.hotlist_count_max (value+1 was used)
* api: use arguments for infolist "window" to return only one window by number
* api: fix bug with function config_set_desc_plugin() (use immediately
  description for option when function is called)
* scripts: fix crash with scripts not auto-loaded having a buffer opened after
  /upgrade (input/close callbacks for buffer not set properly)
* irc: fix display of items "away" and "lag" in root bars, refresh all irc bar
  items on signal "buffer_switch" (bug #34466)
* irc: fix crash on malformed irc notice received (without message after
  target)
* irc: add missing messages for whois: 223, 264, 343
* irc: use high priority queue for sending modes and wallchops messages
* irc: rename info_hashtable "irc_parse_message" to "irc_message_parse"
* irc: use color "default" for any invalid color in option
  weechat.color.chat_nick_colors
* irc: send WHO command to check away nicks only if channel was not parted
* irc: fix crash when malformed IRC message 352 (WHO) is received (bug #33790)
* irc: fix crash when command "/buffer close" is used in a server command to
  close server buffer during connection (bug #33763)
* irc: fix crash when /join command is executed on a non-irc buffer
  (bug #33742)
* irc: fix bug with comma in irc color code: do not strip comma if it is not
  followed by a digit (bug #33662)
* irc: switch to buffer on /join #channel if channel buffer already exists
* irc: set host for nick on each channel message and nick change (if not
  already set)
* irc: update host of nicks on manual /who
* irc: fix memory leak on plugin unload (free ignores)
* irc: fix memory leak in message parser (when called from other plugins like
  relay) (bug #33387)
* relay: fix bug with self nick when someone changes its nick on channel
  (bug #33739)
* relay: fix memory leak (free some parsed messages) (bug #33387)
* relay: fix memory leak on plugin load (free raw messages)
* perl: replace calls to SvPV() by SvPV_nolen() (patch #7436)

[[0.3.5]]
== Version 0.3.5 (2011-05-15)

[[0.3.5_features]]
=== New features

* core: add buffer to hotlist if away is set on buffer (even if buffer is
  displayed), new option weechat.look.hotlist_add_buffer_if_away (task #10948)
* core: add option "balance" in command /window (key: key[alt-w,alt-b])
* core: add option "swap" in command /window (key: key[alt-w,alt-s])
  (task #11001)
* core: add option weechat.look.hotlist_buffer_separator
* core: add messages counts in hotlist for each buffer, new options:
  weechat.look.hotlist_count_max, weechat.look.hotlist_count_min_msg and
  weechat.color.status_count_{msg|private|highlight|other}
* core: add tag "notify_none" (line with this tag will not update hotlist)
* core: add optional bar name in command /bar default
* core: add new option weechat.look.highlight_tags (force highlight on tags)
* core: allow list of buffers in command /filter (exclusion with prefix "!")
  (task #10880)
* core: remember scroll position for all buffers in windows (bug #25555)
* core: allow relative size for command /window resize
* core: add some default keys for gnome-terminal (key[Home]/key[End],
  key[ctrl-]key[Up]/key[Down], key[alt-]key[PgUp]/key[PgDn])
* core: add option "memory" in command /debug
* core: add option weechat.look.read_marker_string
* core: improve display of commands lists in /help (add arguments -list
  and -listfull) (task #10299)
* core: improve arguments displayed in /help of commands
* core: add some chars after cursor when scrolling input line: new option
  weechat.look.input_cursor_scroll (bug #21391)
* core: add color "gray"
* core: add attributes for colors ("*": bold, "!": reverse, "_": underline)
* 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 ":")
* 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)
* irc: add new options irc.color.topic_old and irc.color.topic_new
* irc: add option "ssl_priorities" in servers (task #10106, debian #624055)
* irc: add modifier "irc_in2_xxx" (called after charset decoding)
* irc: replace options irc.color.nick_prefix_{op|halfop|voice|user} by a single
  option irc.color.nick_prefixes (task #10888)
* 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

[[0.3.5_bugs]]
=== Bugs fixed

* core: fix scroll in windows with /window scroll (skip lines "Day changed to")
* core: recalculate buffer_max_length when buffer short name is changed
  (patch #7441)
* core: do not update hotlist during upgrade
* core: apply new value of option weechat.look.buffer_notify_default to all
  opened buffers
* core: prohibit names beginning with "#" for bars, proxies, filters and IRC
  servers (bug #33020)
* core: create default bars only if no bar is defined in configuration file
* 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 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)
* aspell: fix spellers used after switch of window (bug #32811)
* irc: fix parsing of message 332 when no topic neither colon are found
  (bug with bip proxy)
* irc: fix nick color in private when option irc.look.nick_color_force is
  changed
* irc: fix tags for messages sent with /msg command (bug #33169)
* irc: fix memory leak when copying or renaming server
* irc: do not rejoin channels where /part has been issued before reconnection
  to server (bug #33029)
* irc: use nick color for users outside the channel
* irc: update short name of server buffer when server is renamed
* irc: fix local variable "away" on server buffer (set/delete it each time away
  is set or removed on server)
* irc: ignore join if nick is not self nick and if channel buffer does not
  exist (bug #32667)
* irc: fix crash when setting wrong value in option
  irc.server.xxx.sasl_mechanism (bug #32670)
* irc: fix crash when completing /part command on a non-irc buffer (bug #32402)
* irc: add many missing commands for target buffer (options irc.msgbuffer.xxx)
  (bug #32216)
* lua: fix crash when many scripts are executing callbacks at same time
* perl: fix memory leak when calling Perl functions (bug #32895)
* relay: fix crash on /upgrade when nick in irc client is not yet set
* relay: allow colon in server password received from client
* relay: do not send join for private buffers to client
* rmodifier: fix reload of file rmodifier.conf
* rmodifier: fix crash when adding rmodifier with invalid regex
* tcl: fix Tcl detection on some 64-bits systems (bug #32915)
* xfer: do not close chat buffers when removing xfer from list (bug #32271)

[[0.3.4]]
== Version 0.3.4 (2011-01-16)

[[0.3.4_features]]
=== New features

* core: add 256 colors support, new command /color, new section "palette" in
  weechat.conf (task #6834)
* core: add info "weechat_upgrading", signal "upgrade_ended", display duration
  of upgrade
* 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
* core: add new option weechat.look.highlight_regex and function
  string_has_highlight_regex() in plugin API (task #10321)
* core: add new option weechat.look.hotlist_unique_numbers (task #10691)
* 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)
* api: add priority for hooks (task #10550)
* api: add new functions: list_search_pos(), list_casesearch_pos(),
  hashtable_get_string(), hashtable_set_pointer(), hook_info_hashtable(),
  info_get_hashtable(), hook_hsignal(), hook_hsignal_send(),
  hook_completion_get_string(), nicklist_group_get_integer(),
  nicklist_group_get_string(), nicklist_group_get_pointer(),
  nicklist_group_set(), nicklist_nick_get_integer(),
  nicklist_nick_get_string(), nicklist_nick_get_pointer(), nicklist_nick_set()
* irc: add option "-server" in command /join (task #10837)
* irc: add option "-switch" in commands /connect and /reconnect
* irc: add command /notify, new options irc.look.notify_tags_ison,
  irc.look.notify_tags_whois, irc.network.notify_check_ison,
  irc.network.notify_check_whois, new option "notify" in servers, new infolist
  "irc_notify" (task #5441)
* irc: add new option irc.look.nick_color_force (task #7374)
* irc: add command redirection with hsignals irc_redirect_pattern and
  irc_redirect_command (task #6703)
* irc: add new options irc.color.nick_prefix and irc.color.nick_suffix
* irc: add new option irc.look.item_away_message
* irc: add tag "nick_xxx" in user messages
* irc: move options from network section to server section: connection_timeout,
  anti_flood_prio_high, anti_flood_prio_low, away_check, away_check_max_nicks,
  default_msg_part, default_msg_quit (task #10664, task #10668)
* 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)
* 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"
* 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)

[[0.3.4_bugs]]
=== Bugs fixed

* core: fix scroll problem on buffers with free content and non-allocated lines
  (bug #32039)
* core: add support of Python 2.7 in cmake and configure (debian #606989)
* core: call to function hook_config() when config option is created
* core: fix infinite loop on GnuTLS handshake when connecting with SSL to
  server on wrong port or server with SSL problems (bug #27487)
* core: fix data sent to callback of hook_process() (some data was sometimes
  missing), use a 64KB buffer for child output and send data to callback only
  when buffer is full
* core: fix crash when displaying groups in buffer nicklist
* core: fix bug with message "day changed to", sometimes displayed several
  times wrongly
* core: fix default value of bar items options (bug #31422)
* core: fix bug with buffer name in "/bar scroll" command
* core: optimize incremental search in buffer: do not search any more
  when chars are added to a text not found (bug #31167)
* core: fix memory leaks when removing item in hashtable and when setting
  highlight words in buffer
* core: use similar behavior for keys bound to local or global history
  (bug #30759)
* alias: complete with alias value for second argument of command /alias
* irc: differentiate notices from messages in private buffer (bug #31980)
* irc: update nick modes with message 221 (bug #32038)
* irc: fix bug with charset decoding on private buffers (decoding was made for
  local nick instead of remote nick) (bug #31890)
* irc: allow command /reconnect on servers that are not currently connected
  (bug #30726)
* irc: fix topic completion in command /topic when channel topic starts with
  channel name
* irc: improve nick prefixes, all modes (even unknown) are used with PREFIX
  value from message 005
* irc: fix crash/bug when option "addresses" for a server is unset or changed
  when WeeChat is connected to this server (bug #31268)
* irc: switch to next server address when IRC error is received after TCP
  connection but before message 001 (bug #30884)
* irc: fix bug with hostmasks in command /ignore (bug #30716)
* relay: split of messages sent to clients of irc proxy
* scripts: add missing function infolist_reset_item_cursor() in API
  (bug #31057)
* lua: fix crash when unloading script
* ruby: fix compilation with Ruby 1.9.2 (patch #7316)
* xfer: fix dcc chat buffer name (use irc server in name) (bug #29925)
* xfer: fix dcc file transfer for large files (more than 4 GB) on 32-bit
  systems (bug #31531)
* xfer: fix bug at end of file sent, sometimes transfer is still active
  although file was successfully sent

[[0.3.3]]
== Version 0.3.3 (2010-08-07)

[[0.3.3_features]]
=== New features

* core: use "!" to reverse a regex in a filter (to keep lines matching regex
  and hide other lines) (task #10032)
* core: add keys for undo/redo changes on command line
  (default: key[ctrl-`_`] and key[alt-`_`]) (task #9483)
* core: add new option weechat.look.align_end_of_lines
* core: add new option weechat.look.confirm_quit
* core: add new option weechat.color.status_name_ssl (task #10339)
* core: add hashtables with new functions in plugin API
* api: add function string_expand_home(), fix bug with replacement of home in
  paths
* irc: add new option irc.look.nick_color_stop_chars
* 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: add new options irc.look.display_host_join/join_local/quit and
  irc.color.reason_quit
* irc: move options weechat.color.nicklist_prefix to irc plugin
* irc: add command /wallchops, fix bug with display of notice for ops
  (task #10021, bug #29932)
* irc: add isupport value in servers (content of IRC message 005), with new
  infos: irc_server_isupport and irc_server_isupport_value
* 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: add missing commands 346, 347 (channel invite list)
* logger: use tag "no_log" to prevent a line from being written in log file

[[0.3.3_bugs]]
=== Bugs fixed

* core: fix bug with scroll_unread: do not scroll to a filtered line
  (bug #29991)
* core: fix crash with hook_process() (when timer is called on a deleted hook
  process)
* core: fix display bug with special chars (ascii value below 32) (bug #30602)
* core: fix display bug with attributes like underlined in bars (bug #29889)
* api: fix bug with replacement char in function string_remove_color()
  (bug #30296)
* irc: fix bug in parser when no argument is received after command, no
  callback was called, and message was silently ignored (bug #30640)
* irc: fix import of certificates created by OpenSSL >= 1.0.0 (bug #30316)
* irc: fix display of local SSL certificate when it is sent to server
  (patch #7218)
* irc: use empty real name by default in config, instead of reading real name
  in /etc/passwd (bug #30111)
* irc: fix bug with command-line option "irc://" (bug #29990), new format for
  port and channels
* irc: fix display of messages 330 and 333 on some servers
* irc: fix bug with nick prefix "*" (chan founder) on some IRC servers
  (bug #29890)
* irc: fix bug with option irc.network.lag_check when value is 0 (zero)
* irc: try other nick when connecting to server and receiving message 437
  (nick unavailable)
* irc: set buffer local variable "away" when opening new channel (bug #29618)
* fifo: fix bug with fifo pipe when setting fifo option to "on"
* xfer: fix bug with double quotes in DCC filenames (bug #30471)

[[0.3.2]]
== Version 0.3.2 (2010-04-18)

[[0.3.2_features]]
=== New features

* core: add new options for command /key: listdefault, listdiff and reset
* core: add new command /mute
* core: add command line option "-s" (or "--no-script") to start WeeChat
  without loading any script
* core: improve plugins autoload (option weechat.plugin.autoload): allow to
  use "*" as wildcard and "!" to prevent a plugin from being autoloaded
  (task #6361)
* core: add option "switch_active_buffer_previous" in command /input
  (task #10141)
* core: add new option weechat.look.time_format to customize default format
  for date/time displayed (localized date by default), add function
  util_get_time_string() in plugin API (patch #6914)
* core: add new option weechat.look.command_chars, add functions
  string_is_command_char() and string_input_for_buffer() in plugin and script
  API
* core: add new option weechat.look.read_marker_always_show
* api: add "version_number" for function info_get() to get WeeChat version as
  number
* api: add "irc_is_nick" for function info_get() to check if a string is a
  valid IRC nick name (patch #7133)
* api: add functions string_encode_base64() and string_decode_base64(), fix
  bug with base64 encoding
* api: add functions string_match(), string_has_highlight() and
  string_mask_to_regex() in script plugin API
* api: add description of arguments for functions hook_info() and
  hook_infolist()
* api: add signals "day_changed", "nicklist_group_added/removed",
  "nicklist_nick_added/removed"
* alias: add custom completion for aliases (task #9479)
* scripts: allow script commands to reload only one script
* irc: add new option irc.look.part_closes_buffer to close buffer when /part
  is issued on channel (task #10295)
* irc: add option "-open" in command /connect
* irc: add option irc.network.connection_timeout (timeout between TCP
  connection to server and reception of message 001)
* irc: add options irc.look.smart_filter_join and irc.look.smart_filter_quit
* irc: add option irc.look.item_channel_modes_hide_key to hide channel key
  in channel modes (bug #23961)
* irc: add option irc.look.item_nick_prefix
* irc: add command /map
* irc: add missing commands 276, 343
* logger: allow date format in logger options path and mask (task #9430)
* xfer: add signal "xfer_ended" (patch #7081)

[[0.3.2_bugs]]
=== Bugs fixed

* core: remove unneeded space after time on each line if option
  weechat.look.buffer_time_format is set to empty value (bug #28751)
* core: use arguments for infolist "nicklist" to return only one nick or group
* core: fix bug with writing of configuration files when disk is full
  (bug #29331)
* core: fix infinite loop with /layout apply and bug when applying layout,
  sometimes many /layout apply were needed (bug #26110)
* gui: refresh screen when exiting WeeChat (to display messages printed after
  /quit)
* gui: fix bug with global history, reset pointer to last entry after each user
  input (bug #28754)
* gui: fix bug with bar background after text with background color
  (bug #28157)
* gui: fix bug with cursor when position is last char of terminal
* api: add missing infos in functions buffer_get_{integer|string}() and in
  buffer infolist
* api: fix function color() in Lua script API
* api: fix "inactivity" value when no key has been pressed since WeeChat
  started (bug #28930)
* api: return absolute path for info_get() of "weechat_dir" (bug #27936)
* scripts: fix bug with callbacks when loading a script already loaded
* perl: fix crash when multiplicity is disabled
* perl: fix crash when callbacks are called during script initialization
  (bug #29018)
* perl: fix crash on /quit or unload of plugin under FreeBSD and Cygwin
  (bug #29467)
* perl: fix bug with script filename when multiplicity is disabled (bug #29530)
* irc: add SASL authentication, with PLAIN and DH-BLOWFISH mechanisms
  (task #8829)
* irc: fix crash with SSL connection if option ssl_cert is set (bug #28752)
* irc: fix bug with SSL connection (fails sometimes when ssl_verify is on)
  (bug #28741)
* irc: fix bug with nicks on reconnection: try all nicks in list, even if nick
  used was not the first in list of nicks
* irc: fix command /list: send channel and server name given as argument, and
  use separate option "-re" to allow a regex
* irc: fix PART message received on Undernet server (bug #28825)
* irc: fix bug with /away -all: set or unset future away for disconnected
  servers (bug #29022)
* irc: fix bug with prefix "!" for mode "a" (channel admin) (bug #29109)
* irc: do not send signals "irc_in" and "irc_in2" when messages are ignored,
  add new signals "irc_raw_in" and "irc_raw_in2"
* irc: apply smart filter only on channels, not private buffers (bug #28841)
* irc: fix compilation with old GnuTLS versions (bug #28723)
* xfer: fix crash when purging old xfer chats (bug #28764)

[[0.3.1.1]]
== Version 0.3.1.1 (2010-01-31)

[[0.3.1.1_bugs]]
=== Bugs fixed

* irc: fix crash with SSL connection if option ssl_cert is set (bug #28752)
* irc: fix bug with SSL connection (fails sometimes when ssl_verify is on)
  (bug #28741)
* irc: fix compilation with old GnuTLS versions (bug #28723)
* xfer: fix crash when purging old xfer chats (bug #28764)

[[0.3.1]]
== Version 0.3.1 (2010-01-23)

[[0.3.1_features]]
=== New features

* core: add option "grab_key_command" in command /input (bound by default to
  key[alt-k])
* alias: new expansions for alias arguments ($n, $-m, $n-, $n-m, $*, $~)
  (patch #6917)
* alias: allow use of wildcards for /alias list (patch #6925)
* alias: allow /unalias to remove multiple aliases (patch #6926)
* irc: add new commands /allchan and /allserv with excluding option, commands
  /ame and /amsg are now aliases, new aliases /aaway and /anick
* irc: add options to customize target buffer for messages (task #7381)
* irc: add new output queue for messages with low priority (like automatic CTCP
  replies), high priority is given to user messages or commands
* irc: use self-signed certificate to auto identify on IRC server (CertFP)
  (task #7492, debian #453348)
* irc: check SSL certificates (task #7492)
* irc: add option "autorejoin_delay" for servers (task #8771)
* irc: add option to use same nick color in channel and private (task #9870)
* irc: add missing command 275 (patch #6952)
* irc: add commands /sajoin, /samode, /sanick, /sapart, /saquit (task #9770)
* irc: add options for CTCP, to block/customize CTCP reply (task #9693)
* irc: add missing CTCP: clientinfo, finger, source, time, userinfo
  (task #7270)
* irc: add all server options for commands /server and /connect
* irc: add arguments for command /rehash
* ruby: support of Ruby >= 1.9.1 (patch #6989)
* xfer: add color for nicks in chat
* xfer: add missing command /me (bug #28658)
* gui: add color "darkgray", add support for background with light color

[[0.3.1_bugs]]
=== Bugs fixed

* core: fix bug with script installation on BSD/OSX (patch #6980)
* core: fix compilation under Cygwin (patch #6916)
* core: fix cmake directories: let user customize lib, share, locale and
  include directories (patch #6922)
* core: fix plural form in translation files (bug #27430)
* core: fix terminal title bug: do not reset it when option
  weechat.look.set_title is off (bug #27399)
* core: fix buffer used by some input functions called via plugin API with
  buffer pointer (bug #28152)
* alias: fix bug with buffer for execution of alias, when called from plugin
  API with function command() (bug #27697)
* alias: fix bug with arguments (bug #27440)
* irc: improve error management on socket error (recv/send)
* irc: improve mask used by command /kickban
* irc: fix nick color for nicks with wide chars (bug #28547)
* irc: fix autorejoin on channels with key
* irc: fix command /connect (options -ssl, -ipv6 and -port) (bug #27486)
* xfer: add missing charset decoding/encoding for IRC DCC chat (bug #27482)
* fifo: remove old pipes before creating new pipe
* gui: fix color "black" (bug #23882, debian #512957)
* gui: fix message "Day changed to", sometimes displayed at wrong time
  (bug #26959)
* gui: fix bug with URL selection in some terminals (caused by horizontal
  lines) (bug #27700)
* gui: use default auto completion for arguments of unknown commands
* gui: fix alignment problem for buffer name when a merged buffer is closed
  (bug #27617)
* gui: update hotlist when a buffer is closed (bug #27470), remove buffer from
  hotlist when buffer is cleared (bug #27530)
* gui: fix /input history_global_next: reset input content when last command in
  history is reached
* api: fix function bar_set() for python/lua/ruby (patch #6912)

[[0.3.0]]
== Version 0.3.0 (2009-09-06)

[[0.3.0_features]]
=== New features

* core: add group support in nicklist
* core: improve main loop: higher timeout in select(), less CPU usage
* core: add /reload command to reload WeeChat and plugins config files (signal
  SIGHUP is caught to reload config files)
* core: add new /layout command and save_layout_on_exit config option, to
  save/restore windows and buffers order (task #5453)
* core: add new options for completion, optional stop instead of cycling with
  words found (task #5909)
* core: new name for configuration files (*.conf instead of *.rc)
* core: improve /set command, new command /unset (task #6085)
* core: add new input action "set_unread_current_buffer" to set unread marker
  for current buffer only (task #7286)
* core: add Polish translation (thanks to Soltys)
* core: remove key functions, replaced by /input command
* core: add argument with buffer number/range for command "/buffer close"
  (task #9390, task #7239)
* core: add new command /wait (schedule a command execution in future)
* gui: new display engine, with prefix and message for each line
* gui: add new type of buffer, with free content
* gui: add tags for lines and custom filtering by tags or regex (task #7674)
* gui: add buffer merging (task #7404)
* gui: add custom bars, with custom items
* gui: add key to zoom a window (task #7470)
* gui: add keys to move into last visited buffers: key[alt-]key[<] and
  key[alt-]key[>]
* gui: come back to last visited buffer when closing a buffer
* gui: add new option scroll_page_percent to choose percent of height to scroll
  with key[PgUp] and key[PgDn] keys (task #8702)
* gui: add number of lines remaining after last line displayed in "-MORE-"
  indicator (task #6702)
* network: add support for more than one proxy, with proxy selection for each
  IRC server (task #6859)
* aspell: improve plugin: use of many dictionaries, global dictionary, real
  time checking (optional), fix bugs with utf-8
* irc: add irc plugin (replaces old IRC code in core) (task #6217)
* irc: add smart join/part/quit message filter (task #8503)
* irc: use of many addresses for servers (auto-switch when a connection fails),
  nicks are now set with one option "nicks" (task #6088)
* irc: add some colors in messages from server (for text and nicks)
  (task #8926)
* irc: add color decoding in title for IRC channels (task #6030)
* irc: add missing commands (328, 369)
* logger: add logger plugin with new features: backlog, level for messages to
  log (task #8592), level by buffer (task #6687), filename mask by buffer,
  option "name_lower_case" (bug #19522)
* relay: add relay plugin (network communication between WeeChat and remote
  application)
* xfer: add speed limit for DCC files sending (task #6178)
* xfer: add new option xfer.file.use_nick_in_filename for Xfer files
  (task #7140)
* plugins: add some other plugins: alias, demo, fifo, tcl, xfer
* scripts: new scripts: weeget.py (scripts manager), jabber.py (jabber/XMPP
  protocol), go.py (quick jump to buffers), buffers.pl (sidebar with list of
  buffers), iset.pl (set options interactively), weetris.pl (tetris-like game),
  mastermind.pl, ...
* api: add hooks: command, timer, file descriptor, process, connection, print,
  signal, config, completion, modifier, info, infolist
* api: new plugin API with many new functions: hooks, buffer management and
  nicklist, bars, configuration files, network, infos/infolists, lists,
  upgrade

[[0.3.0_bugs]]
=== Bugs fixed

* core: fix nick completion bug (missing space after nick)
* gui: fix completion with non-latin nicks (bug #18993)
* gui: fix display bug with some weird UTF-8 chars (bug #19687)
* gui: fix bug with wide chars in input (bug #16356)
* gui: fix bug when switching window, scrollback is now preserved
  (task #7680)
* network: fix network connection for hostnames resolving to several IPs: try
  all IPs in list until one succeeds (bug #21473, debian #498610)
* alias: fix bug with alias, use current buffer to run commands (bug #22876)
* irc: fix lock with SSL servers when connection fails, and when
  disconnecting during connection problem (bug #17584)
* irc: command /whois is now authorized in private without argument
  (task #7482)
* irc: fix private buffer name with Irssi proxy (bug #26589)
* irc: remove kernel info in CTCP VERSION reply (task #7494)
* irc: fix mode parsing when receiving modes with arguments (bug #26793)
* scripts: do not auto-load hidden files (bug #21390)

[[0.2.6.3]]
== Version 0.2.6.3 (2009-06-13)

[[0.2.6.3_bugs]]
=== Bugs fixed

* fix GnuTLS detection (use pkg-config instead of libgnutls-config)
  (bug #26790)

[[0.2.6.2]]
== Version 0.2.6.2 (2009-04-18)

[[0.2.6.2_bugs]]
=== Bugs fixed

* fix bug with charset decoding (for example with iso2022jp) (bug #26228)

[[0.2.6.1]]
== Version 0.2.6.1 (2009-03-14)

[[0.2.6.1_bugs]]
=== Bugs fixed

* fix crash with some special chars in IRC messages (bug #25862)

[[0.2.6]]
== Version 0.2.6 (2007-09-06)

[[0.2.6_features]]
=== New features

* add new option "deloutq" to /server command to delete all servers messages
  out queues (task #7221)
* add string length limit for setup file options
* add option to align text of messages (except first lines) (task #7246)
* add paste detection, new options look_paste_max_lines and col_input_actions
  (task #5442)
* add Swedish quickstart guide
* add support of channel mode +u (channel user) (bug #20717)
* improve /connect command to connect to a host by creating a temporary server,
  add option to /server to create temporary server (task #7095)
* add "copy", "rename" and "keep" options to /server command
* allow clear of multiple selected buffers with /clear (patch #6112)
* add key for setting unread marker on all buffers
  (default: key[ctrl-s,ctrl-u]) (task #7180)
* improve command /server ant its output
* add 3 default new keys: key[ctrl-b] (left), key[ctrl-f] (right), key[ctrl-d]
  (delete)
* add "buffer_move" event handler to plugins API (task #6708)
* add key function "jump_previous_buffer" to jump to buffer previously
  displayed (new key: key[alt-j,alt-p]) (task #7085)
* add "%*" to completion template, to repeat last completion
* add "-nojoin" option for /connect and /reconnect commands (task #7074)
* add "scroll" option to /buffer command
* down key now saves input to history and clears input line (task #7049)
* command /away allowed when not connected to server (internally stored and
  AWAY command is sent when connecting to server) (task #7003)
* add argument for /upgrade command (path to binary)
* add hotlist sort with new option "look_hotlist_sort" (task #5870)

[[0.2.6_bugs]]
=== Bugs fixed

* fix bug with log of plugin messages (option log_plugin_msg)
* fix display bug with some special chars in messages (some words were
  truncated on screen) (bug #20944)
* fix UTF-8 bug with color encoding/decoding
* fix crash when searching text in buffer with key[ctrl-r] (bug #20938)
* fix bug with flock() when home is on NFS filesystem (bug #20913)
* fix user modes in nicklist when ban and nick mode are received in the same
  MODE message (bug #20870)
* fix IRC message 333: silently ignore message if error when parsing it
* fix server option "command_delay": does not freeze WeeChat any more
* fix bug with highlight and UTF-8 chars around word (bug #20753)
* fix nick prefix display on servers that doesn't support all prefixes
  (bug #20025)
* fix terminal encoding detection when NLS is disabled (bug #20646)
* fix crash when sending data to channel or pv on disconnected server
  (bug #20524)
* fix bugs with IRC color in messages, now color codes are inserted in command
  line with key[ctrl-c], key[ctrl-b].. instead of %C,%B,..
  (bug #20222, task #7060)
* fix bug with smart nick completion (last speakers first) when a nick is
  changed
* fix charset bug with channel names in status bar (bug #20400)
* fix log file when channel name contains "/" (bug #20072)
* fix bug with /topic when channel not open and topic not defined (bug #20141)

[[0.2.5]]
== Version 0.2.5 (2007-06-07)

[[0.2.5_features]]
=== New features

* add missing IRC commands (327, 378, 379) (bug #20091)
* add "%M" for completion with nicks of current server (nicks on open channels)
  (task #6931)
* improve key bindings: now possible to bind a key on many commands, separated
  by semicolon (task #5444)
* improve IRC long message split: use word boundary (task #6685)
* add cmake for weechat compile (patch #5943)
* add protocol priority for GnuTLS (patch #5915)
* add channel admin mode "!" for some IRC servers
* add /reconnect command (task #5448)
* add "-all" option for /connect and /disconnect commands (task #6232)
* improve nick completion: completion with last speakers first and self nick at
  the end; add option look_nick_completion_smart, enabled by default
  (task #5896)
* add color for input text not found in buffer history

[[0.2.5_bugs]]
=== Bugs fixed

* fix QUOTE command: now allowed when socket is OK (even if IRC connection to
  server is not OK) (bug #20113)
* fix hotlist when exiting search mode: current buffer is removed from hotlist
* remove ":" for unknown IRC commands before arguments (bug #19929)
* fix "%C" completion: now completes with all channels of all servers
* fix bug with "/buffer query_name", add server and channel completion for
  /buffer command (bug #19928)
* fix IRC mode parsing when receiving modes with arguments (bug #19902)
* fix crash with IRC JOIN malformed message (bug #19891)
* fix bug with nick prefixes on some IRC servers (bug #19854)
* improve setup file save: now writes temporary file, then rename it
  (task #6847)
* fix bug with $nick/$channel/$server variables in commands
* forget current nick when user manually disconnects from server
* fix nick display in input window
* fix bug with erroneous nickname when connecting to server (bug #19812)
* fix display bugs in IRC error messages
* fix bug with iso2022jp locale (bug #18719)
* fix string format bug when displaying string through plugin script API
* fix nick completion in command arguments (bug #19590)
* fix possible crash with nick completion when a nick leaves channel
  (bug #19589)
* fix USER message when connecting to IRC server (patch #5835)

[[0.2.4]]
== Version 0.2.4 (2007-03-29)

[[0.2.4_features]]
=== New features

* rename log file for DCC chat (now <server>.dcc.<nick>.weechatlog)
* add current buffer in hotlist when scrolling up in buffer (task #6664)
* improve password hiding, code cleanup (bug #19229)
* add new return code in plugin API to force highlight (for message handlers
  only)
* add "call" option to /key command, add new key function "insert" to insert
  text on command line (task #6468)
* add event handler to plugin API
* add Scots quickstart guide
* add numeric argument for /clear command (buffer number) (patch #5372)

[[0.2.4_bugs]]
=== Bugs fixed

* fix color bug with IRC messages displayed by plugins (bug #19442)
* fix topic charset, now using channel charset if defined (bug #19386)
* fix crash when closing a pv if a DCC chat is open on same nick (bug #19147)
* fix bug with channel topic after reconnection (not erased) (bug #19384)
* fix bug with explode_string / free_exploded_string when max_items > 0
* add new key (key[ctrl-r]) for interactive and incremental search in buffer
  history (task #6628)
* fix /topic completion when no topic set on current channel (bug #19322)
* fix bug with server buffer when "look_one_server_buffer" is ON and server
  buffer is moved to any number > 1 (bug #19219)
* fix /help command: displays plugin help for redefined commands (bug #19166)
* prefix "/" disabled in commands (patch #5769)
* fix completion of redefined commands removed by plugins (bug #19176)
* fix memory leaks in perl and python plugins (bug #19163)
* fix permissions on "dcc" and "logs" directories (bug #18978)
* fix crash when /away command is issued with no server connection (bug #18839)
* fix crash when closing a buffer opened on many windows
* fix freeze with SSL server when disconnecting after connection loss
  (bug #18735)

[[0.2.3]]
== Version 0.2.3 (2007-01-10)

[[0.2.3_bugs]]
=== Bugs fixed

* fix display bugs with nicklist at top/bottom when look_nicklist_separator is
  OFF (bug #18737)
* fix iconv problem, causing truncated words when using iso locale
* fix topic scroll when topic has multi-bytes chars
* fix compilation problem with iconv under FreeBSD
* fix bugs with charset: now decodes/encodes nicks and channels in IRC messages
  (bug #18716)

[[0.2.2]]
== Version 0.2.2 (2007-01-06)

[[0.2.2_features]]
=== New features

* add anti-flood option (irc_anti_flood) (task #5442)
* plugins: "add_message_handler" now accepts "*" for all IRC messages
* add keys (key[F9]/key[F10]) to scroll topic (task #6030)
* add auto completion with channels and filenames (task #5423)
* add option "look_nicklist_separator" (task #5437)
* add "irc_send_unknown_commands" option to send unknown commands to IRC server
  (OFF by default) (task #5947)
* /charset command and charset conversions now made by "charset" plugin
* add filename completion (task #5425)
* add "modifier" in plugins API
* improve /plugin command
* add date in plugin function get_buffer_data()
* add more values for config boolean values: y/true/t/1 and n/false/f/0

[[0.2.2_bugs]]
=== Bugs fixed

* fix bug with status bar (missing refresh) when closing a buffer
* fix bug with use of first buffer for a channel if not connected to server
  (now allowed only for a server buffer)
* fix refresh bug with private buffer title
* fix bug with nick completion in command arguments (now uses option
  look_nick_completion_ignore)
* fix display bug with color for first line on screen (bug #17719)
* fix bug with set_config() function in plugins API (bug #18448)
* fix memory leak in keyboard input
* fix refresh bug when changing config options if window is split
* add space between chat and nicklist when position is "right" (bug #17852)
* fix bug with DCC SEND when filename begins with "~"
* fix display bug in status bar, wrong length when using UTF-8
* fix bug with ignore: now any IRC command is allowed
* fix crash with key[ctrl-t] (transpose) and one char on line (bug #18153)
* fix bug on ignore with "mode" IRC command (bug #18058)
* fix crash when loading ruby script if file does not exist, with Ruby >= 1.9
  only (bug #18064)
* fix some portability bugs (patch #5271)
* fix iconv detection for BSD (patch #5456)
* fix typo in configure.in (bash specific test) (patch #5450)
* mode changes with /op, /deop, /voice, /devoice, /halfop, /dehalfop are now
  sent in one mode command to server (task #5968)
* fix bug with /alias and arguments (like $1), now text after argument(s) is
  used (bug #17944)
* fix minor display bug with special chars on some arch like PPC

[[0.2.1]]
== Version 0.2.1 (2006-10-01)

[[0.2.1_features]]
=== New features

* command "/away -all" now allowed when not connected to current server
* new signals handled: SIGTERM and SIGHUP (received when terminal is closed):
  clean WeeChat quit (send quit to irc servers then quit WeeChat)
* add some new default key bindings for existing keys (for some OS)
* command /key now OK with one argument (key name): display key if found
* add current channel completion for /ctcp command
* values yes/no accepted (as on/off) for config boolean values (task #5454)
* add server default notify level (set by /buffer notify on server buffer)
  (task #5634)
* add special vars $nick/$channel/$server for server_command, alias and plugin
  command handlers
* add arguments $1,$2,..,$9 and $* for alias (task #5831)
* add hotlist in session file when using /upgrade command (task #5449)

[[0.2.1_bugs]]
=== Bugs fixed

* fix crash for DCC receiver when resuming a file (bug #17885)
* fix DCC error for sender when receiver cancels DCC (bug #17838)
* fix random crash with /upgrade command (error when loading buffers)
* fix buffer search by server/channel: now if only channel is specified, a
  channel of another server can be found
* fix highlight for DCC, invite and notice: when a window is displaying buffer,
  there's no highlight
* fix bug with CTCP VERSION sent on channels (bug #17547)
* fix bugs in get_buffer_data() which breaks the retrieval of buffer content
  (perl, lua)
* fix nicklist display bug when top/bottom (not enough lines) (bug #17537)
* fix bug with auto-rejoin of keyed channels (bug #17534)
* add default nick completion when line starts with "//" (bug #17535)
* fix crashes with /buffer and /charset commands when not connected to any
  server (bug #17525)
* fix nick refresh problem with unrealircd specific modes: chan owner (~) and
  chan admin (&) (bug #17340)

[[0.2.0]]
== Version 0.2.0 (2006-08-19)

[[0.2.0_features]]
=== New features

* add "C"lear option on IRC raw buffer
* IRC raw buffer now uses join/part prefix with color to display messages
* add send of "quit" message to server when using /disconnect
* add "%m" for completion with self nick (on current server)
* add missing IRC commands (310, 326, 329, 338)
* improve DCC speed (up to x5 on LAN) by forking for DCC files and a new option
  "dcc_fast_send" (does not wait for ACK) (task #5758)
* add "look_save_on_exit" option (patch from Emanuele Giaquinta)
* add configure option for doc XSL prefix (bug #16991)
* add new functions in plugin/script API: get window info, get buffer info, get
  buffer content
* add Polish, Russian and Czech quickstart guide
* add color encoding for some commands like /me
* add aspell plugin

[[0.2.0_bugs]]
=== Bugs fixed

* fix "wallops" command when received, now displayed by WeeChat (bug #17441)
* fix /wallops command (now many words are correctly sent)
* fix command 348 (channel exception list, received by /mode #chan e)
* add missing modes (channel & user), now all modes are allowed (bug #16606)
* fix DCC restore after /upgrade (order is now correctly saved)
* fix away after server disconnection (now away is set again when reconnecting)
  (bug #16359)
* fix DCC file connection problem (connection from receiver to sender)
* fix crash when purging DCC with high number of DCC (> window size)
* fix completion for command handlers (now empty completion_template means nick
  completion, "-" string means no completion at all)
* fix nick alignment problem when look_nickmode is off
* add generic function for incoming numeric IRC commands (bug #16611)
* fix crash when doing "/part something" on a server buffer (bug #17201)
* charsets are now checked when set by /charset command
* fix crash on DCC buffer under Darwin 8 (bug #17115)
* 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
* 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)
* rename plugins names (remove "lib" prefix in name)
* fix crash when closing DCC/raw buffer if 2 are open (bug #16808)
* fix crashes with DCC chat remove/purge on DCC view (bug #16775)
* fix bug with connection to bnc (bug #16760)
* command /save now writes plugins options (~/.weechat/plugins.rc)
* fix crash with register() function in plugin scripts (bug #16701)
* fix random crash at exit (/quit or /upgrade) with split windows

[[0.1.9]]
== Version 0.1.9 (2006-05-25)

[[0.1.9_features]]
=== New features

* add backtrace when WeeChat crashes, log file automatically renamed
* add new key to find previous completion (key[shift-Tab] by default)
* add Russian translations (thanks to Pavel Shevchuk)
* add German doc (thanks to Frank Zacharias)
* add missing IRC commands (006, 007, 290, 292, 310, 379, 437, 974)
* add new option to customize input prompt
* add nick modes
* add hostnames associated to nicks (available for /ban completion)
* add "+p" mode for channels, fix mode display in status bar
* add nick alignment options
* add keyboard handler to plugin API
* improve script plugin loader
* add hostname/IP option for connection to server
* add /setp command (set plugin options)
* aliases are executed before WeeChat/IRC commands, add /builtin command
* add /cycle command, /part command does close buffer any more (use
  /buffer close (or alias /close) to part and close buffer

[[0.1.9_bugs]]
=== Bugs fixed

* fix /squery command (message sent to server, now OK with more than two
  arguments)
* fix /alias command (with an alias name, display content)
* improve Lua detection (bug #16574)
* add lock for log file (~/.weechat/weechat.log), only one WeeChat process can
  use this file (bug #16382)
* fix crash with malformed UTF-8 strings
* fix crash with ncurses color when too many colors defined in ncurses
  (bug #16556)
* fix bug with long outgoing IRC messages (> 512 bytes) (bug #16358)
* fix Ruby crash when handler does not return OK or KO (bug #16552)
* fix UTF-8 display bug with chars using more than one cell on screen
  (bug #16356)
* fix display bug with DCC file size when > 1 GB
* fix refresh bug (deadlock in curses) when terminal is resized (bug #16542)
* fix nicklist sort bug
* fix crash when multiple pv have same name: now it's forbidden and pv buffer
  is not renamed (when a nick changes) if another exists with same name
  (bug #16369)
* command /clear [-all] now clears hotlist
* fix crash after /upgrade if a line in history is empty (bug #16379)
* fix many crashes with DCC chat (bug #16416)
* fix commands 332, 333 (/topic now OK when channel is not opened)
* remove color encoding and charset conversion for commands (only allowed in
  text sent to channel/private)
* fix /names command: now displays result when not on a channel
* fix refresh bug (too many refresh) when terminal is resized
* fix nicklist display bugs when on top or bottom of chat window
* fix --disable-plugins option in configure script
* fix high CPU usage when running under a Screen that has been killed

[[0.1.8]]
== Version 0.1.8 (2006-03-18)

[[0.1.8_features]]
=== New features

* improve alias completion (now uses target command for completion)
* add missing IRC command (487)
* add inactivity time, available for plugins via get_info("inactivity")
* add keys key[alt-]key[Home]/key[End] to scroll top/bottom,
  key[alt-]key[F11]/key[F12] to scroll nicklist top/bottom
* add special names for plugin message handlers: weechat_pv, weechat_highlight,
  weechat_ctcp, weechat_dcc
* add IRC raw data buffer (new key: key[alt-j,alt-r])
* add new plugins functions: add_timer_handler(), remove_timer_handler(),
  remove_infobar()
* plugin messages handlers now called when message is ignored (by /ignore)
* new behavior for messages ignored by a message handler: now WeeChat
  executes standard handler, treating message as "ignored"
* many commands allowed for aliases
* many commands allowed when connecting to server
* add Lua script plugin
* add functions in plugins API: get_server_info(), free_server_info(),
  get_channel_info(), free_channel_info(), get_nick_info(), free_nick_info()
* add option "look_nick_complete_first" (patch from Gwenn)
* add option "look_open_near_server" (patch from Gwenn)
* add new scroll keys for a few lines up/down
  (default: key[alt-]key[PgUp]/key[PgDn]) (patch from Pistos)
* add new option "irc_away_check_max_nicks" to disable away check on channels
  with high number of nicks (patch from Gwenn)
* add new command line argument for setting WeeChat home dir (-d or --dir)
  (patch from Gwenn)
* add option "irc_show_away_once", to show away message only once in pv
* add partial Hungarian translation

[[0.1.8_bugs]]
=== Bugs fixed

* improve Ruby plugin
* fix /set command when internal server name contains one or many dots
* fix get_info plugin API function when no server at all is opened
* fix display bug when top of buffer is displayed and first line is removed
  (according to "history_max_lines" setting)
* fix /mode command output
* fix completion problem in private with nicks
* script plugins now load scripts in WeeChat system share directory
* /msg command does not open any buffer any more
* fix crash when using global history (when older entry is removed)
* fix display bug with /kill command
* fix bug with /upgrade and servers buffer
* fix bug with get_dcc_info() plugin interface function
* fix bug with charset in infobar highlights
* fix bug with buffer detection in plugins/scripts commands
* fix bug with /history command

[[0.1.7]]
== Version 0.1.7 (2006-01-14)

[[0.1.7_features]]
=== New features

* remove "irc_default_msg_away" setting, for RFC 2812 conformity (/away command
  without argument only removes away status), new values for "irc_display_away"
  (off, local, channel)
* replace Texinfo doc by XML Docbook
* add color for window separators (when split)
* add completion system for plugins/scripts commands
* add charset by server and channel, new command: /charset
* add Ruby script plugin
* add /upgrade command
* add ETA (Estimated Time of Arrival) for DCC files
* /nick command is now allowed when not connected to server
* add server/channel argument to /buffer command for jumping to buffer
* add new keys for switching to other windows: key[alt-w,alt-Arrow]
* add new keys for scrolling to previous/next highlight:
  key[alt-p] / key[alt-n]
* add "read marker": an indicator for first unread line in a server or channel
  buffer (new key key[alt-u] to scroll to marker)
* new window management: custom size for windows, auto resize when terminal is
  resized
* add /history command

[[0.1.7_bugs]]
=== Bugs fixed

* fix msg command (now allowed in private buffer with "*" as target)
* fix refresh bug with Solaris when term size is changed
* fix plugins autoload
* fix display bug in chat window when a message length equals to window width
* fix infinite loop when resizing term to small size

[[0.1.6]]
== Version 0.1.6 (2005-11-11)

[[0.1.6_features]]
=== New features

* new color management system, IRC colors are now correctly displayed and can
  be removed by new options irc_colors_receive and irc_colors_send
* add setting for having one server buffer for all servers
  (look_one_server_buffer)
* add setting for ignoring some chars when completing nicks
* signal SIGPIPE is now ignored
* add partial match for highlights
* add dcc_own_ip and dcc_port_range settings
* full UTF-8 support, auto-detection of UTF-8 usage (locale)
* add "Day changed to [date]" message when day changes
* new plugin interface, rewritten from scratch: now loads dynamic C library,
  and perl/python are script plugins
* log options (for server/channel/private) can now be set while WeeChat is
  running
* add channel modes +e and +f
* add some missing IRC commands, fix command 367
* add colors for input buffer and current channel of status bar
* add online help for config options (with /set full_option_name)
* enhanced "smart" hotlist, with names (new options:
  look_hotlist_names_{count|level|length})

[[0.1.6_bugs]]
=== Bugs fixed

* fix scroll problem when one line is bigger than screen size
* fix IRC message parser bug

[[0.1.5]]
== Version 0.1.5 (2005-09-24)

[[0.1.5_features]]
=== New features

* add /ame command (send CTCP action to all channels of all connected servers)
* add setting "irc_notice_as_pv" to see notices as pv
* add nicks colors in setup file
* add some missing IRC commands
* add /ignore and /unignore commands
* signal SIGQUIT is now ignored
* jump to next server now saves current channel buffer for each server
* add keys key[ctrl-]key[Up]/key[Down] to call previous/next command in global
  history (common to all buffers)

[[0.1.5_bugs]]
=== Bugs fixed

* fix DCC bug: delete failed file only if really empty (on disk)
* fix IRC message parser bug
* fix scroll problem (screen moving when scrolling and new line displayed)
* fix infinite loop when scrolling back and displaying long lines
* fix crash when closing a buffer used by more than one window
* fix DCC display bug (now decodes string according to charset)
* fix bug with strings comparison (str[n]casecmp) and some locales (like
  Turkish), now using ASCII comparison (thanks to roktas)
* fix refresh bug when one line is bigger than screen size
* fix look_nicklist_min_size and look_nicklist_max_size options
* fix refresh bug when changing channel modes

[[0.1.4]]
== Version 0.1.4 (2005-07-30)

[[0.1.4_features]]
=== New features

* join and part/quit prefixes (arrows) now displayed with different colors
* add "irc_highlight" setting, to get highlight with any word
* add /amsg command (send text to all channels of all connected servers)
* add color for private in hotlist (different than color for highlight)
* add DCC resume and timeout
* add function for Perl/Python to get DCC list
* new keyboard management: keys are setup in config file, add new command /key,
  add some new default keys, key[alt-k] is used to grab key (useful for /key
  command)
* add seconds in infobar time (optional thanks to new setting)
* add auto-prefix with "#" for channels (if no prefix found), with /join
  command

[[0.1.4_bugs]]
=== Bugs fixed

* fix auto-rejoin for channels with key
* fix /ctcp command (now any command/data allowed)
* fix SIGSEGV handler (now write a core file by aborting program)
* fix statusbar & infobar background refresh problem with some systems
* fix FIFO pipe (command now authorized on a buffer not connected to an IRC
  server)
* topic completion now decodes UTF-8 string
* fix bug with IRC URL on command line (irc://)
* fix some curses refreshs

[[0.1.3]]
== Version 0.1.3 (2005-07-02)

[[0.1.3_features]]
=== New features

* proxy support (http, socks4, socks5) with authentication (http, socks5)
  and ipv6 support (client to proxy)
* add completion for config option (with /set command)
* commands from users outside channel now authorized (if special user or
  channel without "n" flag)
* add IPv6 support
* kill command now received and displayed
* add SSL support
* channel notify levels are saved in config file (new option
  "server_notify_levels" for server sections)
* part message now accepts %v (replaced by WeeChat version), like quit message

[[0.1.3_bugs]]
=== Bugs fixed

* errors while loading perl scripts are now displayed in server buffer
  (instead of current buffer)
* in python scripts, all messages written in stdin and stderr are redirected in
  server buffer
* fix a filename error while loading a python script manually
* fix plugins print() and prnt() functions: now OK for writing on server
  buffers
* fix color problem with new libcurses version
* fix crash when using key[alt-s] or key[alt-x] on DCC buffer (key[alt-d])
* fix startup crash when config file (~/.weechat/weechat.rc) is not found
* improve Perl/Python libs detection for ./configure script

[[0.1.2]]
== Version 0.1.2 (2005-05-21)

[[0.1.2_features]]
=== New features

* add Python plugin support, improve Perl interface (and now Perl/Python
  libraries are checked by configure script)
* add nicklist scroll keys (key[alt-]key[Home]/key[End]/key[PgUp]/key[PgDn] or
  key[F11]/key[F12])
* add transfer rate for DCC files
* add "-all" option for /nick command
* buffers timestamp can now be changed (new option in config file)
* WeeChat now OK under *BSD and Mac OS X
* add missing IRC commands (307, 341, 485, 671)

[[0.1.2_bugs]]
=== Bugs fixed

* fix nicklist sort
* fix crash when purging old DCC
* fix crash with 64-bits arch (like AMD64) when converting UTF-8

[[0.1.1]]
== Version 0.1.1 (2005-03-20)

[[0.1.1_features]]
=== New features

* add nicks count for channel buffers
* add FIFO pipe for remote control
* add crash dump when WeeChat receives SIGSEGV (Segmentation fault)
* add new display engine: doesn't cut words at end of lines
* add DCC send and DCC chat
* add /halfop & /dehalfop commands, fix halfop display bug in nicklist
* add /ban, /unban and /kickban commands
* add Spanish translation
* add --irc-commands and --weechat-commands command line options
* connection to IRC server is now made by child process (non blocking)
* add support for UnrealIrcd ("~" for chan owner, "&" for chan admin)
* new key for window switch (now: key[F5]/key[F6] = switch buffer,
  key[F7]/key[F8] = switch window)
* on server buffer, only server messages are logged
* improve /help command output
* plugins messages are logged with new config option (log_plugin_msg)

[[0.1.1_bugs]]
=== Bugs fixed

* fix /kick command
* fix /invite command (and now invite requests are displayed)
* fix /buffer close command (now OK when disconnected from server)
* fix display bugs when many windows are opened

[[0.1.0]]
== Version 0.1.0 (2005-02-12)

[[0.1.0_features]]
=== New features

* improve /window command: now split and merge are OK
* away nicks are now displayed with another color (new option:
  "irc_away_check")
* add away indicator in status bar
* add lag indicator (and auto-disconnect after a delay if important lag)
* improve completion: now completes commands arguments (IRC and internal),
  when only one completion matches, completion mechanism is stopped
  (to complete command argument for example)
* improve /set command: empty strings are allowed, new colors, server options
  can be changed while WeeChat is running
* add default away/part/quit messages in config file
* new [irc] section in config file, move option "look_display_away" to
  "irc_display_away"
* server messages & errors are all prefixed (by 3 chars, like "-@-")
* add new options for charset (UTF-8 support): look_charset_decode,
  look_charset_encode and look_charset_internal

[[0.1.0_bugs]]
=== Bugs fixed

* fix many memory leaks
* fix colors bug: remove "gray" color (replaced by "default"), colors are OK
  when terminal has white (or light) background
* fix crash when resizing terminal to small size
* fix crash when multiple servers and big messages received from server
* fix crash when closing some private buffers
* fix crash when unknown section with option(s) in config file
* fix /op, /deop, /voice, /devoice (now OK with many nicks)
* fix /me command (now OK without parameter)
* fix /away command (now OK if not away)
* logs are now disabled by default (server/channel/private)

[[0.0.9]]
== Version 0.0.9 (2005-01-01)

[[0.0.9_features]]
=== New features

* auto-reconnection to server (new options: server_autoreconnect (on/off),
  server_autoreconnect_delay (in seconds))
* new command "/buffer close" (close any server/channel/private buffer)
* new keys: key[ctrl-a] (home), key[ctrl-e] (end), key[ctrl-w] (same as
  key[ctrl-Backspace]), key[alt-s] (switch to server buffer), key[alt-x]
  (switch to first channel of next server)
* add new config option: "server_command_delay" (delay in seconds after startup
  command for each server)

[[0.0.9_bugs]]
=== Bugs fixed

* fix major bug when socket is closed by server (100% CPU usage), and
  disconnections are now OK (all channels are "closed", history is still
  visible, and buffer will be used again if reconnection to server)
* option "look_remove_colors_from_msgs" is now working
* fix display of nick mode changes
* fix /notice command (and display when received from server)

[[0.0.8]]
== Version 0.0.8 (2004-10-30)

[[0.0.8_features]]
=== New features

* nickserv passwords hidden (new config option: log_hide_nickserv_pwd on/off)
* auto-rejoin channels when kicked (new config option: server_autorejoin
  on/off)
* add IRC::command function for Perl scripts
* /buffer command developed (buffers list, move and notify)
* logging buffers to disk (server/channel/private according to user
  preferences)
* add config option "look_display_away" to announce away in channels
* DCC file receive OK (key[alt-d] for DCC view)
* add key for redrawing terminal (key[ctrl-l])
* add key for clearing hotlist (key[alt-r])

[[0.0.8_bugs]]
=== Bugs fixed

* fix /kick command: now OK with many words as reason
* fix bug when adding alias with same name as other
* fix crash when resizing terminal to very small size
* "-MORE-" message is now erased when switching to another buffer
* /query command now reopens private buffer if already opened

[[0.0.7]]
== Version 0.0.7 (2004-08-08)

[[0.0.7_features]]
=== New features

* new "col_status_delimiters" config option
* add command /buffer , buffers ordered by number, auto-jump to active buffers
  (key[alt-a]), jump to buffers by number (key[alt-0...9])
* add command /window, split terminal horizontally/vertically
* unique color for each nick (based on nickname)
* add history limit (text buffer and commands)

[[0.0.7_bugs]]
=== Bugs fixed

* action messages are now considered as messages, not crappy joins/parts
* fix display bug when nicklist is displayed at bottom of screen
* replace --enable-debug with --with-debug option for ./configure, which is now
  integer: 1 = compiler debug flag, 2 = same 1 with verbose debug messages in
  WeeChat (default: 0 = no debug)

[[0.0.6]]
== Version 0.0.6 (2004-06-05)

[[0.0.6_features]]
=== New features

* improve channel highlight (priority to message vs join/part)
* add command /query (starts private conversation)
* add IRC messages 476, 477

[[0.0.6_bugs]]
=== Bugs fixed

* fix bug when opened private win and remote user changes his nick
* /mode command is now OK and channel flags are displayed in status bar
* fix display bug (text was blinking when scrolling)
* CTCP Version reply is now in English only and doesn't show host (security
  reason)

[[0.0.5]]
== Version 0.0.5 (2004-02-07)

[[0.0.5_features]]
=== New features

* /set command to modify config options when WeeChat is running
* URL command line parameter to connect to server(s)
* new Perl script function to display message in info bar
  ("IRC::print_infobar")
* info bar highlight notifications
* add info bar timestamp in config ("look_infobar_timestamp")
* add info bar (optional, "look_infobar" to enable it, "on" by default)
* add -c (or --config) command line parameter to see config file options

[[0.0.5_bugs]]
=== Bugs fixed

* fix look_nicklist config option, now enables/disables nicklist
* secure code to prevent buffer overflows and memory leaks
* fix QUIT IRC command: now sent to all connected servers (not only current)
* fix crash with /oper command
* for default config file, nick is now based on un*x username (thanks to
  Witukind)
* fix crash when config file cannot be written
* highlight action messages

[[0.0.4]]
== Version 0.0.4 (2004-01-01)

[[0.0.4_features]]
=== New features

* Perl plugin, with auto-load
* debug messages can be enabled via ./configure --enable-debug option

[[0.0.4_bugs]]
=== Bugs fixed

* when private window is created (another user is talking), WeeChat does not
  switch to this window
* highlight when our nick is written in a channel/private window
* catch key[ctrl-c] (ignored)

[[0.0.3]]
== Version 0.0.3 (2003-11-03)

[[0.0.3_features]]
=== New features

* ./configure script to build WeeChat
* French translation
* new IRC command: /stats, /service, /squit, /motd, /lusers, /links, /time,
  /trace, /admin, /info, /servlist, /squery, /who, /whowas, /die, /summon,
  /users, /wallops, /userhost, /ison, /ctcp ping

[[0.0.3_bugs]]
=== Bugs fixed

* nicks are now correctly sorted (op, halfop, voice, other)
* fix problem with "353" IRC message (nicklist)
* fix problem when nick is truncated by server
* fix crash when entering text without any server connection
* fix crash when /set command is executed
* fix display bug (text was blinking when scrolling)
* code cleanup

[[0.0.2]]
== Version 0.0.2 (2003-10-05)

[[0.0.2_features]]
=== New features

* add commands /rehash and /restart
* and command and auto-join channels when connected to server
* new commands for alias: /alias, /unalias (new section in config file)
* config is now saved automatically when quitting WeeChat, add /save command
* new commands for servers: /server, /connect, /disconnect
* add autoconnect flag for each server in config file
* add "look_set_title" option in config file
* term window title is modified with WeeChat name and version
* CTCP version returns more info (about OS)

[[0.0.2_bugs]]
=== Bugs fixed

* fix nicklist display bug
* fix crash when sending command which can only be received

[[0.0.1]]
== Version 0.0.1 (2003-09-27)

* ncurses GUI with color output
* multi-servers
* channel windows, with nicklist (position: top, bottom, left or right)
* private windows
* IRC commands: away, ctcp, deop, devoice, invite, join, kick, kill, list, me,
  mode, msg, names, nick, notice, op, oper, part, ping, pong, quit, quote,
  topic, version, voice, whois
* WeeChat commands: clear, help, set (partial)
* many config options
* log file (~/.weechat/weechat.log)
* nicklist can be moved on top, bottom, left or right of window
