\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename weechat_doc_pt.info @settitle WeeChat - Um cliente de IRC rapido, leve e extencivel @c %**end of header @c WeeChat documentation (vers@~ao partuguesa) @c @c Copyright (c) 2005 by FlashCode @c @c This manual is free software; you can redistribute it and/or modify @c it under the terms of the GNU General Public License as published by @c the Free Software Foundation; either version 2 of the License, or @c (at your option) any later version. @c @c This manual is distributed in the hope that it will be useful, @c but WITHOUT ANY WARRANTY; without even the implied warranty of @c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @c GNU General Public License for more details. @c @c You should have received a copy of the GNU General Public License @c along with this program; if not, write to the Free Software @c Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA @c pdf : texi2pdf weechat_doc_pt.texi @c html: makeinfo --html --no-split --number-sections weechat_doc_pt.texi @c tex @c \overfullrule=0pt @c end tex @documentlanguage pt @documentencoding ISO-8859-1 @titlepage @title WeeChat - Guia do Utilizador @subtitle Cliente de IRC rapido, leve e extencivel @subtitle Documenta@,{c}@~ao do WeeChat v0.1.6-cvs - 17 de outubro de 2005 @author FlashCode <@email{flashcode@@flashtux.org, flashcode AT flashtux.org}> @page Este manual documenta o cliente de IRC WeeChat, ele faz parte do WeeChat.@* @* A ultima versão deste documento pode ser descarregada de :@* @uref{http://weechat.flashtux.org/doc.php}@* @* Copyright @copyright{} 2005 FlashCode <@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>@* @* Este documento pode ser utilizado sobre os termos da Licen@,{c}a P@'ublica geral GNU (GNU General Public License) vers@~ao 2 ou superior. @end titlepage @everyheading @thischapter @| @| @everyfooting @thistitle @| @| Pagina @thispage @contents @node Top, Introducao, (dir), (dir) @menu * Introducao:: Descri@,{c}@~ao do WeeChat * Instalacao:: Instala@,{c}@~ao do WeeChat * Utilizacao:: Utiliza@,{c}@~ao do WeeChat * Plugins:: WeeChat plugins * Autores/Suporte:: Contactar os autores e obter suporte @end menu @c ******************************* Introducao ******************************* @node Introducao, Instalacao, Top, Top @chapter Introdu@,{c}@~ao @menu * Descricao:: * Pre-requisitos:: @end menu @node Descricao, Pre-requisitos, Introducao, Introducao @section Descri@,{c}@~ao O WeeChat (Wee Enhanced Environment for Chat) @'e um cliente de IRC livre, r@'apido e leve, concebido para funcionar em diversos sistemas operativos.@* @* As suas caracter@'isticas prinicpais s@~ao as seguintes : @itemize @minus @item liga@,{c}@~ao a m@'ultiplos servidores (com SSL, IPv6, proxy) @item v@'arias interfaces : Curses, wxWidgets, Gtk e Qt @item pequeno r@'apido e leve @item configuravel e extenc@'ivel com scripts @item compat@'ivel com RFCs 1459, 2810, 2811, 2812, e 2813 @item multiplataforma (Gnu/Linux, *BSD, MacOS X, Windows e outros) @item 100% GPL, Software Livre @end itemize @* A p@'agina Web do Weechat @'e aqui :@* @uref{http://weechat.flashtux.org}@* @node Pre-requisitos, ,Descricao, Introducao @section Pr@'e-requisitos Para instalar o Weechat, vais @b{precisar} de ter :@* @itemize @bullet @item Um sistema Gnu/Linux (com um compilador e outros utilit@'arios associados aos pacotes de c@'odigo fonte) @item Direitos de "root" (para instalar) @item Consoante a interface escolhida, uma das seguintes bibliotecas : @itemize @minus @item Curses: a biblioteca ncurses, @item Gtk: *** interface n@~ao desenvolvida ***, @item Qt: *** interface n@~ao desenvolvida ***, @end itemize @end itemize @c ******************************* Instalacao ******************************* @node Instalacao, Utilizacao, Introducao, Top @chapter Instala@,{c}@~ao @menu * Binarios:: * Codigo Fonte:: * Codigo Fonte via CVS:: @end menu @node Binarios, Codigo Fonte, Instalacao, Instalacao @section Bin@'arios Os pacotes bin@'arios est@'ao dispon@'iveis para as seguintes distribui@,{c}@~oes : @itemize @bullet @item Debian (ou compat@'ivel)@* Instala@,{c}@~ao : @kbd{apt-get install weechat-curses} @item Mandrake/Redhat (ou outra distro compat@'ivel com RPMs)@* Instala@,{c}@~ao : @kbd{rpm -i /chemin/weechat-x.y.z-1.i386.rpm} @item Gentoo@* Instala@,{c}@~ao : @kbd{emerge weechat} @item *BSD (non disponible !) @item Slackware (n@~ao dispon@'ivel !) @item Windows (n@~ao dispon@'ivel !) @end itemize Onde x.y.z @'e a vers@~ao (por exemplo 0.0.1) @* @node Codigo Fonte, Codigo Fonte via CVS, Binarios, Instalacao @section C@'odigo Fonte Escreve simplesmente numa consola ou num terminal :@* @kbd{./configure}@* @kbd{make}@* Nota: Para compilar certas interfaces, podes passar par@^ametros ao ./configure, escreve @kbd{./configure --help} para veres as op@,{c}@~oes.@* Obter os direitos do root e instalar o Weechat :@* @kbd{su}@* (escreve aqui a palavra-passe do superutilizador)@* @kbd{make install}@* @node Codigo Fonte via CVS, , Codigo Fonte, Instalacao @section C@'odigo Fonte via CVS Aten@,{c}@~ao: o c@'odigo fonte CVS est@'a reservado aos utilizadores avan@,{c}ados : o WeeChat pode n@~ao compilar ou ficar inst@'avel.@* Considera-te avisado !@* Para sacares o c@'odigo fonte via CVS, escreve estes comandos :@* @kbd{cvs -d:pserver:anoncvs@@subversions.gnu.org:/cvsroot/weechat login}@* @kbd{cvs -z3 -d:pserver:anoncvs@@subversions.gnu.org:/cvsroot/weechat co weechat}@* (quando te pedirem a palavra-passe, primen simplesmente Enter)@* Executa o script :@* @kbd{./autogen.sh}@* Segue agora as instru@,{c}@~oes para compilar o c@'odigo fonte - @xref{Codigo Fonte}. @c ******************************* Utilizacao ******************************** @node Utilizacao, Plugins, Instalacao, Top @chapter Utiliza@,{c}@~ao @menu * Invocar o WeeChat:: * Config file:: * Recursos de teclado:: * Comandos do WeeChat:: * FIFO pipe:: @end menu @node Invocar o WeeChat, Config file, Utilizacao, Utilizacao @section Invocar o WeeChat @subsection Par@^ametros de linha de comandos @table @code @item -c, --config Mostrar da lima dos config da exposi@,{c}@~ao (lista das op@,{c}@~oes) @item -f, --key-functions Display WeeChat internal functions for keys@* @item -h, --help Mostrar a ajuda@* @item -i, --irc-commands Display IRC commands list@* @item -l, --license Mostrar a licen@,{c}a do WeeChat@* @item -v, --version Mostrar a vers@~ao do WeeChat@* @item -w, --weechat-commands Display WeeChat commands list@* @end table @subsection Invocar o WeeChat Escreve simplesmente este comando para invoceres o WeeChat :@* @kbd{weechat-curses} (para a interface em Curses)@* ou @kbd{weechat-wxwidgets} (para a interface em wxWidgets)@* ou @kbd{weechat-gtk} (para a interface em Gtk)@* ou @kbd{weechat-qt} (para a interface em Qt)@* Logo que lan@,{c}ares o WeeChat pela primeira vez, um ficheiro de configura@,{c}@~ao por defeito @'e criado, com as configura@,{c}@~oes por defeito.@* O ficheiro de configura@,{c}@~ao por defeito @'e : ~/.weechat/weechat.rc@* Podes editar esse ficheiro para configurar o WeeChat @`a tua maneira, man tamb@'em podes modificar os par@^ametros dentro do WeeChat utilizando o comando @kbd{/set} - @xref{Comandos do WeeChat}. @node Config file, Recursos de teclado, Invocar o WeeChat, Utilizacao @section Config file List of options for config file:@* @table @kbd @item look_set_title Set title for window (terminal for Curses GUI) with name & version@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_startup_logo Display WeeChat logo at startup@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_startup_version Display WeeChat version at startup@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_weechat_slogan WeeChat slogan (if empty, slogan is not used)@* Type: string (any string), default value: 'the geekest IRC client!'@* @item look_charset_decode Charset for decoding messages from server, examples: UTF-8, ISO-8859-1 (if empty, messages are not converted)@* Type: string (any string), default value: 'UTF-8'@* @item look_charset_encode Charset for encoding messages sent to server, examples: UFT-8, ISO-8859-1 (if empty, local charset is used)@* Type: string (any string), default value: ''@* @item look_charset_internal Internal WeeChat charset, should be ISO-xxxx even if locale is UTF-8 (if empty, local charset is used)@* Type: string (any string), default value: 'ISO-8859-1'@* @item look_buffer_timestamp Timestamp for buffers@* Type: string (any string), default value: '[%H:%M:%S]'@* @item look_color_nicks Display nick names with different colors@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_color_nicks_number Number of colors to use for nicks colors@* Type: integer (values: between 1 and 10), default value: 10@* @item look_color_actions Display actions with different colors@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_remove_colors_from_msgs Remove colors from incoming messages@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_nicklist Display nicklist window (for channel windows)@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_nicklist_position Nicklist position (top, left, right (default), bottom)@* Type: string (values: 'left', 'right', 'top', 'bottom'), default value: 'right'@* @item look_nicklist_min_size Min size for nicklist (width or height, depending on look_nicklist_position (0 = no min size))@* Type: integer (values: between 0 and 100), default value: 0@* @item look_nicklist_max_size Max size for nicklist (width or height, depending on look_nicklist_position (0 = no max size; if min == max and > 0, then size is fixed))@* Type: integer (values: between 0 and 100), default value: 0@* @item look_no_nickname Text to display instead of nick when not connected@* Type: string (any string), default value: '-cmd-'@* @item look_nickmode Display nick mode ((half)op/voice) before each nick@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_nickmode_empty Display space if nick mode is not (half)op/voice@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item look_nick_completor The string inserted after nick completion@* Type: string (any string), default value: ':'@* @item look_infobar Enable info bar@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_infobar_timestamp Timestamp for time in infobar@* Type: string (any string), default value: '%B, %A %d %Y'@* @item look_infobar_seconds Display seconds in infobar time@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item look_infobar_delay_highlight Delay (in seconds) for highlight messages in infobar (0 = disable highlight notifications in infobar)@* Type: integer (values: between 0 and 2147483647), default value: 7@* @item look_hotlist_names_count Max number of names in hotlist (0 = no name displayed, only buffer numbers)@* Type: integer (values: between 0 and 32), default value: 3@* @item look_hotlist_names_level Level for displaying names in hotlist (combination of: 1=join/part, 2=message, 4=private, 8=highlight, for example: 12=private+highlight)@* Type: integer (values: between 1 and 15), default value: 12@* @item look_hotlist_names_length Max length of names in hotlist (0 = no limit)@* Type: integer (values: between 0 and 32), default value: 0@* @item col_title Color for title bar@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_title_bg Background for title bar@* Type: color (Curses or Gtk color), default value: 'blue'@* @item col_chat Color for chat text@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_chat_time Color for time in chat window@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_chat_time_sep Color for time separator (chat window)@* Type: color (Curses or Gtk color), default value: 'brown'@* @item col_chat_prefix1 Color for 1st and 3rd char of prefix@* Type: color (Curses or Gtk color), default value: 'lightcyan'@* @item col_chat_prefix2 Color for middle char of prefix@* Type: color (Curses or Gtk color), default value: 'white'@* @item col_chat_join Color for join arrow (prefix)@* Type: color (Curses or Gtk color), default value: 'lightgreen'@* @item col_chat_part Color for part/quit arrow (prefix)@* Type: color (Curses or Gtk color), default value: 'lightred'@* @item col_chat_nick Color for nicks in actions (chat window)@* Type: color (Curses or Gtk color), default value: 'lightcyan'@* @item col_chat_host Color for hostnames (chat window)@* Type: color (Curses or Gtk color), default value: 'cyan'@* @item col_chat_channel Color for channel names in actions (chat window)@* Type: color (Curses or Gtk color), default value: 'white'@* @item col_chat_dark Color for dark separators (chat window)@* Type: color (Curses or Gtk color), default value: 'green'@* @item col_chat_highlight Color for highlighted nick (chat window)@* Type: color (Curses or Gtk color), default value: 'yellow'@* @item col_chat_bg Background for chat window@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_status Color for status bar@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_status_delimiters Color for status bar delimiters@* Type: color (Curses or Gtk color), default value: 'cyan'@* @item col_status_channel Color for current channel in status bar@* Type: color (Curses or Gtk color), default value: 'white'@* @item col_status_data_msg Color for window with new messages (status bar)@* Type: color (Curses or Gtk color), default value: 'yellow'@* @item col_status_private Color for window with private message (status bar)@* Type: color (Curses or Gtk color), default value: 'lightmagenta'@* @item col_status_highlight Color for window with highlight (status bar)@* Type: color (Curses or Gtk color), default value: 'lightred'@* @item col_status_data_other Color for window with new data (not messages) (status bar)@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_status_more Color for window with new data (status bar)@* Type: color (Curses or Gtk color), default value: 'white'@* @item col_status_bg Background for status window@* Type: color (Curses or Gtk color), default value: 'blue'@* @item col_infobar Color for info bar text@* Type: color (Curses or Gtk color), default value: 'black'@* @item col_infobar_delimiters Color for infobar delimiters@* Type: color (Curses or Gtk color), default value: 'blue'@* @item col_infobar_highlight Color for info bar highlight notification@* Type: color (Curses or Gtk color), default value: 'white'@* @item col_infobar_bg Background for info bar window@* Type: color (Curses or Gtk color), default value: 'cyan'@* @item col_input Color for input text@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_input_channel Color for input text (channel name)@* Type: color (Curses or Gtk color), default value: 'white'@* @item col_input_nick Color for input text (nick name)@* Type: color (Curses or Gtk color), default value: 'lightcyan'@* @item col_input_delimiters Color for input text (delimiters)@* Type: color (Curses or Gtk color), default value: 'lightgreen'@* @item col_input_bg Background for input window@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_nick Color for nicknames@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_nick_away Color for away nicknames@* Type: color (Curses or Gtk color), default value: 'cyan'@* @item col_nick_chanowner Color for chan owner symbol (specific to unrealircd)@* Type: color (Curses or Gtk color), default value: 'lightgreen'@* @item col_nick_chanadmin Color for chan admin symbol (specific to unrealircd)@* Type: color (Curses or Gtk color), default value: 'lightgreen'@* @item col_nick_op Color for operator symbol@* Type: color (Curses or Gtk color), default value: 'lightgreen'@* @item col_nick_halfop Color for half-operator symbol@* Type: color (Curses or Gtk color), default value: 'lightmagenta'@* @item col_nick_voice Color for voice symbol@* Type: color (Curses or Gtk color), default value: 'yellow'@* @item col_nick_more Color for '+' when scrolling nicks@* Type: color (Curses or Gtk color), default value: 'lightmagenta'@* @item col_nick_sep Color for nick separator@* Type: color (Curses or Gtk color), default value: 'blue'@* @item col_nick_self Color for local nick@* Type: color (Curses or Gtk color), default value: 'white'@* @item col_nick_color1 Color for nick@* Type: color (Curses or Gtk color), default value: 'cyan'@* @item col_nick_color2 Color for nick@* Type: color (Curses or Gtk color), default value: 'magenta'@* @item col_nick_color3 Color for nick@* Type: color (Curses or Gtk color), default value: 'green'@* @item col_nick_color4 Color for nick@* Type: color (Curses or Gtk color), default value: 'brown'@* @item col_nick_color5 Color for nick@* Type: color (Curses or Gtk color), default value: 'lightblue'@* @item col_nick_color6 Color for nick@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_nick_color7 Color for nick@* Type: color (Curses or Gtk color), default value: 'lightcyan'@* @item col_nick_color8 Color for nick@* Type: color (Curses or Gtk color), default value: 'lightmagenta'@* @item col_nick_color9 Color for nick@* Type: color (Curses or Gtk color), default value: 'lightgreen'@* @item col_nick_color10 Color for nick@* Type: color (Curses or Gtk color), default value: 'blue'@* @item col_nick_private Color for other nick in private window@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_nick_bg Background for nicknames@* Type: color (Curses or Gtk color), default value: 'default'@* @item col_chat_dcc_selected Color for selected DCC (chat window)@* Type: color (Curses or Gtk color), default value: 'white'@* @item col_dcc_waiting Color for "waiting" dcc status@* Type: color (Curses or Gtk color), default value: 'lightcyan'@* @item col_dcc_connecting Color for "connecting" dcc status@* Type: color (Curses or Gtk color), default value: 'yellow'@* @item col_dcc_active Color for "active" dcc status@* Type: color (Curses or Gtk color), default value: 'lightblue'@* @item col_dcc_done Color for "done" dcc status@* Type: color (Curses or Gtk color), default value: 'lightgreen'@* @item col_dcc_failed Color for "failed" dcc status@* Type: color (Curses or Gtk color), default value: 'lightred'@* @item col_dcc_aborted Color for "aborted" dcc status@* Type: color (Curses or Gtk color), default value: 'lightred'@* @item history_max_lines Maximum number of lines in history for one server/channel/private window (0 = unlimited)@* Type: integer (values: between 0 and 2147483647), default value: 4096@* @item history_max_commands Maximum number of user commands in history (0 = unlimited)@* Type: integer (values: between 0 and 2147483647), default value: 100@* @item log_auto_server Automatically log server messages@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item log_auto_channel Automatically log channel chats@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item log_auto_private Automatically log private chats@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item log_plugin_msg Log messages from plugins (scripts)@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item log_path Path for WeeChat log files@* Type: string (any string), default value: '~/.weechat/logs/'@* @item log_timestamp Timestamp for log (see man strftime for date/time specifiers)@* Type: string (any string), default value: '%Y %b %d %H:%M:%S'@* @item log_hide_nickserv_pwd Hide password displayed by nickserv@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item irc_display_away Display message to all channels when (un)marking as away@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item irc_default_msg_away Default message when away@* Type: string (any string), default value: 'away'@* @item irc_default_msg_part Default part message (leaving channel)@* Type: string (any string), default value: 'WeeChat %v'@* @item irc_default_msg_quit Default quit message ('%v' will be replaced by WeeChat version in string)@* Type: string (any string), default value: 'WeeChat %v'@* @item irc_notice_as_pv Display notices as private messages@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item irc_away_check Interval between two checks for away (in minutes, 0 = never check)@* Type: integer (values: between 0 and 2147483647), default value: 0@* @item irc_lag_check Interval between two checks for lag (in seconds)@* Type: integer (values: between 30 and 2147483647), default value: 60@* @item irc_lag_min_show Minimum lag to show (in seconds)@* Type: integer (values: between 0 and 2147483647), default value: 1@* @item irc_lag_disconnect Disconnect after important lag (in minutes, 0 = never disconnect)@* Type: integer (values: between 0 and 2147483647), default value: 5@* @item irc_fifo_pipe Create a FIFO pipe for remote control@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item irc_highlight Comma separated list of words to highlight (case insensitive comparison)@* Type: string (any string), default value: ''@* @item dcc_auto_accept_files Automatically accept incoming dcc files@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item dcc_auto_accept_chats Automatically accept dcc chats (use carefully!)@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item dcc_timeout Timeout for dcc request (in seconds)@* Type: integer (values: between 1 and 2147483647), default value: 300@* @item dcc_blocksize Block size for dcc packets in bytes (default: 65536)@* Type: integer (values: between 1024 and 102400), default value: 65536@* @item dcc_download_path Path for writing incoming files with dcc (default: user home)@* Type: string (any string), default value: '~'@* @item dcc_upload_path Path for reading files when sending thru dcc (when no path is specified)@* Type: string (any string), default value: '~'@* @item dcc_convert_spaces Convert spaces to underscores when sending files@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item dcc_auto_rename Rename incoming files if already exists (add '.1', '.2', ...)@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item dcc_auto_resume Automatically resume dcc transfer if connection with remote host is loosed@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item proxy_use Use a proxy server to connect to irc server@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item proxy_type Proxy type (http (default), socks4, socks5)@* Type: string (values: 'http', 'socks4', 'socks5'), default value: 'http'@* @item proxy_ipv6 Connect to proxy in ipv6@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item proxy_address Proxy server address (IP or hostname)@* Type: string (any string), default value: ''@* @item proxy_port Port for connecting to proxy server@* Type: integer (values: between 0 and 65535), default value: 3128@* @item proxy_username Username for proxy server@* Type: string (any string), default value: ''@* @item proxy_password Password for proxy server@* Type: string (any string), default value: ''@* @item plugins_path Path for searching plugins@* Type: string (any string), default value: '~/.weechat/plugins'@* @item plugins_autoload Comma separated list of plugins to load automatically at startup, "*" means all plugins found (names may be partial, for example "perl" is ok for "libperl.so")@* Type: string (any string), default value: '*'@* @item plugins_extension Standard plugins extension in filename, used for autoload (if empty, then all files are loaded when autoload is "*")@* Type: string (any string), default value: '.so'@* @item server_name Name associated to IRC server (for display only)@* Type: string (any string), default value: ''@* @item server_autoconnect Automatically connect to server when WeeChat is starting@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item server_autoreconnect Automatically reconnect to server when disconnected@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item server_autoreconnect_delay Delay (in seconds) before trying again to reconnect to server@* Type: integer (values: between 0 and 65535), default value: 30@* @item server_address IP address or hostname of IRC server@* Type: string (any string), default value: ''@* @item server_port Port for connecting to server@* Type: integer (values: between 0 and 65535), default value: 6667@* @item server_ipv6 Use IPv6 protocol for server communication@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item server_ssl Use SSL for server communication@* Type: boolean (values: 'on' or 'off'), default value: 'off'@* @item server_password Password for IRC server@* Type: string (any string), default value: ''@* @item server_nick1 Nickname to use on IRC server@* Type: string (any string), default value: ''@* @item server_nick2 Alternate nickname to use on IRC server (if nickname is already used)@* Type: string (any string), default value: ''@* @item server_nick3 2nd alternate nickname to use on IRC server (if alternate nickname is already used)@* Type: string (any string), default value: ''@* @item server_username User name to use on IRC server@* Type: string (any string), default value: ''@* @item server_realname Real name to use on IRC server@* Type: string (any string), default value: ''@* @item server_command First command to run when connected to server@* Type: string (any string), default value: ''@* @item server_command_delay Delay (in seconds) after command was executed (example: give some time for authentication)@* Type: integer (values: between 0 and 5), default value: 0@* @item server_autojoin Comma separated list of channels to join when connected to server (example: "#chan1,#chan2,#chan3 key1,key2")@* Type: string (any string), default value: ''@* @item server_autorejoin Automatically rejoin channels when kicked@* Type: boolean (values: 'on' or 'off'), default value: 'on'@* @item server_notify_levels Comma separated list of notify levels for channels of this server (format: #channel:1,..)@* Type: string (any string), default value: ''@* @end table Colors for Curses GUI are:@* @itemize @minus @item @kbd{default}: default color (transparent for background) @item @kbd{black}: black @item @kbd{red}: dark red @item @kbd{lightred}: light red @item @kbd{green}: dark green @item @kbd{lightgreen}: light green @item @kbd{brown}: brown @item @kbd{yellow}: yellow @item @kbd{blue}: dark blue @item @kbd{lightblue}: light blue @item @kbd{magenta}: dark magenta @item @kbd{lightmagenta}: light magenta @item @kbd{cyan}: dark cyan @item @kbd{lightcyan}: light cyan @item @kbd{white}: white @end itemize @node Recursos de teclado, Comandos do WeeChat, Config file, Utilizacao @section Recursos de teclado @table @kbd @item Seta esquerda / Seta direita Ir um caractere para traz / para a frente na linha de comando@* @* @item Ctrl + Seta esquerda / Ctrl + Seta Direita Ir uma palavra para traz / para a frente na linha de comando@* @* @item Home / Ctrl + A Ir para o in@'icio da linha de comando@* @* @item End / Ctrl + E Ir para o fim da linha de comando@* @* @item Ctrl + K Delete until end of line@* @* @item Ctrl + L Redesenhe a janela inteira@* @* @item Ctrl + U Delete until beginning of line@* @* @item Ctrl + W Apagar a palavra anterior na linha de comando @* @item Backspace / Delete Apagar o caractere anterior / seguinte na linha de comando@* @* @item Tab Completar o comando ou o nick (@kbd{Tab} novamente : encontrar a pr@'oxima sugest@~ao)@* @* @item Qualquer caractere Inserir o caractere na linha de comando, no s@'itio do cursor@* @* @item Enter Executa o comando ou envia a mensagem@* @* @item Seta para cima / Seta para baixo Repetir os ultimos comandos/mensagens@* @* @item Ctrl + up arrow / Ctrl + down arrow Call again last commands/messages in global history@* @* @item PageUp / PageDown Navegar no hist@'orico da janela@* @* @item F5 / F6 Comute ao amortecedor anterior / seguinte@* @* @item F7 / F8 Comute ao janela anterior / seguinte@* @* @item F10 Apagar a @'ultima mensagem da barra do info@* @* @item F11 / F12 Scroll nicklist@* @* @item Alt + Seta da esquerda / Alt + Seta da direita Identico a F5 / F6@* @* @item Alt + A Comute ao amortecedor seguinte com atividade (com prioridade: destaque, mensagem, outra)@* @* @item Alt + B Go to previous word@* @* @item Alt + D Delete next word@* @* @item Alt + F Go to next word@* @* @item Alt + H Hotlist desobstru@'ido (notifica@,{c}@~ao da atividade em outros amortecedores)@* @* @item Alt + J then Alt + D Exposi@,{c}@~ao DCC atual@* @* @item Alt + J then Alt + L Switch to last buffer@* @* @item Alt + J then Alt + S Comute ao amortecedor do servidor@* @* @item Alt + J then Alt + X Comute @`a primeira canaleta do servidor seguinte (ou do amortecedor do servidor se nenhuma canaleta for aberta)@* @* @item Alt + d@'igito (1-9) Comute ao amortecedor pelo n@'umero@* @* @item Alt + J then number (01-99) Comute ao amortecedor pelo n@'umero@* @* @item Alt + K Grab a key @* @item Alt + R Delete entire line@* @* @item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End Scroll nicklist@* @* @end table @node Comandos do WeeChat, FIFO pipe, Recursos de teclado, Utilizacao @section Comandos do WeeChat WeeChat internal commands:@* @table @kbd @item alias [alias_name [command [arguments]] @* create an alias for a command@* @* alias_name: name of alias@* command: command name (WeeChat or IRC command, without first '/')@* arguments: arguments for command@* @* @item buffer [action | number] @* manage buffers@* @* action: action to do:@* move: move buffer in the list (may be relative, for example -1)@* close: close buffer (for channel: same as /part without part message)@* list: list opened buffers (no parameter implies this list)@* notify: set notify level for buffer (0=never, 1=highlight, 2=1+msg, 3=2+join/part)@* number: jump to buffer by number@* @* @item clear [-all] @* clear window(s)@* @* -all: clear all windows@* @* @item connect [servername] @* connect to a server@* @* servername: server name to connect@* @* @item disconnect [servername] @* disconnect from a server@* @* servername: server name to disconnect@* @* @item debug dump @* print debug messages@* @* dump: save memory dump in WeeChat log file (same dump is written when WeeChat crashes)@* @* @item help [command] @* display help about commands@* @* command: name of a WeeChat or IRC command@* @* @item ignore [mask [[type | command] [channel [server]]]] @* ignore IRC messages and/or hosts@* @* mask: nick or host mask to ignore@* type: type of message to ignore (action, ctcp, dcc, pv)@* command: IRC command@* channel: name of channel for ignore@* server: name of server for ignore@* @* For each argument, '*' means all.@* Without argument, /ignore command lists all defined ignore.@* @* @item key [key function/command] [unbind key] [functions] [reset -yes] @* bind/unbind keys@* @* key: bind this key to an internal function or a command (beginning by "/")@* unbind: unbind a key (if "all", default bindings are restored)@* functions: list internal functions for key bindings@* reset: restore bindings to the default values and delete ALL personal binding (use carefully!)@* @* @item plugin [load filename] | [autoload] | [reload] | [unload] @* list/load/unload plugins@* @* filename: WeeChat plugin (file) to load@* @* Without argument, /plugin command lists all loaded plugins.@* @* @item server [servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 nick2 nick3] [-username username] [-realname realname] [-command command] [-autojoin channel[,channel]] ] | [del servername] @* list, add or remove servers@* @* servername: server name, for internal & display use@* hostname: name or IP address of server@* port: port for server (integer)@* ipv6: use IPv6 protocol@* ssl: use SSL protocol@* password: password for server@* nick1: first nick for server@* nick2: alternate nick for server@* nick3: second alternate nick for server@* username: user name@* realname: real name of user@* @* @item save [file] @* save config to disk@* @* file: filename for writing config@* @* @item set [option [ = value]] @* set config parameters@* @* option: name of an option (if name is full and no value is given, then help is displayed on option)@* value: value for option@* @* @item unalias alias_name @* remove an alias@* @* alias_name: name of alias to remove@* @* @item unignore [number | [mask [[type | command] [channel [server]]]]] @* unignore IRC messages and/or hosts@* @* number: # of ignore to unignore (number is displayed by list of ignore)@* mask: nick or host mask to unignore@* type: type of message to unignore (action, ctcp, dcc, pv)@* command: IRC command@* channel: name of channel for unignore@* server: name of server for unignore@* @* For each argument, '*' means all.@* Without argument, /unignore command lists all defined ignore.@* @* @item window [list | splith | splitv | [merge [down | up | left | right | all]]] @* manage windows@* @* list: list opened windows (no parameter implies this list)@* splith: split current window horizontally@* splitv: split current window vertically@* merge: merge window with another@* @* @end table IRC commands:@* @table @kbd @item admin [target] @* find information about the administrator of the server@* @* target: server@* @* @item ame message @* send a CTCP action to all channels of all connected servers@* @* message: message to send@* @* @item amsg text @* send message to all channels of all connected servers@* @* text: text to send@* @* @item away [-all] [message] @* toggle away status@* @* -all: toggle away status on all connected servers@* message: message for away (if no message is given, away status is removed)@* @* @item ban [channel] [nickname [nickname ...]] @* bans nicks or hosts@* @* channel: channel for ban@* nickname: user or host to ban@* @* @item ctcp nickname type [arguments] @* send a CTCP message (Client-To-Client Protocol)@* @* nickname: user to send CTCP to@* type: CTCP type (examples: "version", "ping", ..)@* arguments: arguments for CTCP@* @* @item dcc action [nickname [file]] @* starts DCC (file or chat) or close chat@* @* action: 'send' (file) or 'chat' or 'close' (chat)@* nickname: nickname to send file or chat@* file: filename (on local host)@* @* @item dehalfop [nickname [nickname]] @* removes half channel operator status from nickname(s)@* @* @item deop [nickname [nickname]] @* removes channel operator status from nickname(s)@* @* @item devoice [nickname [nickname]] @* removes voice from nickname(s)@* @* @item die @* shutdown the server@* @* @item halfop [nickname [nickname]] @* gives half channel operator status to nickname(s)@* @* @item info [target] @* get information describing the server@* @* target: server name@* @* @item invite nickname channel @* invite a nick on a channel@* @* nickname: nick to invite@* channel: channel to invite@* @* @item ison nickname [nickname ...] @* check if a nickname is currently on IRC@* @* nickname: nickname@* @* @item join channel[,channel] [key[,key]] @* join a channel@* @* channel: channel name to join@* key: key to join the channel@* @* @item kick [channel] nickname [comment] @* forcibly remove a user from a channel@* @* channel: channel where user is@* nickname: nickname to kick@* comment: comment for kick@* @* @item kickban [channel] nickname [comment] @* kicks and bans a nick from a channel@* @* channel: channel where user is@* nickname: nickname to kick and ban@* comment: comment for kick@* @* @item kill nickname comment @* close client-server connection@* @* nickname: nickname@* comment: comment for kill@* @* @item links [[server] server_mask] @* list all servernames which are known by the server answering the query@* @* server: this server should answer the query@* server_mask: list of servers must match this mask@* @* @item list [channel[,channel] [server]] @* list channels and their topic@* @* channel: channel to list@* server: server name@* @* @item lusers [mask [target]] @* get statistics about the size of the IRC network@* @* mask: servers matching the mask only@* target: server for forwarding request@* @* @item me message @* send a CTCP action to the current channel@* @* message: message to send@* @* @item mode @{ channel @{[+|-]|o|p|s|i|t|n|b|v@} [limit] [user] [ban mask] @} | @{ nickname @{[+|-]|i|w|s|o@} @} @* change channel or user mode@* @* channel modes:@* channel: channel name to modify@* o: give/take channel operator privileges@* p: private channel flag@* s: secret channel flag@* i: invite-only channel flag@* t: topic settable by channel operator only flag@* n: no messages to channel from clients on the outside@* m: moderated channel@* l: set the user limit to channel@* b: set a ban mask to keep users out@* e: set exception mask@* v: give/take the ability to speak on a moderated channel@* k: set a channel key (password)@* user modes:@* nickname: nickname to modify@* i: mark a user as invisible@* s: mark a user for receive server notices@* w: user receives wallops@* o: operator flag@* @* @item motd [target] @* get the "Message Of The Day"@* @* target: server name@* @* @item msg receiver[,receiver] text @* send message to a nick or channel@* @* receiver: nick or channel (may be mask, '*' = current channel)@* text: text to send@* @* @item names [channel[,channel]] @* list nicknames on channels@* @* channel: channel name@* @* @item nick [-all] nickname @* change current nickname@* @* -all: set new nickname for all connected servers@* nickname: new nickname@* @* @item notice nickname text @* send notice message to user@* @* nickname: user to send notice to@* text: text to send@* @* @item op nickname [nickname] @* gives channel operator status to nickname(s)@* @* @item oper user password @* get operator privileges@* @* user/password: used to get privileges on current IRC server@* @* @item part [channel[,channel]] [part_message] @* leave a channel@* @* channel: channel name to leave@* part_message: part message (displayed to other users)@* @* @item ping server1 [server2] @* ping server@* @* server1: server to ping@* server2: forward ping to this server@* @* @item pong daemon [daemon2] @* answer to a ping message@* @* daemon: daemon who has responded to Ping message@* daemon2: forward message to this daemon@* @* @item query nickname [text] @* send a private message to a nick@* @* nickname: nickname for private conversation@* text: text to send@* @* @item quit [quit_message] @* close all connections & quit@* @* quit_message: quit message (displayed to other users)@* @* @item quote data @* send raw data to server without parsing@* @* data: raw data to send@* @* @item rehash @* tell the server to reload its config file@* @* @item restart @* tell the server to restart itself@* @* @item service nickname reserved distribution type reserved info @* register a new service@* @* distribution: visibility of service@* type: reserved for future usage@* @* @item servlist [mask [type]] @* list services currently connected to the network@* @* mask: list only services matching this mask@* type: list only services of this type@* @* @item squery service text @* deliver a message to a service@* @* service: name of service@* text: text to send@* @* @item squit server comment @* disconnect server links@* @* server: server name@* comment: comment for quit@* @* @item stats [query [server]] @* query statistics about server@* @* query: c/h/i/k/l/m/o/y/u (see RFC1459)@* server: server name@* @* @item summon user [target [channel]] @* give users who are on a host running an IRC server a message asking them to please join IRC@* @* user: username@* target: server name@* channel: channel name@* @* @item time [target] @* query local time from server@* @* target: query time from specified server@* @* @item topic [channel] [topic] @* get/set channel topic@* @* channel: channel name@* topic: new topic for channel (if topic is "-delete" then topic is deleted)@* @* @item trace [target] @* find the route to specific server@* @* target: server@* @* @item unban [channel] nickname [nickname ...] @* unbans nicks or hosts@* @* channel: channel for unban@* nickname: user or host to unban@* @* @item userhost nickname [nickname ...] @* return a list of information about nicknames@* @* nickname: nickname@* @* @item users [target] @* list of users logged into the server@* @* target: server@* @* @item version [server | nickname] @* gives the version info of nick or server (current or specified)@* @* server: server name@* nickname: nickname@* @* @item voice [nickname [nickname]] @* gives voice to nickname(s)@* @* @item wallops text @* send a message to all currently connected users who have set the 'w' user mode for themselves@* @* text to send@* @* @item who [mask ["o"]] @* generate a query which returns a list of information@* @* mask: only information which match this mask@* o: only operators are returned according to the mask supplied@* @* @item whois [server] nickname[,nickname] @* query information about user(s)@* @* server: server name@* nickname: nickname (may be a mask)@* @* @item whowas nickname [,nickname [,nickname ...]] [count [target]] @* ask for information about a nickname which no longer exists@* @* nickname: nickname to search@* count: number of replies to return (full search if negative number)@* target: reply should match this mask@* @* @end table Internal functions for keys:@* @table @kbd @item return terminate line@* @item tab complete word@* @item backspace delete previous char@* @item delete delete next char@* @item delete_end_line delete until end of line@* @item delete_beginning_line delete until beginning of line@* @item delete_line delete entire line@* @item delete_previous_word delete previous word@* @item delete_next_word delete next word@* @item clipboard_paste paste current clipboard content@* @item transpose_chars transpose chars@* @item home go to beginning of line@* @item end go to end of line@* @item left move one char left@* @item previous_word move to previous word@* @item right move one char right@* @item next_word move to next word@* @item up call previous command in history@* @item up_global call previous command in global history@* @item down call next command in history@* @item down_global call next command in global history@* @item page_up scroll one page up@* @item page_down scroll one page down@* @item infobar_clear clear infobar@* @item nick_page_up scroll nicklist one page up@* @item nick_page_down scroll nicklist one page down@* @item nick_beginning display beginning of nicklist@* @item nick_end display end of nicklist@* @item refresh refresh screen@* @item jump_smart jump to buffer with activity@* @item jump_dcc jump to DCC buffer@* @item jump_last_buffer jump to last buffer@* @item jump_server jump to server buffer@* @item jump_next_server jump to next server@* @item hotlist_clear clear hotlist@* @item grab_key grab a key@* @end table @node FIFO pipe, , Comandos do WeeChat, Utilizacao @section FIFO pipe You can remote control WeeChat, by sending commands or text to a FIFO pipe (you have to enable option "irc_fifo_pipe", it is disabled by default).@* The FIFO pipe is located in ~/.weechat/ and is called "weechat_fifo_xxxxx" (where xxxxx is the process ID (PID) of running WeeChat).@* So if many WeeChat are running, you have many FIFO pipe, one for each session.@* @* The syntax for the FIFO pipe commands/text is:@* @command{server,channel *text or command here}@* where server and channel are optional, but if channel is here, server should be too.@* @* Some examples: @table @asis @item @bullet{} change your nick on freenode to "mynick|out": @* @command{echo "freenode */nick mynick|out" >~/.weechat/weechat_fifo_12345} @* @item @bullet{} display text on #weechat channel: @* @command{echo "freenode,#weechat *hello everybody!" >~/.weechat/weechat_fifo_12345} @* @item @bullet{} display text on current channel (buffer displayed by WeeChat): @* @command{echo "*hello!" >~/.weechat/weechat_fifo_12345} @* @b{Warning:} this is dangerous and you should not do that except if you know what you do! @* @item @bullet{} send 2 commands to unload/reload Perl scripts (you have to separate them with \n): @* @command{echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345} @end table @* You can write a script to send command to all running WeeChat at same time, for example:@* @verbatim #!/bin/sh if [ $# -eq 1 ]; then for fifo in $(/bin/ls ~/.weechat/weechat_fifo_* 2>/dev/null); do echo -e "$1" >$fifo done fi @end verbatim @* If the script is called "auto_weechat_command", you can run it with:@* @command{./auto_weechat_command "freenode,#weechat *hello"} @c ********************************* Plugins ********************************** @node Plugins, Autores/Suporte, Utilizacao, Top @chapter Plugins @menu * Plugins in WeeChat:: * Write a plugin:: * Plugin example:: * Scripts plugins:: @end menu @node Plugins in WeeChat, Write a plugin, Plugins, Plugins @section Plugins in WeeChat A plugin is a C program which can call WeeChat functions defined in an interface.@* @* This C program does not need WeeChat sources to compile and can be dynamically loaded into WeeChat with command @command{/plugin}.@* @* The plugin has to be a dynamic library, for dynamic loading by operating system. Under GNU/Linux, the file has ``.so'' extension. @node Write a plugin, Plugin example, Plugins in WeeChat, Plugins @section Write a plugin @subsection Base rules The plugin should include ``weechat-plugin.h'' file (available in WeeChat source code).@* This file defines structures and types used to communicate with WeeChat.@* @* The plugin must have some variables and functions (mandatory, without them the plugin can't load):@* @itemize @bullet @item variables for plugin description: @itemize @minus @item plugin_name[]: plugin name @item plugin_version[]: plugin version @item plugin_description[]: short description of plugin @end itemize @item functions for init and end of plugin: @itemize @minus @item weechat_plugin_init: function called when plugin is loaded @item weechat_plugin_end: function called when plugin is unloaded @end itemize @end itemize @subsection API functions The plugin can call some functions defined in t_weechat_plugin structure.@* These functions are detailed below: @itemize @bullet @item @command{int ascii_strcasecmp (t_weechat_plugin *plugin, char *string1, char *string2)}@* @* locale and case independent string comparison.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{string1}: first string for comparison @item @option{string2}: second string for comparison @end itemize @* @emph{Return value:}@* @* Difference between two strings: negative if chaine1 < chaine2, nul if chaine1 == chaine 2, positive if chaine1 > chaine2@* @* @emph{Example:}@* @* @code{if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ...}@* @* @item @command{char **explode_string (t_weechat_plugin *plugin, char *string, char *separators, int num_items_max, int *num_items)}@* @* Explode a string according to one or more delimiter(s).@* @emph{Param@`etres :} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{string}: string to explode @item @option{separators}: delimiters used for explosion @item @option{num_items_max}: maximum number of items created (0 means no limit) @item @option{num_items}: pointer to int which will contain number of items created @end itemize @* @emph{Return value:}@* @* Array of strings, NULL if problem.@* Note: the result has to be free by a call to ``free_exploded_string'' function after use.@* @* @emph{Example:}@* @* @code{char *argv;}@* @code{int argc;}@* @code{argv = plugin->explode_string (plugin, string, " ", 0, &argc);}@* @code{...}@* @code{if (argv != NULL)}@* @code{plugin->free_exploded_string (plugin, argv);}@* @* @item @command{char **free_exploded_string (t_weechat_plugin *plugin, char **string)}@* @* Free memory used by a string explosion.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{string}: string exploded by ``explode_string'' function @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Example:}@* @* @code{char *argv;}@* @code{int argc;}@* @code{argv = plugin->explode_string (plugin, string, " ", 0, &argc);}@* @code{...}@* @code{if (argv != NULL)}@* @code{plugin->free_exploded_string (plugin, argv);}@* @* @item @command{void exec_on_files (t_weechat_plugin *plugin, char *directory, int (*callback)(t_weechat_plugin *, char *))}@* @* Execute a function on all files of a directory.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{directory}: directory for searching files @item @option{callback}: function called for each file found @end itemize @* @emph{Return value:}@* @* Aucune.@* @* @emph{Exemple :}@* @* @code{int callback (t_weechat_plugin *plugin, char *file)}@* @code{@{}@* @code{@ @ @ @ plugin->printf_server (plugin, "file: %s", file);}@* @code{@ @ @ @ return 1;}@* @code{@}}@* @code{}@* @code{...}@* @code{plugin->exec_on_files (plugin, "/tmp", &callback);}@* @* @item @command{void printf (t_weechat_plugin *plugin, char *server, char *channel, char *message, ...)}@* @* Display a message on a WeeChat buffer, identified by server and channel (both may be NULL).@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{server}: name of server to find buffer for message display (may be NULL) @item @option{channel}: name of channel to find buffer for message display (may be NULL) @item @option{message}: message @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Examples:}@* @* @code{plugin->printf (NULL, NULL, "hello");}@* @code{plugin->printf (NULL, "#weechat", "hello");}@* @code{plugin->printf ("freenode", "#weechat", "hello");}@* @* @item @command{void printf_server (t_weechat_plugin *plugin, char *message, ...)}@* @* Display a message on server buffer.@* @emph{Param@`etres :} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{message}: message @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Example:}@* @* @code{plugin->printf_server ("hello");}@* @* @item @command{void printf_infobar (t_weechat_plugin *plugin, int time, char *message, ...)}@* @* Display a message in infobar for a specified time.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{time}: time in seconds for displaying message (0 means never erased) @item @option{message}: message @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Example:}@* @* @code{plugin->printf_infobar (5, "hello");}@* @* @item @command{t_plugin_msg_handler *msg_handler_add (t_weechat_plugin *plugin, char *message, t_plugin_handler_func *handler_func, char *handler_args, void *handler_pointer)}@* @* Add an IRC message handler, called when an IRC message is received.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{message}: IRC message (for example: ``PRIVMSG'') @item @option{handler_func}: function called when message is received @item @option{handler_args}: arguments given to function when called @item @option{handler_pointer}: pointer given to function when called @end itemize @* @emph{Return value:}@* @* Pointer to new message handler.@* @* @emph{Example:}@* @* @code{int msg_kick (t_weechat_plugin *plugin, char *server, char *command, char *arguments, char *handler_args, void *handler_pointer)}@* @code{@{}@* @code{@ @ @ @ plugin->printf (plugin, server, NULL, "KICK received");}@* @code{@}}@* @code{...}@* @code{plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);}@* @* @item @command{void msg_handler_remove (t_weechat_plugin *plugin, t_plugin_msg_handler *msg_handler)}@* @* Remove an IRC message handler.@* @emph{Param@`etres :} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{msg_handler}: handler to remove @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Example:}@* @* @code{plugin->msg_handler_remove (plugin, my_msg_handler);}@* @* @item @command{void msg_handler_remove_all (t_weechat_plugin *plugin)}@* @* Remove all IRC message handlers for a plugin.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Example:}@* @* @code{plugin->msg_handler_remove_all (plugin);}@* @* @item @command{t_plugin_cmd_handler *cmd_handler_add (t_weechat_plugin *plugin, char *command, char *description, char *arguments, char *arguments_description, t_plugin_handler_func *handler_func, char *handler_args, void *handler_pointer)}@* @* Add a WeeChat command handler, called when user uses command (for example /command).@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{commande}: the new command @item @option{description}: command description (displayed by /help command) @item @option{arguments}: short description of command arguments (displayed by /help command) @item @option{arguments_description}: long description of command arguments (displayed by /help command) @item @option{handler_func}: function called when comand is executed @item @option{handler_args}: arguments given to function when called @item @option{handler_pointer}: pointer given to function when called @end itemize @* @emph{Return value:}@* @* Pointer to new command handler.@* @* @emph{Example:}@* @* @code{int cmd_test (t_weechat_plugin *plugin, char *server, char *command, char *arguments, char *handler_args, void *handler_pointer)}@* @code{@{}@* @code{@ @ @ @ plugin->printf (plugin, server, NULL, "test command, file: %s", (arguments) ? arguments : "none");}@* @code{@}}@* @code{...}@* @code{plugin->cmd_handler_add (plugin, "test", "Test command", "[file]", "file: a file name", &cmd_test, NULL, NULL);}@* @* @item @command{void cmd_handler_remove (t_weechat_plugin *plugin, t_plugin_cmd_handler *cmd_handler)}@* @* Remove a command handler.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{cmd_handler}: command handler to remove @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Example:}@* @* @code{plugin->cmd_handler_remove (plugin, my_cmd_handler);}@* @* @item @command{void cmd_handler_remove_all (t_weechat_plugin *plugin)}@* @* Remove all command handlers for a plugin.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Example :}@* @* @code{plugin->cmd_handler_remove_all (plugin);}@* @* @item @command{void exec_command (t_weechat_plugin *plugin, char *server, char *channel, char *command)}@* @* Execute a WeeChat command (or send a message to a channel).@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{server}: name of server for executing command (may be NULL) @item @option{channel}: name of channel for executing command (may be NULL) @item @option{command}: command @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Examples:}@* @* @code{plugin->exec_command (plugin, NULL, NULL, "/help nick");}@* @code{plugin->exec_command (plugin, "freenode", "#weechat", "hello");}@* @* @item @command{char *get_info (t_weechat_plugin *plugin, char *info, char *server, char *channel)}@* @* Return an info about WeeChat or a channel.@* @emph{Param@`etres :} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{info}: name of info to read: @itemize @minus @item @option{version}: get WeeChat's version @item @option{nick}: get nick @item @option{channel}: get channel name @item @option{server}: get server name @item @option{away}: get ``away'' flag @item @option{weechat_dir}: get WeeChat home dir @item @option{weechat_libdir}: get WeeChat system lib dir @item @option{weechat_sharedir}: get WeeChat system share dir @end itemize @item @option{server}: name of server for reading info (if needed) @item @option{channel}: name of channel for reading info (if needed) @end itemize @* @emph{Return value:}@* @* Information asked, NULL if not found.@* Note: result has to be free by a call to ``free'' function after use.@* @* @emph{Examples:}@* @* @code{char *version = plugin->get_info (plugin, "version", NULL, NULL);}@* @code{char *nick = plugin->get_info (plugin, "nick", "freenode", NULL);}@* @* @item @command{t_plugin_info_dcc *get_dcc_info (t_weechat_plugin *plugin)}@* @* Returns list of DCC currently active or finished.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @end itemize @* @emph{Return value:}@* @* Chained list of DCC.@* Note: result has to be free by a call to ``free_dcc_info'' function after use.@* @* @emph{Example:}@* @* @code{t_plugin_dcc_info *dcc_info = plugin->get_dcc_info (plugin);}@* @code{for (ptr_dcc = dcc_info; ptr_dcc; ptr_dcc = ptr_dcc->next_dcc)}@* @code{@{}@* @code{@ @ @ @ plugin->printf_server (plugin, "DCC type=%d, with: %s", ptr_dcc->type, ptr_dcc->nick);}@* @code{@}}@* @* @item @command{void free_dcc_info (t_weechat_plugin *plugin, t_plugin_dcc_info *dcc_info)}@* @* Free memory used by a DCC list.@* @emph{Param@`etres :} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{dcc_info}: pointer to DCC list returned by ``get_dcc_info'' function @end itemize @* @emph{Return value:}@* @* None.@* @* @emph{Example:}@* @* @code{plugin->free_dcc_info (plugin, dcc_info);}@* @* @item @command{char *get_config (t_weechat_plugin *plugin, char *option)}@* @* Return value of a WeeChat config option.@* @emph{Arguments:} @itemize @minus @item @option{plugin}: pointer to plugin structure @item @option{option}: name of option to read @end itemize @* @emph{Return value:}@* @* Value of option, NULL if not found.@* Note: result has to be free by a call to ``free'' function after use.@* @* @emph{Examples:}@* @* @code{char *value1 = plugin->get_config (plugin, "look_set_title");}@* @code{char *value2 = plugin->get_config (plugin, "freenode.server_autojoin");}@* @* @end itemize @subsection Compile plugin Compile does not need WeeChat sources, only file ``weechat-plugin.h''.@* To compile a plugin which has one file ``toto.c'' (sous GNU/Linux):@* @* gcc -fPIC -Wall -c toto.c@* gcc -shared -fPIC -o libtoto.so toto.o @subsection Load plugin under WeeChat Copy ``libtoto.so'' file into general plugins dir (for example /usr/local/lib/weechat/plugins) or into user's plugins dir (for example /home/xxxxx/.weechat/plugins).@* @* Under WeeChat:@* @command{/plugin load toto} @node Plugin example, Scripts plugins, Write a plugin, Plugins @section Plugin example Full example of plugin, which adds a /double command, which displays two times arguments on current channel (ok that's not very useful, but that's just an example!): @verbatim #include #include "weechat-plugin.h" char plugin_name[] = "Toto"; char plugin_version[] = "0.1"; char plugin_description[] = "Test plugin for WeeChat"; /* gestionnaire de commande "/hello" */ int toto_cmd_double (t_weechat_plugin *plugin, char *server, char *command, char *arguments, char *handler_args, void *handler_pointer) { if (arguments && arguments[0] && (arguments[0] != '/')) { plugin->exec_command (plugin, NULL, NULL, arguments); plugin->exec_command (plugin, NULL, NULL, arguments); } return 1; } int weechat_plugin_init (t_weechat_plugin *plugin) { plugin->cmd_handler_add (plugin, "double", "Display two times a message", "msg", "msg: message", &toto_cmd_double, NULL, NULL); return 1; } int weechat_plugin_end (t_weechat_plugin *plugin) { /* on ne fait rien ici */ return 1; } @end verbatim @node Scripts plugins, , Plugin example, Plugins @section Scripts plugins Three plugins are provided with WeeChat to load scripts: Perl, Python and Ruby. @subsection Perl scripts @subsubsection Carregar/Descarregar Scripts Perl Os Scripts Perl s@~ao carregados e descarregados com o comando @command{/perl}. (escreve @kbd{/help perl} dentro do WeeChat para obteres ajuda acerca do comando).@* @emph{Exemplos:}@* @itemize @bullet @item Carregar um Script Perl: @kbd{/perl load /tmp/sample.pl}@* @item Descarregar todos os Scripts Perl: @kbd{/perl unload}@* @item Listar todos os Scripts Perl: @kbd{/perl}@* @end itemize @subsubsection Interface WeeChat / Perl @itemize @bullet @item @command{weechat::register ( nome, vers@~ao, fun@,{c}@~ao_de_shutdown, descri@,{c}@~ao );}@* @* Esta @'e a primeira fun@,{c}@~ao a invocar num Script Perl.@* Todos os Scripts Perl para o Weechat devem invocar esta fun@,{c}@~ao.@* @emph{Argumentos:} @itemize @minus @item @option{nome}: nome @'unico que indentifique o script (cada Script Perl deve ter um @'unico nome) @item @option{vers@~ao}: vers@~ao do script @item @option{fun@,{c}@~ao_de_shutdown}: fun@,{c}@~ao Perl invocada quando o script é descarregado (par@^ametro opcional, se deixado em branco significa que nada deve ser chamado) @item @option{descri@,{c}@~ao}: breve descri@,{c}@~ao do script. @end itemize @* @emph{Exemplo:}@* @* @code{weechat::register ("sample", "1.0", "sample_end", "Sample script!");}@* @* @item @command{weechat::print ( mensagem, [canal, [servidor]] );}@* @* Imprimne uma mensagem na canal.@* @emph{Argumentos:} @itemize @minus @item @option{mensagem}: mensagem a mostrar @item @option{canal}: nome da canal @item @option{servidor}: nome interno da servidor @end itemize @* @emph{Exemplos:}@* @* @code{weechat::print ("mensagem");}@* @code{weechat::print ("mensagem", "#weechat");}@* @code{weechat::print ("mensagem", "#weechat", "freenode");}@* @* @item @command{weechat::print_infobar ( atrasa, mensagem );}@* @* Imprimne uma mensagem na barra do info.@* @emph{Argumentos:} @itemize @minus @item @option{atrasa}: depois que isto atrasa (nos segundos), a mensagem estar@'a apagada (se 0, mensagem n@~ao forem apagados). @item @option{mensagem}: mensagem a mostrar @end itemize @* @emph{Exemplo:}@* @* @code{weechat::print_infobar (5, "mensagem");}@* @* @item @command{weechat::add_message_handler ( nome, fun@,{c}@~ao );}@* @* Anexa uma fun@,{c}@~ao Perl a uma mensagem de IRC.@* A fun@,{c}@~ao ser@'a invocada de cada vez que a mensagem IRC for recebida.@* @emph{Argumentos:} @itemize @minus @item @option{nome}: nome da mensagem IRC@* Para conheceres uma lista de mensagens de IRC, por favor lê o RFC 1459 e/ou o 2812:@* RFC 1459: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc1459.txt}@* RFC 2812: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc2812.txt} @item @option{fun@,{c}@~ao}: fun@,{c}@~ao Perl invocada quando a mensagem é recebida @end itemize @* @emph{Exemplo:}@* @* @code{weechat::add_message_handler ("privmsg", my_function);}@* @code{sub my_function}@* @code{@{ }@* @code{@ @ @ @ ($null, $channel, $message) = split ":",@@_[0],3;}@* @code{@ @ @ @ ($hostmask, $null, $channel) = split " ", $channel;}@* @code{@ @ @ @ weechat::print ("host=$hostmask, chan=$channel, msg=$message\n");}@* @code{@} }@* @* @item @command{weechat::add_command_handler ( nome, fun@,{c}@~ao );}@* @* Cria um novo comando do Weechat, ligado a uma fun@,{c}@~ao Perl.@* A fun@,{c}@~ao ser@'a chamada quando o utilizador a invocar utilizando @command{/nome}@* @emph{Argumentos:} @itemize @minus @item @option{nome}: nome do novo comando@* Este nome pode pertencer a um comando já existente, o qual ser@'a sobreposto pela fun@,{c}@~ao Perl. Tem cuidado quando fizeres isto: os comandos originais não estar@~ao acessiveis antes de teres descarregado o Script Perl. @item @option{fun@,{c}@~ao}: fun@,{c}@~ao Perl ligada ao comando @item @option{description}: command description (displayed by /help command) @item @option{arguments}: short description of command arguments (displayed by /help command) @item @option{arguments_description}: long description of command arguments (displayed by /help command) @end itemize @* @emph{Exemplo:}@* @* @code{weechat::add_command_handler ("command", my_command);}@* @code{sub my_command}@* @code{@{ }@* @code{@ @ @ @ weechat::print("Argumentos: ".@@_[0]);}@* @code{@ @ @ @ return 0;}@* @code{@} }@* @* @item @command{weechat::command ( command, [channel, [server]] );}@* @* Execute a command or send a message to a channel.@* @emph{Arguments:} @itemize @minus @item @option{command}: command to execute (or message to send in a channel) @item @option{channel}: name of channel @item @option{server}: internal name of server @end itemize @* @emph{Examples:}@* @* @code{weechat::command ("hello world!");}@* @code{weechat::command ("/kick toto please leave this chan", "#weechat");}@* @code{weechat::command ("/nick newnick", "", "freenode");}@* @* @item @command{weechat::get_info ( nome, [servidor] );}@* @* Comece o v@'ario info sobre WeeChat, servidor ou usu@'ario.@* @emph{Argumentos:} @itemize @minus @item @option{nome}: nome do info a recuperar: @itemize @minus @item @option{version}: comece a vers@~ao de WeeChat @item @option{nick}: comece o nickname @item @option{channel}: comece o nome da canal @item @option{server}: comece o nome do servidor @item @option{away}: get ``away'' flag @item @option{weechat_dir}: get WeeChat home dir @item @option{weechat_libdir}: get WeeChat system lib dir @item @option{weechat_sharedir}: get WeeChat system share dir @end itemize @item @option{servidor}: nome interno da servidor @end itemize @* @emph{Exemplos:}@* @* @code{$version = get_info("version");}@* @code{$nick = get_info("nick", "freenode");}@* @* @item @command{weechat::get_dcc_info ( );}@* @* Get DCC list.@* Returned array has following fields: @itemize @minus @item server: IRC server @item channel: IRC channel @item type: DCC type: @itemize @minus @item 0: chat (received) @item 1: chat (sent) @item 2: file (receiving) @item 3: file (sending) @end itemize @item status: DCC status: @itemize @minus @item 0: waiting @item 1: connecting @item 2: active @item 3: done @item 4: failed @item 5: aborted @end itemize @item start_time: date/time of DCC creation @item start_transfer: date/time of transfer start @item addr: remote address @item port: port used for DCC @item nick: remote nick @item filename: filename @item local_filename: local filename @item size: file size @item pos: current position in file @item start_resume: restart position after interruption @item bytes_per_sec: bytes sent/received per second @end itemize @* @item @command{weechat::get_config ( name );}@* @* Get WeeChat config option value.@* @emph{Arguments:} @itemize @minus @item @option{name}: name of option @end itemize @* @emph{Examples:}@* @* @code{$value1 = weechat::get_config ("look_set_title");}@* @code{$value2 = weechat::get_config ("freenode.server_autojoin");}@* @* @end itemize @subsection Python scripts @subsubsection Carregar/Descarregar Scripts Python Os Scripts Python s@~ao carregados e descarregados com o comando @command{/python}. (escreve @kbd{/help python} dentro do WeeChat para obteres ajuda acerca do comando).@* @emph{Exemplos:}@* @itemize @bullet @item Carregar um Script Python: @kbd{/python load /tmp/sample.py}@* @item Descarregar todos os Scripts Python: @kbd{/python unload}@* @item Listar todos os Scripts Python: @kbd{/python}@* @end itemize @subsubsection Interface WeeChat / Python @itemize @bullet @item @command{weechat.register ( nome, vers@~ao, fun@,{c}@~ao_de_shutdown, descri@,{c}@~ao );}@* @* Esta @'e a primeira fun@,{c}@~ao a invocar num Script Python.@* Todos os Scripts Python para o Weechat devem invocar esta fun@,{c}@~ao.@* @emph{Argumentos:} @itemize @minus @item @option{nome}: nome @'unico que indentifique o script (cada Script Python deve ter um @'unico nome) @item @option{vers@~ao}: vers@~ao do script @item @option{fun@,{c}@~ao_de_shutdown}: fun@,{c}@~ao Python invocada quando o script é descarregado (par@^ametro opcional, se deixado em branco significa que nada deve ser chamado) @item @option{descri@,{c}@~ao}: breve descri@,{c}@~ao do script. @end itemize @* @emph{Exemplo:}@* @* @code{weechat.register ("sample", "1.0", "sample_end", "Sample script!")}@* @* @item @command{weechat.prnt ( mensagem, [canal, [servidor]] )}@* @* Imprimne uma mensagem na canal.@* @emph{Argumentos:} @itemize @minus @item @option{mensagem}: mensagem a mostrar @item @option{canal}: nome da canal @item @option{servidor}: nome interno da servidor @end itemize @* @emph{Exemplos:}@* @* @code{weechat.prnt ("mensagem")}@* @code{weechat.prnt ("mensagem", "#weechat")}@* @code{weechat.prnt ("mensagem", "#weechat", "freenode")}@* @* @item @command{weechat.print_infobar ( atrasa, mensagem )}@* @* Imprimne uma mensagem na barra do info.@* @emph{Argumentos:} @itemize @minus @item @option{atrasa}: depois que isto atrasa (nos segundos), a mensagem estar@'a apagada (se 0, mensagem n@~ao forem apagados). @item @option{mensagem}: mensagem a mostrar @end itemize @* @emph{Exemplo:}@* @* @code{weechat.print_infobar (5, "mensagem")}@* @* @item @command{weechat.add_message_handler ( nome, fun@,{c}@~ao )}@* @* Anexa uma fun@,{c}@~ao Python a uma mensagem de IRC.@* A fun@,{c}@~ao ser@'a invocada de cada vez que a mensagem IRC for recebida.@* @emph{Argumentos:} @itemize @minus @item @option{nome}: nome da mensagem IRC@* Para conheceres uma lista de mensagens de IRC, por favor lê o RFC 1459 e/ou o 2812:@* RFC 1459: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc1459.txt}@* RFC 2812: @uref{ftp://ftp.rfc-editor.org/in-notes/rfc2812.txt} @item @option{fun@,{c}@~ao}: fun@,{c}@~ao Python invocada quando a mensagem é recebida @end itemize @* @emph{Exemplo:}@* @* @code{weechat.add_message_handler ("privmsg", my_function)}@* @code{def my_function(server, args):}@* @code{@ @ @ @ weechat.prnt("server="+server)}@* @code{@ @ @ @ null, channel, message = string.split(args, ":", 2)}@* @code{@ @ @ @ hostmask, null, channel = string.split(string.strip(channel), " ", 2)}@* @code{@ @ @ @ weechat.prnt("host="+hostmask+", chan="+channel+", msg="+message)}@* @* @item @command{weechat.add_command_handler ( nome, fun@,{c}@~ao )}@* @* Cria um novo comando do Weechat, ligado a uma fun@,{c}@~ao Python.@* A fun@,{c}@~ao ser@'a chamada quando o utilizador a invocar utilizando @command{/nome}@* @emph{Argumentos:} @itemize @minus @item @option{nome}: nome do novo comando@* Este nome pode pertencer a um comando já existente, o qual ser@'a sobreposto pela fun@,{c}@~ao Python. Tem cuidado quando fizeres isto: os comandos originais não estar@~ao acessiveis antes de teres descarregado o Script Python. @item @option{fun@,{c}@~ao}: fun@,{c}@~ao Python ligada ao comando @item @option{description}: command description (displayed by /help command) @item @option{arguments}: short description of command arguments (displayed by /help command) @item @option{arguments_description}: long description of command arguments (displayed by /help command) @end itemize @* @emph{Exemplo:}@* @* @code{weechat.add_command_handler ("command", my_command)}@* @code{def my_command(server, args):}@* @code{@ @ @ @ weechat.prnt("Servidor:"+server+" Argumentos:"+args)}@* @* @item @command{weechat.command ( command, [channel, [server]] )}@* @* Execute a command or send a message to a channel.@* @emph{Arguments:} @itemize @minus @item @option{command}: command to execute (or message to send in a channel) @item @option{channel}: name of channel @item @option{server}: internal name of server @end itemize @* @emph{Examples:}@* @* @code{weechat.command ("hello world!")}@* @code{weechat.command ("/kick toto please leave this chan", "#weechat")}@* @code{weechat.command ("/nick newnick", "", "freenode")}@* @* @item @command{weechat.get_info ( nome, [servidor] )}@* @* Comece o v@'ario info sobre WeeChat, servidor ou usu@'ario.@* @emph{Argumentos:} @itemize @minus @item @option{nome}: nome do info a recuperar: @itemize @minus @item @option{version}: comece a vers@~ao de WeeChat @item @option{nick}: comece o nickname @item @option{channel}: comece o nome da canal @item @option{server}: comece o nome do servidor @item @option{away}: get ``away'' flag @item @option{weechat_dir}: get WeeChat home dir @item @option{weechat_libdir}: get WeeChat system lib dir @item @option{weechat_sharedir}: get WeeChat system share dir @end itemize @item @option{servidor}: nome interno da servidor @end itemize @* @emph{Exemplos:}@* @* @code{$version = weechat.get_info("version")}@* @code{$nick = weechat.get_info("nick", "freenode")}@* @* @item @command{weechat::get_dcc_info ( );}@* @* Get DCC list.@* Returned array has following fields: @itemize @minus @item server: IRC server @item channel: IRC channel @item type: DCC type: @itemize @minus @item 0: chat (received) @item 1: chat (sent) @item 2: file (receiving) @item 3: file (sending) @end itemize @item status: DCC status: @itemize @minus @item 0: waiting @item 1: connecting @item 2: active @item 3: done @item 4: failed @item 5: aborted @end itemize @item start_time: date/time of DCC creation @item start_transfer: date/time of transfer start @item addr: remote address @item port: port used for DCC @item nick: remote nick @item filename: filename @item local_filename: local filename @item size: file size @item pos: current position in file @item start_resume: restart position after interruption @item bytes_per_sec: bytes sent/received per second @end itemize @* @item @command{weechat.get_config ( name );}@* @* Get WeeChat config option value.@* @emph{Arguments:} @itemize @minus @item @option{name}: name of option @end itemize @* @emph{Examples:}@* @* @code{$value1 = weechat.get_config ("look_set_title");}@* @code{$value2 = weechat.get_config ("freenode.server_autojoin");}@* @* @end itemize @subsection Ruby scripts N@~AO DESENVOLVIDO! @c **************************** Autores/Suporte ***************************** @node Autores/Suporte, , Plugins, Top @chapter Autores / Suporte @ifhtml @menu * Autores:: * Obter Suporte:: * Copyright:: @end menu @end ifhtml @ifnothtml @menu * Autores:: * Obter Suporte:: @end menu @end ifnothtml @node Autores, Obter Suporte, Autores/Suporte, Autores/Suporte @section Autores O WeeChat @'e desenvolvido por :@* @itemize @bullet @item FlashCode <@email{flashcode@@flashtux.org, flashcode AT flashtux.org}> @end itemize @ifhtml @node Obter Suporte, Copyright, Autores, Autores/Suporte @end ifhtml @ifnothtml @node Obter Suporte, , Autores, Autores/Suporte @end ifnothtml @section Obter Suporte Antes de pedires suporte, agradecemos se leres toda a documenta@,{c}@~ao e a FAQ.@* (a documenta@,{c}@~ao @'e este documento que est@'as a ler, se n@~ao leste tudo at@'e aqui, est@'a na hora de come@,{c}ares do in@'icio !)@* @itemize @bullet @item Suporte por IRC:@* - servidor : @b{irc.freenode.net}@* - canal : @b{#weechat}@*@* @item Forum do WeeChat : @uref{http://forums.flashtux.org}@*@* @item Suporte por lista de correio-e :@* - para te inscreveres/desinscreveres :@*@uref{http://mail.nongnu.org/mailman/listinfo/weechat-support}.@* - para enviares uma mensagem para a lista :@*@email{weechat-support@@nongnu.org}.@* Os arquivos da lista est@~ao aqui :@* @uref{http://mail.nongnu.org/archive/html/weechat-support}@*@* @item Para mais detalhes, v@^e tamb@'em a p@'agina de suporte do WeeChat :@* @uref{http://weechat.flashtux.org/support.php} @end itemize @ifhtml @node Copyright, , Obter Suporte, Autores/Suporte @section Copyright Este manual documenta o cliente de IRC WeeChat, Ele faz parte do WeeChat.@* Copyright @copyright{} 2005 FlashCode <@email{flashcode@@flashtux.org, flashcode AT flashtux.org}>@* Tradu@,{c}@~ao portuguesa de Jo@~ao Jer@'onimo <@email{j_j_b_o@@sapo.pt, j_j_b_o AT sapo.pt}>@* @* A utiliza@,{c}@~ao deste documento @'e regida pela GNU General Public License vers@~ao 2 ou posterior.@* @end ifhtml @bye