diff options
-rw-r--r-- | po/cs.po | 723 | ||||
-rw-r--r-- | po/de.po | 725 | ||||
-rw-r--r-- | po/es.po | 729 | ||||
-rw-r--r-- | po/fr.po | 715 | ||||
-rw-r--r-- | po/hu.po | 717 | ||||
-rw-r--r-- | po/ru.po | 715 | ||||
-rw-r--r-- | po/weechat.pot | 529 | ||||
-rw-r--r-- | src/plugins/irc/irc-channel.c | 3 | ||||
-rw-r--r-- | src/plugins/irc/irc-input.c | 2 | ||||
-rw-r--r-- | src/plugins/irc/irc-mode.c | 51 | ||||
-rw-r--r-- | src/plugins/irc/irc-nick.c | 47 | ||||
-rw-r--r-- | src/plugins/irc/irc-nick.h | 2 | ||||
-rw-r--r-- | src/plugins/irc/irc-protocol.c | 5082 | ||||
-rw-r--r-- | src/plugins/irc/irc-protocol.h | 93 | ||||
-rw-r--r-- | src/plugins/irc/irc-server.c | 42 | ||||
-rw-r--r-- | src/plugins/irc/irc-server.h | 14 | ||||
-rw-r--r-- | src/plugins/irc/irc.c | 14 |
17 files changed, 5052 insertions, 5151 deletions
@@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-03-07 23:18+0100\n" +"POT-Creation-Date: 2008-03-15 09:33+0100\n" "PO-Revision-Date: 2007-09-06 12:44+0200\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -819,6 +819,18 @@ msgstr "" msgid "\t\tDay changed to %s" msgstr "Změnil se den na %s\n" +msgid "display WeeChat logo at startup" +msgstr "zobrazí WeeChat logo při spuštění" + +msgid "display WeeChat version at startup" +msgstr "zobrazí verzi WeeChat při spuštění" + +msgid "command executed when WeeChat starts, before loading plugins" +msgstr "" + +msgid "command executed when WeeChat starts, after loading plugins" +msgstr "" + msgid "" "if set, uses real white color, disabled by default for terms with white " "background (if you never use white background, you should turn on this " @@ -836,12 +848,6 @@ msgstr "uložit soubor s nastavením při ukončení" msgid "set title for window (terminal for Curses GUI) with name and version" msgstr "nastaví titulek okna (terminálu pro Cruses GUI) s jménem a verzí" -msgid "display WeeChat logo at startup" -msgstr "zobrazí WeeChat logo při spuštění" - -msgid "display WeeChat version at startup" -msgstr "zobrazí verzi WeeChat při spuštění" - msgid "WeeChat slogan (if empty, slogan is not used)" msgstr "WeeChat slogan (pokud je prázdné, není slogan použit)" @@ -3403,6 +3409,304 @@ msgstr "%s nepřipojen k serveru\n" msgid "%s: this buffer is not a channel!" msgstr "Tohe není okno kanálu!\n" +#, fuzzy, c-format +msgid "%sYou have been invited to %s%s%s by %s%s" +msgstr "Byl jsi pozván na %s%s%s od %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: cannot create new channel \"%s\"" +msgstr "%s nemohu vytvořit nový kanál \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" +msgstr "%s%s %s(%s%s%s)%s se připojil %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: channel \"%s\" not found for \"%s\" command" +msgstr "%s kanál \"%s\" nebyl nalezen příkazem \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" +msgstr "%s%s%s byl vykopnut %s%s%s z %s%s" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s" +msgstr "%s%s%s byl vykopnut %s%s%s z %s%s" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s %s(%s%s%s)" +msgstr "%s%s%s byl zabit %s%s%s ze serveru" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s" +msgstr "Nyní známý jako %s%s\n" + +#, fuzzy, c-format +msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" +msgstr "Mód %s%s %s[%s%s%s]%s od %s%s\n" + +#, fuzzy, c-format +msgid "%sUser mode %s[%s%s%s]%s by %s%s" +msgstr "Uživatelský mód %s[%s%s%s]%s od %s%s\n" + +#, fuzzy, c-format +msgid "%sYou are now known as %s%s" +msgstr "Nyní známý jako %s%s\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is now known as %s%s" +msgstr "%s%s%s nyní známý jako %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s" +msgstr "CTCP %sVERSION%s odpověď od %s%s%s: %s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s reply from %s%s%s: %ld.%ld %s" +msgstr "CTCP %sPING%s odpověď od %s%s%s: %ld.%ld sekund\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s opustil %s%s" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s" +msgstr "%s%s %s(%s%s%s)%s opustil %s%s" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s%s: %s" +msgstr "CTCP %sVERSION%s obdržen od %s%s" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s" +msgstr "CTCP %sVERSION%s obdržen od %s%s" + +#, c-format +msgid "Channel %s: * %s %s" +msgstr "Kanál %s: %s %s" + +#, fuzzy, c-format +msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s" +msgstr "Obdržen CTCP %sZVUK%s \"%s\" od %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s received from %s%s" +msgstr "CTCP %sPING%s obdržen od %s%s\n" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s" +msgstr "Neznámý CTCP %s%s%s obdržen od %s%s" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s" +msgstr "Neznámý CTCP %s%s%s obdržen od %s%s" + +#, c-format +msgid "Channel %s: %s> %s" +msgstr "Kanál %s: %s> %s" + +#, fuzzy, c-format +msgid "%s%s: cannot parse \"%s\" command" +msgstr "%s nemohu rozpársovat příkaz \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: not enough memory for \"%s\" command" +msgstr "%s nedostatek paměti pro nové DCC\n" + +#, fuzzy, c-format +msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" +msgstr "%s neznámý DCC CHAT typ obdržen od " + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s skončil" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit" +msgstr "%s%s %s(%s%s%s)%s skončil" + +#, fuzzy, c-format +msgid "%s%s: \"%s\" command received without channel" +msgstr "%s \"%s\" příkaz obdržen bez kanálu\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" +msgstr "%s%s%s změnil téma pro %s%s%s na:" + +#, fuzzy, c-format +msgid "%s%s%s%s has unset topic for %s%s" +msgstr "%s%s%s zrušil téma pro %s%s\n" + +#, fuzzy, c-format +msgid "%sWallops from %s%s %s(%s%s%s)%s: %s" +msgstr "%s%s %s(%s%s@%s%s)%s byl %s\n" + +#, fuzzy, c-format +msgid "%sUser mode for %s%s%s is %s[%s%s%s]" +msgstr "Uživatelský mód pro %s%s%s je %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is away: %s" +msgstr "%s%s%s je pryč: %s\n" + +#, fuzzy, c-format +msgid "%sUsers online: %s%s" +msgstr "Uživatelů online: " + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s@%s%s)%s was %s" +msgstr "%s%s %s(%s%s@%s%s)%s byl %s\n" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " +"at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, přihlášen v: %s%s" + +#, fuzzy +msgid "hour" +msgid_plural "hours" +msgstr[0] "hodina" +msgstr[1] "hodina" + +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuta" +msgstr[1] "minuta" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, přihlášen v: %s%s" + +#, fuzzy, c-format +msgid "%sChannel created on %s" +msgstr "Kanál vytvořen v %s" + +#, fuzzy, c-format +msgid "%sChannel %s%s%s created on %s" +msgstr "Kanál vytvořen v %s" + +#, fuzzy, c-format +msgid "%sNo topic set for channel %s%s" +msgstr "Není nastaveno téma pro %s%s\n" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s is: \"%s%s\"" +msgstr "Téma pro %s%s%s je: " + +#, fuzzy, c-format +msgid "%sTopic set by %s%s%s on %s" +msgstr "Téma nastevil %s%s%s, %s" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s set by %s%s%s on %s" +msgstr "Téma nastevil %s%s%s, %s" + +#, fuzzy, c-format +msgid "%s%s%s%s has invited %s%s%s on %s%s" +msgstr "%s%s%s pozval %s%s%s na %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify channel for \"%s\" command" +msgstr "%s nemohu identifikovat kanál pro příkaz \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify nickname for \"%s\" command" +msgstr "%s nemohu identifikovat přezdívku pro příkaz \"%s\"\n" + +#, fuzzy, c-format +msgid "%sChannel reop %s%s%s: %s%s" +msgstr "Reop kanálu %s%s%s: %s%s\n" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s]%s exception %s%s%s" +msgstr "%s[%s%s%s] %s%s%s takázaný\n" + +#, c-format +msgid " by %s%s %s(%s%s%s)" +msgstr " od %s%s %s(%s%s%s)" + +#, c-format +msgid " by %s%s" +msgstr " od %s%s" + +#, fuzzy, c-format +msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" +msgstr "%s nemohu vztvořit přezdívku \"%s\" pro kanál \"%s\"\n" + +#, fuzzy, c-format +msgid "%sNicks %s%s%s: %s[%s%s%s]" +msgstr "%sServer: %s%s %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "" +"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgstr "" +"Kanál %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" + +msgid "nicks" +msgstr "přezdívky" + +msgid "nick" +msgstr "přezdívka" + +msgid "ops" +msgstr "ops" + +msgid "op" +msgstr "op" + +msgid "halfops" +msgstr "částeční-ops" + +msgid "halfop" +msgstr "částečný-op" + +msgid "voices" +msgstr "voices" + +msgid "voice" +msgstr "voice" + +msgid "normal" +msgstr "normální" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned by " +msgstr "%s[%s%s%s] %s%s%s zakázal " + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned" +msgstr "%s[%s%s%s] %s%s%s takázaný\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use or invalid, closing " +"connection with server" +msgstr "" +"%s: všechny deklarované přezdívky jsou již používány nebo nevalidní, zavírám " +"spojení se serverem!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" +msgstr "" +"%s: přezdívka \"%s\" je již používaná, zkouším druhou přezdívku \"%s\"\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use, closing connection with " +"server" +msgstr "" +"%s: všechny deklarované přezdívky jsou již používány, zavírám spojení se " +"serverem!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" +msgstr "" +"%s: přezdívka \"%s\" je již používaná, zkouším druhou přezdívku \"%s\"\n" + msgid "error received from IRC server" msgstr "přijata chyba z IRC serveru" @@ -3421,9 +3725,6 @@ msgstr "řetězec uživatelského módu" msgid "away message" msgstr "zpráva nepřítomnosti" -msgid "userhost" -msgstr "uživatel" - msgid "ison" msgstr "ison" @@ -3472,8 +3773,9 @@ msgstr "/list začátek" msgid "channel (for /list)" msgstr "kanál (pro /list)" -msgid "/list end" -msgstr "/list konec" +#, fuzzy +msgid "end of /list" +msgstr "konec /who seznamu" msgid "channel mode" msgstr "mód kanálu" @@ -3695,316 +3997,22 @@ msgid "whois (secure connection)" msgstr "whois (zabezpečená část)" #, fuzzy, c-format -msgid "You have been invited to %s%s%s by %s%s" -msgstr "Byl jsi pozván na %s%s%s od %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: channel \"%s\" not found for \"%s\" command" -msgstr "%s kanál \"%s\" nebyl nalezen příkazem \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host" -msgstr "%s \"%s\" příkaz obdržen bez hosta\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create new channel \"%s\"" -msgstr "%s nemohu vytvořit nový kanál \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" -msgstr "%s%s %s(%s%s%s)%s se připojil %s%s\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" -msgstr "%s%s%s byl vykopnut %s%s%s z %s%s" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s" -msgstr "%s%s%s byl vykopnut %s%s%s z %s%s" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server %s(%s%s%s)" -msgstr "%s%s%s byl zabit %s%s%s ze serveru" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server" -msgstr "%s%s%s byl zabit %s%s%s ze serveru" - -#, fuzzy, c-format -msgid "%s%s: host not found for \"%s\" command" -msgstr "%s host pro příkaz \"%s\" nenalezen\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel or nickname" -msgstr "%s \"%s\" příkaz obdržen bez kanálu nebo přezdívky\n" - -#, fuzzy, c-format -msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" -msgstr "Mód %s%s %s[%s%s%s]%s od %s%s\n" - -#, fuzzy, c-format -msgid "%sUser mode %s[%s%s%s]%s by %s%s" -msgstr "Uživatelský mód %s[%s%s%s]%s od %s%s\n" - -#, fuzzy, c-format -msgid "%sYou are now known as %s%s" -msgstr "Nyní známý jako %s%s\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is now known as %s%s" -msgstr "%s%s%s nyní známý jako %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: nickname not found for \"%s\" command" -msgstr "%s přezdívka nenalezena pro příkaz \"%s\"\n" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s reply from %s%s%s: %s" -msgstr "CTCP %sVERSION%s odpověď od %s%s%s: %s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld %s" -msgstr "CTCP %sPING%s odpověď od %s%s%s: %ld.%ld sekund\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host or channel" -msgstr "%s \"%s\" příkaz obdržen bez hosta nebo kanálu\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s opustil %s%s" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s" -msgstr "%s%s %s(%s%s%s)%s opustil %s%s" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s received from %s%s%s: %s" -msgstr "CTCP %sVERSION%s obdržen od %s%s" - -#, c-format -msgid "CTCP %sVERSION%s received from %s%s" -msgstr "CTCP %sVERSION%s obdržen od %s%s" - -#, c-format -msgid "Channel %s: * %s %s" -msgstr "Kanál %s: %s %s" - -#, fuzzy, c-format -msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s" -msgstr "Obdržen CTCP %sZVUK%s \"%s\" od %s%s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s received from %s%s" -msgstr "CTCP %sPING%s obdržen od %s%s\n" - -#, fuzzy, c-format -msgid "Unknown CTCP %s%s%s received from %s%s%s: %s" -msgstr "Neznámý CTCP %s%s%s obdržen od %s%s" - -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s" -msgstr "Neznámý CTCP %s%s%s obdržen od %s%s" - -#, c-format -msgid "Channel %s: %s> %s" -msgstr "Kanál %s: %s> %s" - -#, fuzzy, c-format -msgid "%s%s: cannot parse \"%s\" command" -msgstr "%s nemohu rozpársovat příkaz \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" -msgstr "%s neznámý DCC CHAT typ obdržen od " - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s skončil" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel" -msgstr "%s \"%s\" příkaz obdržen bez kanálu\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" -msgstr "%s%s%s změnil téma pro %s%s%s na:" - -#, fuzzy, c-format -msgid "%s%s%s%s has unset topic for %s%s" -msgstr "%s%s%s zrušil téma pro %s%s\n" - -#, fuzzy, c-format -msgid "WALLOPS from %s%s%s: %s" -msgstr "WALLOPS od %s%s%s: %s\n" - -#, fuzzy, c-format -msgid "User mode for %s%s%s is %s[%s%s%s]" -msgstr "Uživatelský mód pro %s%s%s je %s[%s%s%s]\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is away: %s" -msgstr "%s%s%s je pryč: %s\n" - -msgid "Users online: " -msgstr "Uživatelů online: " - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s help mode (+h)" -msgstr "%s[%s%s%s]%s mód nápovědy (+h)\n" - -#, fuzzy, c-format -msgid "%s%s %s(%s%s@%s%s)%s was %s" -msgstr "%s%s %s(%s%s@%s%s)%s byl %s\n" - -#, fuzzy, c-format -msgid "" -"%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " -"at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, přihlášen v: %s%s" - -#, fuzzy -msgid "hour" -msgid_plural "hours" -msgstr[0] "hodina" -msgstr[1] "hodina" - -#, fuzzy -msgid "minute" -msgid_plural "minutes" -msgstr[0] "minuta" -msgstr[1] "minuta" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, přihlášen v: %s%s" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s Channels: " -msgstr "%s[%s%s%s]%s nečinný: " - -#, fuzzy, c-format -msgid "%sChannel created on %s" -msgstr "Kanál vytvořen v %s" - -#, fuzzy, c-format -msgid "%s%s: cannot identify date/time for \"%s\" command" -msgstr "%s nemohu identofikovat datum/čas pro příkaz \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify channel for \"%s\" command" -msgstr "%s nemohu identifikovat kanál pro příkaz \"%s\"\n" - -#, fuzzy, c-format -msgid "%sNo topic set for %s%s" -msgstr "Není nastaveno téma pro %s%s\n" - -#, fuzzy, c-format -msgid "%sTopic for %s%s%s is: \"%s%s\"" -msgstr "Téma pro %s%s%s je: " - -#, fuzzy, c-format -msgid "%sTopic set by %s%s%s, %s" -msgstr "Téma nastevil %s%s%s, %s" - -#, fuzzy, c-format -msgid "%s%s%s has invited %s%s%s on %s%s" -msgstr "%s%s%s pozval %s%s%s na %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify nickname for \"%s\" command" -msgstr "%s nemohu identifikovat přezdívku pro příkaz \"%s\"\n" - -#, fuzzy, c-format -msgid "Channel reop %s%s%s: %s%s" -msgstr "Reop kanálu %s%s%s: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s[%s%s%s]%s exception %s%s%s" -msgstr "%s[%s%s%s] %s%s%s takázaný\n" - -#, c-format -msgid " by %s%s %s(%s%s%s)" -msgstr " od %s%s %s(%s%s%s)" +msgid "%s%s: command \"%s\" not found:" +msgstr "%s plugin \"%s\" nenalezen\n" #, c-format -msgid " by %s%s" -msgstr " od %s%s" - -#, fuzzy, c-format -msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" -msgstr "%sna %s%s%s/%s%s%s:%s ignoruji %s%s%s od %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" -msgstr "%s nemohu vztvořit přezdívku \"%s\" pro kanál \"%s\"\n" - -#, fuzzy, c-format -msgid "" -"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgid "%s%s: failed to parse command \"%s\" (please report to developers):" msgstr "" -"Kanál %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" - -msgid "nicks" -msgstr "přezdívky" - -msgid "nick" -msgstr "přezdívka" - -msgid "ops" -msgstr "ops" - -msgid "op" -msgstr "op" - -msgid "halfops" -msgstr "částeční-ops" - -msgid "halfop" -msgstr "částečný-op" - -msgid "voices" -msgstr "voices" - -msgid "voice" -msgstr "voice" - -msgid "normal" -msgstr "normální" #, c-format -msgid "%s[%s%s%s] %s%s%s banned by " -msgstr "%s[%s%s%s] %s%s%s zakázal " - -#, fuzzy, c-format -msgid "%s%s[%s%s%s] %s%s%s banned" -msgstr "%s[%s%s%s] %s%s%s takázaný\n" - -#, fuzzy, c-format -msgid "" -"%s%s: all declared nicknames are already in use or invalid, closing " -"connection with server" -msgstr "" -"%s: všechny deklarované přezdívky jsou již používány nebo nevalidní, zavírám " -"spojení se serverem!\n" - -#, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" -msgstr "" -"%s: přezdívka \"%s\" je již používaná, zkouším druhou přezdívku \"%s\"\n" - -#, fuzzy, c-format msgid "" -"%s%s: all declared nicknames are already in use, closing connection with " -"server" +"%s%s: too few arguments received from IRC server for command \"%s" +"\" (received: %d arguments, expected: at least %d)" msgstr "" -"%s: všechny deklarované přezdívky jsou již používány, zavírám spojení se " -"serverem!\n" #, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" -msgstr "" -"%s: přezdívka \"%s\" je již používaná, zkouším druhou přezdívku \"%s\"\n" +msgid "%s%s: \"%s\" command received without host" +msgstr "%s \"%s\" příkaz obdržen bez hosta\n" #, fuzzy, c-format msgid "%s%s: error when allocating new server" @@ -4034,18 +4042,6 @@ msgid "%s%s: not enough memory for received IRC message" msgstr "%s nedostatek paměti pro získání IRC zprávy\n" #, fuzzy, c-format -msgid "%s%s: command \"%s\" failed" -msgstr "%s příkaz \"%s\" selhal\n" - -#, fuzzy, c-format -msgid "%s%s: no command to execute" -msgstr "%s Žádný příkaz pro provedení!\n" - -#, fuzzy, c-format -msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" -msgstr "%s Neznámý příkaz: příkaz=\"%s\", host=\"%s\", parametry=\"%s\"\n" - -#, fuzzy, c-format msgid "%s%s: cannot read data from socket, disconnecting from server..." msgstr "%s nemůžu přečíst data ze soketu, odpojuji se od serveru...\n" @@ -4427,6 +4423,76 @@ msgstr "" msgid "%s%s: wrong arguments for function \"%s\"" msgstr "%s špatné parametry pro příkaz \"%s\"\n" +#~ msgid "/list end" +#~ msgstr "/list konec" + +#~ msgid "userhost" +#~ msgstr "uživatel" + +#, fuzzy +#~ msgid "Notice from %s%s %s(%s%s%s)%s: %s" +#~ msgstr "%s%s %s(%s%s@%s%s)%s byl %s\n" + +#, fuzzy +#~ msgid "Notice from %s%s%s: %s" +#~ msgstr "Přezdívkz %s%s%s: %s[" + +#, fuzzy +#~ msgid "Notice: %s" +#~ msgstr "voices" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s help mode (+h)" +#~ msgstr "%s[%s%s%s]%s mód nápovědy (+h)\n" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s Channels: " +#~ msgstr "%s[%s%s%s]%s nečinný: " + +#, fuzzy +#~ msgid "%s%s: cannot identify date/time for \"%s\" command" +#~ msgstr "%s nemohu identofikovat datum/čas pro příkaz \"%s\"\n" + +#, fuzzy +#~ msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" +#~ msgstr "%sna %s%s%s/%s%s%s:%s ignoruji %s%s%s od %s%s\n" + +#, fuzzy +#~ msgid "%s%s: command \"%s\" failed" +#~ msgstr "%s příkaz \"%s\" selhal\n" + +#, fuzzy +#~ msgid "%s%s: no command to execute" +#~ msgstr "%s Žádný příkaz pro provedení!\n" + +#, fuzzy +#~ msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" +#~ msgstr "%s Neznámý příkaz: příkaz=\"%s\", host=\"%s\", parametry=\"%s\"\n" + +#, fuzzy +#~ msgid "%s%s%s%s has killed %s%s%s" +#~ msgstr "%s%s%s byl zabit %s%s%s ze serveru" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without channel or nickname" +#~ msgstr "%s \"%s\" příkaz obdržen bez kanálu nebo přezdívky\n" + +#, fuzzy +#~ msgid "%s%s: nickname not found for \"%s\" command" +#~ msgstr "%s přezdívka nenalezena pro příkaz \"%s\"\n" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without host or channel" +#~ msgstr "%s \"%s\" příkaz obdržen bez hosta nebo kanálu\n" + +#, fuzzy +#~ msgid "WALLOPS from %s%s%s: %s" +#~ msgstr "WALLOPS od %s%s%s: %s\n" + +#, fuzzy +#~ msgid "%s%s: host not found for \"%s\" command" +#~ msgstr "%s host pro příkaz \"%s\" nenalezen\n" + #~ msgid "jump to raw IRC data buffer" #~ msgstr "skočit na čistý IRC data buffer" @@ -4546,10 +4612,6 @@ msgstr "%s špatné parametry pro příkaz \"%s\"\n" #~ "[reload [name]] | [unload [name]]" #, fuzzy -#~ msgid "%s%s: not enough memory for function \"%s\"" -#~ msgstr "%s nedostatek paměti pro nové DCC\n" - -#, fuzzy #~ msgid "[load filename] | [autoload] | [reload] | [unload [script]]" #~ msgstr "" #~ "[list [jméno]] | [listfull [jméno]] | [load jméno_souboru] | [autoload] | " @@ -4574,9 +4636,6 @@ msgstr "%s špatné parametry pro příkaz \"%s\"\n" #~ msgid "%s cannot find nick for sending message\n" #~ msgstr "%s nemohu najít přezdívku pro poslání zprávy\n" -#~ msgid "Nicks %s%s%s: %s[" -#~ msgstr "Přezdívkz %s%s%s: %s[" - #, fuzzy #~ msgid "%s%s: error sending data to IRC server" #~ msgstr "%s chyba při zasílání dat na IRC server\n" @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-03-07 23:18+0100\n" +"POT-Creation-Date: 2008-03-15 09:33+0100\n" "PO-Revision-Date: 2007-09-06 12:44+0200\n" "Last-Translator: Thomas Schuetz <i18n@internet-villa.de>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -815,6 +815,18 @@ msgstr "" msgid "\t\tDay changed to %s" msgstr "Ein neuer Tag bricht an, heute ist der %s\n" +msgid "display WeeChat logo at startup" +msgstr "WeeChat-Logo beim Start anzeigen" + +msgid "display WeeChat version at startup" +msgstr "WeeChat-Version beim Start anzeigen" + +msgid "command executed when WeeChat starts, before loading plugins" +msgstr "" + +msgid "command executed when WeeChat starts, after loading plugins" +msgstr "" + msgid "" "if set, uses real white color, disabled by default for terms with white " "background (if you never use white background, you should turn on this " @@ -833,12 +845,6 @@ msgid "set title for window (terminal for Curses GUI) with name and version" msgstr "" "Fenstertitel setzen (oder Terminaltitel im Curses-GUI) mit Name und Version" -msgid "display WeeChat logo at startup" -msgstr "WeeChat-Logo beim Start anzeigen" - -msgid "display WeeChat version at startup" -msgstr "WeeChat-Version beim Start anzeigen" - msgid "WeeChat slogan (if empty, slogan is not used)" msgstr "WeeChat-Slogan (wenn leer, wird keiner benutzt)" @@ -3391,6 +3397,304 @@ msgstr "%s keine Verbindung zum Server \"%s\"!\n" msgid "%s: this buffer is not a channel!" msgstr "Dieses Fenster ist kein Channel!\n" +#, fuzzy, c-format +msgid "%sYou have been invited to %s%s%s by %s%s" +msgstr "Sie wurden in den Channel %s%s%s von %s%s eingeladen\n" + +#, fuzzy, c-format +msgid "%s%s: cannot create new channel \"%s\"" +msgstr "%s konnte den neuen Channel \"%s\" nicht erzeugen\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" +msgstr "%s%s %s(%s%s%s)%s ist in den Channel %s%s gekommen\n" + +#, fuzzy, c-format +msgid "%s%s: channel \"%s\" not found for \"%s\" command" +msgstr "%s Channel \"%s\" für den \"%s\"-Befehl nicht gefunden\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" +msgstr "%s%s%s hat %s%s%s aus %s%s gekickt" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s" +msgstr "%s%s%s hat %s%s%s aus %s%s gekickt" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s %s(%s%s%s)" +msgstr "%s%s%s hat %s%s%s vom Server getrennt" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s" +msgstr "Sie sind nun als %s%s bekannt\n" + +#, fuzzy, c-format +msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" +msgstr "Modus %s%s %s[%s%s%s]%s durch %s%s\n" + +#, fuzzy, c-format +msgid "%sUser mode %s[%s%s%s]%s by %s%s" +msgstr "Usermodus %s[%s%s%s]%s by %s%s\n" + +#, fuzzy, c-format +msgid "%sYou are now known as %s%s" +msgstr "Sie sind nun als %s%s bekannt\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is now known as %s%s" +msgstr "%s%s%s ist nun bekannt als %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s" +msgstr "CTCP %sVERSION%s Antwort von %s%s%s: %s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s reply from %s%s%s: %ld.%ld %s" +msgstr "CTCP %sPING%s Antwort von %s%s%s: %ld.%ld Sekunden\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s verlässt %s%s" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s" +msgstr "%s%s %s(%s%s%s)%s verlässt %s%s" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s%s: %s" +msgstr "CTCP %sVERSION%s von %s%s empfangen" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s" +msgstr "CTCP %sVERSION%s von %s%s empfangen" + +#, c-format +msgid "Channel %s: * %s %s" +msgstr "Channel %s: * %s %s" + +#, fuzzy, c-format +msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s" +msgstr "Ein CTCP %sSOUND%s \"%s\" wurde von %s%s empfangen\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s received from %s%s" +msgstr "CTCP %sPING%s wurde von %s%s empfangen\n" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s" +msgstr "Unbekannter CTCP %s%s%s von %s%s empfangen" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s" +msgstr "Unbekannter CTCP %s%s%s von %s%s empfangen" + +#, c-format +msgid "Channel %s: %s> %s" +msgstr "Channel %s: %s> %s" + +#, fuzzy, c-format +msgid "%s%s: cannot parse \"%s\" command" +msgstr "%s kann den \"%s\"-Befehl nicht parsen\n" + +#, fuzzy, c-format +msgid "%s%s: not enough memory for \"%s\" command" +msgstr "%s nicht genug Speicher für neuen DCC\n" + +#, fuzzy, c-format +msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" +msgstr "%s unbekannter DCC CHAT-Typ emfpangen von " + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s hat das IRC verlassen" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit" +msgstr "%s%s %s(%s%s%s)%s hat das IRC verlassen" + +#, fuzzy, c-format +msgid "%s%s: \"%s\" command received without channel" +msgstr "%s \"%s\"-Befehl empfangen ohne Channel\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" +msgstr "%s%s%s setzt das Topic für %s%s%s auf:" + +#, fuzzy, c-format +msgid "%s%s%s%s has unset topic for %s%s" +msgstr "%s%s%s hat das Topic von %s%s entfernt\n" + +#, fuzzy, c-format +msgid "%sWallops from %s%s %s(%s%s%s)%s: %s" +msgstr "%s%s %s(%s%s@%s%s)%s war %s\n" + +#, fuzzy, c-format +msgid "%sUser mode for %s%s%s is %s[%s%s%s]" +msgstr "Usermodus für %s%s%s ist %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is away: %s" +msgstr "%s%s%s ist abwesend: %s\n" + +#, fuzzy, c-format +msgid "%sUsers online: %s%s" +msgstr "User online: " + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s@%s%s)%s was %s" +msgstr "%s%s %s(%s%s@%s%s)%s war %s\n" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " +"at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, hat sich um %s%s angemeldet" + +#, fuzzy +msgid "hour" +msgid_plural "hours" +msgstr[0] "Stunde" +msgstr[1] "Stunde" + +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "Minute" +msgstr[1] "Minute" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, hat sich um %s%s angemeldet" + +#, fuzzy, c-format +msgid "%sChannel created on %s" +msgstr "Channel erstellt am %s" + +#, fuzzy, c-format +msgid "%sChannel %s%s%s created on %s" +msgstr "Channel erstellt am %s" + +#, fuzzy, c-format +msgid "%sNo topic set for channel %s%s" +msgstr "Kein Topic gesetzt für %s%s\n" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s is: \"%s%s\"" +msgstr "Das Topic von %s%s%s lautet: " + +#, fuzzy, c-format +msgid "%sTopic set by %s%s%s on %s" +msgstr "Topic gesetzt von %s%s%s, %s" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s set by %s%s%s on %s" +msgstr "Topic gesetzt von %s%s%s, %s" + +#, fuzzy, c-format +msgid "%s%s%s%s has invited %s%s%s on %s%s" +msgstr "%s%s%s hat %s%s%s in den Channel %s%s eingeladen\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify channel for \"%s\" command" +msgstr "%s kann für den \"%s\"-Befehl keinen Channel identifizieren\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify nickname for \"%s\" command" +msgstr "%s kann für den \"%s\"-Befehl keinen Nickname identifizieren\n" + +#, fuzzy, c-format +msgid "%sChannel reop %s%s%s: %s%s" +msgstr "Channel-Reop %s%s%s: %s%s\n" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s]%s exception %s%s%s" +msgstr "%s[%s%s%s] %s%s%s gebannt\n" + +#, c-format +msgid " by %s%s %s(%s%s%s)" +msgstr " durch %s%s %s(%s%s%s)" + +#, c-format +msgid " by %s%s" +msgstr " durch %s%s" + +#, fuzzy, c-format +msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" +msgstr "%s Nick \"%s\" für Channel \"%s\" konnte nicht angelegt werden\n" + +#, fuzzy, c-format +msgid "%sNicks %s%s%s: %s[%s%s%s]" +msgstr "%sServer: %s%s %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "" +"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgstr "" +"Channel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" + +msgid "nicks" +msgstr "Nicks" + +msgid "nick" +msgstr "Nick" + +msgid "ops" +msgstr "Operatoren" + +msgid "op" +msgstr "Operator" + +msgid "halfops" +msgstr "Halb-Operatoren" + +msgid "halfop" +msgstr "Halb-Operator" + +msgid "voices" +msgstr "Gevoicete" + +msgid "voice" +msgstr "Gevoiceter" + +msgid "normal" +msgstr "normal" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned by " +msgstr "%s[%s%s%s] %s%s%s wurde gebannt von " + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned" +msgstr "%s[%s%s%s] %s%s%s gebannt\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use or invalid, closing " +"connection with server" +msgstr "" +"%s: alle eingestellten Nicknames sind bereits in Verwendung, Verbindung wird " +"getrennt!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" +msgstr "" +"%s: Nickname \"%s\" wird bereits verwendet, versuche 2. Nickname \"%s\"\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use, closing connection with " +"server" +msgstr "" +"%s: alle eingestellten Nicknames sind in Verwendung, Verbindung wird " +"getrennt!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" +msgstr "" +"%s: Nickname \"%s\" wird bereits verwendet, versuche 2. Nickname \"%s\"\n" + msgid "error received from IRC server" msgstr "Fehlermeldung vom IRC-Server empfangen" @@ -3409,9 +3713,6 @@ msgstr "Usermode-String" msgid "away message" msgstr "Abwesenheitsnachricht" -msgid "userhost" -msgstr "userhost" - msgid "ison" msgstr "ison" @@ -3460,8 +3761,9 @@ msgstr "Start von /list" msgid "channel (for /list)" msgstr "Channel (für /list)" -msgid "/list end" -msgstr "Ende von /list" +#, fuzzy +msgid "end of /list" +msgstr "Ende der /who-Liste" msgid "channel mode" msgstr "Channelmode" @@ -3685,317 +3987,22 @@ msgid "whois (secure connection)" msgstr "whois (sichere Verbindung)" #, fuzzy, c-format -msgid "You have been invited to %s%s%s by %s%s" -msgstr "Sie wurden in den Channel %s%s%s von %s%s eingeladen\n" - -#, fuzzy, c-format -msgid "%s%s: channel \"%s\" not found for \"%s\" command" -msgstr "%s Channel \"%s\" für den \"%s\"-Befehl nicht gefunden\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host" -msgstr "%s \"%s\"-Befehl empfangen ohne Host\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create new channel \"%s\"" -msgstr "%s konnte den neuen Channel \"%s\" nicht erzeugen\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" -msgstr "%s%s %s(%s%s%s)%s ist in den Channel %s%s gekommen\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" -msgstr "%s%s%s hat %s%s%s aus %s%s gekickt" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s" -msgstr "%s%s%s hat %s%s%s aus %s%s gekickt" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server %s(%s%s%s)" -msgstr "%s%s%s hat %s%s%s vom Server getrennt" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server" -msgstr "%s%s%s hat %s%s%s vom Server getrennt" - -#, fuzzy, c-format -msgid "%s%s: host not found for \"%s\" command" -msgstr "%s Host für den \"%s\"-Befehl nicht gefunden\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel or nickname" -msgstr "%s \"%s\"-Befehl empfangen ohne Channel- oder Nickname\n" - -#, fuzzy, c-format -msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" -msgstr "Modus %s%s %s[%s%s%s]%s durch %s%s\n" - -#, fuzzy, c-format -msgid "%sUser mode %s[%s%s%s]%s by %s%s" -msgstr "Usermodus %s[%s%s%s]%s by %s%s\n" - -#, fuzzy, c-format -msgid "%sYou are now known as %s%s" -msgstr "Sie sind nun als %s%s bekannt\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is now known as %s%s" -msgstr "%s%s%s ist nun bekannt als %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: nickname not found for \"%s\" command" -msgstr "%s Nickname nicht gefunden für den \"%s\"-Befehl\n" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s reply from %s%s%s: %s" -msgstr "CTCP %sVERSION%s Antwort von %s%s%s: %s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld %s" -msgstr "CTCP %sPING%s Antwort von %s%s%s: %ld.%ld Sekunden\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host or channel" -msgstr "%s \"%s\"-Befehl empfangen ohne Host oder Channel\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s verlässt %s%s" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s" -msgstr "%s%s %s(%s%s%s)%s verlässt %s%s" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s received from %s%s%s: %s" -msgstr "CTCP %sVERSION%s von %s%s empfangen" - -#, c-format -msgid "CTCP %sVERSION%s received from %s%s" -msgstr "CTCP %sVERSION%s von %s%s empfangen" - -#, c-format -msgid "Channel %s: * %s %s" -msgstr "Channel %s: * %s %s" - -#, fuzzy, c-format -msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s" -msgstr "Ein CTCP %sSOUND%s \"%s\" wurde von %s%s empfangen\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s received from %s%s" -msgstr "CTCP %sPING%s wurde von %s%s empfangen\n" - -#, fuzzy, c-format -msgid "Unknown CTCP %s%s%s received from %s%s%s: %s" -msgstr "Unbekannter CTCP %s%s%s von %s%s empfangen" - -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s" -msgstr "Unbekannter CTCP %s%s%s von %s%s empfangen" - -#, c-format -msgid "Channel %s: %s> %s" -msgstr "Channel %s: %s> %s" - -#, fuzzy, c-format -msgid "%s%s: cannot parse \"%s\" command" -msgstr "%s kann den \"%s\"-Befehl nicht parsen\n" - -#, fuzzy, c-format -msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" -msgstr "%s unbekannter DCC CHAT-Typ emfpangen von " - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s hat das IRC verlassen" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel" -msgstr "%s \"%s\"-Befehl empfangen ohne Channel\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" -msgstr "%s%s%s setzt das Topic für %s%s%s auf:" - -#, fuzzy, c-format -msgid "%s%s%s%s has unset topic for %s%s" -msgstr "%s%s%s hat das Topic von %s%s entfernt\n" - -#, fuzzy, c-format -msgid "WALLOPS from %s%s%s: %s" -msgstr "WALLOPS von %s%s%s: %s\n" - -#, fuzzy, c-format -msgid "User mode for %s%s%s is %s[%s%s%s]" -msgstr "Usermodus für %s%s%s ist %s[%s%s%s]\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is away: %s" -msgstr "%s%s%s ist abwesend: %s\n" - -msgid "Users online: " -msgstr "User online: " - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s help mode (+h)" -msgstr "%s[%s%s%s]%s Hilfemodus (+h)\n" - -#, fuzzy, c-format -msgid "%s%s %s(%s%s@%s%s)%s was %s" -msgstr "%s%s %s(%s%s@%s%s)%s war %s\n" - -#, fuzzy, c-format -msgid "" -"%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " -"at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, hat sich um %s%s angemeldet" - -#, fuzzy -msgid "hour" -msgid_plural "hours" -msgstr[0] "Stunde" -msgstr[1] "Stunde" - -#, fuzzy -msgid "minute" -msgid_plural "minutes" -msgstr[0] "Minute" -msgstr[1] "Minute" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, hat sich um %s%s angemeldet" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s Channels: " -msgstr "%s[%s%s%s]%s idlet: " - -#, fuzzy, c-format -msgid "%sChannel created on %s" -msgstr "Channel erstellt am %s" - -#, fuzzy, c-format -msgid "%s%s: cannot identify date/time for \"%s\" command" -msgstr "" -"%s kann für den \"%s\"-Befehl kein Datum/keine Uhrzeit identifizieren\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify channel for \"%s\" command" -msgstr "%s kann für den \"%s\"-Befehl keinen Channel identifizieren\n" - -#, fuzzy, c-format -msgid "%sNo topic set for %s%s" -msgstr "Kein Topic gesetzt für %s%s\n" - -#, fuzzy, c-format -msgid "%sTopic for %s%s%s is: \"%s%s\"" -msgstr "Das Topic von %s%s%s lautet: " - -#, fuzzy, c-format -msgid "%sTopic set by %s%s%s, %s" -msgstr "Topic gesetzt von %s%s%s, %s" - -#, fuzzy, c-format -msgid "%s%s%s has invited %s%s%s on %s%s" -msgstr "%s%s%s hat %s%s%s in den Channel %s%s eingeladen\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify nickname for \"%s\" command" -msgstr "%s kann für den \"%s\"-Befehl keinen Nickname identifizieren\n" - -#, fuzzy, c-format -msgid "Channel reop %s%s%s: %s%s" -msgstr "Channel-Reop %s%s%s: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s[%s%s%s]%s exception %s%s%s" -msgstr "%s[%s%s%s] %s%s%s gebannt\n" - -#, c-format -msgid " by %s%s %s(%s%s%s)" -msgstr " durch %s%s %s(%s%s%s)" +msgid "%s%s: command \"%s\" not found:" +msgstr "%s Plugin \"%s\" nicht gefunden\n" #, c-format -msgid " by %s%s" -msgstr " durch %s%s" - -#, fuzzy, c-format -msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" -msgstr "%sin %s%s%s/%s%s%s:%s ignoriere %s%s%s von %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" -msgstr "%s Nick \"%s\" für Channel \"%s\" konnte nicht angelegt werden\n" - -#, fuzzy, c-format -msgid "" -"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgid "%s%s: failed to parse command \"%s\" (please report to developers):" msgstr "" -"Channel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" - -msgid "nicks" -msgstr "Nicks" - -msgid "nick" -msgstr "Nick" - -msgid "ops" -msgstr "Operatoren" - -msgid "op" -msgstr "Operator" - -msgid "halfops" -msgstr "Halb-Operatoren" - -msgid "halfop" -msgstr "Halb-Operator" - -msgid "voices" -msgstr "Gevoicete" - -msgid "voice" -msgstr "Gevoiceter" - -msgid "normal" -msgstr "normal" #, c-format -msgid "%s[%s%s%s] %s%s%s banned by " -msgstr "%s[%s%s%s] %s%s%s wurde gebannt von " - -#, fuzzy, c-format -msgid "%s%s[%s%s%s] %s%s%s banned" -msgstr "%s[%s%s%s] %s%s%s gebannt\n" - -#, fuzzy, c-format msgid "" -"%s%s: all declared nicknames are already in use or invalid, closing " -"connection with server" -msgstr "" -"%s: alle eingestellten Nicknames sind bereits in Verwendung, Verbindung wird " -"getrennt!\n" - -#, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" -msgstr "" -"%s: Nickname \"%s\" wird bereits verwendet, versuche 2. Nickname \"%s\"\n" - -#, fuzzy, c-format -msgid "" -"%s%s: all declared nicknames are already in use, closing connection with " -"server" +"%s%s: too few arguments received from IRC server for command \"%s" +"\" (received: %d arguments, expected: at least %d)" msgstr "" -"%s: alle eingestellten Nicknames sind in Verwendung, Verbindung wird " -"getrennt!\n" #, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" -msgstr "" -"%s: Nickname \"%s\" wird bereits verwendet, versuche 2. Nickname \"%s\"\n" +msgid "%s%s: \"%s\" command received without host" +msgstr "%s \"%s\"-Befehl empfangen ohne Host\n" #, fuzzy, c-format msgid "%s%s: error when allocating new server" @@ -4025,18 +4032,6 @@ msgid "%s%s: not enough memory for received IRC message" msgstr "%s nicht genügend Speicher zum Empfangen der IRC-Nachricht vorhanden\n" #, fuzzy, c-format -msgid "%s%s: command \"%s\" failed" -msgstr "%s der Befehl \"%s\" schlug fehl\n" - -#, fuzzy, c-format -msgid "%s%s: no command to execute" -msgstr "%s Kein Befehl zum Ausführen!\n" - -#, fuzzy, c-format -msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" -msgstr "%s Unbekannter Befehl: cmd=\"%s\", host=\"%s\", args=\"%s\"\n" - -#, fuzzy, c-format msgid "%s%s: cannot read data from socket, disconnecting from server..." msgstr "%s Socket-Lesefehler, die Serververbindung wird getrennt...\n" @@ -4420,6 +4415,77 @@ msgstr "" msgid "%s%s: wrong arguments for function \"%s\"" msgstr "%s fehlerhafte Argumente für der \"%s\"-Befehl\n" +#~ msgid "/list end" +#~ msgstr "Ende von /list" + +#~ msgid "userhost" +#~ msgstr "userhost" + +#, fuzzy +#~ msgid "Notice from %s%s %s(%s%s%s)%s: %s" +#~ msgstr "%s%s %s(%s%s@%s%s)%s war %s\n" + +#, fuzzy +#~ msgid "Notice from %s%s%s: %s" +#~ msgstr "Nicks %s%s%s: %s[" + +#, fuzzy +#~ msgid "Notice: %s" +#~ msgstr "Gevoicete" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s help mode (+h)" +#~ msgstr "%s[%s%s%s]%s Hilfemodus (+h)\n" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s Channels: " +#~ msgstr "%s[%s%s%s]%s idlet: " + +#, fuzzy +#~ msgid "%s%s: cannot identify date/time for \"%s\" command" +#~ msgstr "" +#~ "%s kann für den \"%s\"-Befehl kein Datum/keine Uhrzeit identifizieren\n" + +#, fuzzy +#~ msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" +#~ msgstr "%sin %s%s%s/%s%s%s:%s ignoriere %s%s%s von %s%s\n" + +#, fuzzy +#~ msgid "%s%s: command \"%s\" failed" +#~ msgstr "%s der Befehl \"%s\" schlug fehl\n" + +#, fuzzy +#~ msgid "%s%s: no command to execute" +#~ msgstr "%s Kein Befehl zum Ausführen!\n" + +#, fuzzy +#~ msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" +#~ msgstr "%s Unbekannter Befehl: cmd=\"%s\", host=\"%s\", args=\"%s\"\n" + +#, fuzzy +#~ msgid "%s%s%s%s has killed %s%s%s" +#~ msgstr "%s%s%s hat %s%s%s vom Server getrennt" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without channel or nickname" +#~ msgstr "%s \"%s\"-Befehl empfangen ohne Channel- oder Nickname\n" + +#, fuzzy +#~ msgid "%s%s: nickname not found for \"%s\" command" +#~ msgstr "%s Nickname nicht gefunden für den \"%s\"-Befehl\n" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without host or channel" +#~ msgstr "%s \"%s\"-Befehl empfangen ohne Host oder Channel\n" + +#, fuzzy +#~ msgid "WALLOPS from %s%s%s: %s" +#~ msgstr "WALLOPS von %s%s%s: %s\n" + +#, fuzzy +#~ msgid "%s%s: host not found for \"%s\" command" +#~ msgstr "%s Host für den \"%s\"-Befehl nicht gefunden\n" + #~ msgid "jump to raw IRC data buffer" #~ msgstr "gehe zum IRC-Rohdaten-Puffer" @@ -4542,10 +4608,6 @@ msgstr "%s fehlerhafte Argumente für der \"%s\"-Befehl\n" #~ "[reload [Name]] | [unload [Name]]" #, fuzzy -#~ msgid "%s%s: not enough memory for function \"%s\"" -#~ msgstr "%s nicht genug Speicher für neuen DCC\n" - -#, fuzzy #~ msgid "[load filename] | [autoload] | [reload] | [unload [script]]" #~ msgstr "" #~ "[list [Name]] | [listfull [Name]] | [load Dateiname] | [autoload] | " @@ -4572,9 +4634,6 @@ msgstr "%s fehlerhafte Argumente für der \"%s\"-Befehl\n" #~ "%s kann keinen Nickname finden, an den die Nachricht gesendet werden " #~ "soll\n" -#~ msgid "Nicks %s%s%s: %s[" -#~ msgstr "Nicks %s%s%s: %s[" - #, fuzzy #~ msgid "%s%s: error sending data to IRC server" #~ msgstr "%s Fehler beim Senden von Daten an den IRC-Server\n" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-03-07 23:18+0100\n" +"POT-Creation-Date: 2008-03-15 09:33+0100\n" "PO-Revision-Date: 2007-09-19 12:09+0200\n" "Last-Translator: Roberto González Cardenete <robert.glez@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -797,6 +797,18 @@ msgstr "" msgid "\t\tDay changed to %s" msgstr "DÃa cambiado a %s\n" +msgid "display WeeChat logo at startup" +msgstr "mostrar el logotipo de WeeChat en el arranque" + +msgid "display WeeChat version at startup" +msgstr "mostrar la versión de Weechat en el arranque" + +msgid "command executed when WeeChat starts, before loading plugins" +msgstr "" + +msgid "command executed when WeeChat starts, after loading plugins" +msgstr "" + msgid "" "if set, uses real white color, disabled by default for terms with white " "background (if you never use white background, you should turn on this " @@ -816,12 +828,6 @@ msgstr "" "define el tÃtulo de la ventana (el terminal para la interfaz Curses) con el " "nombre y la versión" -msgid "display WeeChat logo at startup" -msgstr "mostrar el logotipo de WeeChat en el arranque" - -msgid "display WeeChat version at startup" -msgstr "mostrar la versión de Weechat en el arranque" - msgid "WeeChat slogan (if empty, slogan is not used)" msgstr "eslógan de WeeChat (si está vacÃo, el eslógan no será utilizado)" @@ -3395,6 +3401,307 @@ msgstr "%s ¡no conectado al servidor \"%s\"!\n" msgid "%s: this buffer is not a channel!" msgstr "¡Esta ventana no es un canal!\n" +#, fuzzy, c-format +msgid "%sYou have been invited to %s%s%s by %s%s" +msgstr "Usted ha sido invitado a %s%s%s por %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: cannot create new channel \"%s\"" +msgstr "%s no es posible crear un nuevo canal \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" +msgstr "%s%s %s(%s%s%s)%s se ha unido %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: channel \"%s\" not found for \"%s\" command" +msgstr "%s canal \"%s\" no encontrado para el comando \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" +msgstr "%s%s%s ha pateado a %s%s%s de %s%s" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s" +msgstr "%s%s%s ha pateado a %s%s%s de %s%s" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s %s(%s%s%s)" +msgstr "%s%s%s ha expulsado a %s%s%s del servidor" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s" +msgstr "Usted es conocido ahora como %s%s\n" + +#, fuzzy, c-format +msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" +msgstr "%s%s %s(%s%s@%s%s)%s estaba %s\n" + +#, fuzzy, c-format +msgid "%sUser mode %s[%s%s%s]%s by %s%s" +msgstr "Modo de usuario %s[%s%s%s/%s%s%s]\n" + +#, fuzzy, c-format +msgid "%sYou are now known as %s%s" +msgstr "Usted es conocido ahora como %s%s\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is now known as %s%s" +msgstr "%s%s%s es conocido ahora como %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s" +msgstr "CTCP %sVERSION%s respuesta de %s%s%s: %s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s reply from %s%s%s: %ld.%ld %s" +msgstr "CTCP %sPING%s respuesta de %s%s%s: %ld.%ld segundos\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s ha abandonado %s%s" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s" +msgstr "%s%s %s(%s%s%s)%s ha abandonado %s%s" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s%s: %s" +msgstr "CTCP %sVERSION%s recibido de %s%s" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s" +msgstr "CTCP %sVERSION%s recibido de %s%s" + +#, fuzzy, c-format +msgid "Channel %s: * %s %s" +msgstr "reop canal %s%s%s: %s%s\n" + +#, fuzzy, c-format +msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s" +msgstr "Recibido un CTCP %sSOUND%s \"%s\" de %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s received from %s%s" +msgstr "CTCP %sPING%s recibido de %s%s\n" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s" +msgstr "CTCP desconocido %s%s%s recibido de %s%s" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s" +msgstr "CTCP desconocido %s%s%s recibido de %s%s" + +#, fuzzy, c-format +msgid "Channel %s: %s> %s" +msgstr "reop canal %s%s%s: %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: cannot parse \"%s\" command" +msgstr "%s no es posible analizar el comando \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: not enough memory for \"%s\" command" +msgstr "%s no hay memoria suficiente para un nuevo DCC\n" + +#, fuzzy, c-format +msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" +msgstr "%s tipo DCC CHAT desconocido recibido de " + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s ha salido" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit" +msgstr "%s%s %s(%s%s%s)%s ha salido" + +#, fuzzy, c-format +msgid "%s%s: \"%s\" command received without channel" +msgstr "%s comando \"%s\" recibido sin canal\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" +msgstr "%s%s%s ha cambiado el tema para %s%s%s a:" + +#, fuzzy, c-format +msgid "%s%s%s%s has unset topic for %s%s" +msgstr "%s%s%s ha quitado el tema para %s%s\n" + +#, fuzzy, c-format +msgid "%sWallops from %s%s %s(%s%s%s)%s: %s" +msgstr "%s%s %s(%s%s@%s%s)%s estaba %s\n" + +#, fuzzy, c-format +msgid "%sUser mode for %s%s%s is %s[%s%s%s]" +msgstr "Modo de usuario %s[%s%s%s/%s%s%s]\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is away: %s" +msgstr "%s%s%s está ausente: %s\n" + +#, fuzzy, c-format +msgid "%sUsers online: %s%s" +msgstr "Usuarios conectados: " + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s@%s%s)%s was %s" +msgstr "%s%s %s(%s%s@%s%s)%s estaba %s\n" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " +"at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, firmó en: %s%s" + +#, fuzzy +msgid "hour" +msgid_plural "hours" +msgstr[0] "hora" +msgstr[1] "hora" + +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuto" +msgstr[1] "minuto" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, firmó en: %s%s" + +#, fuzzy, c-format +msgid "%sChannel created on %s" +msgstr "lista de excepción de canal" + +#, fuzzy, c-format +msgid "%sChannel %s%s%s created on %s" +msgstr "lista de excepción de canal" + +#, fuzzy, c-format +msgid "%sNo topic set for channel %s%s" +msgstr "Sin tema establecido para %s%s\n" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s is: \"%s%s\"" +msgstr "El tema para %s%s%s es: " + +#, fuzzy, c-format +msgid "%sTopic set by %s%s%s on %s" +msgstr "Tema establecido por %s%s%s, %s" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s set by %s%s%s on %s" +msgstr "Tema establecido por %s%s%s, %s" + +#, fuzzy, c-format +msgid "%s%s%s%s has invited %s%s%s on %s%s" +msgstr "%s%s%s ha invitado a %s%s%s en %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify channel for \"%s\" command" +msgstr "%s no es posible identificar el canal para el comando \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify nickname for \"%s\" command" +msgstr "" +"%s no es posible determinar el nombre de usuario para el comando \"%s\"\n" + +#, fuzzy, c-format +msgid "%sChannel reop %s%s%s: %s%s" +msgstr "reop canal %s%s%s: %s%s\n" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s]%s exception %s%s%s" +msgstr "%s[%s%s%s] %s%s%s baneado\n" + +#, fuzzy, c-format +msgid " by %s%s %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s ha salido" + +#, c-format +msgid " by %s%s" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" +msgstr "%s no es posible crear el usuario \"%s\" para el canal \"%s\"\n" + +#, fuzzy, c-format +msgid "%sNicks %s%s%s: %s[%s%s%s]" +msgstr "%sServidor:%s%s %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "" +"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgstr "" +"Canal %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" + +msgid "nicks" +msgstr "usuarios" + +msgid "nick" +msgstr "usuario" + +msgid "ops" +msgstr "operadores" + +msgid "op" +msgstr "operador" + +msgid "halfops" +msgstr "semi-operadores" + +msgid "halfop" +msgstr "semi-operador" + +msgid "voices" +msgstr "voces" + +msgid "voice" +msgstr "voz" + +msgid "normal" +msgstr "normal" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned by " +msgstr "%s[%s%s%s] %s%s%s baneado por " + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned" +msgstr "%s[%s%s%s] %s%s%s baneado\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use or invalid, closing " +"connection with server" +msgstr "" +"%s: todos los nombres de usuario declarados ya están en uso, ¡cerrando la " +"conexión con el servidor!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" +msgstr "" +"%s: el nombre de usuario \"%s\" ya está en uso, probando con el 2 nombre de " +"usuario \"%s\"\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use, closing connection with " +"server" +msgstr "" +"%s: todos los nombres de usuario declarados ya están en uso, ¡cerrando la " +"conexión con el servidor!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" +msgstr "" +"%s: el nombre de usuario \"%s\" ya está en uso, probando con el 2 nombre de " +"usuario \"%s\"\n" + msgid "error received from IRC server" msgstr "error recibido del servidor IRC" @@ -3413,9 +3720,6 @@ msgstr "cadena de modo usuario" msgid "away message" msgstr "mensaje de ausencia" -msgid "userhost" -msgstr "nombre de la máquina de usuario" - msgid "ison" msgstr "está presente" @@ -3465,8 +3769,9 @@ msgstr "/list inicio" msgid "channel (for /list)" msgstr "canal (para /list)" -msgid "/list end" -msgstr "/list fin" +#, fuzzy +msgid "end of /list" +msgstr "fin de la lista /who" msgid "channel mode" msgstr "modo de canal" @@ -3693,319 +3998,22 @@ msgid "whois (secure connection)" msgstr "quién es (conexión segura)" #, fuzzy, c-format -msgid "You have been invited to %s%s%s by %s%s" -msgstr "Usted ha sido invitado a %s%s%s por %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: channel \"%s\" not found for \"%s\" command" -msgstr "%s canal \"%s\" no encontrado para el comando \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host" -msgstr "%s comando \"%s\" recibido sin host \n" - -#, fuzzy, c-format -msgid "%s%s: cannot create new channel \"%s\"" -msgstr "%s no es posible crear un nuevo canal \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" -msgstr "%s%s %s(%s%s%s)%s se ha unido %s%s\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" -msgstr "%s%s%s ha pateado a %s%s%s de %s%s" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s" -msgstr "%s%s%s ha pateado a %s%s%s de %s%s" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server %s(%s%s%s)" -msgstr "%s%s%s ha expulsado a %s%s%s del servidor" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server" -msgstr "%s%s%s ha expulsado a %s%s%s del servidor" - -#, fuzzy, c-format -msgid "%s%s: host not found for \"%s\" command" -msgstr "%s anfitrión \"%s\" no encontrado para el comando \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel or nickname" -msgstr "%s comando \"%s\" recibido sin canal o usuario\n" - -#, fuzzy, c-format -msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" -msgstr "%s%s %s(%s%s@%s%s)%s estaba %s\n" - -#, fuzzy, c-format -msgid "%sUser mode %s[%s%s%s]%s by %s%s" -msgstr "Modo de usuario %s[%s%s%s/%s%s%s]\n" - -#, fuzzy, c-format -msgid "%sYou are now known as %s%s" -msgstr "Usted es conocido ahora como %s%s\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is now known as %s%s" -msgstr "%s%s%s es conocido ahora como %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: nickname not found for \"%s\" command" -msgstr "%s nombre de usuario no encontrado para el comando \"%s\"\n" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s reply from %s%s%s: %s" -msgstr "CTCP %sVERSION%s respuesta de %s%s%s: %s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld %s" -msgstr "CTCP %sPING%s respuesta de %s%s%s: %ld.%ld segundos\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host or channel" -msgstr "%s comando \"%s\" recibido sin host o canal\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s ha abandonado %s%s" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s" -msgstr "%s%s %s(%s%s%s)%s ha abandonado %s%s" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s received from %s%s%s: %s" -msgstr "CTCP %sVERSION%s recibido de %s%s" - -#, c-format -msgid "CTCP %sVERSION%s received from %s%s" -msgstr "CTCP %sVERSION%s recibido de %s%s" - -#, fuzzy, c-format -msgid "Channel %s: * %s %s" -msgstr "reop canal %s%s%s: %s%s\n" - -#, fuzzy, c-format -msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s" -msgstr "Recibido un CTCP %sSOUND%s \"%s\" de %s%s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s received from %s%s" -msgstr "CTCP %sPING%s recibido de %s%s\n" - -#, fuzzy, c-format -msgid "Unknown CTCP %s%s%s received from %s%s%s: %s" -msgstr "CTCP desconocido %s%s%s recibido de %s%s" - -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s" -msgstr "CTCP desconocido %s%s%s recibido de %s%s" - -#, fuzzy, c-format -msgid "Channel %s: %s> %s" -msgstr "reop canal %s%s%s: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot parse \"%s\" command" -msgstr "%s no es posible analizar el comando \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" -msgstr "%s tipo DCC CHAT desconocido recibido de " - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s ha salido" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel" -msgstr "%s comando \"%s\" recibido sin canal\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" -msgstr "%s%s%s ha cambiado el tema para %s%s%s a:" - -#, fuzzy, c-format -msgid "%s%s%s%s has unset topic for %s%s" -msgstr "%s%s%s ha quitado el tema para %s%s\n" - -#, fuzzy, c-format -msgid "WALLOPS from %s%s%s: %s" -msgstr "CTCP %sVERSION%s respuesta de %s%s%s: %s\n" - -#, fuzzy, c-format -msgid "User mode for %s%s%s is %s[%s%s%s]" -msgstr "Modo de usuario %s[%s%s%s/%s%s%s]\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is away: %s" -msgstr "%s%s%s está ausente: %s\n" - -msgid "Users online: " -msgstr "Usuarios conectados: " - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s help mode (+h)" -msgstr "%s[%s%s%s]%s inactividad: " - -#, fuzzy, c-format -msgid "%s%s %s(%s%s@%s%s)%s was %s" -msgstr "%s%s %s(%s%s@%s%s)%s estaba %s\n" - -#, fuzzy, c-format -msgid "" -"%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " -"at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, firmó en: %s%s" - -#, fuzzy -msgid "hour" -msgid_plural "hours" -msgstr[0] "hora" -msgstr[1] "hora" - -#, fuzzy -msgid "minute" -msgid_plural "minutes" -msgstr[0] "minuto" -msgstr[1] "minuto" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, firmó en: %s%s" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s Channels: " -msgstr "%s[%s%s%s]%s inactividad: " - -#, fuzzy, c-format -msgid "%sChannel created on %s" -msgstr "lista de excepción de canal" - -#, fuzzy, c-format -msgid "%s%s: cannot identify date/time for \"%s\" command" -msgstr "%s no es posible identificar la fecha/hora para el comando \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify channel for \"%s\" command" -msgstr "%s no es posible identificar el canal para el comando \"%s\"\n" - -#, fuzzy, c-format -msgid "%sNo topic set for %s%s" -msgstr "Sin tema establecido para %s%s\n" - -#, fuzzy, c-format -msgid "%sTopic for %s%s%s is: \"%s%s\"" -msgstr "El tema para %s%s%s es: " - -#, fuzzy, c-format -msgid "%sTopic set by %s%s%s, %s" -msgstr "Tema establecido por %s%s%s, %s" - -#, fuzzy, c-format -msgid "%s%s%s has invited %s%s%s on %s%s" -msgstr "%s%s%s ha invitado a %s%s%s en %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify nickname for \"%s\" command" -msgstr "" -"%s no es posible determinar el nombre de usuario para el comando \"%s\"\n" - -#, fuzzy, c-format -msgid "Channel reop %s%s%s: %s%s" -msgstr "reop canal %s%s%s: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s[%s%s%s]%s exception %s%s%s" -msgstr "%s[%s%s%s] %s%s%s baneado\n" - -#, fuzzy, c-format -msgid " by %s%s %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s ha salido" +msgid "%s%s: command \"%s\" not found:" +msgstr "%s plugin \"%s\" no encontrado\n" #, c-format -msgid " by %s%s" -msgstr "" - -#, fuzzy, c-format -msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" -msgstr "%sen %s%s%s/%s%s%s:%s ignorando %s%s%s de %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" -msgstr "%s no es posible crear el usuario \"%s\" para el canal \"%s\"\n" - -#, fuzzy, c-format -msgid "" -"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgid "%s%s: failed to parse command \"%s\" (please report to developers):" msgstr "" -"Canal %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" - -msgid "nicks" -msgstr "usuarios" - -msgid "nick" -msgstr "usuario" - -msgid "ops" -msgstr "operadores" - -msgid "op" -msgstr "operador" - -msgid "halfops" -msgstr "semi-operadores" - -msgid "halfop" -msgstr "semi-operador" - -msgid "voices" -msgstr "voces" - -msgid "voice" -msgstr "voz" - -msgid "normal" -msgstr "normal" #, c-format -msgid "%s[%s%s%s] %s%s%s banned by " -msgstr "%s[%s%s%s] %s%s%s baneado por " - -#, fuzzy, c-format -msgid "%s%s[%s%s%s] %s%s%s banned" -msgstr "%s[%s%s%s] %s%s%s baneado\n" - -#, fuzzy, c-format msgid "" -"%s%s: all declared nicknames are already in use or invalid, closing " -"connection with server" -msgstr "" -"%s: todos los nombres de usuario declarados ya están en uso, ¡cerrando la " -"conexión con el servidor!\n" - -#, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" -msgstr "" -"%s: el nombre de usuario \"%s\" ya está en uso, probando con el 2 nombre de " -"usuario \"%s\"\n" - -#, fuzzy, c-format -msgid "" -"%s%s: all declared nicknames are already in use, closing connection with " -"server" +"%s%s: too few arguments received from IRC server for command \"%s" +"\" (received: %d arguments, expected: at least %d)" msgstr "" -"%s: todos los nombres de usuario declarados ya están en uso, ¡cerrando la " -"conexión con el servidor!\n" #, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" -msgstr "" -"%s: el nombre de usuario \"%s\" ya está en uso, probando con el 2 nombre de " -"usuario \"%s\"\n" +msgid "%s%s: \"%s\" command received without host" +msgstr "%s comando \"%s\" recibido sin host \n" #, fuzzy, c-format msgid "%s%s: error when allocating new server" @@ -4036,18 +4044,6 @@ msgid "%s%s: not enough memory for received IRC message" msgstr "%s memoria insuficiente para un mensaje IRC recibido\n" #, fuzzy, c-format -msgid "%s%s: command \"%s\" failed" -msgstr "%s el comando \"%s\" ha fallado\n" - -#, fuzzy, c-format -msgid "%s%s: no command to execute" -msgstr "%s ¡Ningún comando para ejecutar!\n" - -#, fuzzy, c-format -msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" -msgstr "%s Comando desconocido: cmd=\"%s\", host=\"%s\", params=\"%s\"\n" - -#, fuzzy, c-format msgid "%s%s: cannot read data from socket, disconnecting from server..." msgstr "" "%s no ha sido posible leer datos del socket, desconectando del servidor...\n" @@ -4432,6 +4428,76 @@ msgstr "" msgid "%s%s: wrong arguments for function \"%s\"" msgstr "%s argumentos incorrectos para el comando \"%s\"\n" +#~ msgid "/list end" +#~ msgstr "/list fin" + +#~ msgid "userhost" +#~ msgstr "nombre de la máquina de usuario" + +#, fuzzy +#~ msgid "Notice from %s%s %s(%s%s%s)%s: %s" +#~ msgstr "%s%s %s(%s%s@%s%s)%s estaba %s\n" + +#, fuzzy +#~ msgid "Notice from %s%s%s: %s" +#~ msgstr "Usuarios %s%s%s: %s[" + +#, fuzzy +#~ msgid "Notice: %s" +#~ msgstr "voces" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s help mode (+h)" +#~ msgstr "%s[%s%s%s]%s inactividad: " + +#, fuzzy +#~ msgid "%s[%s%s%s]%s Channels: " +#~ msgstr "%s[%s%s%s]%s inactividad: " + +#, fuzzy +#~ msgid "%s%s: cannot identify date/time for \"%s\" command" +#~ msgstr "%s no es posible identificar la fecha/hora para el comando \"%s\"\n" + +#, fuzzy +#~ msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" +#~ msgstr "%sen %s%s%s/%s%s%s:%s ignorando %s%s%s de %s%s\n" + +#, fuzzy +#~ msgid "%s%s: command \"%s\" failed" +#~ msgstr "%s el comando \"%s\" ha fallado\n" + +#, fuzzy +#~ msgid "%s%s: no command to execute" +#~ msgstr "%s ¡Ningún comando para ejecutar!\n" + +#, fuzzy +#~ msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" +#~ msgstr "%s Comando desconocido: cmd=\"%s\", host=\"%s\", params=\"%s\"\n" + +#, fuzzy +#~ msgid "%s%s%s%s has killed %s%s%s" +#~ msgstr "%s%s%s ha expulsado a %s%s%s del servidor" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without channel or nickname" +#~ msgstr "%s comando \"%s\" recibido sin canal o usuario\n" + +#, fuzzy +#~ msgid "%s%s: nickname not found for \"%s\" command" +#~ msgstr "%s nombre de usuario no encontrado para el comando \"%s\"\n" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without host or channel" +#~ msgstr "%s comando \"%s\" recibido sin host o canal\n" + +#, fuzzy +#~ msgid "WALLOPS from %s%s%s: %s" +#~ msgstr "CTCP %sVERSION%s respuesta de %s%s%s: %s\n" + +#, fuzzy +#~ msgid "%s%s: host not found for \"%s\" command" +#~ msgstr "%s anfitrión \"%s\" no encontrado para el comando \"%s\"\n" + #~ msgid "jump to raw IRC data buffer" #~ msgstr "saltar al búfer de datos basura de IRC" @@ -4549,10 +4615,6 @@ msgstr "%s argumentos incorrectos para el comando \"%s\"\n" #~ msgstr "[cargar fichero] | [autocargar] | [recargar] | [descargar]" #, fuzzy -#~ msgid "%s%s: not enough memory for function \"%s\"" -#~ msgstr "%s no hay memoria suficiente para un nuevo DCC\n" - -#, fuzzy #~ msgid "[load filename] | [autoload] | [reload] | [unload [script]]" #~ msgstr "[cargar fichero] | [autocargar] | [recargar] | [descargar]" @@ -4576,9 +4638,6 @@ msgstr "%s argumentos incorrectos para el comando \"%s\"\n" #~ msgstr "" #~ "%s no ha sido posible encontrar el usuario al que enviar el mensaje\n" -#~ msgid "Nicks %s%s%s: %s[" -#~ msgstr "Usuarios %s%s%s: %s[" - #, fuzzy #~ msgid "%s%s: error sending data to IRC server" #~ msgstr "%s error enviando datos al servidor IRC\n" @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-03-07 23:18+0100\n" -"PO-Revision-Date: 2008-03-08 10:59+0100\n" +"POT-Creation-Date: 2008-03-15 09:33+0100\n" +"PO-Revision-Date: 2008-03-15 09:34+0100\n" "Last-Translator: FlashCode <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "MIME-Version: 1.0\n" @@ -472,10 +472,12 @@ msgid "" msgstr "" " add: ajoute une nouvelle barre\n" " nom: nom de la barre (doit être unique)\n" -" type: \"root\" (en dehors des fenêtres), \"window_active\" (dans la fenêtre active), \"window_inactive\" (dans chaque fenêtre inactive)\n" +" type: \"root\" (en dehors des fenêtres), \"window_active\" (dans la " +"fenêtre active), \"window_inactive\" (dans chaque fenêtre inactive)\n" " position: bottom (bas), top (haut), left (gauche) ou right (droite)\n" " taille: taille de la barre (en caractères)\n" -"separateur: 1 pour utiliser un séparateur (ligne), 0 ou rien signifie sans séparateur\n" +"separateur: 1 pour utiliser un séparateur (ligne), 0 ou rien signifie sans " +"séparateur\n" "objet1,...: objets pour cette barre\n" " list: liste toutes les barres" @@ -798,6 +800,20 @@ msgstr "" msgid "\t\tDay changed to %s" msgstr "\t\tJour changé: %s" +msgid "display WeeChat logo at startup" +msgstr "afficher le logo WeeChat au démarrage" + +msgid "display WeeChat version at startup" +msgstr "afficher la version de WeeChat au démarrage" + +msgid "command executed when WeeChat starts, before loading plugins" +msgstr "" +"commande exécutée quand WeeChat démarre, avant le chargement des extensions" + +msgid "command executed when WeeChat starts, after loading plugins" +msgstr "" +"commande exécutée quand WeeChat démarre, après le chargement des extensions" + msgid "" "if set, uses real white color, disabled by default for terms with white " "background (if you never use white background, you should turn on this " @@ -816,12 +832,6 @@ msgstr "" "définit le titre de la fenêtre (terminal pour l'interface Curses) avec le " "nom et la version" -msgid "display WeeChat logo at startup" -msgstr "afficher le logo WeeChat au démarrage" - -msgid "display WeeChat version at startup" -msgstr "afficher la version de WeeChat au démarrage" - msgid "WeeChat slogan (if empty, slogan is not used)" msgstr "slogan WeeChat (si vide, le slogan ne sera pas utilisé)" @@ -3321,6 +3331,307 @@ msgstr "%s%s: vous n'êtes pas connecté au serveur" msgid "%s: this buffer is not a channel!" msgstr "%s: ce tampon n'est pas un canal !" +#, c-format +msgid "%sYou have been invited to %s%s%s by %s%s" +msgstr "%sVous avez été invité sur %s%s%s par %s%s" + +#, c-format +msgid "%s%s: cannot create new channel \"%s\"" +msgstr "%s%s: impossible de créer le nouveau canal \"%s\"" + +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" +msgstr "%s%s%s %s(%s%s%s)%s a rejoint %s%s" + +#, c-format +msgid "%s%s: channel \"%s\" not found for \"%s\" command" +msgstr "%s%s: canal \"%s\" non trouvé pour la commande \"%s\"" + +#, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" +msgstr "%s%s%s%s a poussé dehors %s%s%s de %s%s %s(%s%s%s)" + +#, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s" +msgstr "%s%s%s%s a poussé dehors %s%s%s de %s%s" + +#, c-format +msgid "%sYou were killed by %s%s %s(%s%s%s)" +msgstr "%sVous avez été tué par %s%s %s(%s%s%s)" + +#, c-format +msgid "%sYou were killed by %s%s" +msgstr "%sVous avez été tué par %s%s" + +#, c-format +msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" +msgstr "%sMode %s%s %s[%s%s%s]%s par %s%s" + +#, c-format +msgid "%sUser mode %s[%s%s%s]%s by %s%s" +msgstr "%sMode utilisateur %s[%s%s%s]%s par %s%s" + +#, c-format +msgid "%sYou are now known as %s%s" +msgstr "%sVous êtes maintenant connu sous le nom %s%s" + +#, c-format +msgid "%s%s%s%s is now known as %s%s" +msgstr "%s%s%s%s est maintenant connu sous le nom %s%s" + +#, c-format +msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s" +msgstr "%sCTCP %sVERSION%s réponse de %s%s%s: %s" + +#, c-format +msgid "%sCTCP %sPING%s reply from %s%s%s: %ld.%ld %s" +msgstr "%sCTCP %sPING%s réponse de %s%s%s: %ld.%ld %s" + +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" +msgstr "%s%s%s %s(%s%s%s)%s a quitté %s%s %s(%s%s%s)" + +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s" +msgstr "%s%s%s %s(%s%s%s)%s a quitté %s%s" + +#, c-format +msgid "%sCTCP %sVERSION%s received from %s%s%s: %s" +msgstr "%sCTCP %sVERSION%s reçu de %s%s%s: %s" + +#, c-format +msgid "%sCTCP %sVERSION%s received from %s%s" +msgstr "%sCTCP %sVERSION%s reçu de %s%s" + +#, c-format +msgid "Channel %s: * %s %s" +msgstr "Canal %s: * %s %s" + +#, c-format +msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s" +msgstr "%sCTCP %sSOUND%s \"%s\" reçu de %s%s" + +#, c-format +msgid "%sCTCP %sPING%s received from %s%s" +msgstr "%sCTCP %sPING%s reçu de %s%s" + +#, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s" +msgstr "%sCTCP inconnu %s%s%s reçu de %s%s%s: %s" + +#, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s" +msgstr "%sCTCP inconnu %s%s%s reçu de %s%s" + +#, c-format +msgid "Channel %s: %s> %s" +msgstr "Canal %s: %s> %s" + +#, c-format +msgid "%s%s: cannot parse \"%s\" command" +msgstr "%s%s: impossible d'analyser la commande \"%s\"" + +#, c-format +msgid "%s%s: not enough memory for \"%s\" command" +msgstr "%s%s: pas assez de mémoire pour la commande \"%s\"" + +#, c-format +msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" +msgstr "%s%s: type de DCC CHAT inconnu reçu de %s%s%s: \"%s\"" + +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" +msgstr "%s%s%s %s(%s%s%s)%s a quitté %s(%s%s%s)" + +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit" +msgstr "%s%s%s %s(%s%s%s)%s a quitté" + +#, c-format +msgid "%s%s: \"%s\" command received without channel" +msgstr "%s%s: commande \"%s\" reçue sans canal" + +#, c-format +msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" +msgstr "%s%s%s%s a changé le titre pour %s%s%s en: \"%s%s\"" + +#, c-format +msgid "%s%s%s%s has unset topic for %s%s" +msgstr "%s%s%s%s a retiré le titre pour %s%s" + +#, c-format +msgid "%sWallops from %s%s %s(%s%s%s)%s: %s" +msgstr "%sWallops de %s%s %s(%s%s%s)%s: %s" + +#, c-format +msgid "%sUser mode for %s%s%s is %s[%s%s%s]" +msgstr "%sMode utilisateur pour %s%s%s est %s[%s%s%s]" + +#, c-format +msgid "%s%s%s%s is away: %s" +msgstr "%s%s%s%s est absent: %s" + +#, c-format +msgid "%sUsers online: %s%s" +msgstr "%sUtilisateurs en ligne: %s%s" + +#, c-format +msgid "%s%s%s %s(%s%s@%s%s)%s was %s" +msgstr "%s%s%s %s(%s%s@%s%s)%s était %s" + +#, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " +"at: %s%s" +msgstr "" +"%s%s[%s%s%s]%s inactivité: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, " +"signé le: %s%s" + +msgid "hour" +msgid_plural "hours" +msgstr[0] "heure" +msgstr[1] "heures" + +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minute" +msgstr[1] "minutes" + +#, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" +msgstr "" +"%s%s[%s%s%s]%s inactivité: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signé le: %s%" +"s" + +#, c-format +msgid "%sChannel created on %s" +msgstr "%sCanal créé le %s" + +#, c-format +msgid "%sChannel %s%s%s created on %s" +msgstr "%sCanal %s%s%s créé le %s" + +#, c-format +msgid "%sNo topic set for channel %s%s" +msgstr "%sPas de titre défini pour le canal %s%s" + +#, c-format +msgid "%sTopic for %s%s%s is: \"%s%s\"" +msgstr "%sLe titre pour %s%s%s est: \"%s%s\"" + +#, c-format +msgid "%sTopic set by %s%s%s on %s" +msgstr "%sTitre défini par %s%s%s le %s" + +#, c-format +msgid "%sTopic for %s%s%s set by %s%s%s on %s" +msgstr "%sTitre pour %s%s%s défini par %s%s%s le %s" + +#, c-format +msgid "%s%s%s%s has invited %s%s%s on %s%s" +msgstr "%s%s%s%s a invité %s%s%s sur %s%s" + +#, c-format +msgid "%s%s: cannot identify channel for \"%s\" command" +msgstr "%s%s: impossible de déterminer le canal pour la commande \"%s\"" + +#, c-format +msgid "%s%s: cannot identify nickname for \"%s\" command" +msgstr "%s%s: impossible de déterminer le pseudo pour la commande \"%s\"" + +#, c-format +msgid "%sChannel reop %s%s%s: %s%s" +msgstr "%sReop canal %s%s%s: %s%s" + +#, c-format +msgid "%s%s[%s%s%s]%s exception %s%s%s" +msgstr "%s%s[%s%s%s]%s exception %s%s%s" + +#, c-format +msgid " by %s%s %s(%s%s%s)" +msgstr " par %s%s %s(%s%s%s)" + +#, c-format +msgid " by %s%s" +msgstr " par %s%s" + +#, c-format +msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" +msgstr "%s%s: impossible de créer le pseudo \"%s\" pour le canal \"%s\"" + +#, c-format +msgid "%sNicks %s%s%s: %s[%s%s%s]" +msgstr "%sPseudos %s%s%s: %s[%s%s%s]" + +#, c-format +msgid "" +"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgstr "" +"%sCanal %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" + +msgid "nicks" +msgstr "pseudos" + +msgid "nick" +msgstr "pseudo" + +msgid "ops" +msgstr "ops" + +msgid "op" +msgstr "op" + +msgid "halfops" +msgstr "halfops" + +msgid "halfop" +msgstr "halfop" + +msgid "voices" +msgstr "voices" + +msgid "voice" +msgstr "voice" + +msgid "normal" +msgstr "normal" + +#, c-format +msgid "%s%s[%s%s%s] %s%s%s banned by " +msgstr "%s%s[%s%s%s] %s%s%s banni par " + +#, c-format +msgid "%s%s[%s%s%s] %s%s%s banned" +msgstr "%s%s[%s%s%s] %s%s%s banni" + +#, c-format +msgid "" +"%s%s: all declared nicknames are already in use or invalid, closing " +"connection with server" +msgstr "" +"%s%s: tous les pseudos déclarés sont déjà en cours d'utilisation ou " +"invalides, fermeture de la connexion avec le serveur" + +#, c-format +msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" +msgstr "" +"%s%s: le pseudo \"%s\" est invalide, essai avec le pseudo n°%d (\"%s\")" + +#, c-format +msgid "" +"%s%s: all declared nicknames are already in use, closing connection with " +"server" +msgstr "" +"%s%s: tous les pseudos déclarés sont déjà en cours d'utilisation, fermeture " +"de la connexion avec le serveur" + +#, c-format +msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" +msgstr "" +"%s%s: le pseudo \"%s\" est déjà en cours d'utilisation, essai avec le pseudo " +"n°%d (\"%s\")" + msgid "error received from IRC server" msgstr "erreur reçue du serveur IRC" @@ -3339,9 +3650,6 @@ msgstr "chaîne de mode utilisateur" msgid "away message" msgstr "message d'absence" -msgid "userhost" -msgstr "nom d'hôte" - msgid "ison" msgstr "est présent" @@ -3370,7 +3678,7 @@ msgid "whowas" msgstr "whowas" msgid "end of /who list" -msgstr "fin de /who list" +msgstr "fin de la liste /who" msgid "whois (idle)" msgstr "whois (inactif)" @@ -3390,8 +3698,9 @@ msgstr "/list début" msgid "channel (for /list)" msgstr "canal (pour /list)" -msgid "/list end" -msgstr "/list fin" +#, fuzzy +msgid "end of /list" +msgstr "fin de /list" msgid "channel mode" msgstr "mode du canal" @@ -3613,318 +3922,26 @@ msgid "whois (secure connection)" msgstr "whois (connexion sécurisée)" #, c-format -msgid "You have been invited to %s%s%s by %s%s" -msgstr "Vous avez été invité sur %s%s%s par %s%s" - -#, c-format -msgid "%s%s: channel \"%s\" not found for \"%s\" command" -msgstr "%s%s: canal \"%s\" non trouvé pour la commande \"%s\"" - -#, c-format -msgid "%s%s: \"%s\" command received without host" -msgstr "%s%s: commande \"%s\" reçue sans hôte" - -#, c-format -msgid "%s%s: cannot create new channel \"%s\"" -msgstr "%s%s: impossible de créer le nouveau canal \"%s\"" - -#, c-format -msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" -msgstr "%s%s%s %s(%s%s%s)%s a rejoint %s%s" - -#, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" -msgstr "%s%s%s%s a poussé dehors %s%s%s de %s%s %s(%s%s%s)" - -#, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s" -msgstr "%s%s%s%s a poussé dehors %s%s%s de %s%s" - -#, c-format -msgid "%s%s%s%s has killed %s%s%s from server %s(%s%s%s)" -msgstr "%s%s%s%s a tué %s%s%s du serveur %s(%s%s%s)" - -#, c-format -msgid "%s%s%s%s has killed %s%s%s from server" -msgstr "%s%s%s%s a tué %s%s%s du serveur" - -#, c-format -msgid "%s%s: host not found for \"%s\" command" -msgstr "%s%s: hôte non trouvé pour la commande \"%s\"" - -#, c-format -msgid "%s%s: \"%s\" command received without channel or nickname" -msgstr "%s%s: commande \"%s\" reçue sans canal ou pseudo" - -#, c-format -msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" -msgstr "%sMode %s%s %s[%s%s%s]%s par %s%s" +msgid "%s%s: command \"%s\" not found:" +msgstr "%s%s: commande \"%s\" non trouvée:" #, c-format -msgid "%sUser mode %s[%s%s%s]%s by %s%s" -msgstr "%sMode utilisateur %s[%s%s%s]%s par %s%s" - -#, c-format -msgid "%sYou are now known as %s%s" -msgstr "%sVous êtes maintenant connu sous le nom %s%s" - -#, c-format -msgid "%s%s%s%s is now known as %s%s" -msgstr "%s%s%s%s est maintenant connu sous le nom %s%s" - -#, c-format -msgid "%s%s: nickname not found for \"%s\" command" -msgstr "%s%s: pseudo non trouvé pour la commande \"%s\"" - -#, c-format -msgid "CTCP %sVERSION%s reply from %s%s%s: %s" -msgstr "CTCP %sVERSION%s réponse de %s%s%s: %s" - -#, c-format -msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld %s" -msgstr "CTCP %sPING%s réponse de %s%s%s: %ld.%ld %s" - -#, c-format -msgid "%s%s: \"%s\" command received without host or channel" -msgstr "%s%s: commande \"%s\" reçue sans hôte ou canal" - -#, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" -msgstr "%s%s%s %s(%s%s%s)%s a quitté %s%s %s(%s%s%s)" - -#, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s" -msgstr "%s%s%s %s(%s%s%s)%s a quitté %s%s" - -#, c-format -msgid "CTCP %sVERSION%s received from %s%s%s: %s" -msgstr "CTCP %sVERSION%s reçu de %s%s%s: %s" - -#, c-format -msgid "CTCP %sVERSION%s received from %s%s" -msgstr "CTCP %sVERSION%s reçu de %s%s" - -#, c-format -msgid "Channel %s: * %s %s" -msgstr "Canal %s: * %s %s" - -#, c-format -msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s" -msgstr "CTCP %sSOUND%s \"%s\" reçu de %s%s" - -#, c-format -msgid "CTCP %sPING%s received from %s%s" -msgstr "CTCP %sPING%s reçu de %s%s" - -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s%s: %s" -msgstr "CTCP inconnu %s%s%s reçu de %s%s%s: %s" - -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s" -msgstr "CTCP inconnu %s%s%s reçu de %s%s" - -#, c-format -msgid "Channel %s: %s> %s" -msgstr "Canal %s: %s> %s" - -#, c-format -msgid "%s%s: cannot parse \"%s\" command" -msgstr "%s%s: impossible d'analyser la commande \"%s\"" - -#, c-format -msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" -msgstr "%s%s: type de DCC CHAT inconnu reçu de %s%s%s: \"%s\"" - -#, c-format -msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" -msgstr "%s%s%s %s(%s%s%s)%s a quitté %s(%s%s%s)" - -#, c-format -msgid "%s%s: \"%s\" command received without channel" -msgstr "%s%s: commande \"%s\" reçue sans canal" - -#, c-format -msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" -msgstr "%s%s%s%s a changé le titre pour %s%s%s en: \"%s%s\"" - -#, c-format -msgid "%s%s%s%s has unset topic for %s%s" -msgstr "%s%s%s%s a retiré le titre pour %s%s" - -#, c-format -msgid "WALLOPS from %s%s%s: %s" -msgstr "WALLOPS de %s%s%s: %s" - -#, c-format -msgid "User mode for %s%s%s is %s[%s%s%s]" -msgstr "Mode utilisateur pour %s%s%s est %s[%s%s%s]" - -#, c-format -msgid "%s%s%s%s is away: %s" -msgstr "%s%s%s%s est absent: %s" - -msgid "Users online: " -msgstr "Utilisateurs en ligne: " - -#, c-format -msgid "%s[%s%s%s]%s help mode (+h)" -msgstr "%s[%s%s%s]%s mode aide (+h)" - -#, c-format -msgid "%s%s %s(%s%s@%s%s)%s was %s" -msgstr "%s%s %s(%s%s@%s%s)%s était %s" - -#, c-format -msgid "" -"%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " -"at: %s%s" +msgid "%s%s: failed to parse command \"%s\" (please report to developers):" msgstr "" -"%s[%s%s%s]%s inactivité: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, " -"signé le: %s%s" - -msgid "hour" -msgid_plural "hours" -msgstr[0] "heure" -msgstr[1] "heures" - -msgid "minute" -msgid_plural "minutes" -msgstr[0] "minute" -msgstr[1] "minutes" - -#, c-format -msgid "%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" -msgstr "" -"%s[%s%s%s]%s inactivité: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signé le: %s%s" - -#, c-format -msgid "%s[%s%s%s]%s Channels: " -msgstr "%s[%s%s%s]%s Canaux: " - -#, c-format -msgid "%sChannel created on %s" -msgstr "%sCanal créé le %s" - -#, c-format -msgid "%s%s: cannot identify date/time for \"%s\" command" -msgstr "%s%s: impossible d'identifier la date/heure pour la commande \"%s\"" - -#, c-format -msgid "%s%s: cannot identify channel for \"%s\" command" -msgstr "%s%s: impossible de déterminer le canal pour la commande \"%s\"" - -#, c-format -msgid "%sNo topic set for %s%s" -msgstr "%sPas de titre défini pour %s%s" - -#, c-format -msgid "%sTopic for %s%s%s is: \"%s%s\"" -msgstr "%sLe titre pour %s%s%s est: \"%s%s\"" - -#, c-format -msgid "%sTopic set by %s%s%s, %s" -msgstr "%sTitre défini par %s%s%s, %s" - -#, c-format -msgid "%s%s%s has invited %s%s%s on %s%s" -msgstr "%s%s%s a invité %s%s%s sur %s%s" - -#, c-format -msgid "%s%s: cannot identify nickname for \"%s\" command" -msgstr "%s%s: impossible de déterminer le pseudo pour la commande \"%s\"" - -#, c-format -msgid "Channel reop %s%s%s: %s%s" -msgstr "Reop canal %s%s%s: %s%s" - -#, c-format -msgid "%s%s[%s%s%s]%s exception %s%s%s" -msgstr "%s%s[%s%s%s]%s exception %s%s%s" - -#, c-format -msgid " by %s%s %s(%s%s%s)" -msgstr " par %s%s %s(%s%s%s)" - -#, c-format -msgid " by %s%s" -msgstr " par %s%s" - -#, c-format -msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" -msgstr "%s%s%s sur %s%s%s %s %s %s%s@%s %s(%s%s%s)" - -#, c-format -msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" -msgstr "%s%s: impossible de créer le pseudo \"%s\" pour le canal \"%s\"" - -#, c-format -msgid "" -"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" -msgstr "" -"%sCanal %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" - -msgid "nicks" -msgstr "pseudos" - -msgid "nick" -msgstr "pseudo" - -msgid "ops" -msgstr "ops" - -msgid "op" -msgstr "op" - -msgid "halfops" -msgstr "halfops" - -msgid "halfop" -msgstr "halfop" - -msgid "voices" -msgstr "voices" - -msgid "voice" -msgstr "voice" - -msgid "normal" -msgstr "normal" - -#, c-format -msgid "%s[%s%s%s] %s%s%s banned by " -msgstr "%s[%s%s%s] %s%s%s banni par " - -#, c-format -msgid "%s%s[%s%s%s] %s%s%s banned" -msgstr "%s%s[%s%s%s] %s%s%s banni" - -#, c-format -msgid "" -"%s%s: all declared nicknames are already in use or invalid, closing " -"connection with server" -msgstr "" -"%s%s: tous les pseudos déclarés sont déjà en cours d'utilisation ou " -"invalides, fermeture de la connexion avec le serveur" - -#, c-format -msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" -msgstr "" -"%s%s: le pseudo \"%s\" est invalide, essai avec le pseudo n°%d (\"%s\")" +"%s%s: echec d'analyse de la commande \"%s\" (merci de reporter ce problème " +"aux développeurs):" #, c-format msgid "" -"%s%s: all declared nicknames are already in use, closing connection with " -"server" +"%s%s: too few arguments received from IRC server for command \"%s" +"\" (received: %d arguments, expected: at least %d)" msgstr "" -"%s%s: tous les pseudos déclarés sont déjà en cours d'utilisation, fermeture " -"de la connexion avec le serveur" +"%s%s: trop peu de paramètres reçus du serveur IRC pour la commande \"%s" +"\" (reçu: %d paramètres, attendu: au moins %d)" #, c-format -msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" -msgstr "" -"%s%s: le pseudo \"%s\" est déjà en cours d'utilisation, essai avec le pseudo " -"n°%d (\"%s\")" +msgid "%s%s: \"%s\" command received without host" +msgstr "%s%s: commande \"%s\" reçue sans hôte" #, c-format msgid "%s%s: error when allocating new server" @@ -3958,18 +3975,6 @@ msgid "%s%s: not enough memory for received IRC message" msgstr "%s%s: mémoire insuffisante pour un message IRC reçu" #, c-format -msgid "%s%s: command \"%s\" failed" -msgstr "%s%s: la commande \"%s\" a échoué" - -#, c-format -msgid "%s%s: no command to execute" -msgstr "%s%s: pas de commande à exécuter" - -#, c-format -msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" -msgstr "%s%s: commande inconnue: cmd=\"%s\", hôte=\"%s\", paramètres=\"%s\"" - -#, c-format msgid "%s%s: cannot read data from socket, disconnecting from server..." msgstr "" "%s%s: impossible de lire des données sur la socket, déconnexion du serveur..." @@ -4364,6 +4369,54 @@ msgstr "" msgid "%s%s: wrong arguments for function \"%s\"" msgstr "%s%s: paramètres invalides pour la fonction \"%s\"" +#~ msgid "/list end" +#~ msgstr "/list fin" + +#~ msgid "userhost" +#~ msgstr "nom d'hôte" + +#~ msgid "Notice from %s%s %s(%s%s%s)%s: %s" +#~ msgstr "Notice de %s%s %s(%s%s%s)%s: %s" + +#~ msgid "Notice from %s%s%s: %s" +#~ msgstr "Notice de %s%s%s: %s" + +#~ msgid "Notice: %s" +#~ msgstr "Notice: %s" + +#~ msgid "%s[%s%s%s]%s help mode (+h)" +#~ msgstr "%s[%s%s%s]%s mode aide (+h)" + +#~ msgid "%s[%s%s%s]%s Channels: " +#~ msgstr "%s[%s%s%s]%s Canaux: " + +#~ msgid "%s%s: cannot identify date/time for \"%s\" command" +#~ msgstr "%s%s: impossible d'identifier la date/heure pour la commande \"%s\"" + +#~ msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" +#~ msgstr "%s%s%s sur %s%s%s %s %s %s%s@%s %s(%s%s%s)" + +#~ msgid "%s%s: command \"%s\" failed" +#~ msgstr "%s%s: la commande \"%s\" a échoué" + +#~ msgid "%s%s: no command to execute" +#~ msgstr "%s%s: pas de commande à exécuter" + +#~ msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" +#~ msgstr "%s%s: commande inconnue: cmd=\"%s\", hôte=\"%s\", paramètres=\"%s\"" + +#~ msgid "%s%s%s%s has killed %s%s%s" +#~ msgstr "%s%s%s%s a tué %s%s%s" + +#~ msgid "%s%s: \"%s\" command received without channel or nickname" +#~ msgstr "%s%s: commande \"%s\" reçue sans canal ou pseudo" + +#~ msgid "%s%s: nickname not found for \"%s\" command" +#~ msgstr "%s%s: pseudo non trouvé pour la commande \"%s\"" + +#~ msgid "%s%s: \"%s\" command received without host or channel" +#~ msgstr "%s%s: commande \"%s\" reçue sans hôte ou canal" + #~ msgid "jump to raw IRC data buffer" #~ msgstr "sauter au tampon IRC brut" @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-03-07 23:18+0100\n" +"POT-Creation-Date: 2008-03-15 09:33+0100\n" "PO-Revision-Date: 2007-10-10 18:07+0200\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -826,6 +826,18 @@ msgstr "" msgid "\t\tDay changed to %s" msgstr "A mai dátum: %s\n" +msgid "display WeeChat logo at startup" +msgstr "WeeChat logo mutatása induláskor" + +msgid "display WeeChat version at startup" +msgstr "WeeChat verziójának mutatása induláskor" + +msgid "command executed when WeeChat starts, before loading plugins" +msgstr "" + +msgid "command executed when WeeChat starts, after loading plugins" +msgstr "" + msgid "" "if set, uses real white color, disabled by default for terms with white " "background (if you never use white background, you should turn on this " @@ -845,12 +857,6 @@ msgstr "" "ablak címsorának beállítása (Curses GUI esetén a terminálé) a program nevére " "és verziójára" -msgid "display WeeChat logo at startup" -msgstr "WeeChat logo mutatása induláskor" - -msgid "display WeeChat version at startup" -msgstr "WeeChat verziójának mutatása induláskor" - msgid "WeeChat slogan (if empty, slogan is not used)" msgstr "WeeChat szlogen (ha üres, akkor nem használja a program)" @@ -3409,6 +3415,300 @@ msgstr "%s nincs csatlakozva szerverhez!\n" msgid "%s: this buffer is not a channel!" msgstr "Ez az ablak nem egy szoba!\n" +#, fuzzy, c-format +msgid "%sYou have been invited to %s%s%s by %s%s" +msgstr "Meghívást kapott a %s%s%s szobába %s%s felhasználótól\n" + +#, fuzzy, c-format +msgid "%s%s: cannot create new channel \"%s\"" +msgstr "%s nem sikerült új szobát nyitni \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" +msgstr "%s%s %s(%s%s%s)%s belépett a(z) %s%s szobába\n" + +#, fuzzy, c-format +msgid "%s%s: channel \"%s\" not found for \"%s\" command" +msgstr "%s a \"%s\" szoba nem található a \"%s\" parancshoz\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" +msgstr "%s%s%s kirúgta %s%s%s-t a(z) %s%s szobából" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s" +msgstr "%s%s%s kirúgta %s%s%s-t a(z) %s%s szobából" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s %s(%s%s%s)" +msgstr "%s%s%s eltávolította %s%s%s-t a szerverről" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s" +msgstr "Az új neved: %s%s\n" + +#, fuzzy, c-format +msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" +msgstr "A %s%s %s[%s%s%s]%s üzemmódot bekapcsolta: %s%s\n" + +#, fuzzy, c-format +msgid "%sUser mode %s[%s%s%s]%s by %s%s" +msgstr "A %s[%s%s%s]%s felhasználói üzemmódot bekapcsolta: %s%s\n" + +#, fuzzy, c-format +msgid "%sYou are now known as %s%s" +msgstr "Az új neved: %s%s\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is now known as %s%s" +msgstr "%s%s%s mostantól: %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s" +msgstr "CTCP %sVERSION%s válasz %s%s%s felhasználótól: %s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s reply from %s%s%s: %ld.%ld %s" +msgstr "CTCP %sPING%s válasz %s%s%s felhasználótól: %ld.%ld másodperc\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s elhagyta a(z) %s%s szobát" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s" +msgstr "%s%s %s(%s%s%s)%s elhagyta a(z) %s%s szobát" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s%s: %s" +msgstr "CTCP %sVERSION%s válasz innen: %s%s" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s" +msgstr "CTCP %sVERSION%s válasz innen: %s%s" + +#, c-format +msgid "Channel %s: * %s %s" +msgstr "%s szoba: * %s %s" + +#, fuzzy, c-format +msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s" +msgstr "CTCP %sSOUND%s (\"%s\") érkezett innen: %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s received from %s%s" +msgstr "CTCP %sPING%s érkezett innen: %s%s\n" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s" +msgstr "Ismeretlen CTCP %s%s%s érkezett innen: %s%s" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s" +msgstr "Ismeretlen CTCP %s%s%s érkezett innen: %s%s" + +#, c-format +msgid "Channel %s: %s> %s" +msgstr "%s szoba: %s> %s" + +#, fuzzy, c-format +msgid "%s%s: cannot parse \"%s\" command" +msgstr "%s nem sikerült végrehajtani a \"%s\" parancsot\n" + +#, fuzzy, c-format +msgid "%s%s: not enough memory for \"%s\" command" +msgstr "%s nincs elegendő memória új DCC számára\n" + +#, fuzzy, c-format +msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" +msgstr "%s usmeretlen DCC CHAT típus érkezett a következőtől:" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s kilépett" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit" +msgstr "%s%s %s(%s%s%s)%s kilépett" + +#, fuzzy, c-format +msgid "%s%s: \"%s\" command received without channel" +msgstr "%s \"%s\" parancs érkezett szoba megadása nélkül\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" +msgstr "%s%s%s megváltoztatta a %s%s%s szoba témáját:" + +#, fuzzy, c-format +msgid "%s%s%s%s has unset topic for %s%s" +msgstr "%s%s%s törölte a %s%s szoba témáját\n" + +#, fuzzy, c-format +msgid "%sWallops from %s%s %s(%s%s%s)%s: %s" +msgstr "%s%s %s(%s%s@%s%s)%s neve %s volt\n" + +#, fuzzy, c-format +msgid "%sUser mode for %s%s%s is %s[%s%s%s]" +msgstr "%s%s%s felhasználói módja: %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is away: %s" +msgstr "%s%s%s távol: %s\n" + +#, fuzzy, c-format +msgid "%sUsers online: %s%s" +msgstr "Online felhasználók: " + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s@%s%s)%s was %s" +msgstr "%s%s %s(%s%s@%s%s)%s neve %s volt\n" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " +"at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, bejelentkezett: %s%s" + +#, fuzzy +msgid "hour" +msgid_plural "hours" +msgstr[0] "óra" +msgstr[1] "óra" + +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "perc" +msgstr[1] "perc" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, bejelentkezett: %s%s" + +#, fuzzy, c-format +msgid "%sChannel created on %s" +msgstr "Szoba létrehozva: %s" + +#, fuzzy, c-format +msgid "%sChannel %s%s%s created on %s" +msgstr "Szoba létrehozva: %s" + +#, fuzzy, c-format +msgid "%sNo topic set for channel %s%s" +msgstr "Nincs téma beállítva a %s%s szobában\n" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s is: \"%s%s\"" +msgstr "A %s%s%s szoba témája: " + +#, fuzzy, c-format +msgid "%sTopic set by %s%s%s on %s" +msgstr "A témát beállította: %s%s%s, %s" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s set by %s%s%s on %s" +msgstr "A témát beállította: %s%s%s, %s" + +#, fuzzy, c-format +msgid "%s%s%s%s has invited %s%s%s on %s%s" +msgstr "%s%s%s meghívta %s%s%s-t %s%s-kor\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify channel for \"%s\" command" +msgstr "%s nem sikerült azonosítani a szobát a \"%s\" parancshoz\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify nickname for \"%s\" command" +msgstr "%s nem sikerült a felhasználót meghatározni a \"%s\" parancshoz\n" + +#, fuzzy, c-format +msgid "%sChannel reop %s%s%s: %s%s" +msgstr "%s szoba: %s> %s" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s]%s exception %s%s%s" +msgstr "%s[%s%s%s] %s%s%s kitiltva\n" + +#, c-format +msgid " by %s%s %s(%s%s%s)" +msgstr " a következőtől: %s%s %s(%s%s%s)" + +#, c-format +msgid " by %s%s" +msgstr " a következőtől: %s%s" + +#, fuzzy, c-format +msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" +msgstr "%s nem sikerült a(z) \"%s\" nevet felvenni a \"%s\" szobában\n" + +#, fuzzy, c-format +msgid "%sNicks %s%s%s: %s[%s%s%s]" +msgstr "%s Szerver: %s%s %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "" +"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgstr "" +"%s%s%s szoba: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" + +msgid "nicks" +msgstr "név" + +msgid "nick" +msgstr "név" + +msgid "ops" +msgstr "operátor" + +msgid "op" +msgstr "operátor" + +msgid "halfops" +msgstr "féloperátor" + +msgid "halfop" +msgstr "féloperátor" + +msgid "voices" +msgstr "voice" + +msgid "voice" +msgstr "voice" + +msgid "normal" +msgstr "normál" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned by " +msgstr "%s[%s%s%s] %s%s%s-t kitiltotta " + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned" +msgstr "%s[%s%s%s] %s%s%s kitiltva\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use or invalid, closing " +"connection with server" +msgstr "" +"%s: minden megadott név foglalt vagy érvénytelen, kapcsolat bontása a " +"szerverrel!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" +msgstr "%s: a(z) \"%s\" név már foglalt, próbálom a második nevet: \"%s\"\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use, closing connection with " +"server" +msgstr "%s: minden megadott név foglalt, kapcsolat bontása a szerverrel!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" +msgstr "%s: a(z) \"%s\" név már foglalt, próbálom a második nevet: \"%s\"\n" + msgid "error received from IRC server" msgstr "az IRC szerver hibát jelzett" @@ -3427,9 +3727,6 @@ msgstr "felhasználói mód neve" msgid "away message" msgstr "távollét üzenet" -msgid "userhost" -msgstr "felhasználó gépe" - msgid "ison" msgstr "fentvan" @@ -3478,8 +3775,9 @@ msgstr "/list indítása" msgid "channel (for /list)" msgstr "szoba (a /list parancshoz)" -msgid "/list end" -msgstr "/list vége" +#, fuzzy +msgid "end of /list" +msgstr "a /who lista vége" msgid "channel mode" msgstr "szoba mód" @@ -3701,312 +3999,22 @@ msgid "whois (secure connection)" msgstr "kicsoda (titkosított kapcsolat)" #, fuzzy, c-format -msgid "You have been invited to %s%s%s by %s%s" -msgstr "Meghívást kapott a %s%s%s szobába %s%s felhasználótól\n" - -#, fuzzy, c-format -msgid "%s%s: channel \"%s\" not found for \"%s\" command" -msgstr "%s a \"%s\" szoba nem található a \"%s\" parancshoz\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host" -msgstr "%s \"%s\" parancs érkezett hoszt megadása nélkül\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create new channel \"%s\"" -msgstr "%s nem sikerült új szobát nyitni \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" -msgstr "%s%s %s(%s%s%s)%s belépett a(z) %s%s szobába\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" -msgstr "%s%s%s kirúgta %s%s%s-t a(z) %s%s szobából" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s" -msgstr "%s%s%s kirúgta %s%s%s-t a(z) %s%s szobából" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server %s(%s%s%s)" -msgstr "%s%s%s eltávolította %s%s%s-t a szerverről" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server" -msgstr "%s%s%s eltávolította %s%s%s-t a szerverről" - -#, fuzzy, c-format -msgid "%s%s: host not found for \"%s\" command" -msgstr "a(z) %s gép nem található a(z) \"%s\" parancshoz\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel or nickname" -msgstr "%s \"%s\" parancs érkezett szoba vagy név megadása nélkül\n" - -#, fuzzy, c-format -msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" -msgstr "A %s%s %s[%s%s%s]%s üzemmódot bekapcsolta: %s%s\n" - -#, fuzzy, c-format -msgid "%sUser mode %s[%s%s%s]%s by %s%s" -msgstr "A %s[%s%s%s]%s felhasználói üzemmódot bekapcsolta: %s%s\n" - -#, fuzzy, c-format -msgid "%sYou are now known as %s%s" -msgstr "Az új neved: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is now known as %s%s" -msgstr "%s%s%s mostantól: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: nickname not found for \"%s\" command" -msgstr "%s nem található név a \"%s\" parancshoz\n" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s reply from %s%s%s: %s" -msgstr "CTCP %sVERSION%s válasz %s%s%s felhasználótól: %s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld %s" -msgstr "CTCP %sPING%s válasz %s%s%s felhasználótól: %ld.%ld másodperc\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host or channel" -msgstr "%s \"%s\" parancs érkezett hoszt vagy szoba megadása nélkül\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s elhagyta a(z) %s%s szobát" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s" -msgstr "%s%s %s(%s%s%s)%s elhagyta a(z) %s%s szobát" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s received from %s%s%s: %s" -msgstr "CTCP %sVERSION%s válasz innen: %s%s" - -#, c-format -msgid "CTCP %sVERSION%s received from %s%s" -msgstr "CTCP %sVERSION%s válasz innen: %s%s" - -#, c-format -msgid "Channel %s: * %s %s" -msgstr "%s szoba: * %s %s" - -#, fuzzy, c-format -msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s" -msgstr "CTCP %sSOUND%s (\"%s\") érkezett innen: %s%s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s received from %s%s" -msgstr "CTCP %sPING%s érkezett innen: %s%s\n" - -#, fuzzy, c-format -msgid "Unknown CTCP %s%s%s received from %s%s%s: %s" -msgstr "Ismeretlen CTCP %s%s%s érkezett innen: %s%s" - -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s" -msgstr "Ismeretlen CTCP %s%s%s érkezett innen: %s%s" - -#, c-format -msgid "Channel %s: %s> %s" -msgstr "%s szoba: %s> %s" - -#, fuzzy, c-format -msgid "%s%s: cannot parse \"%s\" command" -msgstr "%s nem sikerült végrehajtani a \"%s\" parancsot\n" - -#, fuzzy, c-format -msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" -msgstr "%s usmeretlen DCC CHAT típus érkezett a következőtől:" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s kilépett" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel" -msgstr "%s \"%s\" parancs érkezett szoba megadása nélkül\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" -msgstr "%s%s%s megváltoztatta a %s%s%s szoba témáját:" - -#, fuzzy, c-format -msgid "%s%s%s%s has unset topic for %s%s" -msgstr "%s%s%s törölte a %s%s szoba témáját\n" - -#, fuzzy, c-format -msgid "WALLOPS from %s%s%s: %s" -msgstr "%s%s%s WALLOP-ot küldött: %s\n" - -#, fuzzy, c-format -msgid "User mode for %s%s%s is %s[%s%s%s]" -msgstr "%s%s%s felhasználói módja: %s[%s%s%s]\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is away: %s" -msgstr "%s%s%s távol: %s\n" - -msgid "Users online: " -msgstr "Online felhasználók: " - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s help mode (+h)" -msgstr "%s[%s%s%s]%s segítség mód (+h)\n" - -#, fuzzy, c-format -msgid "%s%s %s(%s%s@%s%s)%s was %s" -msgstr "%s%s %s(%s%s@%s%s)%s neve %s volt\n" - -#, fuzzy, c-format -msgid "" -"%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " -"at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, bejelentkezett: %s%s" - -#, fuzzy -msgid "hour" -msgid_plural "hours" -msgstr[0] "óra" -msgstr[1] "óra" - -#, fuzzy -msgid "minute" -msgid_plural "minutes" -msgstr[0] "perc" -msgstr[1] "perc" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, bejelentkezett: %s%s" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s Channels: " -msgstr "%s[%s%s%s]%s tétlen: " - -#, fuzzy, c-format -msgid "%sChannel created on %s" -msgstr "Szoba létrehozva: %s" - -#, fuzzy, c-format -msgid "%s%s: cannot identify date/time for \"%s\" command" -msgstr "%s nem sikerült a dátumot/időt meghatározni a \"%s\" parancshoz\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify channel for \"%s\" command" -msgstr "%s nem sikerült azonosítani a szobát a \"%s\" parancshoz\n" - -#, fuzzy, c-format -msgid "%sNo topic set for %s%s" -msgstr "Nincs téma beállítva a %s%s szobában\n" - -#, fuzzy, c-format -msgid "%sTopic for %s%s%s is: \"%s%s\"" -msgstr "A %s%s%s szoba témája: " - -#, fuzzy, c-format -msgid "%sTopic set by %s%s%s, %s" -msgstr "A témát beállította: %s%s%s, %s" - -#, fuzzy, c-format -msgid "%s%s%s has invited %s%s%s on %s%s" -msgstr "%s%s%s meghívta %s%s%s-t %s%s-kor\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify nickname for \"%s\" command" -msgstr "%s nem sikerült a felhasználót meghatározni a \"%s\" parancshoz\n" - -#, fuzzy, c-format -msgid "Channel reop %s%s%s: %s%s" -msgstr "%s szoba: %s> %s" - -#, fuzzy, c-format -msgid "%s%s[%s%s%s]%s exception %s%s%s" -msgstr "%s[%s%s%s] %s%s%s kitiltva\n" - -#, c-format -msgid " by %s%s %s(%s%s%s)" -msgstr " a következőtől: %s%s %s(%s%s%s)" +msgid "%s%s: command \"%s\" not found:" +msgstr "%s a \"%s\" modul nem található\n" #, c-format -msgid " by %s%s" -msgstr " a következőtől: %s%s" - -#, fuzzy, c-format -msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" -msgstr "%s %s%s%s/%s%s%s:%s %s%s%s mellőzése a következő(k)től: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" -msgstr "%s nem sikerült a(z) \"%s\" nevet felvenni a \"%s\" szobában\n" - -#, fuzzy, c-format -msgid "" -"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgid "%s%s: failed to parse command \"%s\" (please report to developers):" msgstr "" -"%s%s%s szoba: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" - -msgid "nicks" -msgstr "név" - -msgid "nick" -msgstr "név" - -msgid "ops" -msgstr "operátor" - -msgid "op" -msgstr "operátor" - -msgid "halfops" -msgstr "féloperátor" - -msgid "halfop" -msgstr "féloperátor" - -msgid "voices" -msgstr "voice" - -msgid "voice" -msgstr "voice" - -msgid "normal" -msgstr "normál" #, c-format -msgid "%s[%s%s%s] %s%s%s banned by " -msgstr "%s[%s%s%s] %s%s%s-t kitiltotta " - -#, fuzzy, c-format -msgid "%s%s[%s%s%s] %s%s%s banned" -msgstr "%s[%s%s%s] %s%s%s kitiltva\n" - -#, fuzzy, c-format msgid "" -"%s%s: all declared nicknames are already in use or invalid, closing " -"connection with server" +"%s%s: too few arguments received from IRC server for command \"%s" +"\" (received: %d arguments, expected: at least %d)" msgstr "" -"%s: minden megadott név foglalt vagy érvénytelen, kapcsolat bontása a " -"szerverrel!\n" - -#, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" -msgstr "%s: a(z) \"%s\" név már foglalt, próbálom a második nevet: \"%s\"\n" #, fuzzy, c-format -msgid "" -"%s%s: all declared nicknames are already in use, closing connection with " -"server" -msgstr "%s: minden megadott név foglalt, kapcsolat bontása a szerverrel!\n" - -#, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" -msgstr "%s: a(z) \"%s\" név már foglalt, próbálom a második nevet: \"%s\"\n" +msgid "%s%s: \"%s\" command received without host" +msgstr "%s \"%s\" parancs érkezett hoszt megadása nélkül\n" #, fuzzy, c-format msgid "%s%s: error when allocating new server" @@ -4036,19 +4044,6 @@ msgid "%s%s: not enough memory for received IRC message" msgstr "%s nincs elegendő memória a fogadott IRC üzenet számára\n" #, fuzzy, c-format -msgid "%s%s: command \"%s\" failed" -msgstr "%s a \"%s\" parancs végrehajtása sikertelen\n" - -#, fuzzy, c-format -msgid "%s%s: no command to execute" -msgstr "%s A futtatandó parancs nem található!\n" - -#, fuzzy, c-format -msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" -msgstr "" -"%s Ismeretlen parancs: parancs=\"%s\", gépnév=\"%s\", argumentum=\"%s\"\n" - -#, fuzzy, c-format msgid "%s%s: cannot read data from socket, disconnecting from server..." msgstr "" "%s nem sikerült adatot olvasni a csatornából, kilépés a szerverről...\n" @@ -4435,6 +4430,77 @@ msgstr "" msgid "%s%s: wrong arguments for function \"%s\"" msgstr "%s rossz argumentum a \"%s\" parancsnak\n" +#~ msgid "/list end" +#~ msgstr "/list vége" + +#~ msgid "userhost" +#~ msgstr "felhasználó gépe" + +#, fuzzy +#~ msgid "Notice from %s%s %s(%s%s%s)%s: %s" +#~ msgstr "%s%s %s(%s%s@%s%s)%s neve %s volt\n" + +#, fuzzy +#~ msgid "Notice from %s%s%s: %s" +#~ msgstr "Felhasználók a %s%s%s szobában: %s[" + +#, fuzzy +#~ msgid "Notice: %s" +#~ msgstr "voice" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s help mode (+h)" +#~ msgstr "%s[%s%s%s]%s segítség mód (+h)\n" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s Channels: " +#~ msgstr "%s[%s%s%s]%s tétlen: " + +#, fuzzy +#~ msgid "%s%s: cannot identify date/time for \"%s\" command" +#~ msgstr "%s nem sikerült a dátumot/időt meghatározni a \"%s\" parancshoz\n" + +#, fuzzy +#~ msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" +#~ msgstr "%s %s%s%s/%s%s%s:%s %s%s%s mellőzése a következő(k)től: %s%s\n" + +#, fuzzy +#~ msgid "%s%s: command \"%s\" failed" +#~ msgstr "%s a \"%s\" parancs végrehajtása sikertelen\n" + +#, fuzzy +#~ msgid "%s%s: no command to execute" +#~ msgstr "%s A futtatandó parancs nem található!\n" + +#, fuzzy +#~ msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" +#~ msgstr "" +#~ "%s Ismeretlen parancs: parancs=\"%s\", gépnév=\"%s\", argumentum=\"%s\"\n" + +#, fuzzy +#~ msgid "%s%s%s%s has killed %s%s%s" +#~ msgstr "%s%s%s eltávolította %s%s%s-t a szerverről" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without channel or nickname" +#~ msgstr "%s \"%s\" parancs érkezett szoba vagy név megadása nélkül\n" + +#, fuzzy +#~ msgid "%s%s: nickname not found for \"%s\" command" +#~ msgstr "%s nem található név a \"%s\" parancshoz\n" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without host or channel" +#~ msgstr "%s \"%s\" parancs érkezett hoszt vagy szoba megadása nélkül\n" + +#, fuzzy +#~ msgid "WALLOPS from %s%s%s: %s" +#~ msgstr "%s%s%s WALLOP-ot küldött: %s\n" + +#, fuzzy +#~ msgid "%s%s: host not found for \"%s\" command" +#~ msgstr "a(z) %s gép nem található a(z) \"%s\" parancshoz\n" + #~ msgid "jump to raw IRC data buffer" #~ msgstr "ugrás a nyers IRC adat pufferre" @@ -4549,10 +4615,6 @@ msgstr "%s rossz argumentum a \"%s\" parancsnak\n" #~ "[név]] | [unload [név]]" #, fuzzy -#~ msgid "%s%s: not enough memory for function \"%s\"" -#~ msgstr "%s nincs elegendő memória új DCC számára\n" - -#, fuzzy #~ msgid "[load filename] | [autoload] | [reload] | [unload [script]]" #~ msgstr "" #~ "[list [név]] | [listfull [név]] | [load fájlnév] | [autoload] | [reload " @@ -4577,9 +4639,6 @@ msgstr "%s rossz argumentum a \"%s\" parancsnak\n" #~ msgid "%s cannot find nick for sending message\n" #~ msgstr "%s nem található név az üzenet küldéséhez\n" -#~ msgid "Nicks %s%s%s: %s[" -#~ msgstr "Felhasználók a %s%s%s szobában: %s[" - #, fuzzy #~ msgid "%s%s: error sending data to IRC server" #~ msgstr "%s adatküldési hiba az IRC szerveren\n" @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.2.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-03-07 23:18+0100\n" +"POT-Creation-Date: 2008-03-15 09:33+0100\n" "PO-Revision-Date: 2007-09-06 12:44+0200\n" "Last-Translator: Pavel Shevchuk <stlwrt@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -822,6 +822,18 @@ msgstr "" msgid "\t\tDay changed to %s" msgstr "Дата сменилась на %s\n" +msgid "display WeeChat logo at startup" +msgstr "отображать логотип WeeChat при запуске" + +msgid "display WeeChat version at startup" +msgstr "отображать версию WeeChat при запуске" + +msgid "command executed when WeeChat starts, before loading plugins" +msgstr "" + +msgid "command executed when WeeChat starts, after loading plugins" +msgstr "" + msgid "" "if set, uses real white color, disabled by default for terms with white " "background (if you never use white background, you should turn on this " @@ -841,12 +853,6 @@ msgstr "" "устанавливать заголовок окна (терминала при интерфейсе Curses) с именем и " "версией" -msgid "display WeeChat logo at startup" -msgstr "отображать логотип WeeChat при запуске" - -msgid "display WeeChat version at startup" -msgstr "отображать версию WeeChat при запуске" - msgid "WeeChat slogan (if empty, slogan is not used)" msgstr "слоган WeeChat (если пусто - используется слоган по умолчанию)" @@ -3397,6 +3403,299 @@ msgstr "%s вы не подключены к серверу\n" msgid "%s: this buffer is not a channel!" msgstr "Это окно не является каналом!\n" +#, fuzzy, c-format +msgid "%sYou have been invited to %s%s%s by %s%s" +msgstr "Вас пригласил на %s%s%s пользователь %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: cannot create new channel \"%s\"" +msgstr "%s не могу создать новый канал \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" +msgstr "%s%s %s(%s%s%s)%s зашёл на канал %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: channel \"%s\" not found for \"%s\" command" +msgstr "%s канал \"%s\" не найден для команды \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" +msgstr "%s%s%s выкинул %s%s%s с канала %s%s" + +#, fuzzy, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s" +msgstr "%s%s%s выкинул %s%s%s с канала %s%s" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s %s(%s%s%s)" +msgstr "%s%s%s убил %s%s%s" + +#, fuzzy, c-format +msgid "%sYou were killed by %s%s" +msgstr "Теперь вы известны как %s%s\n" + +#, fuzzy, c-format +msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" +msgstr "Режим %s%s %s[%s%s%s]%s установлен пользователем %s%s\n" + +#, fuzzy, c-format +msgid "%sUser mode %s[%s%s%s]%s by %s%s" +msgstr "Режим %s[%s%s%s]%s пользователем %s%s\n" + +#, fuzzy, c-format +msgid "%sYou are now known as %s%s" +msgstr "Теперь вы известны как %s%s\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is now known as %s%s" +msgstr "%s%s%s теперь известен как %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s" +msgstr "Ответ на CTCP %sVERSION%s от %s%s%s: %s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s reply from %s%s%s: %ld.%ld %s" +msgstr "Ответ на %sPING%s от %s%s%s: %ld.%ld секунд\n" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s покинул %s%s" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s" +msgstr "%s%s %s(%s%s%s)%s покинул %s%s" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s%s: %s" +msgstr "Получен CTCP %sVERSION%s от %s%s" + +#, fuzzy, c-format +msgid "%sCTCP %sVERSION%s received from %s%s" +msgstr "Получен CTCP %sVERSION%s от %s%s" + +#, c-format +msgid "Channel %s: * %s %s" +msgstr "Канал %s: * %s %s" + +#, fuzzy, c-format +msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s" +msgstr "Получен CTCP %sSOUND%s \"%s\" от %s%s\n" + +#, fuzzy, c-format +msgid "%sCTCP %sPING%s received from %s%s" +msgstr "Получен CTCP %sPING%s от %s%s\n" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s" +msgstr "Получен неизвестный CTCP %s%s%s от %s%s" + +#, fuzzy, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s" +msgstr "Получен неизвестный CTCP %s%s%s от %s%s" + +#, c-format +msgid "Channel %s: %s> %s" +msgstr "Канал %s: %s> %s" + +#, fuzzy, c-format +msgid "%s%s: cannot parse \"%s\" command" +msgstr "%s не могу проанализировать команду \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: not enough memory for \"%s\" command" +msgstr "%s недостаточно памяти для нового DCC\n" + +#, fuzzy, c-format +msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" +msgstr "%s неизвестный режим DCC CHAT получен от " + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" +msgstr "%s%s %s(%s%s%s)%s вышел" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit" +msgstr "%s%s %s(%s%s%s)%s вышел" + +#, fuzzy, c-format +msgid "%s%s: \"%s\" command received without channel" +msgstr "%s \"%s\" команда получена без канала\n" + +#, fuzzy, c-format +msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" +msgstr "%s%s%s сменил тему %s%s%s на:" + +#, fuzzy, c-format +msgid "%s%s%s%s has unset topic for %s%s" +msgstr "%s%s%s удалил тему канала для %s%s\n" + +#, fuzzy, c-format +msgid "%sWallops from %s%s %s(%s%s%s)%s: %s" +msgstr "%s%s %s(%s%s@%s%s)%s был %s\n" + +#, fuzzy, c-format +msgid "%sUser mode for %s%s%s is %s[%s%s%s]" +msgstr "Режим пользователя %s%s%s - %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "%s%s%s%s is away: %s" +msgstr "%s%s%s отсутствует: %s\n" + +#, fuzzy, c-format +msgid "%sUsers online: %s%s" +msgstr "Пользователей в сети:" + +#, fuzzy, c-format +msgid "%s%s%s %s(%s%s@%s%s)%s was %s" +msgstr "%s%s %s(%s%s@%s%s)%s был %s\n" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " +"at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, вошёл в сеть: %s%s" + +#, fuzzy +msgid "hour" +msgid_plural "hours" +msgstr[0] "час" +msgstr[1] "час" + +#, fuzzy +msgid "minute" +msgid_plural "minutes" +msgstr[0] "минута" +msgstr[1] "минута" + +#, fuzzy, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" +msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, вошёл в сеть: %s%s" + +#, fuzzy, c-format +msgid "%sChannel created on %s" +msgstr "Канал создан %s" + +#, fuzzy, c-format +msgid "%sChannel %s%s%s created on %s" +msgstr "Канал создан %s" + +#, fuzzy, c-format +msgid "%sNo topic set for channel %s%s" +msgstr "Не установлена тема канала для %s%s\n" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s is: \"%s%s\"" +msgstr "Тема канала %s%s%s: " + +#, fuzzy, c-format +msgid "%sTopic set by %s%s%s on %s" +msgstr "Тема установлена пользователем %s%s%s, %s" + +#, fuzzy, c-format +msgid "%sTopic for %s%s%s set by %s%s%s on %s" +msgstr "Тема установлена пользователем %s%s%s, %s" + +#, fuzzy, c-format +msgid "%s%s%s%s has invited %s%s%s on %s%s" +msgstr "%s%s%s пригласил %s%s%s на канал %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify channel for \"%s\" command" +msgstr "%s не могу опознать канал для команды \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: cannot identify nickname for \"%s\" command" +msgstr "%s не могу опознать ник для команды \"%s\"\n" + +#, fuzzy, c-format +msgid "%sChannel reop %s%s%s: %s%s" +msgstr "Реоп канала %s%s%s: %s%s\n" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s]%s exception %s%s%s" +msgstr "%s[%s%s%s] %s%s%s забанен\n" + +#, c-format +msgid " by %s%s %s(%s%s%s)" +msgstr " пользователем %s%s %s(%s%s%s)" + +#, c-format +msgid " by %s%s" +msgstr " пользователем %s%s" + +#, fuzzy, c-format +msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" +msgstr "%s не могу создать ник \"%s\" для канала \"%s\"\n" + +#, fuzzy, c-format +msgid "%sNicks %s%s%s: %s[%s%s%s]" +msgstr "%sСервер: %s%s %s[%s%s%s]\n" + +#, fuzzy, c-format +msgid "" +"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgstr "" +"Канал %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" + +msgid "nicks" +msgstr "ники" + +msgid "nick" +msgstr "ник" + +msgid "ops" +msgstr "опы" + +msgid "op" +msgstr "оп" + +msgid "halfops" +msgstr "полуопы" + +msgid "halfop" +msgstr "полуоп" + +msgid "voices" +msgstr "войсы" + +msgid "voice" +msgstr "войс" + +msgid "normal" +msgstr "обычные" + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned by " +msgstr "%s[%s%s%s] %s%s%s забанен пользователем " + +#, fuzzy, c-format +msgid "%s%s[%s%s%s] %s%s%s banned" +msgstr "%s[%s%s%s] %s%s%s забанен\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use or invalid, closing " +"connection with server" +msgstr "" +"%s: все предложенные ники заняты или непригодны, отключаюсь от сервера!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" +msgstr "%s: ник \"%s\" уже используется, пробую второй ник \"%s\"\n" + +#, fuzzy, c-format +msgid "" +"%s%s: all declared nicknames are already in use, closing connection with " +"server" +msgstr "%s: все предложенные ники заняты, отключаюсь от сервера!\n" + +#, fuzzy, c-format +msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" +msgstr "%s: ник \"%s\" уже используется, пробую второй ник \"%s\"\n" + msgid "error received from IRC server" msgstr "получена ошибка от IRC сервера" @@ -3415,9 +3714,6 @@ msgstr "строка режима пользователя" msgid "away message" msgstr "сообщение об отсутствии" -msgid "userhost" -msgstr "хост" - msgid "ison" msgstr "есть" @@ -3466,8 +3762,9 @@ msgstr "начало /list" msgid "channel (for /list)" msgstr "канал (для /list)" -msgid "/list end" -msgstr "конец /list" +#, fuzzy +msgid "end of /list" +msgstr "конец списка /who" msgid "channel mode" msgstr "режим канала" @@ -3689,311 +3986,22 @@ msgid "whois (secure connection)" msgstr "whois (защищённое соединение)" #, fuzzy, c-format -msgid "You have been invited to %s%s%s by %s%s" -msgstr "Вас пригласил на %s%s%s пользователь %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: channel \"%s\" not found for \"%s\" command" -msgstr "%s канал \"%s\" не найден для команды \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host" -msgstr "%s \"%s\" команда получена без хоста\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create new channel \"%s\"" -msgstr "%s не могу создать новый канал \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" -msgstr "%s%s %s(%s%s%s)%s зашёл на канал %s%s\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" -msgstr "%s%s%s выкинул %s%s%s с канала %s%s" - -#, fuzzy, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s" -msgstr "%s%s%s выкинул %s%s%s с канала %s%s" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server %s(%s%s%s)" -msgstr "%s%s%s убил %s%s%s" - -#, fuzzy, c-format -msgid "%s%s%s%s has killed %s%s%s from server" -msgstr "%s%s%s убил %s%s%s" - -#, fuzzy, c-format -msgid "%s%s: host not found for \"%s\" command" -msgstr "%s хост не найден для команды \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel or nickname" -msgstr "%s \"%s\" команда получена без канала или ника\n" - -#, fuzzy, c-format -msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" -msgstr "Режим %s%s %s[%s%s%s]%s установлен пользователем %s%s\n" - -#, fuzzy, c-format -msgid "%sUser mode %s[%s%s%s]%s by %s%s" -msgstr "Режим %s[%s%s%s]%s пользователем %s%s\n" - -#, fuzzy, c-format -msgid "%sYou are now known as %s%s" -msgstr "Теперь вы известны как %s%s\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is now known as %s%s" -msgstr "%s%s%s теперь известен как %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: nickname not found for \"%s\" command" -msgstr "%s ник не найден для команды \"%s\"\n" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s reply from %s%s%s: %s" -msgstr "Ответ на CTCP %sVERSION%s от %s%s%s: %s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld %s" -msgstr "Ответ на %sPING%s от %s%s%s: %ld.%ld секунд\n" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without host or channel" -msgstr "%s \"%s\" команда получена без хоста или канала\n" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s покинул %s%s" - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s" -msgstr "%s%s %s(%s%s%s)%s покинул %s%s" - -#, fuzzy, c-format -msgid "CTCP %sVERSION%s received from %s%s%s: %s" -msgstr "Получен CTCP %sVERSION%s от %s%s" - -#, c-format -msgid "CTCP %sVERSION%s received from %s%s" -msgstr "Получен CTCP %sVERSION%s от %s%s" - -#, c-format -msgid "Channel %s: * %s %s" -msgstr "Канал %s: * %s %s" - -#, fuzzy, c-format -msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s" -msgstr "Получен CTCP %sSOUND%s \"%s\" от %s%s\n" - -#, fuzzy, c-format -msgid "CTCP %sPING%s received from %s%s" -msgstr "Получен CTCP %sPING%s от %s%s\n" - -#, fuzzy, c-format -msgid "Unknown CTCP %s%s%s received from %s%s%s: %s" -msgstr "Получен неизвестный CTCP %s%s%s от %s%s" - -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s" -msgstr "Получен неизвестный CTCP %s%s%s от %s%s" - -#, c-format -msgid "Channel %s: %s> %s" -msgstr "Канал %s: %s> %s" - -#, fuzzy, c-format -msgid "%s%s: cannot parse \"%s\" command" -msgstr "%s не могу проанализировать команду \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" -msgstr "%s неизвестный режим DCC CHAT получен от " - -#, fuzzy, c-format -msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" -msgstr "%s%s %s(%s%s%s)%s вышел" - -#, fuzzy, c-format -msgid "%s%s: \"%s\" command received without channel" -msgstr "%s \"%s\" команда получена без канала\n" - -#, fuzzy, c-format -msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" -msgstr "%s%s%s сменил тему %s%s%s на:" - -#, fuzzy, c-format -msgid "%s%s%s%s has unset topic for %s%s" -msgstr "%s%s%s удалил тему канала для %s%s\n" - -#, fuzzy, c-format -msgid "WALLOPS from %s%s%s: %s" -msgstr "WALLOPы от %s%s%s: %s\n" - -#, fuzzy, c-format -msgid "User mode for %s%s%s is %s[%s%s%s]" -msgstr "Режим пользователя %s%s%s - %s[%s%s%s]\n" - -#, fuzzy, c-format -msgid "%s%s%s%s is away: %s" -msgstr "%s%s%s отсутствует: %s\n" - -msgid "Users online: " -msgstr "Пользователей в сети:" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s help mode (+h)" -msgstr "%s[%s%s%s]%s режим помощи (+h)\n" - -#, fuzzy, c-format -msgid "%s%s %s(%s%s@%s%s)%s was %s" -msgstr "%s%s %s(%s%s@%s%s)%s был %s\n" - -#, fuzzy, c-format -msgid "" -"%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " -"at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, вошёл в сеть: %s%s" - -#, fuzzy -msgid "hour" -msgid_plural "hours" -msgstr[0] "час" -msgstr[1] "час" - -#, fuzzy -msgid "minute" -msgid_plural "minutes" -msgstr[0] "минута" -msgstr[1] "минута" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" -msgstr "%s%02d %s%s %s%02d %s%s %s%02d %s%s, вошёл в сеть: %s%s" - -#, fuzzy, c-format -msgid "%s[%s%s%s]%s Channels: " -msgstr "%s[%s%s%s]%s бездействует: " - -#, fuzzy, c-format -msgid "%sChannel created on %s" -msgstr "Канал создан %s" - -#, fuzzy, c-format -msgid "%s%s: cannot identify date/time for \"%s\" command" -msgstr "%s не могу опознать дату/время для команды \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify channel for \"%s\" command" -msgstr "%s не могу опознать канал для команды \"%s\"\n" - -#, fuzzy, c-format -msgid "%sNo topic set for %s%s" -msgstr "Не установлена тема канала для %s%s\n" - -#, fuzzy, c-format -msgid "%sTopic for %s%s%s is: \"%s%s\"" -msgstr "Тема канала %s%s%s: " - -#, fuzzy, c-format -msgid "%sTopic set by %s%s%s, %s" -msgstr "Тема установлена пользователем %s%s%s, %s" - -#, fuzzy, c-format -msgid "%s%s%s has invited %s%s%s on %s%s" -msgstr "%s%s%s пригласил %s%s%s на канал %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot identify nickname for \"%s\" command" -msgstr "%s не могу опознать ник для команды \"%s\"\n" - -#, fuzzy, c-format -msgid "Channel reop %s%s%s: %s%s" -msgstr "Реоп канала %s%s%s: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s[%s%s%s]%s exception %s%s%s" -msgstr "%s[%s%s%s] %s%s%s забанен\n" - -#, c-format -msgid " by %s%s %s(%s%s%s)" -msgstr " пользователем %s%s %s(%s%s%s)" +msgid "%s%s: command \"%s\" not found:" +msgstr "%s plugin \"%s\" не найден\n" #, c-format -msgid " by %s%s" -msgstr " пользователем %s%s" - -#, fuzzy, c-format -msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" -msgstr "%sна %s%s%s/%s%s%s:%s игнорирует %s%s%s с %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" -msgstr "%s не могу создать ник \"%s\" для канала \"%s\"\n" - -#, fuzzy, c-format -msgid "" -"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgid "%s%s: failed to parse command \"%s\" (please report to developers):" msgstr "" -"Канал %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)\n" - -msgid "nicks" -msgstr "ники" - -msgid "nick" -msgstr "ник" - -msgid "ops" -msgstr "опы" - -msgid "op" -msgstr "оп" - -msgid "halfops" -msgstr "полуопы" - -msgid "halfop" -msgstr "полуоп" - -msgid "voices" -msgstr "войсы" - -msgid "voice" -msgstr "войс" - -msgid "normal" -msgstr "обычные" #, c-format -msgid "%s[%s%s%s] %s%s%s banned by " -msgstr "%s[%s%s%s] %s%s%s забанен пользователем " - -#, fuzzy, c-format -msgid "%s%s[%s%s%s] %s%s%s banned" -msgstr "%s[%s%s%s] %s%s%s забанен\n" - -#, fuzzy, c-format msgid "" -"%s%s: all declared nicknames are already in use or invalid, closing " -"connection with server" +"%s%s: too few arguments received from IRC server for command \"%s" +"\" (received: %d arguments, expected: at least %d)" msgstr "" -"%s: все предложенные ники заняты или непригодны, отключаюсь от сервера!\n" - -#, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" -msgstr "%s: ник \"%s\" уже используется, пробую второй ник \"%s\"\n" #, fuzzy, c-format -msgid "" -"%s%s: all declared nicknames are already in use, closing connection with " -"server" -msgstr "%s: все предложенные ники заняты, отключаюсь от сервера!\n" - -#, fuzzy, c-format -msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" -msgstr "%s: ник \"%s\" уже используется, пробую второй ник \"%s\"\n" +msgid "%s%s: \"%s\" command received without host" +msgstr "%s \"%s\" команда получена без хоста\n" #, fuzzy, c-format msgid "%s%s: error when allocating new server" @@ -4023,19 +4031,6 @@ msgid "%s%s: not enough memory for received IRC message" msgstr "%s недостаточно памяти для полученного сообщения\n" #, fuzzy, c-format -msgid "%s%s: command \"%s\" failed" -msgstr "%s команда \"%s\" не удалась\n" - -#, fuzzy, c-format -msgid "%s%s: no command to execute" -msgstr "%s Нет команд для запуска!\n" - -#, fuzzy, c-format -msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" -msgstr "" -"%s Неизвестная команда: команда=\"%s\", хост=\"%s\", аргументы=\"%s\"\n" - -#, fuzzy, c-format msgid "%s%s: cannot read data from socket, disconnecting from server..." msgstr "%s невозможно прочитать данные из сокета, отключаюсь от сервера...\n" @@ -4417,6 +4412,77 @@ msgstr "" msgid "%s%s: wrong arguments for function \"%s\"" msgstr "%s некорректные аргументы команды \"%s\"\n" +#~ msgid "/list end" +#~ msgstr "конец /list" + +#~ msgid "userhost" +#~ msgstr "хост" + +#, fuzzy +#~ msgid "Notice from %s%s %s(%s%s%s)%s: %s" +#~ msgstr "%s%s %s(%s%s@%s%s)%s был %s\n" + +#, fuzzy +#~ msgid "Notice from %s%s%s: %s" +#~ msgstr "Ники %s%s%s: %s[" + +#, fuzzy +#~ msgid "Notice: %s" +#~ msgstr "войсы" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s help mode (+h)" +#~ msgstr "%s[%s%s%s]%s режим помощи (+h)\n" + +#, fuzzy +#~ msgid "%s[%s%s%s]%s Channels: " +#~ msgstr "%s[%s%s%s]%s бездействует: " + +#, fuzzy +#~ msgid "%s%s: cannot identify date/time for \"%s\" command" +#~ msgstr "%s не могу опознать дату/время для команды \"%s\"\n" + +#, fuzzy +#~ msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" +#~ msgstr "%sна %s%s%s/%s%s%s:%s игнорирует %s%s%s с %s%s\n" + +#, fuzzy +#~ msgid "%s%s: command \"%s\" failed" +#~ msgstr "%s команда \"%s\" не удалась\n" + +#, fuzzy +#~ msgid "%s%s: no command to execute" +#~ msgstr "%s Нет команд для запуска!\n" + +#, fuzzy +#~ msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" +#~ msgstr "" +#~ "%s Неизвестная команда: команда=\"%s\", хост=\"%s\", аргументы=\"%s\"\n" + +#, fuzzy +#~ msgid "%s%s%s%s has killed %s%s%s" +#~ msgstr "%s%s%s убил %s%s%s" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without channel or nickname" +#~ msgstr "%s \"%s\" команда получена без канала или ника\n" + +#, fuzzy +#~ msgid "%s%s: nickname not found for \"%s\" command" +#~ msgstr "%s ник не найден для команды \"%s\"\n" + +#, fuzzy +#~ msgid "%s%s: \"%s\" command received without host or channel" +#~ msgstr "%s \"%s\" команда получена без хоста или канала\n" + +#, fuzzy +#~ msgid "WALLOPS from %s%s%s: %s" +#~ msgstr "WALLOPы от %s%s%s: %s\n" + +#, fuzzy +#~ msgid "%s%s: host not found for \"%s\" command" +#~ msgstr "%s хост не найден для команды \"%s\"\n" + #~ msgid "jump to raw IRC data buffer" #~ msgstr "перейти к буферу сырых данных IRC" @@ -4528,10 +4594,6 @@ msgstr "%s некорректные аргументы команды \"%s\"\n" #~ "[имя]] | [unload [имя]]" #, fuzzy -#~ msgid "%s%s: not enough memory for function \"%s\"" -#~ msgstr "%s недостаточно памяти для нового DCC\n" - -#, fuzzy #~ msgid "[load filename] | [autoload] | [reload] | [unload [script]]" #~ msgstr "" #~ "[list [имя]] | [listfull [имя]] | [load имя_файла] | [autoload] | [reload " @@ -4556,9 +4618,6 @@ msgstr "%s некорректные аргументы команды \"%s\"\n" #~ msgid "%s cannot find nick for sending message\n" #~ msgstr "%s не могу найти адресата сообщения\n" -#~ msgid "Nicks %s%s%s: %s[" -#~ msgstr "Ники %s%s%s: %s[" - #, fuzzy #~ msgid "%s%s: error sending data to IRC server" #~ msgstr "%s ошибка при отправке данных IRC серверу\n" diff --git a/po/weechat.pot b/po/weechat.pot index 8a438dc75..527e36594 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2008-03-07 23:18+0100\n" +"POT-Creation-Date: 2008-03-15 09:33+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -666,6 +666,18 @@ msgstr "" msgid "\t\tDay changed to %s" msgstr "" +msgid "display WeeChat logo at startup" +msgstr "" + +msgid "display WeeChat version at startup" +msgstr "" + +msgid "command executed when WeeChat starts, before loading plugins" +msgstr "" + +msgid "command executed when WeeChat starts, after loading plugins" +msgstr "" + msgid "" "if set, uses real white color, disabled by default for terms with white " "background (if you never use white background, you should turn on this " @@ -678,12 +690,6 @@ msgstr "" msgid "set title for window (terminal for Curses GUI) with name and version" msgstr "" -msgid "display WeeChat logo at startup" -msgstr "" - -msgid "display WeeChat version at startup" -msgstr "" - msgid "WeeChat slogan (if empty, slogan is not used)" msgstr "" @@ -2865,598 +2871,599 @@ msgstr "" msgid "%s: this buffer is not a channel!" msgstr "" -msgid "error received from IRC server" +#, c-format +msgid "%sYou have been invited to %s%s%s by %s%s" msgstr "" -msgid "message received" +#, c-format +msgid "%s%s: cannot create new channel \"%s\"" msgstr "" -msgid "close all connections and quit" +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" msgstr "" -msgid "a server message" +#, c-format +msgid "%s%s: channel \"%s\" not found for \"%s\" command" msgstr "" -msgid "user mode string" +#, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" msgstr "" -msgid "away message" +#, c-format +msgid "%s%s%s%s has kicked %s%s%s from %s%s" msgstr "" -msgid "userhost" +#, c-format +msgid "%sYou were killed by %s%s %s(%s%s%s)" msgstr "" -msgid "ison" +#, c-format +msgid "%sYou were killed by %s%s" msgstr "" -msgid "unaway" +#, c-format +msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" msgstr "" -msgid "now away" +#, c-format +msgid "%sUser mode %s[%s%s%s]%s by %s%s" msgstr "" -msgid "whois (registered nick)" +#, c-format +msgid "%sYou are now known as %s%s" msgstr "" -msgid "whois (help mode)" +#, c-format +msgid "%s%s%s%s is now known as %s%s" msgstr "" -msgid "whois (user)" +#, c-format +msgid "%sCTCP %sVERSION%s reply from %s%s%s: %s" msgstr "" -msgid "whois (server)" +#, c-format +msgid "%sCTCP %sPING%s reply from %s%s%s: %ld.%ld %s" msgstr "" -msgid "whois (operator)" +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" msgstr "" -msgid "whowas" +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has left %s%s" msgstr "" -msgid "end of /who list" +#, c-format +msgid "%sCTCP %sVERSION%s received from %s%s%s: %s" msgstr "" -msgid "whois (idle)" +#, c-format +msgid "%sCTCP %sVERSION%s received from %s%s" msgstr "" -msgid "whois (end)" +#, c-format +msgid "Channel %s: * %s %s" msgstr "" -msgid "whois (channels)" +#, c-format +msgid "%sReceived a CTCP %sSOUND%s \"%s\" from %s%s" msgstr "" -msgid "whois (identified user)" +#, c-format +msgid "%sCTCP %sPING%s received from %s%s" msgstr "" -msgid "/list start" +#, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s%s: %s" msgstr "" -msgid "channel (for /list)" +#, c-format +msgid "%sUnknown CTCP %s%s%s received from %s%s" msgstr "" -msgid "/list end" +#, c-format +msgid "Channel %s: %s> %s" msgstr "" -msgid "channel mode" +#, c-format +msgid "%s%s: cannot parse \"%s\" command" msgstr "" -msgid "whois (has oper privs)" +#, c-format +msgid "%s%s: not enough memory for \"%s\" command" msgstr "" -msgid "whois (host)" +#, c-format +msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" msgstr "" -msgid "channel creation date" +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" msgstr "" -msgid "no topic for channel" +#, c-format +msgid "%s%s%s %s(%s%s%s)%s has quit" msgstr "" -msgid "topic of channel" +#, c-format +msgid "%s%s: \"%s\" command received without channel" msgstr "" -msgid "infos about topic (nick and date changed)" +#, c-format +msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" msgstr "" -msgid "inviting" +#, c-format +msgid "%s%s%s%s has unset topic for %s%s" msgstr "" -msgid "channel reop" +#, c-format +msgid "%sWallops from %s%s %s(%s%s%s)%s: %s" msgstr "" -msgid "end of channel reop list" +#, c-format +msgid "%sUser mode for %s%s%s is %s[%s%s%s]" msgstr "" -msgid "channel exception list" +#, c-format +msgid "%s%s%s%s is away: %s" msgstr "" -msgid "end of channel exception list" +#, c-format +msgid "%sUsers online: %s%s" msgstr "" -msgid "server version" +#, c-format +msgid "%s%s%s %s(%s%s@%s%s)%s was %s" msgstr "" -msgid "who" +#, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " +"at: %s%s" msgstr "" -msgid "list of nicks on channel" -msgstr "" +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" -msgid "end of /names list" -msgstr "" +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" -msgid "banlist" +#, c-format +msgid "" +"%s%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" msgstr "" -msgid "end of banlist" +#, c-format +msgid "%sChannel created on %s" msgstr "" -msgid "whois (connecting from)" +#, c-format +msgid "%sChannel %s%s%s created on %s" msgstr "" -msgid "whois (using modes)" +#, c-format +msgid "%sNo topic set for channel %s%s" msgstr "" -msgid "no such nick/channel" +#, c-format +msgid "%sTopic for %s%s%s is: \"%s%s\"" msgstr "" -msgid "no such server" +#, c-format +msgid "%sTopic set by %s%s%s on %s" msgstr "" -msgid "no such channel" +#, c-format +msgid "%sTopic for %s%s%s set by %s%s%s on %s" msgstr "" -msgid "cannot send to channel" +#, c-format +msgid "%s%s%s%s has invited %s%s%s on %s%s" msgstr "" -msgid "too many channels" +#, c-format +msgid "%s%s: cannot identify channel for \"%s\" command" msgstr "" -msgid "was no such nick" +#, c-format +msgid "%s%s: cannot identify nickname for \"%s\" command" msgstr "" -msgid "no origin" +#, c-format +msgid "%sChannel reop %s%s%s: %s%s" msgstr "" -msgid "no services" +#, c-format +msgid "%s%s[%s%s%s]%s exception %s%s%s" msgstr "" -msgid "no recipient" +#, c-format +msgid " by %s%s %s(%s%s%s)" msgstr "" -msgid "no text to send" +#, c-format +msgid " by %s%s" msgstr "" -msgid "no toplevel" +#, c-format +msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" msgstr "" -msgid "wilcard in toplevel domain" +#, c-format +msgid "%sNicks %s%s%s: %s[%s%s%s]" msgstr "" -msgid "unknown command" +#, c-format +msgid "" +"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" msgstr "" -msgid "MOTD is missing" +msgid "nicks" msgstr "" -msgid "no administrative info" +msgid "nick" msgstr "" -msgid "file error" +msgid "ops" msgstr "" -msgid "no nickname given" +msgid "op" msgstr "" -msgid "erroneous nickname" +msgid "halfops" msgstr "" -msgid "nickname already in use" +msgid "halfop" msgstr "" -msgid "nickname collision" +msgid "voices" msgstr "" -msgid "resource unavailable" +msgid "voice" msgstr "" -msgid "not authorized to change nickname" +msgid "normal" msgstr "" -msgid "user not in channel" +#, c-format +msgid "%s%s[%s%s%s] %s%s%s banned by " msgstr "" -msgid "not on channel" +#, c-format +msgid "%s%s[%s%s%s] %s%s%s banned" msgstr "" -msgid "user already on channel" +#, c-format +msgid "" +"%s%s: all declared nicknames are already in use or invalid, closing " +"connection with server" msgstr "" -msgid "user not logged in" +#, c-format +msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" msgstr "" -msgid "summon has been disabled" +#, c-format +msgid "" +"%s%s: all declared nicknames are already in use, closing connection with " +"server" msgstr "" -msgid "users has been disabled" +#, c-format +msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" msgstr "" -msgid "you are not registered" +msgid "error received from IRC server" msgstr "" -msgid "not enough parameters" +msgid "message received" msgstr "" -msgid "you may not register" +msgid "close all connections and quit" msgstr "" -msgid "your host isn't among the privileged" +msgid "a server message" msgstr "" -msgid "password incorrect" +msgid "user mode string" msgstr "" -msgid "you are banned from this server" +msgid "away message" msgstr "" -msgid "channel key already set" +msgid "ison" msgstr "" -msgid "forwarding to another channel" +msgid "unaway" msgstr "" -msgid "channel is already full" +msgid "now away" msgstr "" -msgid "unknown mode char to me" +msgid "whois (registered nick)" msgstr "" -msgid "cannot join channel (invite only)" +msgid "whois (help mode)" msgstr "" -msgid "cannot join channel (banned from channel)" +msgid "whois (user)" msgstr "" -msgid "cannot join channel (bad channel key)" +msgid "whois (server)" msgstr "" -msgid "bad channel mask" +msgid "whois (operator)" msgstr "" -msgid "channel doesn't support modes" +msgid "whowas" msgstr "" -msgid "you're not an IRC operator" +msgid "end of /who list" msgstr "" -msgid "you're not channel operator" +msgid "whois (idle)" msgstr "" -msgid "you can't kill a server!" +msgid "whois (end)" msgstr "" -msgid "your connection is restricted!" +msgid "whois (channels)" msgstr "" -msgid "user is immune from kick/deop" +msgid "whois (identified user)" msgstr "" -msgid "network split" +msgid "/list start" msgstr "" -msgid "no O-lines for your host" +msgid "channel (for /list)" msgstr "" -msgid "unknown mode flag" +msgid "end of /list" msgstr "" -msgid "can't change mode for other users" +msgid "channel mode" msgstr "" -msgid "whois (secure connection)" +msgid "whois (has oper privs)" msgstr "" -#, c-format -msgid "You have been invited to %s%s%s by %s%s" +msgid "whois (host)" msgstr "" -#, c-format -msgid "%s%s: channel \"%s\" not found for \"%s\" command" +msgid "channel creation date" msgstr "" -#, c-format -msgid "%s%s: \"%s\" command received without host" +msgid "no topic for channel" msgstr "" -#, c-format -msgid "%s%s: cannot create new channel \"%s\"" +msgid "topic of channel" msgstr "" -#, c-format -msgid "%s%s%s %s(%s%s%s)%s has joined %s%s" +msgid "infos about topic (nick and date changed)" msgstr "" -#, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)" +msgid "inviting" msgstr "" -#, c-format -msgid "%s%s%s%s has kicked %s%s%s from %s%s" +msgid "channel reop" msgstr "" -#, c-format -msgid "%s%s%s%s has killed %s%s%s from server %s(%s%s%s)" +msgid "end of channel reop list" msgstr "" -#, c-format -msgid "%s%s%s%s has killed %s%s%s from server" +msgid "channel exception list" msgstr "" -#, c-format -msgid "%s%s: host not found for \"%s\" command" +msgid "end of channel exception list" msgstr "" -#, c-format -msgid "%s%s: \"%s\" command received without channel or nickname" +msgid "server version" msgstr "" -#, c-format -msgid "%sMode %s%s %s[%s%s%s]%s by %s%s" +msgid "who" msgstr "" -#, c-format -msgid "%sUser mode %s[%s%s%s]%s by %s%s" +msgid "list of nicks on channel" msgstr "" -#, c-format -msgid "%sYou are now known as %s%s" +msgid "end of /names list" msgstr "" -#, c-format -msgid "%s%s%s%s is now known as %s%s" +msgid "banlist" msgstr "" -#, c-format -msgid "%s%s: nickname not found for \"%s\" command" +msgid "end of banlist" msgstr "" -#, c-format -msgid "CTCP %sVERSION%s reply from %s%s%s: %s" +msgid "whois (connecting from)" msgstr "" -#, c-format -msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld %s" +msgid "whois (using modes)" msgstr "" -#, c-format -msgid "%s%s: \"%s\" command received without host or channel" +msgid "no such nick/channel" msgstr "" -#, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)" +msgid "no such server" msgstr "" -#, c-format -msgid "%s%s%s %s(%s%s%s)%s has left %s%s" +msgid "no such channel" msgstr "" -#, c-format -msgid "CTCP %sVERSION%s received from %s%s%s: %s" +msgid "cannot send to channel" msgstr "" -#, c-format -msgid "CTCP %sVERSION%s received from %s%s" +msgid "too many channels" msgstr "" -#, c-format -msgid "Channel %s: * %s %s" +msgid "was no such nick" msgstr "" -#, c-format -msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s" +msgid "no origin" msgstr "" -#, c-format -msgid "CTCP %sPING%s received from %s%s" +msgid "no services" msgstr "" -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s%s: %s" +msgid "no recipient" msgstr "" -#, c-format -msgid "Unknown CTCP %s%s%s received from %s%s" +msgid "no text to send" msgstr "" -#, c-format -msgid "Channel %s: %s> %s" +msgid "no toplevel" msgstr "" -#, c-format -msgid "%s%s: cannot parse \"%s\" command" +msgid "wilcard in toplevel domain" msgstr "" -#, c-format -msgid "%s%s: unknown DCC CHAT type received from %s%s%s: \"%s\"" +msgid "unknown command" msgstr "" -#, c-format -msgid "%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)" +msgid "MOTD is missing" msgstr "" -#, c-format -msgid "%s%s: \"%s\" command received without channel" +msgid "no administrative info" msgstr "" -#, c-format -msgid "%s%s%s%s has changed topic for %s%s%s to: \"%s%s\"" +msgid "file error" msgstr "" -#, c-format -msgid "%s%s%s%s has unset topic for %s%s" +msgid "no nickname given" msgstr "" -#, c-format -msgid "WALLOPS from %s%s%s: %s" +msgid "erroneous nickname" msgstr "" -#, c-format -msgid "User mode for %s%s%s is %s[%s%s%s]" +msgid "nickname already in use" msgstr "" -#, c-format -msgid "%s%s%s%s is away: %s" +msgid "nickname collision" msgstr "" -msgid "Users online: " +msgid "resource unavailable" msgstr "" -#, c-format -msgid "%s[%s%s%s]%s help mode (+h)" +msgid "not authorized to change nickname" msgstr "" -#, c-format -msgid "%s%s %s(%s%s@%s%s)%s was %s" +msgid "user not in channel" msgstr "" -#, c-format -msgid "" -"%s[%s%s%s]%s idle: %s%d %s%s, %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon " -"at: %s%s" +msgid "not on channel" msgstr "" -msgid "hour" -msgid_plural "hours" -msgstr[0] "" -msgstr[1] "" - -msgid "minute" -msgid_plural "minutes" -msgstr[0] "" -msgstr[1] "" +msgid "user already on channel" +msgstr "" -#, c-format -msgid "%s[%s%s%s]%s idle: %s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s" +msgid "user not logged in" msgstr "" -#, c-format -msgid "%s[%s%s%s]%s Channels: " +msgid "summon has been disabled" msgstr "" -#, c-format -msgid "%sChannel created on %s" +msgid "users has been disabled" msgstr "" -#, c-format -msgid "%s%s: cannot identify date/time for \"%s\" command" +msgid "you are not registered" msgstr "" -#, c-format -msgid "%s%s: cannot identify channel for \"%s\" command" +msgid "not enough parameters" msgstr "" -#, c-format -msgid "%sNo topic set for %s%s" +msgid "you may not register" msgstr "" -#, c-format -msgid "%sTopic for %s%s%s is: \"%s%s\"" +msgid "your host isn't among the privileged" msgstr "" -#, c-format -msgid "%sTopic set by %s%s%s, %s" +msgid "password incorrect" msgstr "" -#, c-format -msgid "%s%s%s has invited %s%s%s on %s%s" +msgid "you are banned from this server" msgstr "" -#, c-format -msgid "%s%s: cannot identify nickname for \"%s\" command" +msgid "channel key already set" msgstr "" -#, c-format -msgid "Channel reop %s%s%s: %s%s" +msgid "forwarding to another channel" msgstr "" -#, c-format -msgid "%s%s[%s%s%s]%s exception %s%s%s" +msgid "channel is already full" msgstr "" -#, c-format -msgid " by %s%s %s(%s%s%s)" +msgid "unknown mode char to me" msgstr "" -#, c-format -msgid " by %s%s" +msgid "cannot join channel (invite only)" msgstr "" -#, c-format -msgid "%s%s%s on %s%s%s %s %s %s%s@%s %s(%s%s%s)" +msgid "cannot join channel (banned from channel)" msgstr "" -#, c-format -msgid "%s%s: cannot create nick \"%s\" for channel \"%s\"" +msgid "cannot join channel (bad channel key)" msgstr "" -#, c-format -msgid "" -"%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, %s%d%s %s, %s%d%s %s, %s%d%s %s%s)" +msgid "bad channel mask" msgstr "" -msgid "nicks" +msgid "channel doesn't support modes" msgstr "" -msgid "nick" +msgid "you're not an IRC operator" msgstr "" -msgid "ops" +msgid "you're not channel operator" msgstr "" -msgid "op" +msgid "you can't kill a server!" msgstr "" -msgid "halfops" +msgid "your connection is restricted!" msgstr "" -msgid "halfop" +msgid "user is immune from kick/deop" msgstr "" -msgid "voices" +msgid "network split" msgstr "" -msgid "voice" +msgid "no O-lines for your host" msgstr "" -msgid "normal" +msgid "unknown mode flag" msgstr "" -#, c-format -msgid "%s[%s%s%s] %s%s%s banned by " +msgid "can't change mode for other users" msgstr "" -#, c-format -msgid "%s%s[%s%s%s] %s%s%s banned" +msgid "whois (secure connection)" msgstr "" #, c-format -msgid "" -"%s%s: all declared nicknames are already in use or invalid, closing " -"connection with server" +msgid "%s%s: command \"%s\" not found:" msgstr "" #, c-format -msgid "%s%s: nickname \"%s\" is invalid, trying nickname #%d (\"%s\")" +msgid "%s%s: failed to parse command \"%s\" (please report to developers):" msgstr "" #, c-format msgid "" -"%s%s: all declared nicknames are already in use, closing connection with " -"server" +"%s%s: too few arguments received from IRC server for command \"%s" +"\" (received: %d arguments, expected: at least %d)" msgstr "" #, c-format -msgid "%s%s: nickname \"%s\" is already in use, trying nickname #%d (\"%s\")" +msgid "%s%s: \"%s\" command received without host" msgstr "" #, c-format @@ -3487,18 +3494,6 @@ msgid "%s%s: not enough memory for received IRC message" msgstr "" #, c-format -msgid "%s%s: command \"%s\" failed" -msgstr "" - -#, c-format -msgid "%s%s: no command to execute" -msgstr "" - -#, c-format -msgid "%s%s: unknown command: cmd=\"%s\", host=\"%s\", arguments=\"%s\"" -msgstr "" - -#, c-format msgid "%s%s: cannot read data from socket, disconnecting from server..." msgstr "" diff --git a/src/plugins/irc/irc-channel.c b/src/plugins/irc/irc-channel.c index cd18fe33e..62f232919 100644 --- a/src/plugins/irc/irc-channel.c +++ b/src/plugins/irc/irc-channel.c @@ -310,9 +310,8 @@ irc_channel_remove_away (struct t_irc_channel *channel) { for (ptr_nick = channel->nicks; ptr_nick; ptr_nick = ptr_nick->next_nick) { - IRC_NICK_SET_FLAG(ptr_nick, 0, IRC_NICK_AWAY); + irc_nick_set (channel, ptr_nick, 0, IRC_NICK_AWAY); } - //gui_nicklist_draw (channel->buffer, 0, 0); } } diff --git a/src/plugins/irc/irc-input.c b/src/plugins/irc/irc-input.c index 93c8f026c..70eaf794c 100644 --- a/src/plugins/irc/irc-input.c +++ b/src/plugins/irc/irc-input.c @@ -147,8 +147,6 @@ irc_input_send_user_message (struct t_gui_buffer *buffer, char *text) /* * irc_input_data_cb: callback for input data in a buffer - * Return: PROTOCOL_RC_OK if ok - * PROTOCOL_RC_KO if error */ int diff --git a/src/plugins/irc/irc-mode.c b/src/plugins/irc/irc-mode.c index 837cfabf1..1186a03cd 100644 --- a/src/plugins/irc/irc-mode.c +++ b/src/plugins/irc/irc-mode.c @@ -42,39 +42,14 @@ void irc_mode_channel_set_nick (struct t_irc_channel *channel, char *nick, char set_flag, int flag) { - (void) channel; - (void) nick; - (void) set_flag; - (void) flag; - - /* struct t_irc_nick *ptr_nick; - struct t_gui_nick *ptr_gui_nick; - int sort_index, color_prefix; - char prefix; if (nick) { ptr_nick = irc_nick_search (channel, nick); if (ptr_nick) - { - IRC_NICK_SET_FLAG(ptr_nick, (set_flag == '+'), flag); - ptr_gui_nick = gui_nicklist_search (channel->buffer, - ptr_nick->nick); - if (ptr_gui_nick) - { - irc_nick_get_gui_infos (ptr_nick, &sort_index, &prefix, - &color_prefix); - gui_nicklist_update (channel->buffer, ptr_gui_nick, NULL, - sort_index, - ptr_gui_nick->color_nick, - prefix, - color_prefix); - gui_nicklist_draw (channel->buffer, 1, 1); - } - } + irc_nick_set (channel, ptr_nick, (set_flag == '+'), flag); } - */ } /* @@ -107,7 +82,7 @@ void irc_mode_channel_set (struct t_irc_server *server, struct t_irc_channel *channel, char *modes) { - char *pos_args, set_flag, **argv, *pos, *ptr_arg; + char *pos_args, *str_modes, set_flag, **argv, *pos, *ptr_arg; int argc, current_arg; argc = 0; @@ -116,7 +91,9 @@ irc_mode_channel_set (struct t_irc_server *server, pos_args = strchr (modes, ' '); if (pos_args) { - pos_args[0] = '\0'; + str_modes = weechat_strndup (modes, pos_args - modes); + if (!str_modes) + return; pos_args++; while (pos_args[0] == ' ') pos_args++; @@ -124,12 +101,18 @@ irc_mode_channel_set (struct t_irc_server *server, if (argc > 0) current_arg = argc - 1; } + else + { + str_modes = strdup (modes); + if (!str_modes) + return; + } - if (modes && modes[0]) + if (str_modes && str_modes[0]) { set_flag = '+'; - pos = modes + strlen (modes) - 1; - while (pos >= modes) + pos = str_modes + strlen (str_modes) - 1; + while (pos >= str_modes) { switch (pos[0]) { @@ -139,7 +122,7 @@ irc_mode_channel_set (struct t_irc_server *server, case '-': break; default: - set_flag = irc_mode_channel_get_flag (modes, pos); + set_flag = irc_mode_channel_get_flag (str_modes, pos); switch (pos[0]) { case 'a': /* channel admin (unrealircd specific flag) */ @@ -219,7 +202,9 @@ irc_mode_channel_set (struct t_irc_server *server, pos--; } } - + + if (str_modes) + free (str_modes); if (argv) weechat_string_free_exploded (argv); } diff --git a/src/plugins/irc/irc-nick.c b/src/plugins/irc/irc-nick.c index 6cf854ea4..e5ba83646 100644 --- a/src/plugins/irc/irc-nick.c +++ b/src/plugins/irc/irc-nick.c @@ -148,6 +148,14 @@ irc_nick_new (struct t_irc_server *server, struct t_irc_channel *channel, ptr_nick = irc_nick_search (channel, nick_name); if (ptr_nick) { + /* remove old nick from nicklist */ + irc_nick_get_gui_infos (channel->buffer, ptr_nick, &prefix, + &prefix_color, &ptr_group); + weechat_nicklist_remove_nick (channel->buffer, + weechat_nicklist_search_nick (channel->buffer, + ptr_group, + ptr_nick->name)); + /* update nick */ IRC_NICK_SET_FLAG(ptr_nick, is_chanowner, IRC_NICK_CHANOWNER); IRC_NICK_SET_FLAG(ptr_nick, is_chanadmin, IRC_NICK_CHANADMIN); @@ -157,12 +165,9 @@ irc_nick_new (struct t_irc_server *server, struct t_irc_channel *channel, IRC_NICK_SET_FLAG(ptr_nick, has_voice, IRC_NICK_VOICE); IRC_NICK_SET_FLAG(ptr_nick, is_chanuser, IRC_NICK_CHANUSER); + /* add new nick in nicklist */ irc_nick_get_gui_infos (channel->buffer, ptr_nick, &prefix, &prefix_color, &ptr_group); - weechat_nicklist_remove_nick (channel->buffer, - weechat_nicklist_search_nick (channel->buffer, - ptr_group, - ptr_nick->name)); snprintf (str_prefix_color, sizeof (str_prefix_color), "color_nicklist_prefix%d", prefix_color); @@ -270,6 +275,40 @@ irc_nick_change (struct t_irc_server *server, struct t_irc_channel *channel, } /* + * irc_nick_set: set a flag for a nick + */ + +void +irc_nick_set (struct t_irc_channel *channel, + struct t_irc_nick *nick, int set, int flag) +{ + char prefix, str_prefix_color[64]; + int prefix_color; + + struct t_gui_nick_group *ptr_group; + /* remove nick from nicklist */ + irc_nick_get_gui_infos (channel->buffer, nick, &prefix, + &prefix_color, &ptr_group); + weechat_nicklist_remove_nick (channel->buffer, + weechat_nicklist_search_nick (channel->buffer, + ptr_group, + nick->name)); + + /* set flag */ + IRC_NICK_SET_FLAG(nick, set, flag); + + /* add nick in nicklist */ + irc_nick_get_gui_infos (channel->buffer, nick, &prefix, + &prefix_color, &ptr_group); + snprintf (str_prefix_color, sizeof (str_prefix_color), + "color_nicklist_prefix%d", + prefix_color); + weechat_nicklist_add_nick (channel->buffer, ptr_group, + nick->name, nick->color, + prefix, str_prefix_color, 1); +} + +/* * irc_nick_free: free a nick and remove it from nicks list */ diff --git a/src/plugins/irc/irc-nick.h b/src/plugins/irc/irc-nick.h index dbe3aaf3e..cd34d39d8 100644 --- a/src/plugins/irc/irc-nick.h +++ b/src/plugins/irc/irc-nick.h @@ -65,6 +65,8 @@ extern struct t_irc_nick *irc_nick_new (struct t_irc_server *server, extern void irc_nick_change (struct t_irc_server *server, struct t_irc_channel *channel, struct t_irc_nick *nick, char *new_nick); +extern void irc_nick_set (struct t_irc_channel *channel, + struct t_irc_nick *nick, int set, int flag); extern void irc_nick_free (struct t_irc_channel *channel, struct t_irc_nick *nick); extern void irc_nick_free_all (struct t_irc_channel *channel); diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 45c85a16c..154cba05f 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -53,126 +53,96 @@ #include "irc-mode.h" -struct t_irc_protocol_msg irc_protocol_messages[] = -{ { "error", N_("error received from IRC server"), NULL, irc_protocol_cmd_error }, - { "invite", N_("invite a nick on a channel"), NULL, irc_protocol_cmd_invite }, - { "join", N_("join a channel"), NULL, irc_protocol_cmd_join }, - { "kick", N_("forcibly remove a user from a channel"), irc_protocol_cmd_kick, NULL }, - { "kill", N_("close client-server connection"), irc_protocol_cmd_kill, NULL }, - { "mode", N_("change channel or user mode"), irc_protocol_cmd_mode, NULL }, - { "nick", N_("change current nickname"), irc_protocol_cmd_nick, NULL }, - { "notice", N_("send notice message to user"), irc_protocol_cmd_notice, NULL }, - { "part", N_("leave a channel"), irc_protocol_cmd_part, NULL }, - { "ping", N_("ping server"), irc_protocol_cmd_ping, NULL }, - { "pong", N_("answer to a ping message"), irc_protocol_cmd_pong, NULL }, - { "privmsg", N_("message received"), irc_protocol_cmd_privmsg, NULL }, - { "quit", N_("close all connections and quit"), irc_protocol_cmd_quit, NULL }, - { "topic", N_("get/set channel topic"), irc_protocol_cmd_topic, NULL }, - { "wallops", N_("send a message to all currently connected users who have " - "set the 'w' user mode for themselves"), irc_protocol_cmd_wallops, NULL }, - { "001", N_("a server message"), irc_protocol_cmd_001, NULL }, - { "005", N_("a server message"), irc_protocol_cmd_005, NULL }, - { "221", N_("user mode string"), irc_protocol_cmd_221, NULL }, - { "301", N_("away message"), irc_protocol_cmd_301, NULL }, - { "302", N_("userhost"), irc_protocol_cmd_302, NULL }, - { "303", N_("ison"), irc_protocol_cmd_303, NULL }, - { "305", N_("unaway"), irc_protocol_cmd_305, NULL }, - { "306", N_("now away"), irc_protocol_cmd_306, NULL }, - { "307", N_("whois (registered nick)"), irc_protocol_cmd_whois_nick_msg, NULL }, - { "310", N_("whois (help mode)"), irc_protocol_cmd_310, NULL }, - { "311", N_("whois (user)"), irc_protocol_cmd_311, NULL }, - { "312", N_("whois (server)"), irc_protocol_cmd_312, NULL }, - { "313", N_("whois (operator)"), irc_protocol_cmd_whois_nick_msg, NULL }, - { "314", N_("whowas"), irc_protocol_cmd_314, NULL }, - { "315", N_("end of /who list"), irc_protocol_cmd_315, NULL }, - { "317", N_("whois (idle)"), irc_protocol_cmd_317, NULL }, - { "318", N_("whois (end)"), irc_protocol_cmd_whois_nick_msg, NULL }, - { "319", N_("whois (channels)"), irc_protocol_cmd_319, NULL }, - { "320", N_("whois (identified user)"), irc_protocol_cmd_whois_nick_msg, NULL }, - { "321", N_("/list start"), irc_protocol_cmd_321, NULL }, - { "322", N_("channel (for /list)"), irc_protocol_cmd_322, NULL }, - { "323", N_("/list end"), irc_protocol_cmd_323, NULL }, - { "324", N_("channel mode"), irc_protocol_cmd_324, NULL }, - { "326", N_("whois (has oper privs)"), irc_protocol_cmd_whois_nick_msg, NULL }, - { "327", N_("whois (host)"), irc_protocol_cmd_327, NULL }, - { "329", N_("channel creation date"), irc_protocol_cmd_329, NULL }, - { "331", N_("no topic for channel"), irc_protocol_cmd_331, NULL }, - { "332", N_("topic of channel"), irc_protocol_cmd_332, NULL }, - { "333", N_("infos about topic (nick and date changed)"), irc_protocol_cmd_333, NULL }, - { "338", N_("whois (host)"), irc_protocol_cmd_338, NULL }, - { "341", N_("inviting"), irc_protocol_cmd_341, NULL }, - { "344", N_("channel reop"), irc_protocol_cmd_344, NULL }, - { "345", N_("end of channel reop list"), irc_protocol_cmd_345, NULL }, - { "348", N_("channel exception list"), irc_protocol_cmd_348, NULL }, - { "349", N_("end of channel exception list"), irc_protocol_cmd_349, NULL }, - { "351", N_("server version"), irc_protocol_cmd_351, NULL }, - { "352", N_("who"), irc_protocol_cmd_352, NULL }, - { "353", N_("list of nicks on channel"), irc_protocol_cmd_353, NULL }, - { "366", N_("end of /names list"), irc_protocol_cmd_366, NULL }, - { "367", N_("banlist"), irc_protocol_cmd_367, NULL }, - { "368", N_("end of banlist"), irc_protocol_cmd_368, NULL }, - { "378", N_("whois (connecting from)"), irc_protocol_cmd_whois_nick_msg, NULL }, - { "379", N_("whois (using modes)"), irc_protocol_cmd_whois_nick_msg, NULL }, - { "401", N_("no such nick/channel"), NULL, irc_protocol_cmd_error }, - { "402", N_("no such server"), NULL, irc_protocol_cmd_error }, - { "403", N_("no such channel"), NULL, irc_protocol_cmd_error }, - { "404", N_("cannot send to channel"), NULL, irc_protocol_cmd_error }, - { "405", N_("too many channels"), NULL, irc_protocol_cmd_error }, - { "406", N_("was no such nick"), NULL, irc_protocol_cmd_error }, - { "407", N_("was no such nick"), NULL, irc_protocol_cmd_error }, - { "409", N_("no origin"), NULL, irc_protocol_cmd_error }, - { "410", N_("no services"), NULL, irc_protocol_cmd_error }, - { "411", N_("no recipient"), NULL, irc_protocol_cmd_error }, - { "412", N_("no text to send"), NULL, irc_protocol_cmd_error }, - { "413", N_("no toplevel"), NULL, irc_protocol_cmd_error }, - { "414", N_("wilcard in toplevel domain"), NULL, irc_protocol_cmd_error }, - { "421", N_("unknown command"), NULL, irc_protocol_cmd_error }, - { "422", N_("MOTD is missing"), NULL, irc_protocol_cmd_error }, - { "423", N_("no administrative info"), NULL, irc_protocol_cmd_error }, - { "424", N_("file error"), NULL, irc_protocol_cmd_error }, - { "431", N_("no nickname given"), NULL, irc_protocol_cmd_error }, - { "432", N_("erroneous nickname"), NULL, irc_protocol_cmd_432 }, - { "433", N_("nickname already in use"), NULL, irc_protocol_cmd_433 }, - { "436", N_("nickname collision"), NULL, irc_protocol_cmd_error }, - { "437", N_("resource unavailable"), NULL, irc_protocol_cmd_error }, - { "438", N_("not authorized to change nickname"), irc_protocol_cmd_438, NULL }, - { "441", N_("user not in channel"), NULL, irc_protocol_cmd_error }, - { "442", N_("not on channel"), NULL, irc_protocol_cmd_error }, - { "443", N_("user already on channel"), NULL, irc_protocol_cmd_error }, - { "444", N_("user not logged in"), NULL, irc_protocol_cmd_error }, - { "445", N_("summon has been disabled"), NULL, irc_protocol_cmd_error }, - { "446", N_("users has been disabled"), NULL, irc_protocol_cmd_error }, - { "451", N_("you are not registered"), NULL, irc_protocol_cmd_error }, - { "461", N_("not enough parameters"), NULL, irc_protocol_cmd_error }, - { "462", N_("you may not register"), NULL, irc_protocol_cmd_error }, - { "463", N_("your host isn't among the privileged"), NULL, irc_protocol_cmd_error }, - { "464", N_("password incorrect"), NULL, irc_protocol_cmd_error }, - { "465", N_("you are banned from this server"), NULL, irc_protocol_cmd_error }, - { "467", N_("channel key already set"), NULL, irc_protocol_cmd_error }, - { "470", N_("forwarding to another channel"), NULL, irc_protocol_cmd_error }, - { "471", N_("channel is already full"), NULL, irc_protocol_cmd_error }, - { "472", N_("unknown mode char to me"), NULL, irc_protocol_cmd_error }, - { "473", N_("cannot join channel (invite only)"), NULL, irc_protocol_cmd_error }, - { "474", N_("cannot join channel (banned from channel)"), NULL, irc_protocol_cmd_error }, - { "475", N_("cannot join channel (bad channel key)"), NULL, irc_protocol_cmd_error }, - { "476", N_("bad channel mask"), NULL, irc_protocol_cmd_error }, - { "477", N_("channel doesn't support modes"), NULL, irc_protocol_cmd_error }, - { "481", N_("you're not an IRC operator"), NULL, irc_protocol_cmd_error }, - { "482", N_("you're not channel operator"), NULL, irc_protocol_cmd_error }, - { "483", N_("you can't kill a server!"), NULL, irc_protocol_cmd_error }, - { "484", N_("your connection is restricted!"), NULL, irc_protocol_cmd_error }, - { "485", N_("user is immune from kick/deop"), NULL, irc_protocol_cmd_error }, - { "487", N_("network split"), NULL, irc_protocol_cmd_error }, - { "491", N_("no O-lines for your host"), NULL, irc_protocol_cmd_error }, - { "501", N_("unknown mode flag"), NULL, irc_protocol_cmd_error }, - { "502", N_("can't change mode for other users"), NULL, irc_protocol_cmd_error }, - { "671", N_("whois (secure connection)"), irc_protocol_cmd_671, NULL }, - { "973", N_("whois (secure connection)"), irc_protocol_cmd_server_mode_reason, NULL }, - { "974", N_("whois (secure connection)"), irc_protocol_cmd_server_mode_reason, NULL }, - { "975", N_("whois (secure connection)"), irc_protocol_cmd_server_mode_reason, NULL }, - { NULL, NULL, NULL, NULL } -}; +/* + * irc_protocol_get_nick_from_host: get nick from host in an IRC message + */ + +char * +irc_protocol_get_nick_from_host (char *host) +{ + static char nick[128]; + char *pos; + nick[0] = '\0'; + if (host) + { + if (host[0] == ':') + host++; + pos = strchr (host, '!'); + if (pos && (pos - host < (int)sizeof (nick))) + { + strncpy (nick, host, pos - host); + nick[pos - host] = '\0'; + } + else + snprintf (nick, sizeof (nick), "%s", host); + } + return nick; +} + +/* + * irc_protocol_get_address_from_host: get address from host in an IRC message + */ + +char * +irc_protocol_get_address_from_host (char *host) +{ + static char address[256]; + char *pos; + + address[0] = '\0'; + if (host && (host[0] == ':')) + { + host++; + pos = strchr (host, '!'); + if (pos) + snprintf (address, sizeof (address), "%s", pos + 1); + else + snprintf (address, sizeof (address), "%s", host); + } + return address; +} + +/* + * irc_protocol_replace_vars: replace special IRC vars ($nick, $channel, $server) in a string + * Note: result has to be free() after use + */ + +char * +irc_protocol_replace_vars (struct t_irc_server *server, + struct t_irc_channel *channel, char *string) +{ + char *var_nick, *var_channel, *var_server; + char empty_string[1] = { '\0' }; + char *res, *temp; + + var_nick = (server && server->nick) ? server->nick : empty_string; + var_channel = (channel) ? channel->name : empty_string; + var_server = (server) ? server->name : empty_string; + + /* replace nick */ + temp = weechat_string_replace (string, "$nick", var_nick); + if (!temp) + return NULL; + res = temp; + + /* replace channel */ + temp = weechat_string_replace (res, "$channel", var_channel); + free (res); + if (!temp) + return NULL; + res = temp; + + /* replace server */ + temp = weechat_string_replace (res, "$server", var_server); + free (res); + if (!temp) + return NULL; + res = temp; + + /* return result */ + return res; +} /* * irc_protocol_get_wide_char: get wide char from string (first char) @@ -242,22 +212,6 @@ irc_protocol_is_word_char (char *str) } /* - * irc_protocol_is_numeric_command: return 1 if given string is 100% numeric - */ - -int -irc_protocol_is_numeric_command (char *str) -{ - while (str && str[0]) - { - if (!isdigit (str[0])) - return 0; - str++; - } - return 1; -} - -/* * irc_protocol_is_highlight: return 1 if given message contains highlight (with given nick * or at least one of string in "irc_higlight" setting) */ @@ -386,223 +340,19 @@ irc_protocol_is_highlight (char *message, char *nick) } /* - * irc_protocol_replace_vars: replace special IRC vars ($nick, $channel, $server) in a string - * Note: result has to be free() after use - */ - -char * -irc_protocol_replace_vars (struct t_irc_server *server, - struct t_irc_channel *channel, char *string) -{ - char *var_nick, *var_channel, *var_server; - char empty_string[1] = { '\0' }; - char *res, *temp; - - var_nick = (server && server->nick) ? server->nick : empty_string; - var_channel = (channel) ? channel->name : empty_string; - var_server = (server) ? server->name : empty_string; - - /* replace nick */ - temp = weechat_string_replace (string, "$nick", var_nick); - if (!temp) - return NULL; - res = temp; - - /* replace channel */ - temp = weechat_string_replace (res, "$channel", var_channel); - free (res); - if (!temp) - return NULL; - res = temp; - - /* replace server */ - temp = weechat_string_replace (res, "$server", var_server); - free (res); - if (!temp) - return NULL; - res = temp; - - /* return result */ - return res; -} - -/* - * irc_protocol_get_nick_from_host: get nick from host in an IRC message - */ - -char * -irc_protocol_get_nick_from_host (char *host) -{ - static char nick[128]; - char *pos; - - nick[0] = '\0'; - if (host) - { - if (host[0] == ':') - host++; - pos = strchr (host, '!'); - if (pos && (pos - host < (int)sizeof (nick))) - { - strncpy (nick, host, pos - host); - nick[pos - host] = '\0'; - } - else - snprintf (nick, sizeof (nick), "%s", host); - } - return nick; -} - -/* - * irc_protocol_get_address_from_host: get address from host in an IRC message - */ - -char * -irc_protocol_get_address_from_host (char *host) -{ - static char address[256]; - char *pos; - - address[0] = '\0'; - if (host) - { - if (host[0] == ':') - host++; - pos = strchr (host, '!'); - if (pos) - snprintf (address, sizeof (address), "%s", pos + 1); - else - snprintf (address, sizeof (address), "%s", host); - } - return address; -} - -/* - * irc_protocol_recv_command: executes action when receiving IRC command - * return: 0 = all ok, command executed - * -1 = command failed - * -2 = no command to execute - * -3 = command not found - */ - -int -irc_protocol_recv_command (struct t_irc_server *server, char *entire_line, - char *host, char *command, char *arguments) -{ - int i, cmd_found, return_code, ignore, highlight, argc; - char *pos, *nick; - char *dup_entire_line, *dup_host, *dup_arguments, *irc_message; - t_irc_recv_func *cmd_recv_func; - t_irc_recv_func2 *cmd_recv_func2; - char *cmd_name, **argv, **argv_eol; - - if (!command) - return -2; - - /* look for IRC command */ - cmd_found = -1; - for (i = 0; irc_protocol_messages[i].name; i++) - { - if (weechat_strcasecmp (irc_protocol_messages[i].name, command) == 0) - { - cmd_found = i; - break; - } - } - - /* command not found */ - if (cmd_found < 0) - { - /* for numeric commands, we use default recv function */ - if (irc_protocol_is_numeric_command (command)) - { - cmd_name = command; - cmd_recv_func = irc_protocol_cmd_server_msg; - cmd_recv_func2 = NULL; - } - else - return -3; - } - else - { - cmd_name = irc_protocol_messages[cmd_found].name; - cmd_recv_func = irc_protocol_messages[cmd_found].recv_function; - cmd_recv_func2 = irc_protocol_messages[cmd_found].recv_function2; - } - - if ((cmd_recv_func != NULL) || (cmd_recv_func2 != NULL)) - { - argv = weechat_string_explode (entire_line, " ", 0, 0, &argc); - argv_eol = weechat_string_explode (entire_line, " ", 1, 0, NULL); - dup_entire_line = (entire_line) ? strdup (entire_line) : NULL; - dup_host = (host) ? strdup (host) : NULL; - dup_arguments = (arguments) ? strdup (arguments) : NULL; - - ignore = 0; - highlight = 0; - - //return_code = plugin_msg_handler_exec (server->name, - // cmd_name, - // dup_entire_line); - /* plugin handler choosed to discard message for WeeChat, - so we ignore this message in standard handler */ - //if (return_code & PLUGIN_RC_OK_IGNORE_WEECHAT) - // ignore = 1; - /* plugin asked for highlight ? */ - //if (return_code & PLUGIN_RC_OK_WITH_HIGHLIGHT) - // highlight = 1; - - pos = (dup_host) ? strchr (dup_host, '!') : NULL; - if (pos) - pos[0] = '\0'; - nick = (dup_host) ? strdup (dup_host) : NULL; - if (pos) - pos[0] = '!'; - irc_message = strdup (dup_entire_line); - - if (cmd_recv_func2 != NULL) - { - return_code = (int) (cmd_recv_func2) (server, argc, argv, argv_eol, - ignore, highlight); - } - else - { - return_code = (int) (cmd_recv_func) (server, irc_message, - dup_host, nick, - dup_arguments, - ignore, highlight); - } - if (irc_message) - free (irc_message); - if (nick) - free (nick); - if (dup_entire_line) - free (dup_entire_line); - if (dup_host) - free (dup_host); - if (dup_arguments) - free (dup_arguments); - if (argv) - weechat_string_free_exploded (argv); - if (argv_eol) - weechat_string_free_exploded (argv_eol); - return return_code; - } - - return 0; -} - -/* * irc_protocol_cmd_error: error received from server */ int -irc_protocol_cmd_error (struct t_irc_server *server, int argc, char **argv, - char **argv_eol, int ignore, int highlight) +irc_protocol_cmd_error (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { int first_arg; char *chan_nick, *args; + IRC_PROTOCOL_MIN_ARGS(4); + /* make C compiler happy */ (void) argc; (void) ignore; @@ -625,7 +375,7 @@ irc_protocol_cmd_error (struct t_irc_server *server, int argc, char **argv, weechat_printf (server->buffer, "%s%s%s%s", - weechat_prefix ("error"), + weechat_prefix ("network"), (chan_nick) ? chan_nick : "", (chan_nick) ? ": " : "", args); @@ -641,19 +391,27 @@ irc_protocol_cmd_error (struct t_irc_server *server, int argc, char **argv, */ int -irc_protocol_cmd_invite (struct t_irc_server *server, int argc, char **argv, - char **argv_eol, int ignore, int highlight) +irc_protocol_cmd_invite (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { + /* INVITE message looks like: + :nick!user@host INVITE mynick :#channel + */ + + IRC_PROTOCOL_MIN_ARGS(4); + IRC_PROTOCOL_CHECK_HOST; + /* make C compiler happy */ - (void) argc; (void) argv_eol; (void) highlight; - if (!ignore && argv[3]) + if (!ignore) { weechat_printf (server->buffer, - _("You have been invited to %s%s%s by " + _("%sYou have been invited to %s%s%s by " "%s%s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, (argv[3][0] == ':') ? argv[3] + 1 : argv[3], IRC_COLOR_CHAT, @@ -662,14 +420,6 @@ irc_protocol_cmd_invite (struct t_irc_server *server, int argc, char **argv, weechat_buffer_set (server->buffer, "hotlist", WEECHAT_HOTLIST_HIGHLIGHT); } - else - { - weechat_printf (server->buffer, - _("%s%s: channel \"%s\" not found for " - "\"%s\" command"), - weechat_prefix ("error"), "irc", "", "invite"); - return WEECHAT_RC_ERROR; - } return WEECHAT_RC_OK; } @@ -680,28 +430,27 @@ irc_protocol_cmd_invite (struct t_irc_server *server, int argc, char **argv, */ int -irc_protocol_cmd_join (struct t_irc_server *server, int argc, char **argv, - char **argv_eol, int ignore, int highlight) +irc_protocol_cmd_join (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { struct t_irc_channel *ptr_channel; struct t_irc_nick *ptr_nick; char *pos_channel; + /* JOIN message looks like: + :nick!user@host JOIN :#channel + */ + + IRC_PROTOCOL_MIN_ARGS(3); + IRC_PROTOCOL_CHECK_HOST; + /* make C compiler happy */ - (void) argc; (void) argv_eol; (void) highlight; - /* no host => we can't identify sender of message! */ - if (argv[0][0] != ':') - { - weechat_printf (server->buffer, - _("%s%s: \"%s\" command received without host"), - weechat_prefix ("error"), "irc", "join"); - return WEECHAT_RC_ERROR; - } - pos_channel = (argv[2][0] == ':') ? argv[2] + 1 : argv[2]; + ptr_channel = irc_channel_search (server, pos_channel); if (!ptr_channel) { @@ -759,93 +508,75 @@ irc_protocol_cmd_join (struct t_irc_server *server, int argc, char **argv, */ int -irc_protocol_cmd_kick (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_kick (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_nick, *pos_comment; + char *pos_comment; struct t_irc_channel *ptr_channel; struct t_irc_nick *ptr_nick; + + /* KICK message looks like: + :nick1!user@host KICK #channel nick2 :kick reason + */ + + IRC_PROTOCOL_MIN_ARGS(4); + IRC_PROTOCOL_CHECK_HOST; /* make C compiler happy */ - (void) irc_message; - (void) host; (void) highlight; - pos_nick = strchr (arguments, ' '); - if (pos_nick) + pos_comment = (argc > 4) ? + ((argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4]) : NULL; + + ptr_channel = irc_channel_search (server, argv[2]); + if (!ptr_channel) { - pos_nick[0] = '\0'; - pos_nick++; - while (pos_nick[0] == ' ') - pos_nick++; + weechat_printf (server->buffer, + _("%s%s: channel \"%s\" not found for " + "\"%s\" command"), + weechat_prefix ("error"), "irc", argv[2], + "kick"); + return WEECHAT_RC_ERROR; + } - pos_comment = strchr (pos_nick, ' '); + if (!ignore) + { if (pos_comment) { - pos_comment[0] = '\0'; - pos_comment++; - while (pos_comment[0] == ' ') - pos_comment++; - if (pos_comment[0] == ':') - pos_comment++; - } - - ptr_channel = irc_channel_search (server, arguments); - if (!ptr_channel) - { - weechat_printf (server->buffer, - _("%s%s: channel \"%s\" not found for " - "\"%s\" command"), - weechat_prefix ("error"), "irc", arguments, - "kick"); - return WEECHAT_RC_ERROR; + weechat_printf (ptr_channel->buffer, + _("%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)"), + weechat_prefix ("quit"), + IRC_COLOR_CHAT_NICK, + irc_protocol_get_nick_from_host (argv[0]), + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_CHANNEL, + argv[2], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + pos_comment, + IRC_COLOR_CHAT_DELIMITERS); } - - if (!ignore) + else { - if (pos_comment) - { - weechat_printf (ptr_channel->buffer, - _("%s%s%s%s has kicked %s%s%s from %s%s %s(%s%s%s)"), - weechat_prefix ("quit"), - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_CHANNEL, - arguments, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_comment, - IRC_COLOR_CHAT_DELIMITERS); - } - else - { - weechat_printf (ptr_channel->buffer, - _("%s%s%s%s has kicked %s%s%s from %s%s"), - weechat_prefix ("quit"), - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_CHANNEL, - arguments); - } + weechat_printf (ptr_channel->buffer, + _("%s%s%s%s has kicked %s%s%s from %s%s"), + weechat_prefix ("quit"), + IRC_COLOR_CHAT_NICK, + irc_protocol_get_nick_from_host (argv[0]), + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_CHANNEL, + argv[2]); } } - else - { - weechat_printf (server->buffer, - _("%s%s: nick \"%s\" not found for \"%s\" " - "command"), - weechat_prefix ("error"), "irc", "", "kick"); - return WEECHAT_RC_ERROR; - } - if (strcmp (pos_nick, server->nick) == 0) + + if (strcmp (argv[3], server->nick) == 0) { /* my nick was kicked => free all nicks, channel is not active any more */ @@ -857,7 +588,7 @@ irc_protocol_cmd_kick (struct t_irc_server *server, char *irc_message, char *hos { /* someone was kicked from channel (but not me) => remove only this nick */ - ptr_nick = irc_nick_search (ptr_channel, pos_nick); + ptr_nick = irc_nick_search (ptr_channel, argv[3]); if (ptr_nick) irc_nick_free (ptr_channel, ptr_nick); } @@ -870,87 +601,69 @@ irc_protocol_cmd_kick (struct t_irc_server *server, char *irc_message, char *hos */ int -irc_protocol_cmd_kill (struct t_irc_server *server, char *irc_message, - char *host, char *nick, char *arguments, int ignore, - int highlight) +irc_protocol_cmd_kill (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_host2, *pos_comment; + char *pos_comment; struct t_irc_channel *ptr_channel; + struct t_irc_nick *ptr_nick; + + /* KILL message looks like: + :nick1!user@host KILL mynick :kill reason + */ + + IRC_PROTOCOL_MIN_ARGS(3); + IRC_PROTOCOL_CHECK_HOST; /* make C compiler happy */ - (void) irc_message; - (void) host; (void) highlight; - pos_host2 = strchr (arguments, ' '); - if (pos_host2) + pos_comment = (argc > 3) ? + ((argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]) : NULL; + + for (ptr_channel = server->channels; ptr_channel; + ptr_channel = ptr_channel->next_channel) { - pos_host2[0] = '\0'; - pos_host2++; - while (pos_host2[0] == ' ') - pos_host2++; - - if (pos_host2[0] == ':') - pos_comment = pos_host2 + 1; - else + if (!ignore) { - pos_comment = strchr (pos_host2, ' '); if (pos_comment) { - pos_comment[0] = '\0'; - pos_comment++; - while (pos_comment[0] == ' ') - pos_comment++; - if (pos_comment[0] == ':') - pos_comment++; + weechat_printf (ptr_channel->buffer, + _("%sYou were killed by %s%s %s(%s%s%s)"), + weechat_prefix ("quit"), + IRC_COLOR_CHAT_NICK, + irc_protocol_get_nick_from_host (argv[0]), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + pos_comment, + IRC_COLOR_CHAT_DELIMITERS); } - } - - for (ptr_channel = server->channels; ptr_channel; - ptr_channel = ptr_channel->next_channel) - { - if (!ignore) + else { - if (pos_comment) - { - weechat_printf (ptr_channel->buffer, - _("%s%s%s%s has killed %s%s%s from " - "server %s(%s%s%s)"), - weechat_prefix ("quit"), - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - arguments, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_comment, - IRC_COLOR_CHAT_DELIMITERS); - } - else - { - weechat_printf (ptr_channel->buffer, - _("%s%s%s%s has killed %s%s%s from " - "server"), - weechat_prefix ("quit"), - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - arguments, - IRC_COLOR_CHAT); - } + weechat_printf (ptr_channel->buffer, + _("%sYou were killed by %s%s"), + weechat_prefix ("quit"), + IRC_COLOR_CHAT_NICK, + irc_protocol_get_nick_from_host (argv[0])); + } + + if (strcmp (argv[2], server->nick) == 0) + { + /* my nick was killed => free all nicks, channel is not active any + more */ + irc_nick_free_all (ptr_channel); + } + else + { + /* someone was killed on channel (but not me) => remove only this + nick */ + ptr_nick = irc_nick_search (ptr_channel, argv[2]); + if (ptr_nick) + irc_nick_free (ptr_channel, ptr_nick); } } } - else - { - weechat_printf (server->buffer, - _("%s%s: host not found for \"%s\" command"), - weechat_prefix ("error"), "irc", "kill"); - return WEECHAT_RC_ERROR; - } return WEECHAT_RC_OK; } @@ -960,81 +673,48 @@ irc_protocol_cmd_kill (struct t_irc_server *server, char *irc_message, */ int -irc_protocol_cmd_mode (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_mode (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_modes, *pos; + char *pos_modes; struct t_irc_channel *ptr_channel; + /* MODE message looks like: + :nick!user@host MODE #test +o nick + */ + + IRC_PROTOCOL_MIN_ARGS(4); + IRC_PROTOCOL_CHECK_HOST; + /* make C compiler happy */ - (void) irc_message; (void) highlight; - /* no host => we can't identify sender of message! */ - if (!host) - { - weechat_printf (server->buffer, - _("%s%s: \"%s\" command received without " - "host"), - weechat_prefix ("error"), "irc", "mode"); - return WEECHAT_RC_ERROR; - } - - pos_modes = strchr (arguments, ' '); - if (!pos_modes) - { - weechat_printf (server->buffer, - _("%s%s: \"%s\" command received without " - "channel or nickname"), - weechat_prefix ("error"), "irc", "mode"); - return WEECHAT_RC_ERROR; - } - pos_modes[0] = '\0'; - pos_modes++; - while (pos_modes[0] == ' ') - pos_modes++; - if (pos_modes[0] == ':') - pos_modes++; - - /* remove spaces after modes */ - pos = pos_modes + strlen (pos_modes) - 1; - while ((pos >= pos_modes) && (pos[0] == ' ')) - { - pos[0] = '\0'; - pos--; - } + pos_modes = (argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]; - if (irc_channel_is_channel (arguments)) + if (irc_channel_is_channel (argv[2])) { - ptr_channel = irc_channel_search (server, arguments); + ptr_channel = irc_channel_search (server, argv[2]); if (ptr_channel) { - if (!ignore) - { - weechat_printf (ptr_channel->buffer, - _("%sMode %s%s %s[%s%s%s]%s by %s%s"), - weechat_prefix ("info"), - IRC_COLOR_CHAT_CHANNEL, - ptr_channel->name, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_modes, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - nick); - } irc_mode_channel_set (server, ptr_channel, pos_modes); irc_server_sendf (server, "MODE %s", ptr_channel->name); } - else + if (!ignore) { - weechat_printf (server->buffer, - _("%s%s: channel \"%s\" not found for \"%s\" " - "command"), - weechat_prefix ("error"), "irc", arguments, - "mode"); - return WEECHAT_RC_ERROR; + weechat_printf ((ptr_channel) ? + ptr_channel->buffer : server->buffer, + _("%sMode %s%s %s[%s%s%s]%s by %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + ptr_channel->name, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + pos_modes, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + irc_protocol_get_nick_from_host (argv[0])); } } else @@ -1043,14 +723,14 @@ irc_protocol_cmd_mode (struct t_irc_server *server, char *irc_message, char *hos { weechat_printf (server->buffer, _("%sUser mode %s[%s%s%s]%s by %s%s"), - weechat_prefix ("info"), + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT, pos_modes, IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT, IRC_COLOR_CHAT_NICK, - nick); + irc_protocol_get_nick_from_host (argv[0])); } irc_mode_user_set (server, pos_modes); } @@ -1063,29 +743,30 @@ irc_protocol_cmd_mode (struct t_irc_server *server, char *irc_message, char *hos */ int -irc_protocol_cmd_nick (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_nick (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { struct t_irc_channel *ptr_channel; struct t_irc_nick *ptr_nick; + char *old_nick, *new_nick; int nick_is_me; - //struct t_gui_window *ptr_window; - + + /* NICK message looks like: + :oldnick!user@host NICK :newnick + */ + + IRC_PROTOCOL_MIN_ARGS(3); + IRC_PROTOCOL_CHECK_HOST; + /* make C compiler happy */ - (void) irc_message; + (void) argv_eol; (void) highlight; - /* no host => we can't identify sender of message! */ - if (!host) - { - weechat_printf (server->buffer, - _("%s%s: \"%s\" command received without host"), - weechat_prefix ("error"), "irc", "nick"); - return WEECHAT_RC_ERROR; - } - - if (arguments[0] == ':') - arguments++; + old_nick = irc_protocol_get_nick_from_host (argv[0]); + new_nick = (argv[2][0] == ':') ? argv[2] + 1 : argv[2]; + + nick_is_me = (strcmp (old_nick, server->nick) == 0) ? 1 : 0; for (ptr_channel = server->channels; ptr_channel; ptr_channel = ptr_channel->next_channel) @@ -1095,43 +776,46 @@ irc_protocol_cmd_nick (struct t_irc_server *server, char *irc_message, char *hos case IRC_CHANNEL_TYPE_PRIVATE: case IRC_CHANNEL_TYPE_DCC_CHAT: /* rename private window if this is with "old nick" */ - if (weechat_strcasecmp (ptr_channel->name, nick) == 0) + if (weechat_strcasecmp (ptr_channel->name, old_nick) == 0) { free (ptr_channel->name); - ptr_channel->name = strdup (arguments); + ptr_channel->name = strdup (new_nick); } + weechat_buffer_set (ptr_channel->buffer, "name", new_nick); break; case IRC_CHANNEL_TYPE_CHANNEL: /* rename nick in nicklist if found */ - ptr_nick = irc_nick_search (ptr_channel, nick); + ptr_nick = irc_nick_search (ptr_channel, old_nick); if (ptr_nick) { - nick_is_me = (strcmp (ptr_nick->name, server->nick) == 0) ? 1 : 0; - /* temporary disable hotlist */ weechat_buffer_set (NULL, "hotlist", "-"); /* change nick and display message on all channels */ - irc_nick_change (server, ptr_channel, ptr_nick, arguments); + irc_nick_change (server, ptr_channel, ptr_nick, new_nick); if (!ignore) { if (nick_is_me) + { weechat_printf (ptr_channel->buffer, _("%sYou are now known as %s%s"), - weechat_prefix ("info"), + weechat_prefix ("network"), IRC_COLOR_CHAT_NICK, - arguments); + new_nick); + } else + { weechat_printf (ptr_channel->buffer, _("%s%s%s%s is now known as %s%s"), - weechat_prefix ("info"), + weechat_prefix ("network"), IRC_COLOR_CHAT_NICK, - nick, + old_nick, IRC_COLOR_CHAT, IRC_COLOR_CHAT_NICK, - arguments); + new_nick); + } } - + /* enable hotlist */ weechat_buffer_set (NULL, "hotlist", "+"); } @@ -1139,8 +823,8 @@ irc_protocol_cmd_nick (struct t_irc_server *server, char *irc_message, char *hos } } - if (strcmp (server->nick, nick) == 0) - irc_server_set_nick (server, arguments); + if (nick_is_me) + irc_server_set_nick (server, new_nick); return WEECHAT_RC_OK; } @@ -1150,84 +834,80 @@ irc_protocol_cmd_nick (struct t_irc_server *server, char *irc_message, char *hos */ int -irc_protocol_cmd_notice (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_notice (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *host2, *pos, *pos2, *pos_usec; + char *nick, *host, *pos_args, *pos_end, *pos_usec; struct timeval tv; long sec1, usec1, sec2, usec2, difftime; struct t_irc_channel *ptr_channel; int highlight_displayed, look_infobar_delay_highlight; - /* make C compiler happy */ - (void) irc_message; + /* NOTICE message looks like: + NOTICE AUTH :*** Looking up your hostname... + :nick!user@host NOTICE mynick :notice text + */ - look_infobar_delay_highlight = weechat_config_integer ( - weechat_config_get_weechat ("look_infobar_delay_highlight")); + IRC_PROTOCOL_MIN_ARGS(3); - host2 = NULL; - if (host) + if (argv[0][0] == ':') { - pos = strchr (host, '!'); - if (pos) - host2 = pos + 1; - } - - pos = strchr (arguments, ' '); - if (pos) - { - pos[0] = '\0'; - pos++; - while (pos[0] == ' ') - pos++; - if (pos[0] == ':') - pos++; + nick = irc_protocol_get_nick_from_host (argv[0]); + host = irc_protocol_get_address_from_host (argv[0]); + pos_args = (argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]; } else { - weechat_printf (server->buffer, - _("%s%s: nickname not found for \"%s\" command"), - weechat_prefix ("error"), "irc", "notice"); - return WEECHAT_RC_ERROR; + nick = NULL; + host = NULL; + pos_args = (argv_eol[2][0] == ':') ? argv_eol[2] + 1 : argv_eol[2]; } + look_infobar_delay_highlight = weechat_config_integer ( + weechat_config_get_weechat ("look_infobar_delay_highlight")); + if (!ignore) { - if (strncmp (pos, "\01VERSION", 8) == 0) + if (nick && strncmp (pos_args, "\01VERSION", 8) == 0) { - pos += 9; - pos2 = strchr (pos, '\01'); - if (pos2) - pos2[0] = '\0'; + pos_args += 9; + pos_end = strchr (pos_args, '\01'); + if (pos_end) + pos_end[0] = '\0'; weechat_printf (server->buffer, - _("CTCP %sVERSION%s reply from %s%s%s: %s"), + _("%sCTCP %sVERSION%s reply from %s%s%s: %s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, IRC_COLOR_CHAT, IRC_COLOR_CHAT_NICK, nick, IRC_COLOR_CHAT, - pos); + pos_args); + if (pos_end) + pos_end[0] = '\01'; } else { - if (strncmp (pos, "\01PING", 5) == 0) + if (nick && strncmp (pos_args, "\01PING", 5) == 0) { - pos += 5; - while (pos[0] == ' ') - pos++; - pos_usec = strchr (pos, ' '); + pos_args += 5; + while (pos_args[0] == ' ') + { + pos_args++; + } + pos_usec = strchr (pos_args, ' '); if (pos_usec) { pos_usec[0] = '\0'; - pos_usec++; - pos2 = strchr (pos_usec, '\01'); - if (pos2) + pos_end = strchr (pos_usec + 1, '\01'); + if (pos_end) { - pos2[0] = '\0'; + pos_end[0] = '\0'; gettimeofday (&tv, NULL); - sec1 = atol (pos); - usec1 = atol (pos_usec); + sec1 = atol (pos_args); + usec1 = atol (pos_usec + 1); sec2 = tv.tv_sec; usec2 = tv.tv_usec; @@ -1235,8 +915,9 @@ irc_protocol_cmd_notice (struct t_irc_server *server, char *irc_message, char *h ((sec1 * 1000000) + usec1); weechat_printf (server->buffer, - _("CTCP %sPING%s reply from " + _("%sCTCP %sPING%s reply from " "%s%s%s: %ld.%ld %s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, IRC_COLOR_CHAT, IRC_COLOR_CHAT_NICK, @@ -1246,13 +927,15 @@ irc_protocol_cmd_notice (struct t_irc_server *server, char *irc_message, char *h (difftime % 1000000) / 1000, (NG_("second", "seconds", (difftime / 1000000)))); + + pos_end[0] = '\01'; } + pos_usec[0] = ' '; } } else { - if (nick && nick[0] - && weechat_config_boolean (irc_config_irc_notice_as_pv)) + if (nick && weechat_config_boolean (irc_config_irc_notice_as_pv)) { ptr_channel = irc_channel_search (server, nick); if (!ptr_channel) @@ -1272,24 +955,27 @@ irc_protocol_cmd_notice (struct t_irc_server *server, char *irc_message, char *h } if (!ptr_channel->topic) { - ptr_channel->topic = strdup ((host2) ? host2 : ""); - //gui_chat_draw_title (ptr_channel->buffer, 1); + ptr_channel->topic = strdup ((host) ? host : ""); + weechat_buffer_set (ptr_channel->buffer, + "title", ptr_channel->topic); } if (highlight - || irc_protocol_is_highlight (pos, server->nick)) + || irc_protocol_is_highlight (pos_args, server->nick)) { weechat_printf (ptr_channel->buffer, "%s%s", irc_nick_as_prefix (NULL, nick, IRC_COLOR_CHAT_HIGHLIGHT), - pos); + pos_args); if ((look_infobar_delay_highlight > 0) && (ptr_channel->buffer != weechat_current_buffer)) + { weechat_infobar_printf (look_infobar_delay_highlight, IRC_COLOR_INFOBAR_HIGHLIGHT, _("Private %s> %s"), - nick, pos); + nick, pos_args); + } highlight_displayed = 1; } else @@ -1298,53 +984,63 @@ irc_protocol_cmd_notice (struct t_irc_server *server, char *irc_message, char *h "%s%s", irc_nick_as_prefix (NULL, nick, IRC_COLOR_CHAT_NICK_OTHER), - pos); + pos_args); highlight_displayed = 0; } - //if (highlight_displayed) - // (void) plugin_msg_handler_exec (server->name, - // "weechat_highlight", - // irc_message); + + /* send "irc_highlight" signal */ + if (highlight_displayed) + { + weechat_hook_signal_send ("irc_highlight", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + } } else { - if (host) + if (host && host[0]) + { + weechat_printf (server->buffer, + "%s%s%s %s(%s%s%s)%s: %s", + weechat_prefix ("network"), + IRC_COLOR_CHAT_NICK, + nick, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_HOST, + host, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + pos_args); + } + else { - if (host2) + if (nick && nick[0]) { weechat_printf (server->buffer, - "%s%s %s(%s%s%s)%s: %s", + "%s%s%s%s: %s", + weechat_prefix ("network"), IRC_COLOR_CHAT_NICK, nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_HOST, - host2, - IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT, - pos); + pos_args); } else { - weechat_printf (server->buffer, "%s%s%s: %s", - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - pos); + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("network"), + pos_args); } } - else - weechat_printf (server->buffer, "%s%s", - IRC_COLOR_CHAT, - pos); - - if ((nick) - && (weechat_strcasecmp (nick, "nickserv") != 0) - && (weechat_strcasecmp (nick, "chanserv") != 0) - && (weechat_strcasecmp (nick, "memoserv") != 0)) - { - weechat_buffer_set (server->buffer, "hotlist", - WEECHAT_HOTLIST_PRIVATE); - } + } + + if (nick + && (weechat_strcasecmp (nick, "nickserv") != 0) + && (weechat_strcasecmp (nick, "chanserv") != 0) + && (weechat_strcasecmp (nick, "memoserv") != 0)) + { + weechat_buffer_set (server->buffer, "hotlist", + WEECHAT_HOTLIST_PRIVATE); } } } @@ -1358,43 +1054,32 @@ irc_protocol_cmd_notice (struct t_irc_server *server, char *irc_message, char *h */ int -irc_protocol_cmd_part (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_part (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos, *pos_args, *join_string; + char *nick, *host, *pos_comment, *join_string; int join_length; struct t_irc_channel *ptr_channel; struct t_irc_nick *ptr_nick; + /* PART message looks like: + :nick!user@host PART #channel :part message + */ + + IRC_PROTOCOL_MIN_ARGS(3); + IRC_PROTOCOL_CHECK_HOST; + /* make C compiler happy */ - (void) irc_message; (void) highlight; - /* no host => we can't identify sender of message! */ - if (!host || !arguments) - { - weechat_printf (server->buffer, - _("%s%s: \"%s\" command received without host or " - "channel"), - weechat_prefix ("error"), "irc", "part"); - return WEECHAT_RC_ERROR; - } - - if (arguments[0] == ':') - arguments++; + nick = irc_protocol_get_nick_from_host (argv[0]); + host = irc_protocol_get_address_from_host (argv[0]); - pos_args = strchr (arguments, ' '); - if (pos_args) - { - pos_args[0] = '\0'; - pos_args++; - while (pos_args[0] == ' ') - pos_args++; - if (pos_args[0] == ':') - pos_args++; - } + pos_comment = (argc > 3) ? + ((argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]) : NULL; - ptr_channel = irc_channel_search (server, arguments); + ptr_channel = irc_channel_search (server, argv[2]); if (ptr_channel) { ptr_nick = irc_nick_search (ptr_channel, nick); @@ -1403,8 +1088,7 @@ irc_protocol_cmd_part (struct t_irc_server *server, char *irc_message, char *hos /* display part message */ if (!ignore) { - pos = strchr (host, '!'); - if (pos_args && pos_args[0]) + if (pos_comment) { weechat_printf (ptr_channel->buffer, _("%s%s%s %s(%s%s%s)%s has left %s%s %s(%s%s%s)"), @@ -1413,14 +1097,14 @@ irc_protocol_cmd_part (struct t_irc_server *server, char *irc_message, char *hos nick, IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_HOST, - (pos) ? pos + 1 : "", + host, IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT, IRC_COLOR_CHAT_CHANNEL, ptr_channel->name, IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT, - pos_args, + pos_comment, IRC_COLOR_CHAT_DELIMITERS); } else @@ -1432,7 +1116,7 @@ irc_protocol_cmd_part (struct t_irc_server *server, char *irc_message, char *hos nick, IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_HOST, - (pos) ? pos + 1 : "", + host, IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT, IRC_COLOR_CHAT_CHANNEL, @@ -1489,26 +1173,23 @@ irc_protocol_cmd_part (struct t_irc_server *server, char *irc_message, char *hos */ int -irc_protocol_cmd_ping (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_ping (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos; + /* PING message looks like: + PING :server + */ + + IRC_PROTOCOL_MIN_ARGS(2); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; + (void) argv_eol; (void) ignore; (void) highlight; - - if (arguments[0] == ':') - arguments++; - - pos = strrchr (arguments, ' '); - if (pos) - pos[0] = '\0'; - irc_server_sendf (server, "PONG :%s", arguments); + irc_server_sendf (server, "PONG :%s", + (argv[1][0] == ':') ? argv[1] + 1 : argv[1]); return WEECHAT_RC_OK; } @@ -1518,17 +1199,18 @@ irc_protocol_cmd_ping (struct t_irc_server *server, char *irc_message, char *hos */ int -irc_protocol_cmd_pong (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_pong (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { struct timeval tv; int old_lag; /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; - (void) arguments; + (void) command; + (void) argc; + (void) argv; + (void) argv_eol; (void) ignore; (void) highlight; @@ -1556,8 +1238,9 @@ irc_protocol_cmd_pong (struct t_irc_server *server, char *irc_message, char *hos */ void -irc_protocol_reply_version (struct t_irc_server *server, struct t_irc_channel *channel, - char *nick, char *message, int ignore) +irc_protocol_reply_version (struct t_irc_server *server, + struct t_irc_channel *channel, char *nick, + char *message, char *str_version, int ignore) { char *pos, *version, *date; struct t_gui_buffer *ptr_buffer; @@ -1566,7 +1249,7 @@ irc_protocol_reply_version (struct t_irc_server *server, struct t_irc_channel *c if (!ignore) { - pos = strchr (message, ' '); + pos = strchr (str_version, ' '); if (pos) { while (pos[0] == ' ') @@ -1576,7 +1259,7 @@ irc_protocol_reply_version (struct t_irc_server *server, struct t_irc_channel *c else if (!pos[0]) pos = NULL; } - + version = weechat_info_get ("version"); date = weechat_info_get ("date"); if (version && date) @@ -1588,7 +1271,9 @@ irc_protocol_reply_version (struct t_irc_server *server, struct t_irc_channel *c if (pos) { weechat_printf (ptr_buffer, - _("CTCP %sVERSION%s received from %s%s%s: %s"), + _("%sCTCP %sVERSION%s received from %s%s%s: " + "%s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, IRC_COLOR_CHAT, IRC_COLOR_CHAT_NICK, @@ -1599,16 +1284,17 @@ irc_protocol_reply_version (struct t_irc_server *server, struct t_irc_channel *c else { weechat_printf (ptr_buffer, - _("CTCP %sVERSION%s received from %s%s"), + _("%sCTCP %sVERSION%s received from %s%s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, IRC_COLOR_CHAT, IRC_COLOR_CHAT_NICK, nick); } } - //(void) plugin_msg_handler_exec (server->name, - // "weechat_ctcp", - // irc_message); + weechat_hook_signal_send ("irc_ctcp", + WEECHAT_HOOK_SIGNAL_STRING, + message); } } @@ -1617,304 +1303,325 @@ irc_protocol_reply_version (struct t_irc_server *server, struct t_irc_channel *c */ int -irc_protocol_cmd_privmsg (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_privmsg (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos, *pos2, *host2; - char *pos_file, *pos_addr, *pos_port, *pos_size, *pos_start_resume; /* for DCC */ + char *nick, *host, *pos_args, *pos_end_01, *pos, *pos_message; + char *dcc_args, *pos_file, *pos_addr, *pos_port, *pos_size, *pos_start_resume; /* for DCC */ struct t_irc_channel *ptr_channel; struct t_irc_nick *ptr_nick; int highlight_displayed, look_infobar_delay_highlight; + + /* PRIVMSG message looks like: + :nick!user@host PRIVMSG #channel :message for channel here + :nick!user@host PRIVMSG mynick :message for private here + :nick!user@host PRIVMSG #channel :ACTION is testing action + :nick!user@host PRIVMSG mynick :ACTION is testing action + :nick!user@host PRIVMSG mynick :\01DCC SEND file.txt 1488915698 50612 128\01 + */ - /* make C compiler happy */ - (void) irc_message; - - /* no host => we can't identify sender of message! */ - if (!host) - { - weechat_printf (server->buffer, - _("%s%s: \"%s\" command received without host"), - weechat_prefix ("error"), "irc", "privmsg"); - return WEECHAT_RC_ERROR; - } + IRC_PROTOCOL_MIN_ARGS(4); + IRC_PROTOCOL_CHECK_HOST; look_infobar_delay_highlight = weechat_config_integer ( weechat_config_get_weechat ("look_infobar_delay_highlight")); - pos = strchr (host, '!'); - if (pos) - host2 = pos + 1; - else - host2 = host; + nick = irc_protocol_get_nick_from_host (argv[0]); + host = irc_protocol_get_address_from_host (argv[0]); + + pos_args = (argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]; /* receiver is a channel ? */ - if (irc_channel_is_channel (arguments)) + if (irc_channel_is_channel (argv[2])) { - pos = strchr (arguments, ' '); - if (pos) + ptr_channel = irc_channel_search (server, argv[2]); + if (ptr_channel) { - pos[0] = '\0'; - pos++; - while (pos[0] == ' ') - pos++; - if (pos[0] == ':') - pos++; - - ptr_channel = irc_channel_search (server, arguments); - if (ptr_channel) + if (strncmp (pos_args, "\01ACTION ", 8) == 0) { - if (strncmp (pos, "\01ACTION ", 8) == 0) + if (!ignore) { - pos += 8; - pos2 = strchr (pos, '\01'); - if (pos2) - pos2[0] = '\0'; - if (!ignore) + pos_args += 8; + pos_end_01 = strchr (pos_args, '\01'); + if (pos_end_01) + pos_end_01[0] = '\0'; + + if (highlight + || irc_protocol_is_highlight (pos_args, server->nick)) { - if (highlight - || irc_protocol_is_highlight (pos, server->nick)) - { - weechat_printf (ptr_channel->buffer, - "%s%s%s %s%s", - weechat_prefix ("action"), - IRC_COLOR_CHAT_HIGHLIGHT, - nick, - IRC_COLOR_CHAT, - pos); - if ((look_infobar_delay_highlight > 0) - && (ptr_channel->buffer != weechat_current_buffer)) - weechat_infobar_printf (look_infobar_delay_highlight, - "color_infobar_highlight", - _("Channel %s: * %s %s"), - ptr_channel->name, - nick, - pos); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_highlight", - // irc_message); - } - else - { - weechat_printf (ptr_channel->buffer, - "%s%s%s %s%s", - weechat_prefix ("action"), - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - pos); - } - irc_channel_add_nick_speaking (ptr_channel, nick); + weechat_printf (ptr_channel->buffer, + "%s%s%s %s%s", + weechat_prefix ("action"), + IRC_COLOR_CHAT_HIGHLIGHT, + nick, + IRC_COLOR_CHAT, + pos_args); + if ((look_infobar_delay_highlight > 0) + && (ptr_channel->buffer != weechat_current_buffer)) + weechat_infobar_printf (look_infobar_delay_highlight, + "color_infobar_highlight", + _("Channel %s: * %s %s"), + ptr_channel->name, + nick, + pos_args); + weechat_hook_signal_send ("irc_highlight", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); } - return WEECHAT_RC_OK; - } - if (strncmp (pos, "\01SOUND ", 7) == 0) - { - pos += 7; - pos2 = strchr (pos, '\01'); - if (pos2) - pos2[0] = '\0'; - if (!ignore) + else { weechat_printf (ptr_channel->buffer, - _("Received a CTCP %sSOUND%s \"%s\" " - "from %s%s"), - IRC_COLOR_CHAT_CHANNEL, - IRC_COLOR_CHAT, - pos, + "%s%s%s %s%s", + weechat_prefix ("action"), IRC_COLOR_CHAT_NICK, - nick); + nick, + IRC_COLOR_CHAT, + pos_args); } - return WEECHAT_RC_OK; + irc_channel_add_nick_speaking (ptr_channel, nick); + + if (pos_end_01) + pos_end_01[0] = '\01'; } - if (strncmp (pos, "\01PING", 5) == 0) + return WEECHAT_RC_OK; + } + if (strncmp (pos_args, "\01SOUND ", 7) == 0) + { + if (!ignore) { - pos += 5; - while (pos[0] == ' ') - pos++; - pos2 = strchr (pos, '\01'); - if (pos2) - pos2[0] = '\0'; - else - pos = NULL; - if (pos && !pos[0]) - pos = NULL; - if (pos) - irc_server_sendf (server, "NOTICE %s :\01PING %s\01", - nick, pos); - else - irc_server_sendf (server, "NOTICE %s :\01PING\01", - nick); + pos_args += 7; + pos_end_01 = strchr (pos_args, '\01'); + if (pos_end_01) + pos_end_01[0] = '\0'; + weechat_printf (ptr_channel->buffer, - _("CTCP %sPING%s received from %s%s"), + _("%sReceived a CTCP %sSOUND%s \"%s\" " + "from %s%s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, IRC_COLOR_CHAT, + pos_args, IRC_COLOR_CHAT_NICK, nick); - return WEECHAT_RC_OK; + + if (pos_end_01) + pos_end_01[0] = '\01'; } - if (strncmp (pos, "\01VERSION", 8) == 0) + return WEECHAT_RC_OK; + } + if (strncmp (pos_args, "\01PING", 5) == 0) + { + pos_args += 5; + while (pos_args[0] == ' ') + pos_args++; + pos_end_01 = strchr (pos_args, '\01'); + if (pos_end_01) + pos_end_01[0] = '\0'; + else + pos_args = NULL; + if (pos_args && !pos_args[0]) + pos_args = NULL; + if (pos_args) + irc_server_sendf (server, "NOTICE %s :\01PING %s\01", + nick, pos_args); + else + irc_server_sendf (server, "NOTICE %s :\01PING\01", + nick); + weechat_printf (ptr_channel->buffer, + _("%sCTCP %sPING%s received from %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + nick); + if (pos_end_01) + pos_end_01[0] = '\01'; + return WEECHAT_RC_OK; + } + if (strncmp (pos_args, "\01VERSION", 8) == 0) + { + if (!ignore) { irc_protocol_reply_version (server, ptr_channel, nick, - pos, ignore); - return WEECHAT_RC_OK; + argv_eol[0], pos_args, ignore); } - - /* unknown CTCP ? */ - pos2 = strchr (pos + 1, '\01'); - if ((pos[0] == '\01') && pos2 && (pos2[1] == '\0')) + return WEECHAT_RC_OK; + } + + /* unknown CTCP ? */ + pos_end_01 = strchr (pos_args + 1, '\01'); + if ((pos_args[0] == '\01') + && pos_end_01 && (pos_end_01[1] == '\0')) + { + if (!ignore) { - pos++; - pos2[0] = '\0'; - pos2 = strchr (pos, ' '); - if (pos2) - { - pos2[0] = '\0'; - pos2++; - while (pos2[0] == ' ') - pos2++; - if (!pos2[0]) - pos2 = NULL; - } - if (!ignore) + pos_args++; + pos_end_01[0] = '\0'; + pos = strchr (pos_args, ' '); + if (pos) { - if (pos2) - { - weechat_printf (ptr_channel->buffer, - _("Unknown CTCP %s%s%s received " - "from %s%s%s: %s"), - IRC_COLOR_CHAT_CHANNEL, - pos, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - pos2); - } - else + pos[0] = '\0'; + pos_message = pos + 1; + while (pos_message[0] == ' ') { - weechat_printf (ptr_channel->buffer, - _("Unknown CTCP %s%s%s " - "received from %s%s"), - IRC_COLOR_CHAT_CHANNEL, - pos, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - nick); + pos_message++; } + if (!pos_message[0]) + pos_message = NULL; } - return WEECHAT_RC_OK; - } - - /* other message */ - if (!ignore) - { - ptr_nick = irc_nick_search (ptr_channel, nick); - if (highlight || irc_protocol_is_highlight (pos, server->nick)) + else + pos_message = NULL; + + if (pos_message) { weechat_printf (ptr_channel->buffer, - "%s%s", - irc_nick_as_prefix (ptr_nick, - (ptr_nick) ? NULL : nick, - IRC_COLOR_CHAT_HIGHLIGHT), - pos); - if ((look_infobar_delay_highlight > 0) - && (ptr_channel->buffer != weechat_current_buffer)) - weechat_infobar_printf (look_infobar_delay_highlight, - "color_infobar_highlight", - _("Channel %s: %s> %s"), - ptr_channel->name, - nick, - pos); - weechat_buffer_set (ptr_channel->buffer, "hotlist", - WEECHAT_HOTLIST_HIGHLIGHT); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_highlight", - // irc_message); + _("%sUnknown CTCP %s%s%s received " + "from %s%s%s: %s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + pos_args, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + nick, + IRC_COLOR_CHAT, + pos_message); } else { weechat_printf (ptr_channel->buffer, - "%s%s", - irc_nick_as_prefix (ptr_nick, - (ptr_nick) ? NULL : nick, - NULL), - pos); - weechat_buffer_set (ptr_channel->buffer, "hotlist", - WEECHAT_HOTLIST_MESSAGE); + _("%sUnknown CTCP %s%s%s " + "received from %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + pos_args, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + nick); } - irc_channel_add_nick_speaking (ptr_channel, nick); + if (pos_end_01) + pos_end_01[0] = '\01'; + if (pos) + pos[0] = ' '; + + weechat_hook_signal_send ("irc_ctcp", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); } + return WEECHAT_RC_OK; } - else + + /* other message */ + if (!ignore) { - weechat_printf (server->buffer, - _("%s%s: channel \"%s\" not found for \"%s\" " - "command"), - weechat_prefix ("error"), "irc", - arguments, "privmsg"); - return WEECHAT_RC_ERROR; + ptr_nick = irc_nick_search (ptr_channel, nick); + if (highlight + || irc_protocol_is_highlight (pos_args, server->nick)) + { + weechat_printf (ptr_channel->buffer, + "%s%s", + irc_nick_as_prefix (ptr_nick, + (ptr_nick) ? NULL : nick, + IRC_COLOR_CHAT_HIGHLIGHT), + pos_args); + if ((look_infobar_delay_highlight > 0) + && (ptr_channel->buffer != weechat_current_buffer)) + weechat_infobar_printf (look_infobar_delay_highlight, + "color_infobar_highlight", + _("Channel %s: %s> %s"), + ptr_channel->name, + nick, + pos_args); + weechat_buffer_set (ptr_channel->buffer, "hotlist", + WEECHAT_HOTLIST_HIGHLIGHT); + weechat_hook_signal_send ("irc_highlight", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + } + else + { + weechat_printf (ptr_channel->buffer, + "%s%s", + irc_nick_as_prefix (ptr_nick, + (ptr_nick) ? NULL : nick, + NULL), + pos_args); + weechat_buffer_set (ptr_channel->buffer, "hotlist", + WEECHAT_HOTLIST_MESSAGE); + } + irc_channel_add_nick_speaking (ptr_channel, nick); } } + else + { + weechat_printf (server->buffer, + _("%s%s: channel \"%s\" not found for \"%s\" " + "command"), + weechat_prefix ("error"), "irc", + argv[2], "privmsg"); + return WEECHAT_RC_ERROR; + } } else { - pos = strchr (arguments, ' '); - if (pos) + /* version asked by another user => answer with WeeChat version */ + if (strncmp (pos_args, "\01VERSION", 8) == 0) { - pos[0] = '\0'; - pos++; - while (pos[0] == ' ') - pos++; - if (pos[0] == ':') - pos++; - - /* version asked by another user => answer with WeeChat version */ - if (strncmp (pos, "\01VERSION", 8) == 0) + if (!ignore) { - irc_protocol_reply_version (server, NULL, nick, pos, ignore); - return WEECHAT_RC_OK; + irc_protocol_reply_version (server, NULL, nick, argv_eol[0], + pos_args, ignore); } + return WEECHAT_RC_OK; + } - /* ping request from another user => answer */ - if (strncmp (pos, "\01PING", 5) == 0) + /* ping request from another user => answer */ + if (strncmp (pos_args, "\01PING", 5) == 0) + { + if (!ignore) { - if (!ignore) + pos_args += 5; + while (pos_args[0] == ' ') { - pos += 5; - while (pos[0] == ' ') - pos++; - pos2 = strchr (pos, '\01'); - if (pos2) - pos2[0] = '\0'; - else - pos = NULL; - if (pos && !pos[0]) - pos = NULL; - if (pos) - irc_server_sendf (server, "NOTICE %s :\01PING %s\01", - nick, pos); - else - irc_server_sendf (server, "NOTICE %s :\01PING\01", - nick); - weechat_printf (server->buffer, - _("CTCP %sPING%s received from %s%s"), - IRC_COLOR_CHAT_CHANNEL, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - nick); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_ctcp", - // irc_message); + pos_args++; } - return WEECHAT_RC_OK; + pos_end_01 = strchr (pos, '\01'); + if (pos_end_01) + pos_end_01[0] = '\0'; + else + pos_args = NULL; + if (pos_args && !pos_args[0]) + pos_args = NULL; + if (pos_args) + irc_server_sendf (server, "NOTICE %s :\01PING %s\01", + nick, pos_args); + else + irc_server_sendf (server, "NOTICE %s :\01PING\01", + nick); + weechat_printf (server->buffer, + _("%sCTCP %sPING%s received from %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + nick); + weechat_hook_signal_send ("irc_ctcp", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + if (pos_end_01) + pos_end_01[0] = '\01'; } + return WEECHAT_RC_OK; + } - /* incoming DCC file */ - if (strncmp (pos, "\01DCC SEND", 9) == 0) + /* incoming DCC file */ + if (strncmp (pos_args, "\01DCC SEND", 9) == 0) + { + if (!ignore) { /* check if DCC SEND is ok, i.e. with 0x01 at end */ - pos2 = strchr (pos + 1, '\01'); - if (!pos2) + pos_end_01 = strchr (pos_args + 1, '\01'); + if (!pos_end_01) { weechat_printf (server->buffer, _("%s%s: cannot parse \"%s\" command"), @@ -1922,80 +1629,107 @@ irc_protocol_cmd_privmsg (struct t_irc_server *server, char *irc_message, char * "privmsg"); return WEECHAT_RC_ERROR; } - pos2[0] = '\0'; - if (!ignore) + pos_end_01[0] = '\0'; + dcc_args = strdup (pos_args + 9); + pos_end_01[0] = '\01'; + + if (!dcc_args) { - /* DCC filename */ - pos_file = pos + 9; - while (pos_file[0] == ' ') - pos_file++; - - /* look for file size */ - pos_size = strrchr (pos_file, ' '); - if (!pos_size) - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", - "privmsg"); - return WEECHAT_RC_ERROR; - } - pos2 = pos_size; - pos_size++; - while (pos2[0] == ' ') - pos2--; - pos2[1] = '\0'; - - /* look for DCC port */ - pos_port = strrchr (pos_file, ' '); - if (!pos_port) - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", - "privmsg"); - return WEECHAT_RC_ERROR; - } - pos2 = pos_port; - pos_port++; - while (pos2[0] == ' ') - pos2--; - pos2[1] = '\0'; - - /* look for DCC IP address */ - pos_addr = strrchr (pos_file, ' '); - if (!pos_addr) - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", - "privmsg"); - return WEECHAT_RC_ERROR; - } - pos2 = pos_addr; - pos_addr++; - while (pos2[0] == ' ') - pos2--; - pos2[1] = '\0'; - - //irc_dcc_add (server, IRC_DCC_FILE_RECV, - // strtoul (pos_addr, NULL, 10), - // atoi (pos_port), nick, -1, pos_file, NULL, - // strtoul (pos_size, NULL, 10)); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_dcc", - // irc_message); + weechat_printf (server->buffer, + _("%s%s: not enough memory for \"%s\" " + "command"), + weechat_prefix ("error"), "irc", + "privmsg"); + return WEECHAT_RC_ERROR; } - return WEECHAT_RC_OK; + + /* DCC filename */ + pos_file = dcc_args; + while (pos_file[0] == ' ') + { + pos_file++; + } + + /* look for file size */ + pos_size = strrchr (pos_file, ' '); + if (!pos_size) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos = pos_size; + pos_size++; + while (pos[0] == ' ') + { + pos--; + } + pos[1] = '\0'; + + /* look for DCC port */ + pos_port = strrchr (pos_file, ' '); + if (!pos_port) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos = pos_port; + pos_port++; + while (pos[0] == ' ') + { + pos--; + } + pos[1] = '\0'; + + /* look for DCC IP address */ + pos_addr = strrchr (pos_file, ' '); + if (!pos_addr) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos = pos_addr; + pos_addr++; + while (pos[0] == ' ') + { + pos--; + } + pos[1] = '\0'; + + //irc_dcc_add (server, IRC_DCC_FILE_RECV, + // strtoul (pos_addr, NULL, 10), + // atoi (pos_port), nick, -1, pos_file, NULL, + // strtoul (pos_size, NULL, 10)); + + weechat_hook_signal_send ("irc_dcc", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + + free (dcc_args); } - - /* incoming DCC RESUME (asked by receiver) */ - if (strncmp (pos, "\01DCC RESUME", 11) == 0) + return WEECHAT_RC_OK; + } + + /* incoming DCC RESUME (asked by receiver) */ + if (strncmp (pos_args, "\01DCC RESUME", 11) == 0) + { + if (!ignore) { /* check if DCC RESUME is ok, i.e. with 0x01 at end */ - pos2 = strchr (pos + 1, '\01'); - if (!pos2) + pos_end_01 = strchr (pos_args + 1, '\01'); + if (!pos_end_01) { weechat_printf (server->buffer, _("%s%s: cannot parse \"%s\" command"), @@ -2003,62 +1737,86 @@ irc_protocol_cmd_privmsg (struct t_irc_server *server, char *irc_message, char * "privmsg"); return WEECHAT_RC_ERROR; } - pos2[0] = '\0'; - if (!ignore) + pos_end_01[0] = '\0'; + dcc_args = strdup (pos_args + 11); + pos_end_01[0] = '\01'; + + if (!dcc_args) { - /* DCC filename */ - pos_file = pos + 11; - while (pos_file[0] == ' ') - pos_file++; - - /* look for resume start position */ - pos_start_resume = strrchr (pos_file, ' '); - if (!pos_start_resume) - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", - "privmsg"); - return WEECHAT_RC_ERROR; - } - pos2 = pos_start_resume; - pos_start_resume++; - while (pos2[0] == ' ') - pos2--; - pos2[1] = '\0'; - - /* look for DCC port */ - pos_port = strrchr (pos_file, ' '); - if (!pos_port) - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", - "privmsg"); - return WEECHAT_RC_ERROR; - } - pos2 = pos_port; - pos_port++; - while (pos2[0] == ' ') - pos2--; - pos2[1] = '\0'; - - //irc_dcc_accept_resume (server, pos_file, atoi (pos_port), - // strtoul (pos_start_resume, NULL, 10)); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_dcc", - // irc_message); + weechat_printf (server->buffer, + _("%s%s: not enough memory for \"%s\" " + "command"), + weechat_prefix ("error"), "irc", + "privmsg"); + return WEECHAT_RC_ERROR; } - return WEECHAT_RC_OK; + + /* DCC filename */ + pos_file = dcc_args; + while (pos_file[0] == ' ') + { + pos_file++; + } + + /* look for resume start position */ + pos_start_resume = strrchr (pos_file, ' '); + if (!pos_start_resume) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos = pos_start_resume; + pos_start_resume++; + while (pos[0] == ' ') + { + pos--; + } + pos[1] = '\0'; + + /* look for DCC port */ + pos_port = strrchr (pos_file, ' '); + if (!pos_port) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos = pos_port; + pos_port++; + while (pos[0] == ' ') + { + pos--; + } + pos[1] = '\0'; + + //irc_dcc_accept_resume (server, pos_file, atoi (pos_port), + // strtoul (pos_start_resume, NULL, 10)); + + weechat_hook_signal_send ("irc_dcc", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + + free (dcc_args); } + return WEECHAT_RC_OK; + } - /* incoming DCC ACCEPT (resume accepted by sender) */ - if (strncmp (pos, "\01DCC ACCEPT", 11) == 0) + /* incoming DCC ACCEPT (resume accepted by sender) */ + if (strncmp (pos, "\01DCC ACCEPT", 11) == 0) + { + if (!ignore) { /* check if DCC ACCEPT is ok, i.e. with 0x01 at end */ - pos2 = strchr (pos + 1, '\01'); - if (!pos2) + pos_end_01 = strchr (pos_args + 1, '\01'); + if (!pos_end_01) { weechat_printf (server->buffer, _("%s%s: cannot parse \"%s\" command"), @@ -2066,62 +1824,86 @@ irc_protocol_cmd_privmsg (struct t_irc_server *server, char *irc_message, char * "privmsg"); return WEECHAT_RC_ERROR; } - pos2[0] = '\0'; - if (!ignore) + pos_end_01[0] = '\0'; + dcc_args = strdup (pos_args + 11); + pos_end_01[0] = '\01'; + + if (!dcc_args) { - /* DCC filename */ - pos_file = pos + 11; - while (pos_file[0] == ' ') - pos_file++; - - /* look for resume start position */ - pos_start_resume = strrchr (pos_file, ' '); - if (!pos_start_resume) - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", - "privmsg"); - return WEECHAT_RC_ERROR; - } - pos2 = pos_start_resume; - pos_start_resume++; - while (pos2[0] == ' ') - pos2--; - pos2[1] = '\0'; - - /* look for DCC port */ - pos_port = strrchr (pos_file, ' '); - if (!pos_port) - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", - "privmsg"); - return WEECHAT_RC_ERROR; - } - pos2 = pos_port; - pos_port++; - while (pos2[0] == ' ') - pos2--; - pos2[1] = '\0'; - - //irc_dcc_start_resume (server, pos_file, atoi (pos_port), - // strtoul (pos_start_resume, NULL, 10)); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_dcc", - // irc_message); + weechat_printf (server->buffer, + _("%s%s: not enough memory for \"%s\" " + "command"), + weechat_prefix ("error"), "irc", + "privmsg"); + return WEECHAT_RC_ERROR; } - return WEECHAT_RC_OK; + + /* DCC filename */ + pos_file = dcc_args; + while (pos_file[0] == ' ') + { + pos_file++; + } + + /* look for resume start position */ + pos_start_resume = strrchr (pos_file, ' '); + if (!pos_start_resume) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos = pos_start_resume; + pos_start_resume++; + while (pos[0] == ' ') + { + pos--; + } + pos[1] = '\0'; + + /* look for DCC port */ + pos_port = strrchr (pos_file, ' '); + if (!pos_port) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos = pos_port; + pos_port++; + while (pos[0] == ' ') + { + pos--; + } + pos[1] = '\0'; + + //irc_dcc_start_resume (server, pos_file, atoi (pos_port), + // strtoul (pos_start_resume, NULL, 10)); + + weechat_hook_signal_send ("irc_dcc", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + + free (dcc_args); } + return WEECHAT_RC_OK; + } - /* incoming DCC CHAT */ - if (strncmp (pos, "\01DCC CHAT", 9) == 0) + /* incoming DCC CHAT */ + if (strncmp (pos, "\01DCC CHAT", 9) == 0) + { + if (!ignore) { /* check if DCC CHAT is ok, i.e. with 0x01 at end */ - pos2 = strchr (pos + 1, '\01'); - if (!pos2) + pos_end_01 = strchr (pos_args + 1, '\01'); + if (!pos_end_01) { weechat_printf (server->buffer, _("%s%s: cannot parse \"%s\" command"), @@ -2129,73 +1911,234 @@ irc_protocol_cmd_privmsg (struct t_irc_server *server, char *irc_message, char * "privmsg"); return WEECHAT_RC_ERROR; } - pos2[0] = '\0'; - if (!ignore) + pos_end_01[0] = '\0'; + dcc_args = strdup (pos_args + 9); + pos_end_01[0] = '\01'; + + if (!dcc_args) { - /* CHAT type */ - pos_file = pos + 9; - while (pos_file[0] == ' ') - pos_file++; - - /* DCC IP address */ - pos_addr = strchr (pos_file, ' '); - if (!pos_addr) + weechat_printf (server->buffer, + _("%s%s: not enough memory for \"%s\" " + "command"), + weechat_prefix ("error"), "irc", + "privmsg"); + return WEECHAT_RC_ERROR; + } + + /* CHAT type */ + pos_file = dcc_args; + while (pos_file[0] == ' ') + { + pos_file++; + } + + /* DCC IP address */ + pos_addr = strchr (pos_file, ' '); + if (!pos_addr) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos_addr[0] = '\0'; + pos_addr++; + while (pos_addr[0] == ' ') + { + pos_addr++; + } + + /* look for DCC port */ + pos_port = strchr (pos_addr, ' '); + if (!pos_port) + { + weechat_printf (server->buffer, + _("%s%s: cannot parse \"%s\" command"), + weechat_prefix ("error"), "irc", + "privmsg"); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + pos_port[0] = '\0'; + pos_port++; + while (pos_port[0] == ' ') + { + pos_port++; + } + + if (weechat_strcasecmp (pos_file, "chat") != 0) + { + weechat_printf (server->buffer, + _("%s%s: unknown DCC CHAT type " + "received from %s%s%s: \"%s\""), + weechat_prefix ("error"), "irc", + IRC_COLOR_CHAT_NICK, + nick, + IRC_COLOR_CHAT, + pos_file); + free (dcc_args); + return WEECHAT_RC_ERROR; + } + + //irc_dcc_add (server, IRC_DCC_CHAT_RECV, + // strtoul (pos_addr, NULL, 10), + // atoi (pos_port), nick, -1, NULL, NULL, 0); + + weechat_hook_signal_send ("irc_dcc", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + + free (dcc_args); + } + return WEECHAT_RC_OK; + } + + /* private message received => display it */ + ptr_channel = irc_channel_search (server, nick); + + if (strncmp (pos, "\01ACTION ", 8) == 0) + { + if (!ignore) + { + if (!ptr_channel) + { + ptr_channel = irc_channel_new (server, + IRC_CHANNEL_TYPE_PRIVATE, + nick, 0); + if (!ptr_channel) { weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), + _("%s%s: cannot create new " + "private buffer \"%s\""), weechat_prefix ("error"), "irc", - "privmsg"); + nick); return WEECHAT_RC_ERROR; } - pos_addr[0] = '\0'; - pos_addr++; - while (pos_addr[0] == ' ') - pos_addr++; + } + if (!ptr_channel->topic) + { + ptr_channel->topic = strdup (host); + weechat_buffer_set (ptr_channel->buffer, + "title", ptr_channel->topic); + } - /* look for DCC port */ - pos_port = strchr (pos_addr, ' '); - if (!pos_port) + pos_args += 8; + pos_end_01 = strchr (pos, '\01'); + if (pos_end_01) + pos_end_01[0] = '\0'; + if (highlight + || irc_protocol_is_highlight (pos_args, server->nick)) + { + weechat_printf (ptr_channel->buffer, + "%s%s%s %s%s", + weechat_prefix ("action"), + IRC_COLOR_CHAT_HIGHLIGHT, + nick, + IRC_COLOR_CHAT, + pos_args); + if ((look_infobar_delay_highlight > 0) + && (ptr_channel->buffer != weechat_current_buffer)) { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", - "privmsg"); - return WEECHAT_RC_ERROR; + weechat_infobar_printf (look_infobar_delay_highlight, + "look_infobar_highlight", + _("Channel %s: * %s %s"), + ptr_channel->name, + nick, pos); } - pos_port[0] = '\0'; - pos_port++; - while (pos_port[0] == ' ') - pos_port++; + weechat_hook_signal_send ("irc_highlight", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + weechat_buffer_set (ptr_channel->buffer, "hotlist", + WEECHAT_HOTLIST_HIGHLIGHT); + } + else + { + weechat_printf (ptr_channel->buffer, + "%s%s%s %s%s", + weechat_prefix ("action"), + IRC_COLOR_CHAT_NICK, + nick, + IRC_COLOR_CHAT, + pos_args); + weechat_hook_signal_send ("irc_pv", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + weechat_buffer_set (ptr_channel->buffer, "hotlist", + WEECHAT_HOTLIST_MESSAGE); + } + if (pos_end_01) + pos_end_01[0] = '\01'; + } + } + else + { + /* unknown CTCP ? */ + pos_end_01 = strchr (pos_args + 1, '\01'); + if ((pos_args[0] == '\01') + && pos_end_01 && (pos_end_01[1] == '\0')) + { + if (!ignore) + { + pos_args++; + pos_end_01[0] = '\0'; + pos = strchr (pos_args, ' '); + if (pos) + { + pos[0] = '\0'; + pos_message = pos + 1; + while (pos_message[0] == ' ') + { + pos_message++; + } + if (!pos_message[0]) + pos_message = NULL; + } + else + pos_message = NULL; - if (weechat_strcasecmp (pos_file, "chat") != 0) + if (pos_message) { weechat_printf (server->buffer, - _("%s%s: unknown DCC CHAT type " - "received from %s%s%s: \"%s\""), - weechat_prefix ("error"), "irc", + _("%sUnknown CTCP %s%s%s received " + "from %s%s%s: %s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + pos_args, + IRC_COLOR_CHAT, IRC_COLOR_CHAT_NICK, nick, IRC_COLOR_CHAT, - pos_file); - return WEECHAT_RC_ERROR; + pos_message); + } + else + { + weechat_printf (server->buffer, + _("%sUnknown CTCP %s%s%s received " + "from %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + pos_args, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + nick); } + if (pos_end_01) + pos_end_01[0] = '\01'; + if (pos) + pos[0] = ' '; - //irc_dcc_add (server, IRC_DCC_CHAT_RECV, - // strtoul (pos_addr, NULL, 10), - // atoi (pos_port), nick, -1, NULL, NULL, 0); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_dcc", - // irc_message); + weechat_hook_signal_send ("irc_ctcp", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); } return WEECHAT_RC_OK; } - - /* private message received => display it */ - ptr_channel = irc_channel_search (server, nick); - - if (strncmp (pos, "\01ACTION ", 8) == 0) + else { + /* private message */ if (!ignore) { if (!ptr_channel) @@ -2208,180 +2151,61 @@ irc_protocol_cmd_privmsg (struct t_irc_server *server, char *irc_message, char * weechat_printf (server->buffer, _("%s%s: cannot create new " "private buffer \"%s\""), - weechat_prefix ("error"), "irc", - nick); + weechat_prefix ("error"), + "irc", nick); return WEECHAT_RC_ERROR; } } - if (!ptr_channel->topic) - { - ptr_channel->topic = strdup (host2); - //gui_chat_draw_title (ptr_channel->buffer, 1); - } + if (ptr_channel->topic) + free (ptr_channel->topic); + ptr_channel->topic = strdup (host); + weechat_buffer_set (ptr_channel->buffer, "title", + ptr_channel->topic); - pos += 8; - pos2 = strchr (pos, '\01'); - if (pos2) - pos2[0] = '\0'; - if (highlight || irc_protocol_is_highlight (pos, server->nick)) + if (highlight + || irc_protocol_is_highlight (pos, server->nick)) { weechat_printf (ptr_channel->buffer, - "%s%s%s %s%s", - weechat_prefix ("action"), - IRC_COLOR_CHAT_HIGHLIGHT, - nick, - IRC_COLOR_CHAT, - pos); + "%s%s", + irc_nick_as_prefix (NULL, + nick, + IRC_COLOR_CHAT_HIGHLIGHT), + pos_args); if ((look_infobar_delay_highlight > 0) && (ptr_channel->buffer != weechat_current_buffer)) weechat_infobar_printf (look_infobar_delay_highlight, - "look_infobar_highlight", - _("Channel %s: * %s %s"), - ptr_channel->name, - nick, pos); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_highlight", - // irc_message); - weechat_buffer_set (ptr_channel->buffer, "hotlist", - WEECHAT_HOTLIST_HIGHLIGHT); + "color_infobar_highlight", + _("Private %s> %s"), + nick, pos_args); + highlight_displayed = 1; } else { weechat_printf (ptr_channel->buffer, - "%s%s%s %s%s", - weechat_prefix ("action"), - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - pos); - //(void) plugin_msg_handler_exec (server->name, - // "weechat_pv", - // irc_message); - weechat_buffer_set (ptr_channel->buffer, "hotlist", - WEECHAT_HOTLIST_MESSAGE); - } - } - } - else - { - /* unknown CTCP ? */ - pos2 = strchr (pos + 1, '\01'); - if ((pos[0] == '\01') && pos2 && (pos2[1] == '\0')) - { - if (!ignore) - { - pos++; - pos2[0] = '\0'; - pos2 = strchr (pos, ' '); - if (pos2) - { - pos2[0] = '\0'; - pos2++; - while (pos2[0] == ' ') - pos2++; - if (!pos2[0]) - pos2 = NULL; - } - if (pos2) - { - weechat_printf (server->buffer, - _("Unknown CTCP %s%s%s received " - "from %s%s%s: %s"), - IRC_COLOR_CHAT_CHANNEL, - pos, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT, - pos2); - } - else - { - weechat_printf (server->buffer, - _("Unknown CTCP %s%s%s received " - "from %s%s"), - IRC_COLOR_CHAT_CHANNEL, - pos, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_NICK, - nick); - } - //(void) plugin_msg_handler_exec (server->name, - // "weechat_ctcp", - // irc_message); + "%s%s", + irc_nick_as_prefix (NULL, + nick, + IRC_COLOR_CHAT_NICK_OTHER), + pos_args); + highlight_displayed = 0; } - return WEECHAT_RC_OK; - } - else - { - if (!ignore) + + weechat_hook_signal_send ("irc_pv", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); + + if (highlight_displayed) { - if (!ptr_channel) - { - ptr_channel = irc_channel_new (server, - IRC_CHANNEL_TYPE_PRIVATE, - nick, 0); - if (!ptr_channel) - { - weechat_printf (server->buffer, - _("%s%s: cannot create new " - "private buffer \"%s\""), - weechat_prefix ("error"), - "irc", nick); - return WEECHAT_RC_ERROR; - } - } - if (!ptr_channel->topic) - { - ptr_channel->topic = strdup (host2); - weechat_buffer_set (ptr_channel->buffer, "title", - ptr_channel->topic); - } - - if (highlight || irc_protocol_is_highlight (pos, server->nick)) - { - weechat_printf (ptr_channel->buffer, - "%s%s", - irc_nick_as_prefix (NULL, - nick, - IRC_COLOR_CHAT_HIGHLIGHT), - pos); - if ((look_infobar_delay_highlight > 0) - && (ptr_channel->buffer != weechat_current_buffer)) - weechat_infobar_printf (look_infobar_delay_highlight, - "color_infobar_highlight", - _("Private %s> %s"), - nick, pos); - highlight_displayed = 1; - } - else - { - weechat_printf (ptr_channel->buffer, - "%s%s", - irc_nick_as_prefix (NULL, - nick, - IRC_COLOR_CHAT_NICK_OTHER), - pos); - highlight_displayed = 0; - } - //(void) plugin_msg_handler_exec (server->name, - // "weechat_pv", - // irc_message); - //if (highlight_displayed) - // (void) plugin_msg_handler_exec (server->name, - // "weechat_highlight", - // irc_message); + weechat_hook_signal_send ("irc_highlight", + WEECHAT_HOOK_SIGNAL_STRING, + argv_eol[0]); } + + weechat_buffer_set (ptr_channel->buffer, + "hotlist", WEECHAT_HOTLIST_PRIVATE); } } } - else - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", "privmsg"); - return WEECHAT_RC_ERROR; - } } return WEECHAT_RC_OK; @@ -2392,28 +2216,29 @@ irc_protocol_cmd_privmsg (struct t_irc_server *server, char *irc_message, char * */ int -irc_protocol_cmd_quit (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_quit (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos; + char *nick, *host, *pos_comment; struct t_irc_channel *ptr_channel; struct t_irc_nick *ptr_nick; + /* QUIT message looks like: + :nick!user@host QUIT :quit message + */ + + IRC_PROTOCOL_MIN_ARGS(2); + IRC_PROTOCOL_CHECK_HOST; + /* make C compiler happy */ - (void) irc_message; (void) highlight; - /* no host => we can't identify sender of message! */ - if (!host) - { - weechat_printf (server->buffer, - _("%s%s: \"%s\" command received without host"), - weechat_prefix ("error"), "irc", "quit"); - return WEECHAT_RC_ERROR; - } - - if (arguments[0] == ':') - arguments++; + nick = irc_protocol_get_nick_from_host (argv[0]); + host = irc_protocol_get_address_from_host (argv[0]); + + pos_comment = (argc > 2) ? + ((argv_eol[2][0] == ':') ? argv_eol[2] + 1 : argv_eol[2]) : NULL; for (ptr_channel = server->channels; ptr_channel; ptr_channel = ptr_channel->next_channel) @@ -2430,21 +2255,37 @@ irc_protocol_cmd_quit (struct t_irc_server *server, char *irc_message, char *hos irc_nick_free (ptr_channel, ptr_nick); if (!ignore) { - pos = strchr (host, '!'); - weechat_printf (ptr_channel->buffer, - _("%s%s%s %s(%s%s%s)%s has quit %s(%s%s%s)"), - weechat_prefix ("quit"), - IRC_COLOR_CHAT_NICK, - nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_HOST, - (pos) ? pos + 1 : "", - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - arguments, - IRC_COLOR_CHAT_DELIMITERS); + if (pos_comment && pos_comment[0]) + { + weechat_printf (ptr_channel->buffer, + _("%s%s%s %s(%s%s%s)%s has quit " + "%s(%s%s%s)"), + weechat_prefix ("quit"), + IRC_COLOR_CHAT_NICK, + nick, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_HOST, + host, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + pos_comment, + IRC_COLOR_CHAT_DELIMITERS); + } + else + { + weechat_printf (ptr_channel->buffer, + _("%s%s%s %s(%s%s%s)%s has quit"), + weechat_prefix ("quit"), + IRC_COLOR_CHAT_NICK, + nick, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_HOST, + host, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT); + } } } } @@ -2458,83 +2299,93 @@ irc_protocol_cmd_quit (struct t_irc_server *server, char *irc_message, char *hos */ int -irc_protocol_cmd_server_mode_reason (struct t_irc_server *server, - char *irc_message, char *host, - char *nick, char *arguments, int ignore, - int highlight) +irc_protocol_cmd_server_mode_reason (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *ptr_msg; + char *pos_args, *ptr_msg, *ptr_msg2; + + IRC_PROTOCOL_MIN_ARGS(3); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; + (void) argv; (void) highlight; if (!ignore) { /* skip nickname if at beginning of server message */ - if (strncmp (server->nick, arguments, strlen (server->nick)) == 0) + pos_args = argv_eol[2]; + if (strncmp (server->nick, pos_args, strlen (server->nick)) == 0) { - arguments += strlen (server->nick) + 1; - while (arguments[0] == ' ') - arguments++; + pos_args += strlen (server->nick) + 1; + while (pos_args[0] == ' ') + { + pos_args++; + } } - - ptr_msg = strchr (arguments, ' '); + + ptr_msg = strchr (pos_args, ' '); + ptr_msg2 = NULL; if (ptr_msg) { ptr_msg[0] = '\0'; - ptr_msg++; - while (ptr_msg[0] == ' ') - ptr_msg++; - if (ptr_msg[0] == ':') - ptr_msg++; + ptr_msg2 = ptr_msg + 1; + while (ptr_msg2[0] == ' ') + { + ptr_msg2++; + } + if (ptr_msg2[0] == ':') + { + ptr_msg2++; + } } weechat_printf (server->buffer, - "%s: %s", - arguments, - (ptr_msg) ? ptr_msg : ""); + "%s%s: %s", + weechat_prefix ("network"), + pos_args, + (ptr_msg2) ? ptr_msg2 : ""); + + if (ptr_msg) + ptr_msg[0] = ' '; } return WEECHAT_RC_OK; } /* - * irc_protocol_cmd_server_msg: command received from server (numeric) + * irc_protocol_cmd_numeric: numeric command received from server */ int -irc_protocol_cmd_server_msg (struct t_irc_server *server, char *irc_message, - char *host, char *nick, char *arguments, - int ignore, int highlight) +irc_protocol_cmd_numeric (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { + char *pos_args; + + IRC_PROTOCOL_MIN_ARGS(3); + /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; + (void) argv; (void) highlight; if (!ignore) { - while (arguments[0] == ' ') - arguments++; - - /* skip nickname if at beginning of server message */ - if (weechat_strncasecmp (server->nick, arguments, strlen (server->nick)) == 0) + if (weechat_strcasecmp (server->nick, argv[2]) == 0) { - arguments += strlen (server->nick) + 1; - while (arguments[0] == ' ') - arguments++; + pos_args = (argc > 3) ? + ((argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]) : NULL; + } + else + { + pos_args = (argv_eol[2][0] == ':') ? argv_eol[2] + 1 : argv_eol[2]; } - - if (arguments[0] == ':') - arguments++; weechat_printf (server->buffer, - "%s", - arguments); + "%s%s", + weechat_prefix ("network"), + pos_args); } return WEECHAT_RC_OK; @@ -2545,19 +2396,24 @@ irc_protocol_cmd_server_msg (struct t_irc_server *server, char *irc_message, */ int -irc_protocol_cmd_topic (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_topic (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos; + char *pos_topic; struct t_irc_channel *ptr_channel; struct t_gui_buffer *buffer; + /* TOPIC message looks like: + :nick!user@host TOPIC #channel :new topic for channel + */ + + IRC_PROTOCOL_MIN_ARGS(3); + /* make C compiler happy */ - (void) irc_message; - (void) host; (void) highlight; - if (!irc_channel_is_channel (arguments)) + if (!irc_channel_is_channel (argv[2])) { weechat_printf (server->buffer, _("%s%s: \"%s\" command received without channel"), @@ -2565,56 +2421,48 @@ irc_protocol_cmd_topic (struct t_irc_server *server, char *irc_message, char *ho return WEECHAT_RC_ERROR; } - pos = strchr (arguments, ' '); - if (pos) - { - pos[0] = '\0'; - pos++; - while (pos[0] == ' ') - pos++; - if (pos[0] == ':') - pos++; - if (!pos[0]) - pos = NULL; - } + pos_topic = (argc > 3) ? + ((argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]) : NULL; - ptr_channel = irc_channel_search (server, arguments); + ptr_channel = irc_channel_search (server, argv[2]); buffer = (ptr_channel) ? ptr_channel->buffer : server->buffer; if (!ignore) { - if (pos) + if (pos_topic && pos_topic[0]) { weechat_printf (buffer, _("%s%s%s%s has changed topic for %s%s%s to: " "\"%s%s\""), - weechat_prefix ("info"), + weechat_prefix ("network"), IRC_COLOR_CHAT_NICK, - nick, + irc_protocol_get_nick_from_host (argv[0]), IRC_COLOR_CHAT, IRC_COLOR_CHAT_CHANNEL, - arguments, + argv[2], IRC_COLOR_CHAT, - pos, + pos_topic, IRC_COLOR_CHAT); } else + { weechat_printf (buffer, _("%s%s%s%s has unset topic for %s%s"), - weechat_prefix ("info"), + weechat_prefix ("network"), IRC_COLOR_CHAT_NICK, - nick, + irc_protocol_get_nick_from_host (argv[0]), IRC_COLOR_CHAT, IRC_COLOR_CHAT_CHANNEL, - arguments); + argv[2]); + } } if (ptr_channel) { if (ptr_channel->topic) free (ptr_channel->topic); - if (pos) - ptr_channel->topic = strdup (pos); + if (pos_topic) + ptr_channel->topic = strdup (pos_topic); else ptr_channel->topic = strdup (""); weechat_buffer_set (ptr_channel->buffer, "title", ptr_channel->topic); @@ -2628,24 +2476,32 @@ irc_protocol_cmd_topic (struct t_irc_server *server, char *irc_message, char *ho */ int -irc_protocol_cmd_wallops (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_wallops (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { + /* WALLOPS message looks like: + :nick!user@host WALLOPS :message from admin + */ + + IRC_PROTOCOL_MIN_ARGS(3); + /* make C compiler happy */ - (void) irc_message; - (void) host; (void) highlight; if (!ignore) { - if (arguments[0] == ':') - arguments++; weechat_printf (server->buffer, - _("WALLOPS from %s%s%s: %s"), + _("%sWallops from %s%s %s(%s%s%s)%s: %s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_NICK, - nick, + irc_protocol_get_nick_from_host (argv[0]), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_HOST, + irc_protocol_get_address_from_host (argv[0]), + IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT, - arguments); + (argv_eol[2][0] == ':') ? argv_eol[2] + 1 : argv_eol[2]); } return WEECHAT_RC_OK; @@ -2656,21 +2512,24 @@ irc_protocol_cmd_wallops (struct t_irc_server *server, char *irc_message, char * */ int -irc_protocol_cmd_001 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_001 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos; - char **commands, **ptr, *vars_replaced; + char **commands, **ptr_cmd, *vars_replaced; char *away_msg; + + /* 001 message looks like: + :server 001 mynick :Welcome to the dancer-ircd Network + */ - pos = strchr (arguments, ' '); - if (pos) - pos[0] = '\0'; - if (strcmp (server->nick, arguments) != 0) - irc_server_set_nick (server, arguments); + IRC_PROTOCOL_MIN_ARGS(3); + + if (strcmp (server->nick, argv[2]) != 0) + irc_server_set_nick (server, argv[2]); - irc_protocol_cmd_server_msg (server, irc_message, host, nick, arguments, - ignore, highlight); + irc_protocol_cmd_numeric (server, command, argc, argv, argv_eol, + ignore, highlight); /* connection to IRC server is ok! */ server->is_connected = 1; @@ -2690,16 +2549,17 @@ irc_protocol_cmd_001 (struct t_irc_server *server, char *irc_message, char *host /* execute command when connected */ if (server->command && server->command[0]) - { + { /* splitting command on ';' which can be escaped with '\;' */ commands = weechat_string_split_command (server->command, ';'); if (commands) { - for (ptr = commands; *ptr; ptr++) + for (ptr_cmd = commands; *ptr_cmd; ptr_cmd++) { - vars_replaced = irc_protocol_replace_vars (server, NULL, *ptr); + vars_replaced = irc_protocol_replace_vars (server, NULL, + *ptr_cmd); weechat_command (server->buffer, - (vars_replaced) ? vars_replaced : *ptr); + (vars_replaced) ? vars_replaced : *ptr_cmd); if (vars_replaced) free (vars_replaced); } @@ -2722,15 +2582,25 @@ irc_protocol_cmd_001 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_005 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_005 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { char *pos, *pos2; + + /* 005 message looks like: + :server 005 mynick MODES=4 CHANLIMIT=#:20 NICKLEN=16 USERLEN=10 + HOSTLEN=63 TOPICLEN=450 KICKLEN=450 CHANNELLEN=30 KEYLEN=23 + CHANTYPES=# PREFIX=(ov)@+ CASEMAPPING=ascii CAPAB IRCD=dancer + :are available on this server + */ - irc_protocol_cmd_server_msg (server, irc_message, host, nick, arguments, - ignore, highlight); + IRC_PROTOCOL_MIN_ARGS(4); - pos = strstr (arguments, "PREFIX="); + irc_protocol_cmd_numeric (server, command, argc, argv, argv_eol, + ignore, highlight); + + pos = strstr (argv_eol[3], "PREFIX="); if (pos) { pos += 7; @@ -2759,45 +2629,31 @@ irc_protocol_cmd_005 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_221 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_221 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_mode; + /* 221 message looks like: + :server 221 nick :+s + */ + + IRC_PROTOCOL_MIN_ARGS(4); /* make C compiler happy */ - (void) server; - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - pos_mode = strchr (arguments, ' '); - if (pos_mode) - { - pos_mode[0] = '\0'; - pos_mode++; - while (pos_mode[0] == ' ') - pos_mode++; - - if (!ignore) - { - weechat_printf (server->buffer, - _("User mode for %s%s%s is %s[%s%s%s]"), - IRC_COLOR_CHAT_NICK, - arguments, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_mode, - IRC_COLOR_CHAT_DELIMITERS); - } - } - else + if (!ignore) { weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", "221"); - return WEECHAT_RC_ERROR; + _("%sUser mode for %s%s%s is %s[%s%s%s]"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_NICK, + argv[2], + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + (argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3], + IRC_COLOR_CHAT_DELIMITERS); } return WEECHAT_RC_OK; @@ -2805,124 +2661,52 @@ irc_protocol_cmd_221 (struct t_irc_server *server, char *irc_message, char *host /* * irc_protocol_cmd_301: '301' command (away message) + * received when we are talking to a user in private + * and that remote user is away (we receive away message) */ int -irc_protocol_cmd_301 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_301 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_nick, *pos_message; + char *pos_away_msg; struct t_irc_channel *ptr_channel; struct t_gui_buffer *ptr_buffer; - /* make C compiler happy */ - (void) server; - (void) irc_message; - (void) host; - (void) nick; - (void) highlight; - - pos_nick = strchr (arguments, ' '); - if (pos_nick) - { - while (pos_nick[0] == ' ') - pos_nick++; - pos_message = strchr (pos_nick, ' '); - if (pos_message) - { - pos_message[0] = '\0'; - pos_message++; - while (pos_message[0] == ' ') - pos_message++; - if (pos_message[0] == ':') - pos_message++; - - if (!ignore) - { - /* look for private buffer to display message */ - ptr_channel = irc_channel_search (server, pos_nick); - if (!weechat_config_boolean (irc_config_irc_show_away_once) - || !ptr_channel - || !(ptr_channel->away_message) - || (strcmp (ptr_channel->away_message, pos_message) != 0)) - { - ptr_buffer = (ptr_channel) ? ptr_channel->buffer : server->buffer; - weechat_printf (ptr_buffer, - _("%s%s%s%s is away: %s"), - weechat_prefix ("info"), - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT, - pos_message); - if (ptr_channel) - { - if (ptr_channel->away_message) - free (ptr_channel->away_message); - ptr_channel->away_message = strdup (pos_message); - } - } - } - } - } + /* 301 message looks like: + :server 301 mynick nick :away message for nick + */ - return WEECHAT_RC_OK; -} - -/* - * irc_protocol_cmd_302: '302' command (userhost) - */ - -int -irc_protocol_cmd_302 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) -{ - char *pos_host, *ptr_next; + IRC_PROTOCOL_MIN_ARGS(3); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - if (!ignore) + if ((argc > 4) && !ignore) { - arguments = strchr (arguments, ' '); - if (arguments) + pos_away_msg = (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4]; + + /* look for private buffer to display message */ + ptr_channel = irc_channel_search (server, argv[3]); + if (!weechat_config_boolean (irc_config_irc_show_away_once) + || !ptr_channel + || !(ptr_channel->away_message) + || (strcmp (ptr_channel->away_message, pos_away_msg) != 0)) { - while (arguments[0] == ' ') - arguments++; - if (arguments[0] == ':') - arguments++; - while (arguments) + ptr_buffer = (ptr_channel) ? ptr_channel->buffer : server->buffer; + weechat_printf (ptr_buffer, + _("%s%s%s%s is away: %s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT, + pos_away_msg); + if (ptr_channel) { - pos_host = strchr (arguments, '='); - if (pos_host) - { - pos_host[0] = '\0'; - pos_host++; - - ptr_next = strchr (pos_host, ' '); - if (ptr_next) - { - ptr_next[0] = '\0'; - ptr_next++; - while (ptr_next[0] == ' ') - ptr_next++; - } - - weechat_printf (server->buffer, - "%s%s%s=%s%s", - IRC_COLOR_CHAT_NICK, - arguments, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_HOST, - pos_host); - } - else - ptr_next = NULL; - arguments = ptr_next; - if (arguments && !arguments[0]) - arguments = NULL; + if (ptr_channel->away_message) + free (ptr_channel->away_message); + ptr_channel->away_message = strdup (pos_away_msg); } } } @@ -2935,48 +2719,27 @@ irc_protocol_cmd_302 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_303 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_303 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *ptr_next; + /* 301 message looks like: + :server 303 mynick :nick1 nick2 + */ + + IRC_PROTOCOL_MIN_ARGS(4); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; + (void) argv; (void) highlight; if (!ignore) { weechat_printf (server->buffer, - _("Users online: ")); - - arguments = strchr (arguments, ' '); - if (arguments) - { - while (arguments[0] == ' ') - arguments++; - if (arguments[0] == ':') - arguments++; - while (arguments) - { - ptr_next = strchr (arguments, ' '); - if (ptr_next) - { - ptr_next[0] = '\0'; - ptr_next++; - while (ptr_next[0] == ' ') - ptr_next++; - } - weechat_printf (server->buffer, - "%s%s ", - IRC_COLOR_CHAT_NICK, - arguments); - arguments = ptr_next; - if (arguments && !arguments[0]) - arguments = NULL; - } - } + _("%sUsers online: %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_NICK, + (argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]); } return WEECHAT_RC_OK; @@ -2987,31 +2750,31 @@ irc_protocol_cmd_303 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_305 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_305 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - //struct t_gui_window *ptr_window; + /* 305 message looks like: + :server 305 mynick :Does this mean you're really back? + */ + + IRC_PROTOCOL_MIN_ARGS(3); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; + (void) argv; (void) highlight; - if (!ignore) + if (!ignore && (argc > 3)) { - arguments = strchr (arguments, ' '); - if (arguments) - { - while (arguments[0] == ' ') - arguments++; - if (arguments[0] == ':') - arguments++; - weechat_printf (server->buffer, "%s", arguments); - } + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("network"), + (argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]); } + server->is_away = 0; server->away_time = 0; + /* for (ptr_window = gui_windows; ptr_window; ptr_window = ptr_window->next_window) @@ -3030,31 +2793,31 @@ irc_protocol_cmd_305 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_306 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_306 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - //struct t_gui_window *ptr_window; + /* 306 message looks like: + :server 306 mynick :We'll miss you + */ + + IRC_PROTOCOL_MIN_ARGS(3); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; + (void) argv; (void) highlight; - if (!ignore) + if (!ignore && (argc > 3)) { - arguments = strchr (arguments, ' '); - if (arguments) - { - while (arguments[0] == ' ') - arguments++; - if (arguments[0] == ':') - arguments++; - weechat_printf (server->buffer, "%s", arguments); - } + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("network"), + (argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]); } + server->is_away = 1; server->away_time = time (NULL); + /* for (ptr_window = gui_windows; ptr_window; ptr_window = ptr_window->next_window) @@ -3079,81 +2842,30 @@ irc_protocol_cmd_306 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_whois_nick_msg (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_whois_nick_msg (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_nick, *pos_msg; - - /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; - (void) highlight; - - if (!ignore) - { - pos_nick = strchr (arguments, ' '); - if (pos_nick) - { - while (pos_nick[0] == ' ') - pos_nick++; - pos_msg = strchr (pos_nick, ' '); - if (pos_msg) - { - pos_msg[0] = '\0'; - pos_msg++; - while (pos_msg[0] == ' ') - pos_msg++; - if (pos_msg[0] == ':') - pos_msg++; - - weechat_printf (server->buffer, - "%s[%s%s%s] %s%s", - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_msg); - } - } - } + /* messages look like: + :server 319 flashy FlashCode :some text here + */ - return WEECHAT_RC_OK; -} - -/* - * irc_protocol_cmd_310: '310' command (whois, help mode) - */ - -int -irc_protocol_cmd_310 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) -{ - char *pos_nick; + IRC_PROTOCOL_MIN_ARGS(5); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; if (!ignore) { - pos_nick = strchr (arguments, ' '); - if (pos_nick) - { - while (pos_nick[0] == ' ') - pos_nick++; - - weechat_printf (server->buffer, - _("%s[%s%s%s]%s help mode (+h)"), - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT); - } + weechat_printf (server->buffer, + "%s%s[%s%s%s] %s%s", + weechat_prefix ("network"), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4]); } return WEECHAT_RC_OK; @@ -3164,68 +2876,34 @@ irc_protocol_cmd_310 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_311 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_311 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_nick, *pos_user, *pos_host, *pos_realname; + /* 311 message looks like: + :server 311 mynick nick user host * :realname here + */ + + IRC_PROTOCOL_MIN_ARGS(8); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; if (!ignore) { - pos_nick = strchr (arguments, ' '); - if (pos_nick) - { - while (pos_nick[0] == ' ') - pos_nick++; - pos_user = strchr (pos_nick, ' '); - if (pos_user) - { - pos_user[0] = '\0'; - pos_user++; - while (pos_user[0] == ' ') - pos_user++; - pos_host = strchr (pos_user, ' '); - if (pos_host) - { - pos_host[0] = '\0'; - pos_host++; - while (pos_host[0] == ' ') - pos_host++; - pos_realname = strchr (pos_host, ' '); - if (pos_realname) - { - pos_realname[0] = '\0'; - pos_realname++; - while (pos_realname[0] == ' ') - pos_realname++; - if (pos_realname[0] == '*') - pos_realname++; - while (pos_realname[0] == ' ') - pos_realname++; - if (pos_realname[0] == ':') - pos_realname++; - - weechat_printf (server->buffer, - "%s[%s%s%s] (%s%s@%s%s)%s: %s", - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_HOST, - pos_user, - pos_host, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_realname); - } - } - } - } + weechat_printf (server->buffer, + "%s%s[%s%s%s] (%s%s@%s%s)%s: %s", + weechat_prefix ("network"), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_HOST, + argv[4], + argv[5], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + (argv_eol[7][0] == ':') ? argv_eol[7] + 1 : argv_eol[7]); } return WEECHAT_RC_OK; @@ -3236,57 +2914,36 @@ irc_protocol_cmd_311 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_312 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_312 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_nick, *pos_server, *pos_serverinfo; + /* 312 message looks like: + :server 312 mynick nick irc.freenode.net :http://freenode.net/ + */ + + IRC_PROTOCOL_MIN_ARGS(6); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; if (!ignore) { - pos_nick = strchr (arguments, ' '); - if (pos_nick) - { - while (pos_nick[0] == ' ') - pos_nick++; - pos_server = strchr (pos_nick, ' '); - if (pos_server) - { - pos_server[0] = '\0'; - pos_server++; - while (pos_server[0] == ' ') - pos_server++; - pos_serverinfo = strchr (pos_server, ' '); - if (pos_serverinfo) - { - pos_serverinfo[0] = '\0'; - pos_serverinfo++; - while (pos_serverinfo[0] == ' ') - pos_serverinfo++; - if (pos_serverinfo[0] == ':') - pos_serverinfo++; - - weechat_printf (server->buffer, - "%s[%s%s%s] %s%s %s(%s%s%s)", - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_server, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_serverinfo, - IRC_COLOR_CHAT_DELIMITERS); - } - } - } + weechat_printf (server->buffer, + "%s%s[%s%s%s] %s%s %s(%s%s%s)", + weechat_prefix ("network"), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + argv[4], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + (argv_eol[5][0] == ':') ? argv_eol[5] + 1 : argv_eol[5], + IRC_COLOR_CHAT_DELIMITERS); } + return WEECHAT_RC_OK; } @@ -3295,72 +2952,35 @@ irc_protocol_cmd_312 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_314 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_314 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_nick, *pos_user, *pos_host, *pos_realname; + /* 314 message looks like: + :server 314 mynick nick user host * :realname here + */ + + IRC_PROTOCOL_MIN_ARGS(8); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - + if (!ignore) { - pos_nick = strchr (arguments, ' '); - if (pos_nick) - { - while (pos_nick[0] == ' ') - pos_nick++; - pos_user = strchr (pos_nick, ' '); - if (pos_user) - { - pos_user[0] = '\0'; - pos_user++; - while (pos_user[0] == ' ') - pos_user++; - pos_host = strchr (pos_user, ' '); - if (pos_host) - { - pos_host[0] = '\0'; - pos_host++; - while (pos_host[0] == ' ') - pos_host++; - pos_realname = strchr (pos_host, ' '); - if (pos_realname) - { - pos_realname[0] = '\0'; - pos_realname++; - while (pos_realname[0] == ' ') - pos_realname++; - pos_realname = strchr (pos_realname, ' '); - if (pos_realname) - { - pos_realname[0] = '\0'; - pos_realname++; - while (pos_realname[0] == ' ') - pos_realname++; - if (pos_realname[0] == ':') - pos_realname++; - - weechat_printf (server->buffer, - _("%s%s %s(%s%s@%s%s)%s was %s"), - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_HOST, - pos_user, - pos_host, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_realname); - } - } - } - } - } + weechat_printf (server->buffer, + _("%s%s%s %s(%s%s@%s%s)%s was %s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_HOST, + argv[4], + argv[5], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + (argv_eol[7][0] == ':') ? argv_eol[7] + 1 : argv_eol[7]); } + return WEECHAT_RC_OK; } @@ -3369,52 +2989,41 @@ irc_protocol_cmd_314 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_315 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_315 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos; + /* 315 message looks like: + :server 315 mynick #channel :End of /WHO list. + */ + struct t_irc_channel *ptr_channel; + + IRC_PROTOCOL_MIN_ARGS(5); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - /* skip nickname if at beginning of server message */ - if (strncmp (server->nick, arguments, strlen (server->nick)) == 0) + ptr_channel = irc_channel_search (server, argv[3]); + if (ptr_channel && (ptr_channel->checking_away > 0)) { - arguments += strlen (server->nick) + 1; - while (arguments[0] == ' ') - arguments++; + ptr_channel->checking_away--; } - - pos = strchr (arguments, ' '); - if (pos) + else { - pos[0] = '\0'; - pos++; - ptr_channel = irc_channel_search (server, arguments); - if (ptr_channel && (ptr_channel->checking_away > 0)) - { - ptr_channel->checking_away--; - return WEECHAT_RC_OK; - } if (!ignore) { weechat_printf (server->buffer, - "%s%s %s%s", + "%s%s[%s%s%s]%s %s", + weechat_prefix ("network"), + IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_CHANNEL, - arguments, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT, - pos); + (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4]); } } - else - { - if (!ignore) - weechat_printf (server->buffer, "%s", arguments); - } return WEECHAT_RC_OK; } @@ -3424,209 +3033,90 @@ irc_protocol_cmd_315 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_317 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_317 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_nick, *pos_idle, *pos_signon, *pos_message; int idle_time, day, hour, min, sec; time_t datetime; - /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; - (void) highlight; + /* 317 message looks like: + :server 317 mynick nick 122877 1205327880 :seconds idle, signon time + */ - if (!ignore) - { - pos_nick = strchr (arguments, ' '); - if (pos_nick) - { - while (pos_nick[0] == ' ') - pos_nick++; - pos_idle = strchr (pos_nick, ' '); - if (pos_idle) - { - pos_idle[0] = '\0'; - pos_idle++; - while (pos_idle[0] == ' ') - pos_idle++; - pos_signon = strchr (pos_idle, ' '); - if (pos_signon) - { - pos_signon[0] = '\0'; - pos_signon++; - while (pos_signon[0] == ' ') - pos_signon++; - pos_message = strchr (pos_signon, ' '); - if (pos_message) - { - pos_message[0] = '\0'; - - idle_time = atoi (pos_idle); - day = idle_time / (60 * 60 * 24); - hour = (idle_time % (60 * 60 * 24)) / (60 * 60); - min = ((idle_time % (60 * 60 * 24)) % (60 * 60)) / 60; - sec = ((idle_time % (60 * 60 * 24)) % (60 * 60)) % 60; - - datetime = (time_t)(atol (pos_signon)); - - if (day > 0) - { - weechat_printf (server->buffer, - _("%s[%s%s%s]%s idle: %s%d %s%s, " - "%s%02d %s%s %s%02d %s%s %s%02d " - "%s%s, signon at: %s%s"), - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_CHANNEL, - day, - IRC_COLOR_CHAT, - NG_("day", "days", day), - IRC_COLOR_CHAT_CHANNEL, - hour, - IRC_COLOR_CHAT, - NG_("hour", "hours", hour), - IRC_COLOR_CHAT_CHANNEL, - min, - IRC_COLOR_CHAT, - NG_("minute", "minutes", min), - IRC_COLOR_CHAT_CHANNEL, - sec, - IRC_COLOR_CHAT, - NG_("second", "seconds", sec), - IRC_COLOR_CHAT_CHANNEL, - ctime (&datetime)); - } - else - { - weechat_printf (server->buffer, - _("%s[%s%s%s]%s idle: %s%02d %s%s " - "%s%02d %s%s %s%02d %s%s, " - "signon at: %s%s"), - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_CHANNEL, - hour, - IRC_COLOR_CHAT, - NG_("hour", "hours", hour), - IRC_COLOR_CHAT_CHANNEL, - min, - IRC_COLOR_CHAT, - NG_("minute", "minutes", min), - IRC_COLOR_CHAT_CHANNEL, - sec, - IRC_COLOR_CHAT, - NG_("second", "seconds", sec), - IRC_COLOR_CHAT_CHANNEL, - ctime (&datetime)); - } - } - } - } - } - } - - return WEECHAT_RC_OK; -} - -/* - * irc_protocol_cmd_319: '319' command (whois, channels) - */ - -int -irc_protocol_cmd_319 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) -{ - char *pos_nick, *pos_channel, *pos, *color; + IRC_PROTOCOL_MIN_ARGS(6); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; + (void) argv_eol; (void) highlight; if (!ignore) { - pos_nick = strchr (arguments, ' '); - if (pos_nick) + idle_time = atoi (argv[4]); + day = idle_time / (60 * 60 * 24); + hour = (idle_time % (60 * 60 * 24)) / (60 * 60); + min = ((idle_time % (60 * 60 * 24)) % (60 * 60)) / 60; + sec = ((idle_time % (60 * 60 * 24)) % (60 * 60)) % 60; + + datetime = (time_t)(atol (argv[5])); + + if (day > 0) { - while (pos_nick[0] == ' ') - pos_nick++; - pos_channel = strchr (pos_nick, ' '); - if (pos_channel) - { - pos_channel[0] = '\0'; - pos_channel++; - while (pos_channel[0] == ' ') - pos_channel++; - if (pos_channel[0] == ':') - pos_channel++; - - weechat_printf (server->buffer, - _("%s[%s%s%s]%s Channels: "), - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT); - while (pos_channel && pos_channel[0]) - { - if (irc_mode_nick_prefix_allowed (server, pos_channel[0])) - { - switch (pos_channel[0]) - { - case '@': /* op */ - color = IRC_COLOR_NICKLIST_PREFIX1; - break; - case '~': /* channel owner */ - color = IRC_COLOR_NICKLIST_PREFIX1; - break; - case '&': /* channel admin */ - color = IRC_COLOR_NICKLIST_PREFIX1; - break; - case '!': /* channel admin (2) */ - color = IRC_COLOR_NICKLIST_PREFIX1; - break; - case '%': /* half-op */ - color = IRC_COLOR_NICKLIST_PREFIX2; - break; - case '+': /* voice */ - color = IRC_COLOR_NICKLIST_PREFIX3; - break; - case '-': /* channel user */ - color = IRC_COLOR_NICKLIST_PREFIX4; - break; - default: - color = IRC_COLOR_CHAT; - break; - } - weechat_printf (server->buffer, "%s%c", - color, pos_channel[0]); - pos_channel++; - } - - pos = strchr (pos_channel, ' '); - if (pos) - { - pos[0] = '\0'; - pos++; - while (pos[0] == ' ') - pos++; - } - weechat_printf (server->buffer, "%s%s%s", - IRC_COLOR_CHAT_CHANNEL, - pos_channel, - (pos && pos[0]) ? " " : ""); - pos_channel = pos; - } - } + weechat_printf (server->buffer, + _("%s%s[%s%s%s]%s idle: %s%d %s%s, " + "%s%02d %s%s %s%02d %s%s %s%02d " + "%s%s, signon at: %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_CHANNEL, + day, + IRC_COLOR_CHAT, + NG_("day", "days", day), + IRC_COLOR_CHAT_CHANNEL, + hour, + IRC_COLOR_CHAT, + NG_("hour", "hours", hour), + IRC_COLOR_CHAT_CHANNEL, + min, + IRC_COLOR_CHAT, + NG_("minute", "minutes", min), + IRC_COLOR_CHAT_CHANNEL, + sec, + IRC_COLOR_CHAT, + NG_("second", "seconds", sec), + IRC_COLOR_CHAT_CHANNEL, + ctime (&datetime)); + } + else + { + weechat_printf (server->buffer, + _("%s%s[%s%s%s]%s idle: %s%02d %s%s " + "%s%02d %s%s %s%02d %s%s, " + "signon at: %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_NICK, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_CHANNEL, + hour, + IRC_COLOR_CHAT, + NG_("hour", "hours", hour), + IRC_COLOR_CHAT_CHANNEL, + min, + IRC_COLOR_CHAT, + NG_("minute", "minutes", min), + IRC_COLOR_CHAT_CHANNEL, + sec, + IRC_COLOR_CHAT, + NG_("second", "seconds", sec), + IRC_COLOR_CHAT_CHANNEL, + ctime (&datetime)); } } @@ -3638,31 +3128,32 @@ irc_protocol_cmd_319 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_321 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_321 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos; + char *pos_args; + + /* 321 message looks like: + :server 321 mynick Channel :Users Name + */ + + IRC_PROTOCOL_MIN_ARGS(4); + + pos_args = (argc > 4) ? + ((argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4]) : NULL; /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; if (!ignore) { - pos = strchr (arguments, ' '); - if (pos) - { - pos[0] = '\0'; - pos++; - while (pos[0] == ' ') - pos++; - } - else - pos = arguments; - - weechat_printf (server->buffer, "%s", pos); + weechat_printf (server->buffer, + "%s%s%s%s", + weechat_prefix ("network"), + argv[3], + (pos_args) ? " " : "", + (pos_args) ? pos_args : ""); } return WEECHAT_RC_OK; @@ -3673,72 +3164,77 @@ irc_protocol_cmd_321 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_322 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_322 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos; + char *pos_topic; + + /* 322 message looks like: + :server 322 mynick #channel 3 :topic of channel + */ + + IRC_PROTOCOL_MIN_ARGS(5); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; + pos_topic = (argc > 5) ? + ((argv_eol[5][0] == ':') ? argv_eol[5] + 1 : argv_eol[5]) : NULL; + if (!ignore) { - pos = strchr (arguments, ' '); - if (pos) + if (!server->cmd_list_regexp || + (regexec (server->cmd_list_regexp, argv[3], 0, NULL, 0) == 0)) { - pos[0] = '\0'; - pos++; - while (pos[0] == ' ') - pos++; + weechat_printf (server->buffer, + "%s%s%s%s(%s%s%s)%s%s%s", + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + argv[4], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + (pos_topic && pos_topic[0]) ? ": " : "", + (pos_topic && pos_topic[0]) ? pos_topic : ""); } - else - pos = arguments; - - if (server->cmd_list_regexp) - { - if (regexec (server->cmd_list_regexp, pos, 0, NULL, 0) == 0) - weechat_printf (server->buffer, "%s", pos); - } - else - weechat_printf (server->buffer, "%s", pos); } return WEECHAT_RC_OK; } /* - * irc_protocol_cmd_323: '323' command (/list end) + * irc_protocol_cmd_323: '323' command (end of /list) */ int -irc_protocol_cmd_323 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_323 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos; + char *pos_args; + + /* 323 message looks like: + :server 323 mynick :End of /LIST + */ + + IRC_PROTOCOL_MIN_ARGS(3); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; + (void) argv; (void) highlight; + pos_args = (argc > 3) ? + ((argv_eol[3][0] == ':') ? argv_eol[3] + 1 : argv_eol[3]) : NULL; + if (!ignore) { - pos = strchr (arguments, ' '); - if (pos) - { - pos[0] = '\0'; - pos++; - while (pos[0] == ' ') - pos++; - } - else - pos = arguments; - - weechat_printf (server->buffer, "%s", pos); + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("network"), + (pos_args && pos_args[0]) ? pos_args : ""); } return WEECHAT_RC_OK; @@ -3864,7 +3360,8 @@ irc_protocol_cmd_327 (struct t_irc_server *server, char *irc_message, char *host } weechat_printf (server->buffer, - "%s[%s%s%s] %s%s %s %s%s%s%s%s%s", + "%s%s[%s%s%s] %s%s %s %s%s%s%s%s%s", + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_NICK, pos_nick, @@ -3891,70 +3388,51 @@ irc_protocol_cmd_327 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_329 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_329 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_channel, *pos_date; struct t_irc_channel *ptr_channel; time_t datetime; + /* 329 message looks like: + :server 329 mynick #channel 1205327894 + */ + + IRC_PROTOCOL_MIN_ARGS(5); + /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - pos_channel = strchr (arguments, ' '); - if (pos_channel) + ptr_channel = irc_channel_search (server, argv[3]); + + if (!ignore) { - while (pos_channel[0] == ' ') - pos_channel++; - pos_date = strchr (pos_channel, ' '); - if (pos_date) + datetime = (time_t)(atol ((argv_eol[4][0] == ':') ? + argv_eol[4] + 1 : argv_eol[4])); + + if (ptr_channel) { - pos_date[0] = '\0'; - pos_date++; - while (pos_date[0] == ' ') - pos_date++; - - ptr_channel = irc_channel_search (server, pos_channel); - if (!ptr_channel) + if (ptr_channel->display_creation_date) { - weechat_printf (server->buffer, - _("%s%s: channel \"%s\" not found for " - "\"%s\" command"), - weechat_prefix ("error"), "irc", pos_channel, - "329"); - return WEECHAT_RC_ERROR; - } - - if (!ignore && (ptr_channel->display_creation_date)) - { - datetime = (time_t)(atol (pos_date)); weechat_printf (ptr_channel->buffer, _("%sChannel created on %s"), - weechat_prefix ("info"), + weechat_prefix ("network"), ctime (&datetime)); + ptr_channel->display_creation_date = 0; } - ptr_channel->display_creation_date = 0; } else { weechat_printf (server->buffer, - _("%s%s: cannot identify date/time for \"%s\" " - "command"), - weechat_prefix ("error"), "irc", "329"); - return WEECHAT_RC_ERROR; + _("%sChannel %s%s%s created on %s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + argv[3], + IRC_COLOR_CHAT, + ctime (&datetime)); } } - else - { - weechat_printf (server->buffer, - _("%s%s: cannot identify channel for \"%s\" " - "command"), - weechat_prefix ("error"), "irc", "329"); - return WEECHAT_RC_ERROR; - } return WEECHAT_RC_OK; } @@ -3964,50 +3442,31 @@ irc_protocol_cmd_329 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_331 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_331 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_channel, *pos; struct t_irc_channel *ptr_channel; + /* 331 message looks like: + :server 331 mynick #channel :There isn't a topic. + */ + + IRC_PROTOCOL_MIN_ARGS(4); + /* make C compiler happy */ - (void) irc_message; - (void) server; - (void) host; - (void) nick; + (void) argv_eol; (void) highlight; if (!ignore) { - pos_channel = strchr (arguments, ' '); - if (pos_channel) - { - pos_channel++; - while (pos_channel[0] == ' ') - pos_channel++; - pos = strchr (pos_channel, ' '); - if (pos) - pos[0] = '\0'; - } - else - { - weechat_printf (server->buffer, - _("%s%s: channel \"%s\" not found for \"%s\" " - "command"), - weechat_prefix ("error"), "irc", "", "331"); - return WEECHAT_RC_ERROR; - } - - ptr_channel = irc_channel_search (server, pos_channel); - if (!ignore) - { - weechat_printf ((ptr_channel) ? - ptr_channel->buffer : server->buffer, - _("%sNo topic set for %s%s"), - weechat_prefix ("info"), - IRC_COLOR_CHAT_CHANNEL, - pos_channel); - } + ptr_channel = irc_channel_search (server, argv[3]); + weechat_printf ((ptr_channel) ? + ptr_channel->buffer : server->buffer, + _("%sNo topic set for channel %s%s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + argv[3]); } return WEECHAT_RC_OK; @@ -4018,65 +3477,45 @@ irc_protocol_cmd_331 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_332 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_332 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos, *pos2; + char *pos_topic; struct t_irc_channel *ptr_channel; - struct t_gui_buffer *ptr_buffer; + + /* 332 message looks like: + :server 332 mynick #channel :topic of channel + */ + + IRC_PROTOCOL_MIN_ARGS(5); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - pos = strchr (arguments, ' '); - if (pos) + pos_topic = (argv_eol[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4]; + + ptr_channel = irc_channel_search (server, argv[3]); + + if (ptr_channel && ptr_channel->nicks) { - while (pos[0] == ' ') - pos++; - pos2 = strchr (pos, ' '); - if (pos2) - { - pos2[0] = '\0'; - ptr_channel = irc_channel_search (server, pos); - ptr_buffer = (ptr_channel) ? - ptr_channel->buffer : server->buffer; - pos2++; - while (pos2[0] == ' ') - pos2++; - if (pos2[0] == ':') - pos2++; - if (ptr_channel) - { - if (ptr_channel->topic) - free (ptr_channel->topic); - ptr_channel->topic = strdup (pos2); - weechat_buffer_set (ptr_channel->buffer, "title", - ptr_channel->topic); - } - - if (!ignore) - { - weechat_printf (ptr_buffer, - _("%sTopic for %s%s%s is: \"%s%s\""), - weechat_prefix ("info"), - IRC_COLOR_CHAT_CHANNEL, - pos, - IRC_COLOR_CHAT, - pos2, - IRC_COLOR_CHAT); - } - } + if (ptr_channel->topic) + free (ptr_channel->topic); + ptr_channel->topic = strdup (pos_topic); + weechat_buffer_set (ptr_channel->buffer, "title", ptr_channel->topic); } - else + + if (!ignore) { - weechat_printf (server->buffer, - _("%s%s: cannot identify channel for \"%s\" " - "command"), - weechat_prefix ("error"), "irc", "332"); - return WEECHAT_RC_ERROR; + weechat_printf ((ptr_channel && ptr_channel->nicks) ? + ptr_channel->buffer : server->buffer, + _("%sTopic for %s%s%s is: \"%s%s\""), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + argv[3], + IRC_COLOR_CHAT, + pos_topic, + IRC_COLOR_CHAT); } return WEECHAT_RC_OK; @@ -4087,69 +3526,50 @@ irc_protocol_cmd_332 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_333 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_333 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_channel, *pos_nick, *pos_date; struct t_irc_channel *ptr_channel; - struct t_gui_buffer *ptr_buffer; time_t datetime; + /* 333 message looks like: + :server 333 mynick #channel nick 1205428096 + */ + + IRC_PROTOCOL_MIN_ARGS(6); + /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - pos_channel = strchr (arguments, ' '); - if (pos_channel) + if (!ignore) { - while (pos_channel[0] == ' ') - pos_channel++; - pos_nick = strchr (pos_channel, ' '); - if (pos_nick) + ptr_channel = irc_channel_search (server, argv[3]); + datetime = (time_t)(atol ((argv_eol[5][0] == ':') ? + argv_eol[5] + 1 : argv_eol[5])); + if (ptr_channel && ptr_channel->nicks) { - pos_nick[0] = '\0'; - pos_nick++; - while (pos_nick[0] == ' ') - pos_nick++; - pos_date = strchr (pos_nick, ' '); - if (pos_date) - { - pos_date[0] = '\0'; - pos_date++; - while (pos_date[0] == ' ') - pos_date++; - - ptr_channel = irc_channel_search (server, pos_channel); - ptr_buffer = (ptr_channel) ? - ptr_channel->buffer : server->buffer; - - if (!ignore) - { - datetime = (time_t)(atol (pos_date)); - weechat_printf (ptr_buffer, - _("%sTopic set by %s%s%s, %s"), - weechat_prefix ("info"), - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT, - ctime (&datetime)); - } - } - else - return WEECHAT_RC_OK; + weechat_printf (ptr_channel->buffer, + _("%sTopic set by %s%s%s on %s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_NICK, + argv[4], + IRC_COLOR_CHAT, + ctime (&datetime)); } else - return WEECHAT_RC_OK; - } - else - { - weechat_printf (server->buffer, - _("%s%s: cannot identify channel for \"%s\" " - "command"), - weechat_prefix ("error"), "irc", "333"); - return WEECHAT_RC_ERROR; + { + weechat_printf (server->buffer, + _("%sTopic for %s%s%s set by %s%s%s on %s"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + argv[3], + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_NICK, + argv[4], + IRC_COLOR_CHAT, + ctime (&datetime)); + } } return WEECHAT_RC_OK; @@ -4196,7 +3616,8 @@ irc_protocol_cmd_338 (struct t_irc_server *server, char *irc_message, char *host pos_message++; weechat_printf (server->buffer, - "%s[%s%s%s] %s%s %s%s %s%s", + "%s%s[%s%s%s] %s%s %s%s %s%s", + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_NICK, pos_nick, @@ -4252,7 +3673,8 @@ irc_protocol_cmd_341 (struct t_irc_server *server, char *irc_message, char *host pos_channel++; weechat_printf (server->buffer, - _("%s%s%s has invited %s%s%s on %s%s"), + _("%s%s%s%s has invited %s%s%s on %s%s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_NICK, arguments, IRC_COLOR_CHAT, @@ -4316,7 +3738,8 @@ irc_protocol_cmd_344 (struct t_irc_server *server, char *irc_message, char *host pos_host++; weechat_printf (server->buffer, - _("Channel reop %s%s%s: %s%s"), + _("%sChannel reop %s%s%s: %s%s"), + weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, pos_channel, IRC_COLOR_CHAT, @@ -4361,7 +3784,8 @@ irc_protocol_cmd_345 (struct t_irc_server *server, char *irc_message, char *host if (!ignore) { weechat_printf (server->buffer, - "%s%s %s%s", + "%s%s%s %s%s", + weechat_prefix ("network"), IRC_COLOR_CHAT_CHANNEL, arguments, IRC_COLOR_CHAT, @@ -4371,7 +3795,12 @@ irc_protocol_cmd_345 (struct t_irc_server *server, char *irc_message, char *host else { if (!ignore) - weechat_printf (server->buffer, "%s", arguments); + { + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("network"), + arguments); + } } return WEECHAT_RC_OK; @@ -4453,7 +3882,7 @@ irc_protocol_cmd_348 (struct t_irc_server *server, char *irc_message, char *host { weechat_printf (buffer, _("%s%s[%s%s%s]%s exception %s%s%s"), - weechat_prefix ("info"), + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_CHANNEL, pos_channel, @@ -4548,7 +3977,8 @@ irc_protocol_cmd_349 (struct t_irc_server *server, char *irc_message, char *host if (!ignore) { weechat_printf (buffer, - "%s[%s%s%s] %s%s", + "%s%s[%s%s%s] %s%s", + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_CHANNEL, pos_channel, @@ -4596,9 +4026,16 @@ irc_protocol_cmd_351 (struct t_irc_server *server, char *irc_message, char *host if (!ignore) { if (pos2) - weechat_printf (server->buffer, "%s %s", pos, pos2); + weechat_printf (server->buffer, + "%s%s %s", + weechat_prefix ("network"), + pos, + pos2); else - weechat_printf (server->buffer, "%s", pos); + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("network"), + pos); } return WEECHAT_RC_OK; @@ -4609,126 +4046,85 @@ irc_protocol_cmd_351 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_352 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_352 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos_channel, *pos_user, *pos_host, *pos_server, *pos_nick; char *pos_attr, *pos_hopcount, *pos_realname; - int length; + int arg_start, length; struct t_irc_channel *ptr_channel; struct t_irc_nick *ptr_nick; + /* 352 message looks like: + :server 352 mynick #channel user host server nick (*) (H/G) :0 flashcode + */ + + IRC_PROTOCOL_MIN_ARGS(9); + /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; + + arg_start = (strcmp (argv[8], "*") == 0) ? 9 : 8; + if (argv[arg_start][0] == ':') + { + pos_attr = NULL; + pos_hopcount = (argc > arg_start) ? argv[arg_start] + 1 : NULL; + pos_realname = (argc > arg_start + 1) ? argv_eol[arg_start + 1] : NULL; + } + else + { + pos_attr = argv[arg_start]; + pos_hopcount = (argc > arg_start + 1) ? argv[arg_start + 1] + 1 : NULL; + pos_realname = (argc > arg_start + 2) ? argv_eol[arg_start + 2] : NULL; + } - pos_channel = strchr (arguments, ' '); - if (pos_channel) + ptr_channel = irc_channel_search (server, argv[3]); + if (ptr_channel) { - while (pos_channel[0] == ' ') - pos_channel++; - pos_user = strchr (pos_channel, ' '); - if (pos_user) + if (ptr_channel->checking_away > 0) { - pos_user[0] = '\0'; - pos_user++; - while (pos_user[0] == ' ') - pos_user++; - pos_host = strchr (pos_user, ' '); - if (pos_host) + ptr_nick = irc_nick_search (ptr_channel, argv[7]); + if (ptr_nick) { - pos_host[0] = '\0'; - pos_host++; - while (pos_host[0] == ' ') - pos_host++; - pos_server = strchr (pos_host, ' '); - if (pos_server) - { - pos_server[0] = '\0'; - pos_server++; - while (pos_server[0] == ' ') - pos_server++; - pos_nick = strchr (pos_server, ' '); - if (pos_nick) - { - pos_nick[0] = '\0'; - pos_nick++; - while (pos_nick[0] == ' ') - pos_nick++; - pos_attr = strchr (pos_nick, ' '); - if (pos_attr) - { - pos_attr[0] = '\0'; - pos_attr++; - while (pos_attr[0] == ' ') - pos_attr++; - pos_hopcount = strchr (pos_attr, ' '); - if (pos_hopcount) - { - pos_hopcount[0] = '\0'; - pos_hopcount++; - while (pos_hopcount[0] == ' ') - pos_hopcount++; - if (pos_hopcount[0] == ':') - pos_hopcount++; - pos_realname = strchr (pos_hopcount, ' '); - if (pos_realname) - { - pos_realname[0] = '\0'; - pos_realname++; - while (pos_realname[0] == ' ') - pos_realname++; - - ptr_channel = irc_channel_search (server, pos_channel); - if (ptr_channel && (ptr_channel->checking_away > 0)) - { - ptr_nick = irc_nick_search (ptr_channel, pos_nick); - if (ptr_nick) - { - if (ptr_nick->host) - free (ptr_nick->host); - length = strlen (pos_user) + 1 + strlen (pos_host) + 1; - ptr_nick->host = (char *)malloc (length * sizeof (char)); - if (ptr_nick->host) - snprintf (ptr_nick->host, length, "%s@%s", pos_user, pos_host); - irc_nick_set_away (ptr_channel, ptr_nick, - (pos_attr[0] == 'G') ? 1 : 0); - } - return WEECHAT_RC_OK; - } - - if (!ignore) - { - weechat_printf (server->buffer, - _("%s%s%s on %s%s%s " - "%s %s %s%s@%s " - "%s(%s%s%s)"), - IRC_COLOR_CHAT_NICK, - pos_nick, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_CHANNEL, - pos_channel, - IRC_COLOR_CHAT, - pos_attr, - pos_hopcount, - IRC_COLOR_CHAT_HOST, - pos_user, - pos_host, - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT, - pos_realname, - IRC_COLOR_CHAT_DELIMITERS); - } - } - } - } - } - } + if (ptr_nick->host) + free (ptr_nick->host); + length = strlen (argv[4]) + 1 + strlen (argv[5]) + 1; + ptr_nick->host = (char *)malloc (length * sizeof (char)); + if (ptr_nick->host) + snprintf (ptr_nick->host, length, "%s@%s", argv[4], argv[5]); + if (pos_attr) + irc_nick_set_away (ptr_channel, ptr_nick, + (pos_attr[0] == 'G') ? 1 : 0); } } } + else + { + if (!ignore) + { + weechat_printf (server->buffer, + "%s%s[%s%s%s] %s%s%s(%s%s@%s%s)%s " + "%s%s%s%s(%s)", + weechat_prefix ("network"), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_CHANNEL, + argv[3], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_NICK, + argv[7], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_HOST, + argv[4], + argv[5], + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + (pos_attr) ? pos_attr : "", + (pos_attr) ? " " : "", + (pos_hopcount) ? pos_hopcount : "", + (pos_hopcount) ? " " : "", + (pos_realname) ? pos_realname : ""); + } + } return WEECHAT_RC_OK; } @@ -4738,182 +4134,127 @@ irc_protocol_cmd_352 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_353 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_353 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos, *pos_nick, *color; + char *pos_channel, *pos_nick, *color; + int args, i, prefix_found; int is_chanowner, is_chanadmin, is_chanadmin2, is_op, is_halfop; int has_voice, is_chanuser; - int prefix_found; struct t_irc_channel *ptr_channel; - struct t_gui_buffer *ptr_buffer; + + /* 353 message looks like: + :server 353 mynick = #channel :mynick nick1 @nick2 +nick3 + */ + + IRC_PROTOCOL_MIN_ARGS(5); /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - - pos = strstr (arguments, " = "); - if (pos) - arguments = pos + 3; + + if (irc_channel_is_channel (argv[3])) + { + pos_channel = argv[3]; + args = 4; + } else { - pos = strstr (arguments, " * "); - if (pos) - arguments = pos + 3; - else - { - pos = strstr (arguments, " @ "); - if (pos) - arguments = pos + 3; - } + pos_channel = argv[4]; + args = 5; } - pos = strchr (arguments, ' '); - if (pos) + + IRC_PROTOCOL_MIN_ARGS(args + 1); + + ptr_channel = irc_channel_search (server, pos_channel); + + for (i = args; i < argc; i++) { - pos[0] = '\0'; + pos_nick = (argv[i][0] == ':') ? argv[i] + 1 : argv[i]; - ptr_channel = irc_channel_search (server, arguments); - if (ptr_channel) - ptr_buffer = ptr_channel->buffer; - else - ptr_buffer = server->buffer; + is_chanowner = 0; + is_chanadmin = 0; + is_chanadmin2 = 0; + is_op = 0; + is_halfop = 0; + has_voice = 0; + is_chanuser = 0; + prefix_found = 1; - pos++; - while (pos[0] == ' ') - pos++; - if (pos[0] != ':') - { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", "353"); - return WEECHAT_RC_ERROR; - } - - /* channel is not joined => display users on server buffer */ - if (!ignore && !ptr_channel) - { - /* display users on channel */ - //weechat_printf (ptr_buffer, - // _("Nicks %s%s%s: %s["), - // IRC_COLOR_CHAT_CHANNEL, - // arguments, - // IRC_COLOR_CHAT, - // IRC_COLOR_CHAT_DELIMITERS); - } - - pos++; - if (pos[0]) + while (prefix_found) { - while (pos && pos[0]) + prefix_found = 0; + + if (irc_mode_nick_prefix_allowed (server, pos_nick[0])) { - is_chanowner = 0; - is_chanadmin = 0; - is_chanadmin2 = 0; - is_op = 0; - is_halfop = 0; - has_voice = 0; - is_chanuser = 0; prefix_found = 1; - - while (prefix_found) + switch (pos_nick[0]) { - prefix_found = 0; - - if (irc_mode_nick_prefix_allowed (server, pos[0])) - { - prefix_found = 1; - switch (pos[0]) - { - case '@': /* op */ - is_op = 1; - color = IRC_COLOR_NICKLIST_PREFIX1; - break; - case '~': /* channel owner */ - is_chanowner = 1; - color = IRC_COLOR_NICKLIST_PREFIX1; - break; - case '&': /* channel admin */ - is_chanadmin = 1; - color = IRC_COLOR_NICKLIST_PREFIX1; - break; - case '!': /* channel admin (2) */ - is_chanadmin2 = 1; - color = IRC_COLOR_NICKLIST_PREFIX1; - break; - case '%': /* half-op */ - is_halfop = 1; - color = IRC_COLOR_NICKLIST_PREFIX2; - break; - case '+': /* voice */ - has_voice = 1; - color = IRC_COLOR_NICKLIST_PREFIX3; - break; - case '-': /* channel user */ - is_chanuser = 1; - color = IRC_COLOR_NICKLIST_PREFIX4; - break; - default: - color = IRC_COLOR_CHAT; - break; - } - if (!ignore && !ptr_channel) - weechat_printf (ptr_buffer, "%s%c", - color, pos[0]); - } - if (prefix_found) - pos++; - } - pos_nick = pos; - pos = strchr (pos, ' '); - if (pos) - { - pos[0] = '\0'; - pos++; - } - if (ptr_channel) - { - if (!irc_nick_new (server, ptr_channel, pos_nick, - is_chanowner, is_chanadmin, is_chanadmin2, - is_op, is_halfop, has_voice, is_chanuser)) - { - weechat_printf (server->buffer, - _("%s%s: cannot create nick \"%s\" " - "for channel \"%s\""), - weechat_prefix ("error"), "irc", - pos_nick, ptr_channel->name); - } - } - else - { - if (!ignore) - { - weechat_printf (ptr_buffer, "%s%s", - IRC_COLOR_CHAT, pos_nick); - if (pos && pos[0]) - weechat_printf (ptr_buffer, " "); - } + case '@': /* op */ + is_op = 1; + color = IRC_COLOR_NICKLIST_PREFIX1; + break; + case '~': /* channel owner */ + is_chanowner = 1; + color = IRC_COLOR_NICKLIST_PREFIX1; + break; + case '&': /* channel admin */ + is_chanadmin = 1; + color = IRC_COLOR_NICKLIST_PREFIX1; + break; + case '!': /* channel admin (2) */ + is_chanadmin2 = 1; + color = IRC_COLOR_NICKLIST_PREFIX1; + break; + case '%': /* half-op */ + is_halfop = 1; + color = IRC_COLOR_NICKLIST_PREFIX2; + break; + case '+': /* voice */ + has_voice = 1; + color = IRC_COLOR_NICKLIST_PREFIX3; + break; + case '-': /* channel user */ + is_chanuser = 1; + color = IRC_COLOR_NICKLIST_PREFIX4; + break; + default: + color = IRC_COLOR_CHAT; + break; } } + if (prefix_found) + pos_nick++; } - if (ptr_channel) - { - //gui_nicklist_draw (ptr_channel->buffer, 1, 1); - //gui_status_draw (ptr_channel->buffer, 1); - } - else + if (ptr_channel && ptr_channel->nicks) { - if (!ignore) - weechat_printf (ptr_buffer, "%s]", IRC_COLOR_CHAT_DELIMITERS); + if (!irc_nick_new (server, ptr_channel, pos_nick, + is_chanowner, is_chanadmin, is_chanadmin2, + is_op, is_halfop, has_voice, is_chanuser)) + { + weechat_printf (server->buffer, + _("%s%s: cannot create nick \"%s\" " + "for channel \"%s\""), + weechat_prefix ("error"), "irc", + pos_nick, ptr_channel->name); + } } } - else + + if (!ignore) { - weechat_printf (server->buffer, - _("%s%s: cannot parse \"%s\" command"), - weechat_prefix ("error"), "irc", "353"); - return WEECHAT_RC_ERROR; + weechat_printf ((ptr_channel && ptr_channel->nicks) ? + ptr_channel->buffer : server->buffer, + _("%sNicks %s%s%s: %s[%s%s%s]"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + pos_channel, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT, + (argv_eol[args][0] == ':') ? + argv_eol[args] + 1 : argv_eol[args], + IRC_COLOR_CHAT_DELIMITERS); } return WEECHAT_RC_OK; @@ -4924,110 +4265,74 @@ irc_protocol_cmd_353 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_366 (struct t_irc_server *server, char *irc_message, char *host, - char *nick, char *arguments, int ignore, int highlight) +irc_protocol_cmd_366 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { - char *pos, *pos2; struct t_irc_channel *ptr_channel; - //struct t_irc_nick *ptr_nick; int num_nicks, num_op, num_halfop, num_voice, num_normal; + /* 366 message looks like: + :server 366 mynick #channel :End of /NAMES list. + */ + + IRC_PROTOCOL_MIN_ARGS(5); + /* make C compiler happy */ - (void) irc_message; - (void) host; - (void) nick; (void) highlight; - pos = strchr (arguments, ' '); - if (pos) + ptr_channel = irc_channel_search (server, argv[3]); + if (ptr_channel && ptr_channel->nicks) { - while (pos[0] == ' ') - pos++; - pos2 = strchr (pos, ' '); - if (pos2) + if (!ignore) { - pos2[0] = '\0'; - pos2++; - while (pos2[0] == ' ') - pos2++; - if (pos2[0] == ':') - pos2++; - - ptr_channel = irc_channel_search (server, pos); - if (ptr_channel) - { - if (!ignore) - { - /* display users on channel */ - //weechat_printf (ptr_channel->buffer, - // _("Nicks %s%s%s: %s["), - // IRC_COLOR_CHAT_CHANNEL, - // ptr_channel->name, - // IRC_COLOR_CHAT, - // IRC_COLOR_CHAT_DELIMITERS); - - /* - for (ptr_nick = ptr_channel->nicks; ptr_nick; ptr_nick = ptr_nick->next_nick) - { - irc_display_nick (ptr_channel->buffer, ptr_nick, NULL, - GUI_MSG_TYPE_MSG, 0, - IRC_COLOR_CHAT, 1); - if (ptr_nick != ptr_channel->last_nick) - gui_chat_printf (ptr_channel->buffer, " "); - } - */ - //weechat_printf (ptr_channel->buffer, "%s]", - // IRC_COLOR_CHAT_DELIMITERS); - - /* display number of nicks, ops, halfops & voices on the channel */ - irc_nick_count (ptr_channel, &num_nicks, &num_op, &num_halfop, &num_voice, - &num_normal); - weechat_printf (ptr_channel->buffer, - _("%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, " - "%s%d%s %s, %s%d%s %s, %s%d%s %s%s)"), - weechat_prefix ("info"), - IRC_COLOR_CHAT_CHANNEL, - ptr_channel->name, - IRC_COLOR_CHAT, - IRC_COLOR_CHAT_CHANNEL, - num_nicks, - IRC_COLOR_CHAT, - (num_nicks > 1) ? _("nicks") : _("nick"), - IRC_COLOR_CHAT_DELIMITERS, - IRC_COLOR_CHAT_CHANNEL, - num_op, - IRC_COLOR_CHAT, - (num_op > 1) ? _("ops") : _("op"), - IRC_COLOR_CHAT_CHANNEL, - num_halfop, - IRC_COLOR_CHAT, - (num_halfop > 1) ? _("halfops") : _("halfop"), - IRC_COLOR_CHAT_CHANNEL, - num_voice, - IRC_COLOR_CHAT, - (num_voice > 1) ? _("voices") : _("voice"), - IRC_COLOR_CHAT_CHANNEL, - num_normal, - IRC_COLOR_CHAT, - _("normal"), - IRC_COLOR_CHAT_DELIMITERS); - } - irc_command_mode_server (server, ptr_channel->name); - irc_channel_check_away (server, ptr_channel, 1); - } - else - { - if (!ignore) - { - //weechat_printf (server->buffer, - // "%s%s%s: %s", - // IRC_COLOR_CHAT_CHANNEL, - // pos, - // IRC_COLOR_CHAT, - // pos2); - } - return WEECHAT_RC_OK; - } + /* display number of nicks, ops, halfops & voices on the channel */ + irc_nick_count (ptr_channel, &num_nicks, &num_op, &num_halfop, + &num_voice, &num_normal); + weechat_printf (ptr_channel->buffer, + _("%sChannel %s%s%s: %s%d%s %s %s(%s%d%s %s, " + "%s%d%s %s, %s%d%s %s, %s%d%s %s%s)"), + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + ptr_channel->name, + IRC_COLOR_CHAT, + IRC_COLOR_CHAT_CHANNEL, + num_nicks, + IRC_COLOR_CHAT, + (num_nicks > 1) ? _("nicks") : _("nick"), + IRC_COLOR_CHAT_DELIMITERS, + IRC_COLOR_CHAT_CHANNEL, + num_op, + IRC_COLOR_CHAT, + (num_op > 1) ? _("ops") : _("op"), + IRC_COLOR_CHAT_CHANNEL, + num_halfop, + IRC_COLOR_CHAT, + (num_halfop > 1) ? _("halfops") : _("halfop"), + IRC_COLOR_CHAT_CHANNEL, + num_voice, + IRC_COLOR_CHAT, + (num_voice > 1) ? _("voices") : _("voice"), + IRC_COLOR_CHAT_CHANNEL, + num_normal, + IRC_COLOR_CHAT, + _("normal"), + IRC_COLOR_CHAT_DELIMITERS); + } + irc_command_mode_server (server, ptr_channel->name); + irc_channel_check_away (server, ptr_channel, 1); + } + else + { + if (!ignore) + { + weechat_printf (server->buffer, + "%s%s%s%s: %s", + weechat_prefix ("network"), + IRC_COLOR_CHAT_CHANNEL, + argv[3], + IRC_COLOR_CHAT, + (argv[4][0] == ':') ? argv_eol[4] + 1 : argv_eol[4]); } } @@ -5110,7 +4415,8 @@ irc_protocol_cmd_367 (struct t_irc_server *server, char *irc_message, char *host if (pos_user) { weechat_printf (buffer, - _("%s[%s%s%s] %s%s%s banned by "), + _("%s%s[%s%s%s] %s%s%s banned by "), + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_CHANNEL, pos_channel, @@ -5132,10 +4438,12 @@ irc_protocol_cmd_367 (struct t_irc_server *server, char *irc_message, char *host IRC_COLOR_CHAT_DELIMITERS); } else + { weechat_printf (buffer, "%s%s", IRC_COLOR_CHAT_NICK, pos_user); + } if (pos_date) { datetime = (time_t)(atol (pos_date)); @@ -5148,7 +4456,7 @@ irc_protocol_cmd_367 (struct t_irc_server *server, char *irc_message, char *host else weechat_printf (buffer, _("%s%s[%s%s%s] %s%s%s banned"), - weechat_prefix ("info"), + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_CHANNEL, pos_channel, @@ -5214,7 +4522,7 @@ irc_protocol_cmd_368 (struct t_irc_server *server, char *irc_message, char *host { weechat_printf (buffer, "%s%s[%s%s%s] %s%s", - weechat_prefix ("info"), + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_CHANNEL, pos_channel, @@ -5231,14 +4539,16 @@ irc_protocol_cmd_368 (struct t_irc_server *server, char *irc_message, char *host */ int -irc_protocol_cmd_432 (struct t_irc_server *server, int argc, char **argv, - char **argv_eol, int ignore, int highlight) +irc_protocol_cmd_432 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { /* Note: this IRC command can not be ignored */ int i, nick_found, nick_to_use; - irc_protocol_cmd_error (server, argc, argv, argv_eol, ignore, highlight); + irc_protocol_cmd_error (server, command, argc, argv, argv_eol, ignore, + highlight); if (!server->is_connected) { @@ -5273,7 +4583,7 @@ irc_protocol_cmd_432 (struct t_irc_server *server, int argc, char **argv, weechat_printf (server->buffer, _("%s%s: nickname \"%s\" is invalid, " "trying nickname #%d (\"%s\")"), - weechat_prefix ("info"), "irc", server->nick, + weechat_prefix ("error"), "irc", server->nick, nick_to_use + 1, server->nicks_array[nick_to_use]); irc_server_set_nick (server, server->nicks_array[nick_to_use]); @@ -5289,8 +4599,9 @@ irc_protocol_cmd_432 (struct t_irc_server *server, int argc, char **argv, */ int -irc_protocol_cmd_433 (struct t_irc_server *server, int argc, char **argv, - char **argv_eol, int ignore, int highlight) +irc_protocol_cmd_433 (struct t_irc_server *server, char *command, + int argc, char **argv, char **argv_eol, + int ignore, int highlight) { /* Note: this IRC command can not be ignored */ @@ -5337,8 +4648,10 @@ irc_protocol_cmd_433 (struct t_irc_server *server, int argc, char **argv, irc_server_sendf (server, "NICK %s", server->nick); } else - return irc_protocol_cmd_error (server, argc, argv, argv_eol, ignore, - highlight); + { + return irc_protocol_cmd_error (server, command, argc, argv, argv_eol, + ignore, highlight); + } return WEECHAT_RC_OK; } @@ -5374,16 +4687,26 @@ irc_protocol_cmd_438 (struct t_irc_server *server, char *irc_message, char *host pos2[0] = '\0'; pos2 += 2; weechat_printf (server->buffer, - "%s (%s => %s)", - pos2, arguments, pos); + "%s%s (%s => %s)", + weechat_prefix ("network"), + pos2, + arguments, + pos); } else weechat_printf (server->buffer, - "%s (%s)", - pos, arguments); + "%s%s (%s)", + weechat_prefix ("network"), + pos, + arguments); } else - weechat_printf (server->buffer, "%s", arguments); + { + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("network"), + arguments); + } } return WEECHAT_RC_OK; @@ -5423,7 +4746,8 @@ irc_protocol_cmd_671 (struct t_irc_server *server, char *irc_message, char *host pos_message++; weechat_printf (server->buffer, - "%s[%s%s%s] %s%s", + "%s%s[%s%s%s] %s%s", + weechat_prefix ("network"), IRC_COLOR_CHAT_DELIMITERS, IRC_COLOR_CHAT_NICK, pos_nick, @@ -5436,3 +4760,271 @@ irc_protocol_cmd_671 (struct t_irc_server *server, char *irc_message, char *host return WEECHAT_RC_OK; } + +/* + * irc_protocol_is_numeric_command: return 1 if given string is 100% numeric + */ + +int +irc_protocol_is_numeric_command (char *str) +{ + while (str && str[0]) + { + if (!isdigit (str[0])) + return 0; + str++; + } + return 1; +} + +/* + * irc_protocol_recv_command: executes action when receiving IRC command + * return: 0 = all ok, command executed + * -1 = command failed + * -2 = no command to execute + * -3 = command not found + */ + +void +irc_protocol_recv_command (struct t_irc_server *server, char *entire_line, + char *host, char *command, char *arguments) +{ + int i, cmd_found, return_code, ignore, highlight, argc; + char *pos, *nick; + char *dup_entire_line, *dup_host, *dup_arguments, *irc_message; + t_irc_recv_func *cmd_recv_func; + t_irc_recv_func2 *cmd_recv_func2; + char *cmd_name, **argv, **argv_eol; + struct t_irc_protocol_msg irc_protocol_messages[] = + { { "error", N_("error received from IRC server"), NULL, &irc_protocol_cmd_error }, + { "invite", N_("invite a nick on a channel"), NULL, &irc_protocol_cmd_invite }, + { "join", N_("join a channel"), NULL, &irc_protocol_cmd_join }, + { "kick", N_("forcibly remove a user from a channel"), NULL, &irc_protocol_cmd_kick }, + { "kill", N_("close client-server connection"), NULL, &irc_protocol_cmd_kill }, + { "mode", N_("change channel or user mode"), NULL, &irc_protocol_cmd_mode }, + { "nick", N_("change current nickname"), NULL, &irc_protocol_cmd_nick }, + { "notice", N_("send notice message to user"), NULL, &irc_protocol_cmd_notice }, + { "part", N_("leave a channel"), NULL, &irc_protocol_cmd_part }, + { "ping", N_("ping server"), NULL, &irc_protocol_cmd_ping }, + { "pong", N_("answer to a ping message"), NULL, &irc_protocol_cmd_pong }, + { "privmsg", N_("message received"), NULL, &irc_protocol_cmd_privmsg }, + { "quit", N_("close all connections and quit"), NULL, &irc_protocol_cmd_quit }, + { "topic", N_("get/set channel topic"), NULL, &irc_protocol_cmd_topic }, + { "wallops", N_("send a message to all currently connected users who have " + "set the 'w' user mode " + "for themselves"), NULL, &irc_protocol_cmd_wallops }, + { "001", N_("a server message"), NULL, &irc_protocol_cmd_001 }, + { "005", N_("a server message"), NULL, &irc_protocol_cmd_005 }, + { "221", N_("user mode string"), NULL, &irc_protocol_cmd_221 }, + { "301", N_("away message"), NULL, &irc_protocol_cmd_301 }, + { "303", N_("ison"), NULL, &irc_protocol_cmd_303 }, + { "305", N_("unaway"), NULL, &irc_protocol_cmd_305 }, + { "306", N_("now away"), NULL, &irc_protocol_cmd_306 }, + { "307", N_("whois (registered nick)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "310", N_("whois (help mode)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "311", N_("whois (user)"), NULL, &irc_protocol_cmd_311 }, + { "312", N_("whois (server)"), NULL, &irc_protocol_cmd_312 }, + { "313", N_("whois (operator)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "314", N_("whowas"), NULL, &irc_protocol_cmd_314 }, + { "315", N_("end of /who list"), NULL, &irc_protocol_cmd_315 }, + { "317", N_("whois (idle)"), NULL, &irc_protocol_cmd_317 }, + { "318", N_("whois (end)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "319", N_("whois (channels)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "320", N_("whois (identified user)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "321", N_("/list start"), NULL, &irc_protocol_cmd_321 }, + { "322", N_("channel (for /list)"), NULL, &irc_protocol_cmd_322 }, + { "323", N_("end of /list"), NULL, &irc_protocol_cmd_323 }, + { "324", N_("channel mode"), &irc_protocol_cmd_324, NULL }, + { "326", N_("whois (has oper privs)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "327", N_("whois (host)"), &irc_protocol_cmd_327, NULL }, + { "329", N_("channel creation date"), NULL, &irc_protocol_cmd_329 }, + { "331", N_("no topic for channel"), NULL, &irc_protocol_cmd_331 }, + { "332", N_("topic of channel"), NULL, &irc_protocol_cmd_332 }, + { "333", N_("infos about topic (nick and date changed)"), NULL, &irc_protocol_cmd_333 }, + { "338", N_("whois (host)"), &irc_protocol_cmd_338, NULL }, + { "341", N_("inviting"), &irc_protocol_cmd_341, NULL }, + { "344", N_("channel reop"), &irc_protocol_cmd_344, NULL }, + { "345", N_("end of channel reop list"), &irc_protocol_cmd_345, NULL }, + { "348", N_("channel exception list"), &irc_protocol_cmd_348, NULL }, + { "349", N_("end of channel exception list"), &irc_protocol_cmd_349, NULL }, + { "351", N_("server version"), &irc_protocol_cmd_351, NULL }, + { "352", N_("who"), NULL, &irc_protocol_cmd_352 }, + { "353", N_("list of nicks on channel"), NULL, &irc_protocol_cmd_353 }, + { "366", N_("end of /names list"), NULL, &irc_protocol_cmd_366 }, + { "367", N_("banlist"), &irc_protocol_cmd_367, NULL }, + { "368", N_("end of banlist"), &irc_protocol_cmd_368, NULL }, + { "378", N_("whois (connecting from)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "379", N_("whois (using modes)"), NULL, &irc_protocol_cmd_whois_nick_msg }, + { "401", N_("no such nick/channel"), NULL, &irc_protocol_cmd_error }, + { "402", N_("no such server"), NULL, &irc_protocol_cmd_error }, + { "403", N_("no such channel"), NULL, &irc_protocol_cmd_error }, + { "404", N_("cannot send to channel"), NULL, &irc_protocol_cmd_error }, + { "405", N_("too many channels"), NULL, &irc_protocol_cmd_error }, + { "406", N_("was no such nick"), NULL, &irc_protocol_cmd_error }, + { "407", N_("was no such nick"), NULL, &irc_protocol_cmd_error }, + { "409", N_("no origin"), NULL, &irc_protocol_cmd_error }, + { "410", N_("no services"), NULL, &irc_protocol_cmd_error }, + { "411", N_("no recipient"), NULL, &irc_protocol_cmd_error }, + { "412", N_("no text to send"), NULL, &irc_protocol_cmd_error }, + { "413", N_("no toplevel"), NULL, &irc_protocol_cmd_error }, + { "414", N_("wilcard in toplevel domain"), NULL, &irc_protocol_cmd_error }, + { "421", N_("unknown command"), NULL, &irc_protocol_cmd_error }, + { "422", N_("MOTD is missing"), NULL, &irc_protocol_cmd_error }, + { "423", N_("no administrative info"), NULL, &irc_protocol_cmd_error }, + { "424", N_("file error"), NULL, &irc_protocol_cmd_error }, + { "431", N_("no nickname given"), NULL, &irc_protocol_cmd_error }, + { "432", N_("erroneous nickname"), NULL, &irc_protocol_cmd_432 }, + { "433", N_("nickname already in use"), NULL, &irc_protocol_cmd_433 }, + { "436", N_("nickname collision"), NULL, &irc_protocol_cmd_error }, + { "437", N_("resource unavailable"), NULL, &irc_protocol_cmd_error }, + { "438", N_("not authorized to change nickname"), &irc_protocol_cmd_438, NULL }, + { "441", N_("user not in channel"), NULL, &irc_protocol_cmd_error }, + { "442", N_("not on channel"), NULL, &irc_protocol_cmd_error }, + { "443", N_("user already on channel"), NULL, &irc_protocol_cmd_error }, + { "444", N_("user not logged in"), NULL, &irc_protocol_cmd_error }, + { "445", N_("summon has been disabled"), NULL, &irc_protocol_cmd_error }, + { "446", N_("users has been disabled"), NULL, &irc_protocol_cmd_error }, + { "451", N_("you are not registered"), NULL, &irc_protocol_cmd_error }, + { "461", N_("not enough parameters"), NULL, &irc_protocol_cmd_error }, + { "462", N_("you may not register"), NULL, &irc_protocol_cmd_error }, + { "463", N_("your host isn't among the privileged"), NULL, &irc_protocol_cmd_error }, + { "464", N_("password incorrect"), NULL, &irc_protocol_cmd_error }, + { "465", N_("you are banned from this server"), NULL, &irc_protocol_cmd_error }, + { "467", N_("channel key already set"), NULL, &irc_protocol_cmd_error }, + { "470", N_("forwarding to another channel"), NULL, &irc_protocol_cmd_error }, + { "471", N_("channel is already full"), NULL, &irc_protocol_cmd_error }, + { "472", N_("unknown mode char to me"), NULL, &irc_protocol_cmd_error }, + { "473", N_("cannot join channel (invite only)"), NULL, &irc_protocol_cmd_error }, + { "474", N_("cannot join channel (banned from channel)"), NULL, &irc_protocol_cmd_error }, + { "475", N_("cannot join channel (bad channel key)"), NULL, &irc_protocol_cmd_error }, + { "476", N_("bad channel mask"), NULL, &irc_protocol_cmd_error }, + { "477", N_("channel doesn't support modes"), NULL, &irc_protocol_cmd_error }, + { "481", N_("you're not an IRC operator"), NULL, &irc_protocol_cmd_error }, + { "482", N_("you're not channel operator"), NULL, &irc_protocol_cmd_error }, + { "483", N_("you can't kill a server!"), NULL, &irc_protocol_cmd_error }, + { "484", N_("your connection is restricted!"), NULL, &irc_protocol_cmd_error }, + { "485", N_("user is immune from kick/deop"), NULL, &irc_protocol_cmd_error }, + { "487", N_("network split"), NULL, &irc_protocol_cmd_error }, + { "491", N_("no O-lines for your host"), NULL, &irc_protocol_cmd_error }, + { "501", N_("unknown mode flag"), NULL, &irc_protocol_cmd_error }, + { "502", N_("can't change mode for other users"), NULL, &irc_protocol_cmd_error }, + { "671", N_("whois (secure connection)"), &irc_protocol_cmd_671, NULL }, + { "973", N_("whois (secure connection)"), NULL, &irc_protocol_cmd_server_mode_reason }, + { "974", N_("whois (secure connection)"), NULL, &irc_protocol_cmd_server_mode_reason }, + { "975", N_("whois (secure connection)"), NULL, &irc_protocol_cmd_server_mode_reason }, + { NULL, NULL, NULL, NULL } + }; + + if (!command) + return; + + /* look for IRC command */ + cmd_found = -1; + for (i = 0; irc_protocol_messages[i].name; i++) + { + if (weechat_strcasecmp (irc_protocol_messages[i].name, command) == 0) + { + cmd_found = i; + break; + } + } + + /* command not found */ + if (cmd_found < 0) + { + /* for numeric commands, we use default recv function */ + if (irc_protocol_is_numeric_command (command)) + { + cmd_name = command; + cmd_recv_func = NULL; + cmd_recv_func2 = irc_protocol_cmd_numeric; + } + else + { + weechat_printf (server->buffer, + _("%s%s: command \"%s\" not found:"), + weechat_prefix ("error"), "irc", command); + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("error"), entire_line); + return; + } + } + else + { + cmd_name = irc_protocol_messages[cmd_found].name; + cmd_recv_func = irc_protocol_messages[cmd_found].recv_function; + cmd_recv_func2 = irc_protocol_messages[cmd_found].recv_function2; + } + + if ((cmd_recv_func != NULL) || (cmd_recv_func2 != NULL)) + { + argv = weechat_string_explode (entire_line, " ", 0, 0, &argc); + argv_eol = weechat_string_explode (entire_line, " ", 1, 0, NULL); + dup_entire_line = (entire_line) ? strdup (entire_line) : NULL; + dup_host = (host) ? strdup (host) : NULL; + dup_arguments = (arguments) ? strdup (arguments) : NULL; + + ignore = 0; + highlight = 0; + + //return_code = plugin_msg_handler_exec (server->name, + // cmd_name, + // dup_entire_line); + /* plugin handler choosed to discard message for WeeChat, + so we ignore this message in standard handler */ + //if (return_code & PLUGIN_RC_OK_IGNORE_WEECHAT) + // ignore = 1; + /* plugin asked for highlight ? */ + //if (return_code & PLUGIN_RC_OK_WITH_HIGHLIGHT) + // highlight = 1; + + pos = (dup_host) ? strchr (dup_host, '!') : NULL; + if (pos) + pos[0] = '\0'; + nick = (dup_host) ? strdup (dup_host) : NULL; + if (pos) + pos[0] = '!'; + irc_message = strdup (dup_entire_line); + + if (cmd_recv_func2 != NULL) + { + return_code = (int) (cmd_recv_func2) (server, cmd_name, + argc, argv, argv_eol, + ignore, highlight); + } + else + { + return_code = (int) (cmd_recv_func) (server, irc_message, + dup_host, nick, + dup_arguments, + ignore, highlight); + } + + if (return_code == WEECHAT_RC_ERROR) + { + weechat_printf (server->buffer, + _("%s%s: failed to parse command \"%s\" (please " + "report to developers):"), + weechat_prefix ("error"), "irc", command); + weechat_printf (server->buffer, + "%s%s", + weechat_prefix ("error"), entire_line); + } + + if (irc_message) + free (irc_message); + if (nick) + free (nick); + if (dup_entire_line) + free (dup_entire_line); + if (dup_host) + free (dup_host); + if (dup_arguments) + free (dup_arguments); + if (argv) + weechat_string_free_exploded (argv); + if (argv_eol) + weechat_string_free_exploded (argv_eol); + } +} diff --git a/src/plugins/irc/irc-protocol.h b/src/plugins/irc/irc-protocol.h index 84fe84f08..f831b7448 100644 --- a/src/plugins/irc/irc-protocol.h +++ b/src/plugins/irc/irc-protocol.h @@ -20,13 +20,35 @@ #ifndef __WEECHAT_IRC_PROTOCOL_H #define __WEECHAT_IRC_PROTOCOL_H 1 -#include "irc-server.h" +#define IRC_PROTOCOL_MIN_ARGS(__min_args) \ + if (argc < __min_args) \ + { \ + weechat_printf (server->buffer, \ + _("%s%s: too few arguments received from IRC " \ + "server for command \"%s\" (received: %d " \ + "arguments, expected: at least %d)"), \ + weechat_prefix ("error"), "irc", command, \ + argc, __min_args); \ + return WEECHAT_RC_ERROR; \ + } + +#define IRC_PROTOCOL_CHECK_HOST \ + if (argv[0][0] != ':') \ + { \ + weechat_printf (server->buffer, \ + _("%s%s: \"%s\" command received without " \ + "host"), \ + weechat_prefix ("error"), "irc", command); \ + return WEECHAT_RC_ERROR; \ + } + +struct t_irc_server; typedef int (t_irc_recv_func)(struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -typedef int (t_irc_recv_func2)(struct t_irc_server *server, int argc, - char **argv, char **argv_eol, +typedef int (t_irc_recv_func2)(struct t_irc_server *server, char *comand, + int argc, char **argv, char **argv_eol, int ignore, int highlight); struct t_irc_protocol_msg @@ -37,67 +59,8 @@ struct t_irc_protocol_msg t_irc_recv_func2 *recv_function2; /* function called when msg is received */ }; -extern int irc_protocol_is_highlight (char *message, char *nick); -extern int irc_protocol_recv_command (struct t_irc_server *server, char *entire_line, char *host, char *command, char *arguments); -extern int irc_protocol_cmd_error (struct t_irc_server *server, int argc, char **argv, char **argv_eol, int ignore, int highlight); -extern int irc_protocol_cmd_invite (struct t_irc_server *server, int argc, char **argv, char **argv_eol, int ignore, int highlight); -extern int irc_protocol_cmd_join (struct t_irc_server *server, int argc, char **argv, char **argv_eol, int ignore, int highlight); -extern int irc_protocol_cmd_kick (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_kill (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_mode (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_nick (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_notice (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_part (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_ping (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_pong (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_privmsg (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_quit (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_server_mode_reason (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_server_msg (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_server_reply (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_topic (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_wallops (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_001 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_005 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_221 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_301 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_302 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_303 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_305 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_306 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_whois_nick_msg (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_310 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_311 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_312 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_314 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_315 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_317 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_319 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_321 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_322 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_323 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_324 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_327 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_329 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_331 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_332 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_333 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_338 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_341 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_344 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_345 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_348 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_349 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_351 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_352 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_353 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_365 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_366 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_367 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_368 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_432 (struct t_irc_server *server, int argc, char **argv, char **argv_eol, int ignore, int highlight); -extern int irc_protocol_cmd_433 (struct t_irc_server *server, int argc, char **argv, char **argv_eol, int ignore, int highlight); -extern int irc_protocol_cmd_438 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); -extern int irc_protocol_cmd_671 (struct t_irc_server *server, char *irc_message, char *host, char *nick, char *arguments, int ignore, int highlight); +extern void irc_protocol_recv_command (struct t_irc_server *server, + char *entire_line, char *host, + char *command, char *arguments); #endif /* irc-protocol.h */ diff --git a/src/plugins/irc/irc-server.c b/src/plugins/irc/irc-server.c index bd1d257f4..5202d8002 100644 --- a/src/plugins/irc/irc-server.c +++ b/src/plugins/irc/irc-server.c @@ -1431,36 +1431,14 @@ irc_server_msgq_flush () ptr_msg); free (modifier_data); } - switch (irc_protocol_recv_command (irc_recv_msgq->server, - (msg_decoded) ? - msg_decoded : ptr_msg, - host, command, - arguments)) - { - case -1: - weechat_printf (irc_recv_msgq->server->buffer, - _("%s%s: command \"%s\" " - "failed"), - weechat_prefix ("error"), - "irc", command); - break; - case -2: - weechat_printf (irc_recv_msgq->server->buffer, - _("%s%s: no command to " - "execute"), - weechat_prefix ("error"), - "irc"); - break; - case -3: - weechat_printf (irc_recv_msgq->server->buffer, - _("%s%s: unknown command: " - "cmd=\"%s\", " - "host=\"%s\", " - "arguments=\"%s\""), - weechat_prefix ("error"), - "irc", command, host, arguments); - break; - } + + /* parse and execute command */ + irc_protocol_recv_command (irc_recv_msgq->server, + (msg_decoded) ? + msg_decoded : ptr_msg, + host, + command, + arguments); if (host) free (host); @@ -1543,7 +1521,7 @@ irc_server_recv_cb (void *arg_server) * on servers */ -void +int irc_server_timer_cb (void *data) { struct t_irc_server *ptr_server; @@ -1608,6 +1586,8 @@ irc_server_timer_cb (void *data) } } } + + return WEECHAT_RC_OK; } /* diff --git a/src/plugins/irc/irc-server.h b/src/plugins/irc/irc-server.h index e21b044ff..5fb33d46b 100644 --- a/src/plugins/irc/irc-server.h +++ b/src/plugins/irc/irc-server.h @@ -35,12 +35,12 @@ #define IRC_SERVER_DEFAULT_NICKS "weechat1,weechat2,weechat3," \ "weechat4,weechat5" -#define irc_server_sendf_queued(server, fmt, argz...) \ - if (server) \ - { \ - server->queue_msg = 1; \ - irc_server_sendf (server, fmt, ##argz); \ - server->queue_msg = 0; \ +#define irc_server_sendf_queued(server, fmt, argz...) \ + if (server) \ + { \ + server->queue_msg = 1; \ + irc_server_sendf (server, fmt, ##argz); \ + server->queue_msg = 0; \ } /* output queue of messages to server (for sending slowly to server) */ @@ -170,7 +170,7 @@ extern void irc_server_parse_message (char *message, char **nick, char **host, char **command, char **channel, char **arguments); extern int irc_server_recv_cb (void *arg_server); -extern void irc_server_timer_cb (void *empty); +extern int irc_server_timer_cb (void *data); extern void irc_server_timer_check_away (void *empty); extern int irc_server_child_read (void *arg_server); extern void irc_server_convbase64_8x3_to_6x4 (char *from, char *to); diff --git a/src/plugins/irc/irc.c b/src/plugins/irc/irc.c index 53fa94036..5e0ec8379 100644 --- a/src/plugins/irc/irc.c +++ b/src/plugins/irc/irc.c @@ -144,15 +144,15 @@ weechat_plugin_init (struct t_weechat_plugin *plugin) irc_server_auto_connect (1, 0); + irc_hook_timer = weechat_hook_timer (1 * 1000, 0, 0, + &irc_server_timer_cb, NULL); + /* - irc_timer = weechat_hook_timer (1 * 1000, 0, - &irc_server_timer, - NULL); if (irc_cfg_irc_away_check != 0) - irc_timer_check_away = weechat_hook_timer (irc_cfg_irc_away_check * 60 * 1000, - 0, - &irc_server_timer_check_away, - NULL); + irc_hook_timer_check_away = weechat_hook_timer (irc_cfg_irc_away_check * 60 * 1000, + 0, + &irc_server_timer_check_away, + NULL); */ return WEECHAT_RC_OK; |