WeeChat 0.2.7
From FlashTux
News in this (future) version
Version 0.2.7 (codename "revolution") will bring major new features:
- IRC protocol as plugin (new other protocols will follow soon)
- new plugin API with: hooks, buffer management, bars, config files, lists
- new plugins: irc, alias, demo, fifo, logger, xfer
- custom bars with custom items
- optional backlog for buffers
- hooks: command, timer, file descriptor, print, signal, config, completion, modifier
- new fast display engine, with a prefix for each line
- /reload command to reload WeeChat and plugins configuration files
- group support in nicklist
- main loop improved, less CPU usage
GIT commits: http://git.sv.gnu.org/gitweb/?p=weechat.git;a=log;h=protocols, RSS feed: http://weechat.flashtux.org/rss-commits-protocols.php
Planed release date: not known (in a few months). Don't worry, development is very active ;)
Last screenshots
WeeChat with custom bars (buffers/uptime), IRC debug buffer on top:
(sample scripts for bars:
buffers.pl /
uptime.pl)
WeeChat with WeeTris script (weetris.pl), drawing on buffer with free content:
Interactive set script: (iset.pl)
Get development version
With git
You must clone git repository and switch to "protocols" branch (git >= 1.5.4.2 is recommended):
git-clone git://git.sv.gnu.org/weechat.git cd weechat git-checkout -b protocols origin/protocols
If git didn't add these lines in .git/config file, add them at the end (it's ok with git 1.5.5, but some older versions didn't add these lines):
[branch "protocols"]
remote = origin
merge = refs/heads/protocols
Later, when you want to get git repository updates:
git-pull
Without git
You can download last git snapshot here: http://git.savannah.gnu.org/gitweb/?p=weechat.git;a=snapshot;h=refs/heads/protocols;sf=tgz
Extract:
tar xvzf weechat-refs-heads-protocols.tar.gz
Compile development version
With autotools
cd weechat ./autogen.sh ./configure --enable-demo --disable-aspell --disable-trigger --prefix=/where/you/want/install make make install
With cmake
cd weechat mkdir build cd build cmake .. -DENABLE_DEMO=ON -DDISABLE_ASPELL=ON -DDISABLE_TRIGGER=ON -DPREFIX=/where/you/want/install make make install
(plugins "aspell" and "trigger" are not working today, so they have to be disabled)
Missing features
Here's a list of missing features that were temporarily removed (please don't open bug for that, they'll be added ASAP):
- connect to IRC server thru command-line URL (irc://...)
- one common buffer for many IRC servers
- option irc_send_unknown_commands
- option look_open_near_server
- /server command partially disabled
- trigger plugin
- aspell plugin
- /upgrade command
- buffer notify
- key to jump to next server
- highlights
- keyboard hooks
- away status indicator in status bar
- lag indicator in status bar
Beta testers: you're welcome!
You want to help us by testing this version? You're welcome! Just follow instructions below.
- Please submit bugs for this version on WeeChat bugs page (on savannah), using release "dev".
- Report any suggestion to FlashCode (IRC or mail).
- Some important features are missing in this version (please read "Missing features" above). If you don't know if it's a bug or temporary removal of feature, then ask to FlashCode.
- The following table shows what you can test, and provides some info about each component (what is done/is not done):
| What? | Needed | Info |
|---|---|---|
| Display | yes | Ready, please test display and scroll in buffers. |
| Bars | yes | Ready. |
| IRC plugin | yes | Server settings should be set by editing irc.rc file, then /reload (don't use /set, it's not ok for server settings). Away status and lag indicators are not displayed. |
| alias plugin | yes | Ready. |
| aspell plugin | no | This plugin does not compile today. Stay tuned.. |
| charset plugin | yes | Ready, should work with IRC plugin, that calls charset for decoding/encoding messages. |
| fifo plugin | yes | Ready, should work with IRC plugin. |
| logger plugin | yes | Ready, new file format for logs: new default timestamp, and use of tabulation between prefix and message. |
| trigger plugin | no | This plugin does not compile today. Stay tuned.. |
| perl plugin | yes | Ready, see below (new plugin API). |
| python plugin | yes | Ready, see below (new plugin API). |
| ruby plugin | yes | Ready, see below (new plugin API). |
| lua plugin | yes | Ready, see below (new plugin API). |
| xfer plugin | yes | Ready, used by DCC to transfert file and make direct chats, thru DCC protocol (/dcc command). |
Warning!
It's recommended to use another WeeChat home for testing this version:
/path/to/weechat-curses --dir /tmp/weechat
This version creates these config files:
- alias.conf
- charset.conf
- irc.conf
- plugins.conf
- weechat.conf
- xfer.conf
Log file format (<weechatdir>/.weechat/logs/*) has changed in this version.
New plugin API
String functions
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| set_charset | charset_set | - | - |
| iconv_to_internal | iconv_to_internal | - | yes |
| iconv_from_internal | iconv_from_internal | - | yes |
| - | gettext | - | yes |
| - | ngettext | - | yes |
| - | strndup | - | - |
| - | string_tolower | - | - |
| - | string_toupper | - | - |
| ascii_strcasecmp | strcasecmp | - | - |
| ascii_strncasecmp | strncasecmp | - | - |
| - | strcmp_ignore_chars | - | - |
| - | strcasestr | - | - |
| - | string_match | - | - |
| - | string_replace | - | - |
| - | string_remove_quotes | - | - |
| - | string_strip | - | - |
| explode_string | string_explode | yes | - |
| free_exploded_string | string_free_exploded | - | - |
| - | string_build_with_exploded | - | - |
| - | string_split_command | - | - |
| - | string_free_splitted_command | - | - |
| - | utf8_has_8bits | - | - |
| - | utf8_is_valid | - | - |
| - | utf8_normalize | - | - |
| - | utf8_prev_char | - | - |
| - | utf8_next_char | - | - |
| - | utf8_char_size | - | - |
| - | utf8_strlen | - | - |
| - | utf8_strnlen | - | - |
| - | utf8_strlen_screen | - | - |
| - | utf8_charcasecmp | - | - |
| - | utf8_char_size_screen | - | - |
| - | utf8_add_offset | - | - |
| - | utf8_real_pos | - | - |
| - | utf8_pos | - | - |
Directory functions
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| mkdir_home | mkdir_home | - | - |
| - | mkdir | - | - |
| exec_on_files | exec_on_files | yes | - |
| - | timeval_cmp | - | - |
| - | timeval_diff | - | - |
| - | timeval_add | - | - |
List functions
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| - | list_new | - | yes |
| - | list_add | - | yes |
| - | list_search | - | yes |
| - | list_casesearch | - | yes |
| - | list_get | - | yes |
| - | list_set | - | yes |
| - | list_next | - | yes |
| - | list_prev | - | yes |
| - | list_string | - | yes |
| - | list_size | - | yes |
| - | list_remove | - | yes |
| - | list_remove_all | - | yes |
| - | list_free | - | yes |
Config files functions
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| - | config_new | - | yes |
| - | config_new_section | - | yes |
| - | config_search_section | - | yes |
| - | config_new_option | - | yes |
| - | config_search_option | - | yes |
| - | config_search_section_option | - | no |
| - | config_search_with_string | - | no |
| - | config_string_to_boolean | - | yes |
| - | config_option_reset | - | yes |
| - | config_option_set | - | yes |
| - | config_option_get_pointer | - | no |
| - | config_boolean | - | yes |
| - | config_integer | - | yes |
| - | config_string | - | yes |
| - | config_color | - | yes |
| - | config_write_line | - | yes |
| - | config_write | - | yes |
| - | config_read | - | yes |
| - | config_reload | - | yes |
| - | config_option_free | - | yes |
| - | config_section_free_options | - | yes |
| - | config_section_free | - | yes |
| - | config_free | - | yes |
| get_config | config_get | yes | yes |
| set_config | (removed) | - | - |
| get_plugin_config | config_get_plugin | - | yes |
| set_plugin_config | config_set_plugin | - | yes |
Display functions
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| - | prefix | - | yes |
| - | color | - | yes |
| printf_date_tags | - | yes (print_date_tags) | |
| - | printf_y | - | yes (print_y) |
| print_server | (removed) | - | - |
| print_infobar | infobar_printf | - | yes (infobar_print) |
| infobar_remove | infobar_remove | - | yes |
| log | (removed) | - | yes |
| - | log_printf | - | yes (log_print) |
Hooks
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| msg_handler_add | under progress... | yes | yes |
| cmd_handler_add | hook_command | yes | yes |
| timer_handler_add | hook_timer | yes | yes |
| keyboard_handler_add | under progress... | yes | yes |
| - | hook_fd | - | yes |
| - | hook_print | - | yes |
| event_handler_add | hook_signal | yes | yes |
| - | hook_signal_send | - | yes |
| - | hook_config | - | yes |
| - | hook_completion | - | yes |
| modifier_add | hook_modifier | yes | yes |
| - | hook_modifier_exec | - | yes |
| modifier_remove | (removed) | - | - |
| modifier_remove_all | (removed) | - | - |
| handler_remove | unhook | yes | yes |
| handler_remove_all | unhook_all | yes | yes |
Buffers
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| - | buffer_new | - | yes |
| - | buffer_search | - | yes |
| - | buffer_close | - | yes |
| - | buffer_get_string | - | yes |
| - | buffer_get_pointer | - | yes |
| - | buffer_set | - | yes |
Nicklist
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| - | nicklist_add_group | - | yes |
| - | nicklist_search_group | - | yes |
| - | nicklist_add_nick | - | yes |
| - | nicklist_search_nick | - | yes |
| - | nicklist_remove_group | - | yes |
| - | nicklist_remove_nick | - | yes |
| - | nicklist_remove_all | - | yes |
Bars
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| - | bar_item_seach | - | yes |
| - | bar_item_new | - | yes |
| - | bar_item_update | - | yes |
| - | bar_item_remove | - | yes |
| - | bar_search | - | yes |
| - | bar_new | - | yes |
| - | bar_set | - | yes |
| - | bar_update | - | yes |
| - | bar_remove | - | yes |
Command
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| exec_command | command | yes | yes |
Info / infolist
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| get_info | info_get | yes | yes |
| - | infolist_get | - | yes |
| - | infolist_next | - | yes |
| - | infolist_prev | - | yes |
| - | infolist_fields | - | yes |
| - | infolist_integer | - | yes |
| - | infolist_string | - | yes |
| - | infolist_pointer | - | yes |
| - | infolist_time | - | yes |
| - | infolist_free | - | yes |
| get_dcc_info | (removed) | - | - |
| free_dcc_info | (removed) | - | - |
| get_server_info | (removed) | - | - |
| free_server_info | (removed) | - | - |
| get_channel_info | (removed) | - | - |
| free_server_info | (removed) | - | - |
| get_nick_info | (removed) | - | - |
| free_nick_info | (removed) | - | - |
| get_window_info | (removed) | - | - |
| free_window_info | (removed) | - | - |
| get_buffer_info | (removed) | - | - |
| free_buffer_info | (removed) | - | - |
| get_buffer_data | (removed) | - | - |
| free_buffer_data | (removed) | - | - |
Other functions
| Old name | New name | New arguments? | In scripts? |
|---|---|---|---|
| get_irc_color | (removed) | - | - |
| input_color | under progress... | - | - |

