mirror of
https://github.com/weechat/weechat.git
synced 2026-06-28 22:06:38 +02:00
Added missing modes (channel & user), now all modes are allowed (bug #16606), added "%m" for completion with self nick (on current server)
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
WeeChat - Wee Enhanced Environment for Chat
|
||||
===========================================
|
||||
|
||||
ChangeLog - 2006-08-05
|
||||
ChangeLog - 2006-08-08
|
||||
|
||||
Version 0.2.0 (under dev!):
|
||||
* added missing modes (channel & user), now all modes are allowed (bug #16606)
|
||||
* added "%m" for completion with self nick (on current server)
|
||||
* added missing IRC command 338
|
||||
* fixed DCC restore after /upgrade (order is now correctly saved)
|
||||
* fixed away after server disconnection (now away is set again when
|
||||
|
||||
@@ -1991,6 +1991,10 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);
|
||||
<entry><literal>%k</literal></entry>
|
||||
<entry>Grundfunktionen</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%m</literal></entry>
|
||||
<entry>Nicknamen des gegenwärtigen Servers</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%n</literal></entry>
|
||||
<entry>Nicknamen des gegenwärtigen Channels</entry>
|
||||
|
||||
@@ -2008,6 +2008,10 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);
|
||||
<entry><literal>%k</literal></entry>
|
||||
<entry>key functions</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%m</literal></entry>
|
||||
<entry>nick on current server</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%n</literal></entry>
|
||||
<entry>nicks of current channel</entry>
|
||||
|
||||
@@ -2049,6 +2049,10 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);
|
||||
<entry><literal>%k</literal></entry>
|
||||
<entry>fonctions associées aux touches</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%m</literal></entry>
|
||||
<entry>pseudo sur le serveur courant</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%n</literal></entry>
|
||||
<entry>pseudos du canal courant</entry>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
./src/irc/irc-mode.c
|
||||
./src/irc/irc-nick.c
|
||||
./src/irc/irc-server.c
|
||||
./src/irc/irc-channel.c
|
||||
@@ -67,6 +68,8 @@
|
||||
./src/common/session.h
|
||||
./src/common/utf8.c
|
||||
./src/common/utf8.h
|
||||
./src/common/util.c
|
||||
./src/common/util.h
|
||||
./src/common/weechat.c
|
||||
./src/common/weechat.h
|
||||
./src/common/weeconfig.c
|
||||
|
||||
+132
-314
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2006-08-05 22:09+0200\n"
|
||||
"POT-Creation-Date: 2006-08-08 00:08+0200\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"
|
||||
@@ -15,155 +15,155 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: src/irc/irc-server.c:192 src/common/weeconfig.c:2295
|
||||
#: src/irc/irc-server.c:190 src/common/weeconfig.c:2295
|
||||
msgid "Unable to get user's name"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:260
|
||||
#: src/irc/irc-server.c:258
|
||||
#, c-format
|
||||
msgid "%s cannot allocate new server\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:593
|
||||
#: src/irc/irc-server.c:591
|
||||
#, c-format
|
||||
msgid "%s error sending data to IRC server\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:615 src/irc/irc-server.c:628 src/irc/irc-server.c:675
|
||||
#: src/irc/irc-server.c:688
|
||||
#: src/irc/irc-server.c:613 src/irc/irc-server.c:626 src/irc/irc-server.c:673
|
||||
#: src/irc/irc-server.c:686
|
||||
#, c-format
|
||||
msgid "%s not enough memory for received IRC message\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:806
|
||||
#: src/irc/irc-server.c:804
|
||||
#, c-format
|
||||
msgid "%s Command \"%s\" failed!\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:812
|
||||
#: src/irc/irc-server.c:810
|
||||
#, c-format
|
||||
msgid "%s No command to execute!\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:818
|
||||
#: src/irc/irc-server.c:816
|
||||
#, c-format
|
||||
msgid "%s Unknown command: cmd=\"%s\", host=\"%s\", args=\"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:869
|
||||
#: src/irc/irc-server.c:867
|
||||
#, c-format
|
||||
msgid "%s cannot read data from socket, disconnecting from server...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:950
|
||||
#: src/irc/irc-server.c:948
|
||||
#, c-format
|
||||
msgid "%s: Reconnecting to server in %d seconds\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:984
|
||||
#: src/irc/irc-server.c:982
|
||||
#, c-format
|
||||
msgid "%s gnutls handshake failed\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1001
|
||||
#: src/irc/irc-server.c:999
|
||||
#, c-format
|
||||
msgid "%s proxy address \"%s\" not found\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1005
|
||||
#: src/irc/irc-server.c:1003
|
||||
#, c-format
|
||||
msgid "%s address \"%s\" not found\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1015
|
||||
#: src/irc/irc-server.c:1013
|
||||
#, c-format
|
||||
msgid "%s proxy IP address not found\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1018
|
||||
#: src/irc/irc-server.c:1016
|
||||
#, c-format
|
||||
msgid "%s IP address not found\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1027
|
||||
#: src/irc/irc-server.c:1025
|
||||
#, c-format
|
||||
msgid "%s proxy connection refused\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1030
|
||||
#: src/irc/irc-server.c:1028
|
||||
#, c-format
|
||||
msgid "%s connection refused\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1038
|
||||
#: src/irc/irc-server.c:1036
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s proxy fails to establish connection to server (check username/password if "
|
||||
"used)\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1048
|
||||
#: src/irc/irc-server.c:1046
|
||||
#, c-format
|
||||
msgid "%s unable to set local hostname/IP\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1563
|
||||
#: src/irc/irc-server.c:1561
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s cannot connect with SSL since WeeChat was not built with GNUtls support\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1572
|
||||
#: src/irc/irc-server.c:1570
|
||||
#, c-format
|
||||
msgid "%s: connecting to server %s:%d%s%s via %s proxy %s:%d%s...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1578
|
||||
#: src/irc/irc-server.c:1576
|
||||
#, c-format
|
||||
msgid "Connecting to server %s:%d%s%s via %s proxy %s:%d%s...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1588
|
||||
#: src/irc/irc-server.c:1586
|
||||
#, c-format
|
||||
msgid "%s: connecting to server %s:%d%s%s...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1592
|
||||
#: src/irc/irc-server.c:1590
|
||||
#, c-format
|
||||
msgid "Connecting to server %s:%d%s%s...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1610
|
||||
#: src/irc/irc-server.c:1608
|
||||
#, c-format
|
||||
msgid "%s gnutls init error\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1625
|
||||
#: src/irc/irc-server.c:1623
|
||||
#, c-format
|
||||
msgid "%s cannot create pipe\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1640
|
||||
#: src/irc/irc-server.c:1638
|
||||
#, c-format
|
||||
msgid "%s cannot create socket\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1651
|
||||
#: src/irc/irc-server.c:1649
|
||||
#, c-format
|
||||
msgid "%s cannot set socket option \"SO_REUSEADDR\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1662
|
||||
#: src/irc/irc-server.c:1660
|
||||
#, c-format
|
||||
msgid "%s cannot set socket option \"SO_KEEPALIVE\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1693
|
||||
#: src/irc/irc-server.c:1691
|
||||
#, c-format
|
||||
msgid "%s: Reconnecting to server...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1744 src/irc/irc-server.c:1753
|
||||
#: src/irc/irc-server.c:1742 src/irc/irc-server.c:1751
|
||||
msgid "Disconnected from server!\n"
|
||||
msgstr ""
|
||||
|
||||
@@ -1246,7 +1246,7 @@ msgstr ""
|
||||
msgid " (temporary server, will not be saved)"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-display.c:393 src/irc/irc-display.c:424 src/irc/irc-recv.c:3641
|
||||
#: src/irc/irc-display.c:393 src/irc/irc-display.c:424 src/irc/irc-recv.c:3089
|
||||
msgid "seconds"
|
||||
msgstr ""
|
||||
|
||||
@@ -1327,9 +1327,9 @@ msgstr ""
|
||||
msgid "You have been invited to %s%s%s by %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:424 src/irc/irc-recv.c:522 src/irc/irc-recv.c:1283
|
||||
#: src/irc/irc-recv.c:1696 src/irc/irc-recv.c:1976 src/irc/irc-recv.c:4023
|
||||
#: src/irc/irc-recv.c:4044
|
||||
#: src/irc/irc-recv.c:424 src/irc/irc-recv.c:522 src/irc/irc-recv.c:720
|
||||
#: src/irc/irc-recv.c:1143 src/irc/irc-recv.c:1423 src/irc/irc-recv.c:3487
|
||||
#: src/irc/irc-recv.c:3508
|
||||
#, c-format
|
||||
msgid "%s channel \"%s\" not found for \"%s\" command\n"
|
||||
msgstr ""
|
||||
@@ -1359,498 +1359,316 @@ msgstr ""
|
||||
msgid "%s host \"%s\" not found for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:685
|
||||
msgid "sets ban on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:686
|
||||
msgid "removes ban on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:711
|
||||
msgid "sets realname ban on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:712
|
||||
msgid "removes realname ban on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:737
|
||||
msgid "sets ban exemption on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:738
|
||||
msgid "removes ban exemption on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:763
|
||||
msgid "sets mode +f"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:764
|
||||
msgid "removes mode +f"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:789
|
||||
msgid "gives half channel operator status to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:790
|
||||
msgid "removes half channel operator status from"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:818
|
||||
msgid "sets invite-only channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:819
|
||||
msgid "removes invite-only channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:837
|
||||
msgid "sets invite-only exemption on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:838
|
||||
msgid "removes invite-only exemption on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:863
|
||||
msgid "sets channel key to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:864
|
||||
msgid "removes channel key"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:896
|
||||
msgid "sets the user limit to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:897
|
||||
msgid "removes user limit"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:923
|
||||
msgid "sets moderated channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:924
|
||||
msgid "removes moderated channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:935
|
||||
msgid "sets messages from channel only flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:936
|
||||
msgid "removes messages from channel only flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:954
|
||||
msgid "gives channel operator status to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:955
|
||||
msgid "removes channel operator status from"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:983
|
||||
msgid "sets private channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:984
|
||||
msgid "removes private channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1002
|
||||
msgid "sets quiet on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1003
|
||||
msgid "removes quiet on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1021
|
||||
msgid "sets secret channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1022
|
||||
msgid "removes secret channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1033
|
||||
msgid "sets topic protection"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1034
|
||||
msgid "removes topic protection"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1052
|
||||
msgid "gives voice to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1053
|
||||
msgid "removes voice from"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1138
|
||||
msgid "sets away"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1139
|
||||
msgid "removes away"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1149
|
||||
msgid "sets invisible"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1150
|
||||
msgid "removes invisible"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1160
|
||||
msgid "sets wallops"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1161
|
||||
msgid "removes wallops"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1171
|
||||
msgid "sets restricted"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1172
|
||||
msgid "removes restricted"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1182
|
||||
msgid "sets operator"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1183
|
||||
msgid "removes operator"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1193
|
||||
msgid "sets local operator"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1194
|
||||
msgid "removes local operator"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1204
|
||||
msgid "sets server notices"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1205
|
||||
msgid "removes server notices"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1241 src/irc/irc-recv.c:1315 src/irc/irc-recv.c:1775
|
||||
#: src/irc/irc-recv.c:2590
|
||||
#: src/irc/irc-recv.c:664 src/irc/irc-recv.c:762 src/irc/irc-recv.c:1222
|
||||
#: src/irc/irc-recv.c:2037
|
||||
#, c-format
|
||||
msgid "%s \"%s\" command received without host\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1251
|
||||
#: src/irc/irc-recv.c:674
|
||||
#, c-format
|
||||
msgid "%s \"%s\" command received without channel or nickname\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1354
|
||||
#: src/irc/irc-recv.c:702
|
||||
#, c-format
|
||||
msgid "Mode %s%s %s[%s%s%s]%s by %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:731
|
||||
#, c-format
|
||||
msgid "User mode %s%s %s[%s%s%s]\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:801
|
||||
#, c-format
|
||||
msgid "You are now known as %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1358
|
||||
#: src/irc/irc-recv.c:805
|
||||
#, c-format
|
||||
msgid "%s%s%s is now known as %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1426
|
||||
#: src/irc/irc-recv.c:873
|
||||
#, c-format
|
||||
msgid "%s nickname not found for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1440
|
||||
#: src/irc/irc-recv.c:887
|
||||
#, c-format
|
||||
msgid "CTCP %sVERSION%s reply from %s%s%s: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1474
|
||||
#: src/irc/irc-recv.c:921
|
||||
#, c-format
|
||||
msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld seconds\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1497 src/irc/irc-recv.c:2403 src/irc/irc-recv.c:2515
|
||||
#: src/irc/irc-recv.c:944 src/irc/irc-recv.c:1850 src/irc/irc-recv.c:1962
|
||||
#, c-format
|
||||
msgid "%s cannot create new private window \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1522 src/irc/irc-recv.c:2535
|
||||
#: src/irc/irc-recv.c:969 src/irc/irc-recv.c:1982
|
||||
msgid "Private"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1598
|
||||
#: src/irc/irc-recv.c:1045
|
||||
#, c-format
|
||||
msgid "%s \"%s\" command received without host or channel\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1626
|
||||
#: src/irc/irc-recv.c:1073
|
||||
#, c-format
|
||||
msgid "%s%s %s(%s%s%s)%s has left %s%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1825 src/irc/irc-recv.c:1951 src/irc/irc-recv.c:2431
|
||||
#: src/irc/irc-recv.c:1272 src/irc/irc-recv.c:1398 src/irc/irc-recv.c:1878
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1859
|
||||
#: src/irc/irc-recv.c:1306
|
||||
#, c-format
|
||||
msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1889 src/irc/irc-recv.c:2075
|
||||
#: src/irc/irc-recv.c:1336 src/irc/irc-recv.c:1522
|
||||
#, c-format
|
||||
msgid "CTCP %sPING%s received from %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1918 src/irc/irc-recv.c:2482
|
||||
#: src/irc/irc-recv.c:1365 src/irc/irc-recv.c:1929
|
||||
#, c-format
|
||||
msgid "Unknown CTCP %s%s%s received from %s%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2031
|
||||
#: src/irc/irc-recv.c:1478
|
||||
#, c-format
|
||||
msgid "CTCP %sVERSION%s received from %s%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2098 src/irc/irc-recv.c:2119 src/irc/irc-recv.c:2135
|
||||
#: src/irc/irc-recv.c:2151 src/irc/irc-recv.c:2182 src/irc/irc-recv.c:2203
|
||||
#: src/irc/irc-recv.c:2219 src/irc/irc-recv.c:2249 src/irc/irc-recv.c:2270
|
||||
#: src/irc/irc-recv.c:2286 src/irc/irc-recv.c:2316 src/irc/irc-recv.c:2337
|
||||
#: src/irc/irc-recv.c:2352 src/irc/irc-recv.c:2566 src/irc/irc-recv.c:2974
|
||||
#: src/irc/irc-recv.c:4428 src/irc/irc-recv.c:4443 src/irc/irc-recv.c:4458
|
||||
#: src/irc/irc-recv.c:4473 src/irc/irc-recv.c:4486 src/irc/irc-recv.c:4551
|
||||
#: src/irc/irc-recv.c:4565 src/irc/irc-recv.c:4811 src/irc/irc-recv.c:4929
|
||||
#: src/irc/irc-recv.c:5066 src/irc/irc-recv.c:5081 src/irc/irc-recv.c:5187
|
||||
#: src/irc/irc-recv.c:5201
|
||||
#: src/irc/irc-recv.c:1545 src/irc/irc-recv.c:1566 src/irc/irc-recv.c:1582
|
||||
#: src/irc/irc-recv.c:1598 src/irc/irc-recv.c:1629 src/irc/irc-recv.c:1650
|
||||
#: src/irc/irc-recv.c:1666 src/irc/irc-recv.c:1696 src/irc/irc-recv.c:1717
|
||||
#: src/irc/irc-recv.c:1733 src/irc/irc-recv.c:1763 src/irc/irc-recv.c:1784
|
||||
#: src/irc/irc-recv.c:1799 src/irc/irc-recv.c:2013 src/irc/irc-recv.c:2422
|
||||
#: src/irc/irc-recv.c:3892 src/irc/irc-recv.c:3907 src/irc/irc-recv.c:3922
|
||||
#: src/irc/irc-recv.c:3937 src/irc/irc-recv.c:3950 src/irc/irc-recv.c:4015
|
||||
#: src/irc/irc-recv.c:4029 src/irc/irc-recv.c:4275 src/irc/irc-recv.c:4393
|
||||
#: src/irc/irc-recv.c:4530 src/irc/irc-recv.c:4545 src/irc/irc-recv.c:4651
|
||||
#: src/irc/irc-recv.c:4665
|
||||
#, c-format
|
||||
msgid "%s cannot parse \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2365
|
||||
#: src/irc/irc-recv.c:1812
|
||||
#, c-format
|
||||
msgid "%s unknown DCC CHAT type received from "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2614
|
||||
#: src/irc/irc-recv.c:2061
|
||||
#, c-format
|
||||
msgid "%s%s %s(%s%s%s)%s has quit"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2789
|
||||
#: src/irc/irc-recv.c:2236
|
||||
#, c-format
|
||||
msgid "%s \"%s\" command received without channel\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2818
|
||||
#: src/irc/irc-recv.c:2265
|
||||
#, c-format
|
||||
msgid "%s%s%s has changed topic for %s%s%s to:"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2829
|
||||
#: src/irc/irc-recv.c:2276
|
||||
#, c-format
|
||||
msgid "%s%s%s has unset topic for %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2960
|
||||
#: src/irc/irc-recv.c:2408
|
||||
#, c-format
|
||||
msgid "User mode %s[%s%s%s/%s%s%s]\n"
|
||||
msgid "User mode for %s%s%s is %s[%s%s%s]\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3024
|
||||
#: src/irc/irc-recv.c:2472
|
||||
#, c-format
|
||||
msgid "%s%s%s is away: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3116
|
||||
#: src/irc/irc-recv.c:2564
|
||||
msgid "Users online: "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3492
|
||||
#: src/irc/irc-recv.c:2940
|
||||
#, c-format
|
||||
msgid "%s%s %s(%s%s@%s%s)%s was %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3613
|
||||
#: src/irc/irc-recv.c:3061
|
||||
#, c-format
|
||||
msgid "%s[%s%s%s]%s idle: "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3625 src/common/command.c:4066 src/common/command.c:4084
|
||||
#: src/irc/irc-recv.c:3073 src/common/command.c:4066 src/common/command.c:4084
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3625 src/common/command.c:4066 src/common/command.c:4084
|
||||
#: src/irc/irc-recv.c:3073 src/common/command.c:4066 src/common/command.c:4084
|
||||
msgid "day"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3629
|
||||
#: src/irc/irc-recv.c:3077
|
||||
#, c-format
|
||||
msgid "%s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3633
|
||||
#: src/irc/irc-recv.c:3081
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3633
|
||||
#: src/irc/irc-recv.c:3081
|
||||
msgid "hour"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3637
|
||||
#: src/irc/irc-recv.c:3085
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3637
|
||||
#: src/irc/irc-recv.c:3085
|
||||
msgid "minute"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3641
|
||||
#: src/irc/irc-recv.c:3089
|
||||
msgid "second"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4035
|
||||
#: src/irc/irc-recv.c:3499
|
||||
#, c-format
|
||||
msgid "No topic set for %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4095
|
||||
#: src/irc/irc-recv.c:3559
|
||||
#, c-format
|
||||
msgid "Topic for %s%s%s is: "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4110 src/irc/irc-recv.c:4192 src/irc/irc-recv.c:4303
|
||||
#: src/irc/irc-recv.c:3574 src/irc/irc-recv.c:3656 src/irc/irc-recv.c:3767
|
||||
#, c-format
|
||||
msgid "%s cannot identify channel for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4163
|
||||
#: src/irc/irc-recv.c:3627
|
||||
#, c-format
|
||||
msgid "Topic set by %s%s%s, %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4174
|
||||
#: src/irc/irc-recv.c:3638
|
||||
#, c-format
|
||||
msgid "%s cannot identify date/time for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4183 src/irc/irc-recv.c:4312
|
||||
#: src/irc/irc-recv.c:3647 src/irc/irc-recv.c:3776
|
||||
#, c-format
|
||||
msgid "%s cannot identify nickname for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4288
|
||||
#: src/irc/irc-recv.c:3752
|
||||
#, c-format
|
||||
msgid "%s%s%s has invited %s%s%s on %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4348
|
||||
#: src/irc/irc-recv.c:3812
|
||||
#, c-format
|
||||
msgid "Channel reop %s%s%s: %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4825 src/irc/irc-recv.c:4975
|
||||
#: src/irc/irc-recv.c:4289 src/irc/irc-recv.c:4439
|
||||
#, c-format
|
||||
msgid "Nicks %s%s%s: %s["
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4897
|
||||
#: src/irc/irc-recv.c:4361
|
||||
#, c-format
|
||||
msgid "%s cannot create nick \"%s\" for channel \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4996
|
||||
#: src/irc/irc-recv.c:4460
|
||||
#, c-format
|
||||
msgid ""
|
||||
"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"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5004
|
||||
#: src/irc/irc-recv.c:4468
|
||||
msgid "nicks"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5004
|
||||
#: src/irc/irc-recv.c:4468
|
||||
msgid "nick"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5009
|
||||
#: src/irc/irc-recv.c:4473
|
||||
msgid "ops"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5009
|
||||
#: src/irc/irc-recv.c:4473
|
||||
msgid "op"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5013
|
||||
#: src/irc/irc-recv.c:4477
|
||||
msgid "halfops"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5013
|
||||
#: src/irc/irc-recv.c:4477
|
||||
msgid "halfop"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5017
|
||||
#: src/irc/irc-recv.c:4481
|
||||
msgid "voices"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5017
|
||||
#: src/irc/irc-recv.c:4481
|
||||
msgid "voice"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5021
|
||||
#: src/irc/irc-recv.c:4485
|
||||
msgid "normal"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5121
|
||||
#: src/irc/irc-recv.c:4585
|
||||
#, c-format
|
||||
msgid "%s[%s%s%s] %s%s%s banned by "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5156
|
||||
#: src/irc/irc-recv.c:4620
|
||||
#, c-format
|
||||
msgid "%s[%s%s%s] %s%s%s banned\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5291
|
||||
#: src/irc/irc-recv.c:4755
|
||||
#, c-format
|
||||
msgid "%s: nickname \"%s\" is already in use, trying 2nd nickname \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5303
|
||||
#: src/irc/irc-recv.c:4767
|
||||
#, c-format
|
||||
msgid "%s: nickname \"%s\" is already in use, trying 3rd nickname \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5315
|
||||
#: src/irc/irc-recv.c:4779
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: all declared nicknames are already in use, closing connection with "
|
||||
"server!\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5325
|
||||
#: src/irc/irc-recv.c:4789
|
||||
#, c-format
|
||||
msgid "%s: nickname \"%s\" is already in use, trying 1st nickname \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5337
|
||||
#: src/irc/irc-recv.c:4801
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
@@ -2249,27 +2067,27 @@ msgstr ""
|
||||
msgid "ETA"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:410
|
||||
#: src/gui/curses/gui-curses-input.c:390
|
||||
msgid " [A] Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:411 src/gui/curses/gui-curses-input.c:415
|
||||
#: src/gui/curses/gui-curses-input.c:391 src/gui/curses/gui-curses-input.c:395
|
||||
msgid " [C] Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:420
|
||||
#: src/gui/curses/gui-curses-input.c:400
|
||||
msgid " [R] Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:424
|
||||
#: src/gui/curses/gui-curses-input.c:404
|
||||
msgid " [P] Purge old DCC"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:425
|
||||
#: src/gui/curses/gui-curses-input.c:405
|
||||
msgid " [Q] Close DCC view"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:432
|
||||
#: src/gui/curses/gui-curses-input.c:412
|
||||
msgid " [Q] Close raw data view"
|
||||
msgstr ""
|
||||
|
||||
@@ -2291,28 +2109,28 @@ msgstr ""
|
||||
msgid "(away)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:232
|
||||
#: src/gui/curses/gui-curses-status.c:214
|
||||
msgid "[not connected] "
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:238
|
||||
#: src/gui/curses/gui-curses-status.c:220
|
||||
msgid "<RAW_IRC> "
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:250
|
||||
#: src/gui/curses/gui-curses-status.c:232
|
||||
msgid "Act: "
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:331
|
||||
#: src/gui/curses/gui-curses-status.c:313
|
||||
msgid "RAW_IRC"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:352
|
||||
#: src/gui/curses/gui-curses-status.c:334
|
||||
#, c-format
|
||||
msgid "Lag: %.1f"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:368
|
||||
#: src/gui/curses/gui-curses-status.c:350
|
||||
msgid "-MORE-"
|
||||
msgstr ""
|
||||
|
||||
@@ -2320,7 +2138,7 @@ msgstr ""
|
||||
msgid "server"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/gui-buffer.c:544
|
||||
#: src/gui/gui-buffer.c:545
|
||||
msgid "Not enough memory for new line\n"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -348,6 +348,19 @@ completion_list_add_key_cmd (t_completion *completion)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* completion_list_add_self_nick: add self nick on server to completion list
|
||||
*/
|
||||
|
||||
void
|
||||
completion_list_add_self_nick (t_completion *completion)
|
||||
{
|
||||
if (completion->server)
|
||||
{
|
||||
completion_list_add (completion, ((t_irc_server *)(completion->server))->nick);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* completion_list_add_channel_nicks: add channel nicks to completion list
|
||||
*/
|
||||
@@ -755,6 +768,9 @@ completion_build_list_template (t_completion *completion, char *template)
|
||||
case 'k': /* key cmd/funtcions*/
|
||||
completion_list_add_key_cmd (completion);
|
||||
break;
|
||||
case 'm': /* self nickname */
|
||||
completion_list_add_self_nick (completion);
|
||||
break;
|
||||
case 'n': /* channel nicks */
|
||||
completion_list_add_channel_nicks (completion);
|
||||
break;
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../../common/weechat.h"
|
||||
#include "../gui.h"
|
||||
@@ -73,8 +74,8 @@ gui_input_set_color (t_gui_window *window, int irc_color)
|
||||
int
|
||||
gui_input_get_prompt_length (t_gui_window *window, char *nick)
|
||||
{
|
||||
char *pos, saved_char, *modes;
|
||||
int char_size, length, mode_found;
|
||||
char *pos, saved_char;
|
||||
int char_size, length;
|
||||
|
||||
length = 0;
|
||||
pos = cfg_look_input_format;
|
||||
@@ -99,18 +100,9 @@ gui_input_get_prompt_length (t_gui_window *window, char *nick)
|
||||
case 'm':
|
||||
if (SERVER(window->buffer))
|
||||
{
|
||||
mode_found = 0;
|
||||
for (modes = SERVER(window->buffer)->nick_modes;
|
||||
modes && modes[0]; modes++)
|
||||
{
|
||||
if (modes[0] != ' ')
|
||||
{
|
||||
length++;
|
||||
mode_found = 1;
|
||||
}
|
||||
}
|
||||
if (mode_found)
|
||||
length++;
|
||||
if (SERVER(window->buffer)->nick_modes
|
||||
&& SERVER(window->buffer)->nick_modes[0])
|
||||
length += strlen (SERVER(window->buffer)->nick_modes);
|
||||
}
|
||||
pos++;
|
||||
break;
|
||||
@@ -155,8 +147,8 @@ gui_input_get_prompt_length (t_gui_window *window, char *nick)
|
||||
void
|
||||
gui_input_draw_prompt (t_gui_window *window, char *nick)
|
||||
{
|
||||
char *pos, saved_char, *modes;
|
||||
int char_size, mode_found;
|
||||
char *pos, saved_char;
|
||||
int char_size;
|
||||
|
||||
wmove (GUI_CURSES(window)->win_input, 0, 0);
|
||||
pos = cfg_look_input_format;
|
||||
@@ -191,25 +183,13 @@ gui_input_draw_prompt (t_gui_window *window, char *nick)
|
||||
case 'm':
|
||||
if (SERVER(window->buffer))
|
||||
{
|
||||
mode_found = 0;
|
||||
for (modes = SERVER(window->buffer)->nick_modes;
|
||||
modes && modes[0]; modes++)
|
||||
{
|
||||
if (modes[0] != ' ')
|
||||
mode_found = 1;
|
||||
}
|
||||
if (mode_found)
|
||||
if (SERVER(window->buffer)->nick_modes
|
||||
&& SERVER(window->buffer)->nick_modes[0])
|
||||
{
|
||||
gui_window_set_weechat_color (GUI_CURSES(window)->win_input,
|
||||
COLOR_WIN_INPUT);
|
||||
wprintw (GUI_CURSES(window)->win_input, "+");
|
||||
for (modes = SERVER(window->buffer)->nick_modes;
|
||||
modes && modes[0]; modes++)
|
||||
{
|
||||
if (modes[0] != ' ')
|
||||
wprintw (GUI_CURSES(window)->win_input, "%c",
|
||||
modes[0]);
|
||||
}
|
||||
wprintw (GUI_CURSES(window)->win_input, "%s",
|
||||
SERVER(window->buffer)->nick_modes);
|
||||
}
|
||||
}
|
||||
pos++;
|
||||
|
||||
@@ -44,7 +44,7 @@ gui_status_draw (t_gui_buffer *buffer, int erase)
|
||||
t_gui_window *ptr_win;
|
||||
t_weechat_hotlist *ptr_hotlist;
|
||||
char format[32], str_nicks[32], *more;
|
||||
int i, first_mode, x, server_pos, server_total;
|
||||
int x, server_pos, server_total;
|
||||
int display_name, names_count;
|
||||
|
||||
/* make gcc happy */
|
||||
@@ -171,28 +171,10 @@ gui_status_draw (t_gui_buffer *buffer, int erase)
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, "(");
|
||||
gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_status,
|
||||
COLOR_WIN_STATUS);
|
||||
i = 0;
|
||||
first_mode = 1;
|
||||
while (CHANNEL(ptr_win->buffer)->modes[i])
|
||||
{
|
||||
if (CHANNEL(ptr_win->buffer)->modes[i] != ' ')
|
||||
{
|
||||
if (first_mode)
|
||||
{
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, "+");
|
||||
first_mode = 0;
|
||||
}
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, "%c",
|
||||
CHANNEL(ptr_win->buffer)->modes[i]);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (CHANNEL(ptr_win->buffer)->modes[CHANNEL_MODE_KEY] != ' ')
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, ",%s",
|
||||
CHANNEL(ptr_win->buffer)->key);
|
||||
if (CHANNEL(ptr_win->buffer)->modes[CHANNEL_MODE_LIMIT] != ' ')
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, ",%d",
|
||||
CHANNEL(ptr_win->buffer)->limit);
|
||||
if (CHANNEL(ptr_win->buffer)->modes
|
||||
&& (strcmp (CHANNEL(ptr_win->buffer)->modes, "+") != 0))
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, "%s",
|
||||
CHANNEL(ptr_win->buffer)->modes);
|
||||
gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_status,
|
||||
COLOR_WIN_STATUS_DELIMITERS);
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, ")");
|
||||
|
||||
@@ -99,6 +99,7 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int type,
|
||||
gui_buffers->all_servers = 1;
|
||||
if (cfg_log_auto_server)
|
||||
gui_log_start (gui_buffers);
|
||||
gui_buffers->completion.server = server;
|
||||
return gui_buffers;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ lib_weechat_irc_a_SOURCES = irc.h \
|
||||
irc-server.c \
|
||||
irc-channel.c \
|
||||
irc-nick.c \
|
||||
irc-mode.c \
|
||||
irc-dcc.c \
|
||||
irc-ignore.c \
|
||||
irc-display.c
|
||||
|
||||
@@ -61,9 +61,7 @@ channel_new (t_irc_server *server, int channel_type, char *channel_name)
|
||||
new_channel->dcc_chat = NULL;
|
||||
new_channel->name = strdup (channel_name);
|
||||
new_channel->topic = NULL;
|
||||
new_channel->modes = (char *) malloc (NUM_CHANNEL_MODES + 1);
|
||||
memset (new_channel->modes, ' ', NUM_CHANNEL_MODES);
|
||||
new_channel->modes[NUM_CHANNEL_MODES] = '\0';
|
||||
new_channel->modes = NULL;
|
||||
new_channel->limit = 0;
|
||||
new_channel->key = NULL;
|
||||
new_channel->nicks_count = 0;
|
||||
@@ -127,6 +125,10 @@ channel_free (t_irc_server *server, t_irc_channel *channel)
|
||||
free (channel->name);
|
||||
if (channel->topic)
|
||||
free (channel->topic);
|
||||
if (channel->modes)
|
||||
free (channel->modes);
|
||||
if (channel->key)
|
||||
free (channel->key);
|
||||
nick_free_all (channel);
|
||||
if (channel->away_message)
|
||||
free (channel->away_message);
|
||||
|
||||
@@ -156,7 +156,7 @@ t_irc_command irc_commands[] =
|
||||
" s: mark a user for receive server notices\n"
|
||||
" w: user receives wallops\n"
|
||||
" o: operator flag"),
|
||||
"", 1, MAX_ARGS, 0, 1, NULL, irc_cmd_send_mode, irc_cmd_recv_mode },
|
||||
"%c|%m", 1, MAX_ARGS, 0, 1, NULL, irc_cmd_send_mode, irc_cmd_recv_mode },
|
||||
{ "motd", N_("get the \"Message Of The Day\""),
|
||||
N_("[target]"),
|
||||
N_("target: server name"),
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
/*
|
||||
* Copyright (c) 2003-2006 by FlashCode <flashcode@flashtux.org>
|
||||
* See README for License detail, AUTHORS for developers list.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/* irc-mode.c: IRC channel/user modes management */
|
||||
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../common/weechat.h"
|
||||
#include "irc.h"
|
||||
#include "../common/command.h"
|
||||
#include "../gui/gui.h"
|
||||
|
||||
|
||||
/*
|
||||
* irc_mode_channel_set_nick: set a mode for a nick on a channel
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_channel_set_nick (t_irc_channel *channel, char *nick,
|
||||
char set_flag, int flag)
|
||||
{
|
||||
t_irc_nick *ptr_nick;
|
||||
|
||||
if (nick)
|
||||
{
|
||||
ptr_nick = nick_search (channel, nick);
|
||||
if (ptr_nick)
|
||||
{
|
||||
NICK_SET_FLAG(ptr_nick, (set_flag == '+'), flag);
|
||||
nick_resort (channel, ptr_nick);
|
||||
gui_nicklist_draw (channel->buffer, 1, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_channel_get_flag: search for flag before current position
|
||||
*/
|
||||
|
||||
char
|
||||
irc_mode_channel_get_flag (char *str, char *pos)
|
||||
{
|
||||
char set_flag;
|
||||
|
||||
set_flag = '+';
|
||||
pos--;
|
||||
while (pos >= str)
|
||||
{
|
||||
if (pos[0] == '-')
|
||||
return '-';
|
||||
if (pos[0] == '+')
|
||||
return '+';
|
||||
pos--;
|
||||
}
|
||||
return set_flag;
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_channel_set: set channel modes
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_channel_set (t_irc_channel *channel, char *modes)
|
||||
{
|
||||
char *pos_args, set_flag, **argv, *pos, *ptr_arg;
|
||||
int argc, current_arg;
|
||||
|
||||
argc = 0;
|
||||
argv = NULL;
|
||||
current_arg = 0;
|
||||
pos_args = strchr (modes, ' ');
|
||||
if (pos_args)
|
||||
{
|
||||
pos_args[0] = '\0';
|
||||
pos_args++;
|
||||
while (pos_args[0] == ' ')
|
||||
pos_args++;
|
||||
argv = explode_string (pos_args, " ", 0, &argc);
|
||||
if (argc > 0)
|
||||
current_arg = argc - 1;
|
||||
}
|
||||
|
||||
if (modes && modes[0])
|
||||
{
|
||||
set_flag = '+';
|
||||
pos = modes + strlen (modes) - 1;
|
||||
while (pos >= modes)
|
||||
{
|
||||
switch (pos[0])
|
||||
{
|
||||
case ':':
|
||||
case ' ':
|
||||
case '+':
|
||||
case '-':
|
||||
break;
|
||||
default:
|
||||
set_flag = irc_mode_channel_get_flag (modes, pos);
|
||||
ptr_arg = ((argc > 0) && (current_arg >= 0)) ?
|
||||
argv[current_arg--] : NULL;
|
||||
switch (pos[0])
|
||||
{
|
||||
case 'h':
|
||||
irc_mode_channel_set_nick (channel, ptr_arg,
|
||||
set_flag, NICK_HALFOP);
|
||||
break;
|
||||
case 'k':
|
||||
if (channel->key)
|
||||
{
|
||||
free (channel->key);
|
||||
channel->key = NULL;
|
||||
}
|
||||
if ((set_flag == '+') && ptr_arg)
|
||||
channel->key = strdup (ptr_arg);
|
||||
break;
|
||||
case 'l':
|
||||
if (set_flag == '-')
|
||||
channel->limit = 0;
|
||||
if ((set_flag == '+') && ptr_arg)
|
||||
channel->limit = atoi (ptr_arg);
|
||||
break;
|
||||
case 'o':
|
||||
irc_mode_channel_set_nick (channel, ptr_arg,
|
||||
set_flag, NICK_OP);
|
||||
break;
|
||||
case 'v':
|
||||
irc_mode_channel_set_nick (channel, ptr_arg,
|
||||
set_flag, NICK_VOICE);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
pos--;
|
||||
}
|
||||
}
|
||||
|
||||
if (argv)
|
||||
free_exploded_string (argv);
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_user_add: add a user mode
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_user_add (t_irc_server *server, char mode)
|
||||
{
|
||||
char str_mode[2];
|
||||
|
||||
str_mode[0] = mode;
|
||||
str_mode[1] = '\0';
|
||||
|
||||
if (server->nick_modes)
|
||||
{
|
||||
if (!strchr (server->nick_modes, mode))
|
||||
{
|
||||
server->nick_modes = (char *) realloc (server->nick_modes,
|
||||
strlen (server->nick_modes) + 1 + 1);
|
||||
strcat (server->nick_modes, str_mode);
|
||||
gui_status_draw (gui_current_window->buffer, 1);
|
||||
gui_input_draw (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
server->nick_modes = (char *) malloc (2);
|
||||
strcpy (server->nick_modes, str_mode);
|
||||
gui_status_draw (gui_current_window->buffer, 1);
|
||||
gui_input_draw (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_user_remove: remove a user mode
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_user_remove (t_irc_server *server, char mode)
|
||||
{
|
||||
char *pos;
|
||||
int new_size;
|
||||
|
||||
if (server->nick_modes)
|
||||
{
|
||||
pos = strchr (server->nick_modes, mode);
|
||||
if (pos)
|
||||
{
|
||||
new_size = strlen (server->nick_modes);
|
||||
memmove (pos, pos + 1, strlen (pos + 1) + 1);
|
||||
server->nick_modes = (char *) realloc (server->nick_modes,
|
||||
new_size);
|
||||
gui_status_draw (gui_current_window->buffer, 1);
|
||||
gui_input_draw (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_user_set: set user modes
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_user_set (t_irc_server *server, char *modes)
|
||||
{
|
||||
char set_flag;
|
||||
|
||||
set_flag = '+';
|
||||
while (modes && modes[0])
|
||||
{
|
||||
switch (modes[0])
|
||||
{
|
||||
case ':':
|
||||
case ' ':
|
||||
break;
|
||||
case '+':
|
||||
set_flag = '+';
|
||||
break;
|
||||
case '-':
|
||||
set_flag = '-';
|
||||
break;
|
||||
default:
|
||||
if (set_flag == '+')
|
||||
irc_mode_user_add (server, modes[0]);
|
||||
else
|
||||
irc_mode_user_remove (server, modes[0]);
|
||||
break;
|
||||
}
|
||||
modes++;
|
||||
}
|
||||
}
|
||||
+81
-617
@@ -646,583 +646,6 @@ irc_cmd_recv_kill (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_get_channel_modes: get channel modes
|
||||
*/
|
||||
|
||||
void irc_get_channel_modes (t_irc_server *server, t_irc_channel *channel,
|
||||
char *channel_name,
|
||||
char *nick_host, char *modes, char *parm,
|
||||
int no_display)
|
||||
{
|
||||
char *pos, set_flag, unknown_mode[3];
|
||||
t_irc_nick *ptr_nick;
|
||||
|
||||
set_flag = '+';
|
||||
while (modes && modes[0])
|
||||
{
|
||||
switch (modes[0])
|
||||
{
|
||||
case '+':
|
||||
set_flag = '+';
|
||||
break;
|
||||
case '-':
|
||||
set_flag = '-';
|
||||
break;
|
||||
case 'b':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"b", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets ban on") :
|
||||
_("removes ban on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"d", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets realname ban on") :
|
||||
_("removes realname ban on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'e':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"e", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets ban exemption on") :
|
||||
_("removes ban exemption on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'f':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"f", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets mode +f") :
|
||||
_("removes mode +f"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'h':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"h", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("gives half channel operator status to") :
|
||||
_("removes half channel operator status from"),
|
||||
(parm) ? parm : NULL);
|
||||
if (parm)
|
||||
{
|
||||
ptr_nick = nick_search (channel, parm);
|
||||
if (ptr_nick)
|
||||
{
|
||||
NICK_SET_FLAG(ptr_nick, (set_flag == '+'), NICK_HALFOP);
|
||||
nick_resort (channel, ptr_nick);
|
||||
gui_nicklist_draw (channel->buffer, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'i':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"i", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets invite-only channel flag") :
|
||||
_("removes invite-only channel flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_INVITE);
|
||||
break;
|
||||
case 'I':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"I", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets invite-only exemption on") :
|
||||
_("removes invite-only exemption on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'k':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"k", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets channel key to") :
|
||||
_("removes channel key"),
|
||||
(set_flag == '+') ?
|
||||
((parm) ? parm : NULL) :
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_KEY);
|
||||
if (channel->key)
|
||||
free (channel->key);
|
||||
channel->key = strdup (parm);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'l':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"l", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets the user limit to") :
|
||||
_("removes user limit"),
|
||||
(set_flag == '+') ?
|
||||
((parm) ? parm : NULL) :
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_LIMIT);
|
||||
if (set_flag == '-')
|
||||
channel->limit = 0;
|
||||
if ((set_flag == '+') && parm)
|
||||
channel->limit = atoi (parm);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'm':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"m", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets moderated channel flag") :
|
||||
_("removes moderated channel flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_MODERATED);
|
||||
break;
|
||||
case 'n':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"n", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets messages from channel only flag") :
|
||||
_("removes messages from channel only flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_NO_MSG_OUT);
|
||||
break;
|
||||
case 'o':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"o", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("gives channel operator status to") :
|
||||
_("removes channel operator status from"),
|
||||
(parm) ? parm : NULL);
|
||||
if (parm)
|
||||
{
|
||||
ptr_nick = nick_search (channel, parm);
|
||||
if (ptr_nick)
|
||||
{
|
||||
NICK_SET_FLAG(ptr_nick, (set_flag == '+'), NICK_OP);
|
||||
nick_resort (channel, ptr_nick);
|
||||
gui_nicklist_draw (channel->buffer, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'p':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"p", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets private channel flag") :
|
||||
_("removes private channel flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_PRIVATE);
|
||||
break;
|
||||
case 'q':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"q", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets quiet on") :
|
||||
_("removes quiet on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 's':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"s", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets secret channel flag") :
|
||||
_("removes secret channel flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_SECRET);
|
||||
break;
|
||||
case 't':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"t", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets topic protection") :
|
||||
_("removes topic protection"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_TOPIC);
|
||||
break;
|
||||
case 'v':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"v", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("gives voice to") :
|
||||
_("removes voice from"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
if (parm)
|
||||
{
|
||||
ptr_nick = nick_search (channel, parm);
|
||||
if (ptr_nick)
|
||||
{
|
||||
NICK_SET_FLAG(ptr_nick, (set_flag == '+'), NICK_VOICE);
|
||||
nick_resort (channel, ptr_nick);
|
||||
gui_nicklist_draw (channel->buffer, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
default: /* unknown mode received */
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
{
|
||||
unknown_mode[0] = set_flag;
|
||||
unknown_mode[1] = modes[0];
|
||||
unknown_mode[2] = '\0';
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
unknown_mode + 1, nick_host,
|
||||
unknown_mode,
|
||||
(parm) ? parm : NULL);
|
||||
}
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
}
|
||||
modes++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_get_nick_modes: get nick modes
|
||||
*/
|
||||
|
||||
void irc_get_nick_modes (t_irc_server *server,
|
||||
char *nick_host, char *modes, int no_display)
|
||||
{
|
||||
char set_flag, unknown_mode[3];
|
||||
|
||||
set_flag = '+';
|
||||
while (modes && modes[0])
|
||||
{
|
||||
switch (modes[0])
|
||||
{
|
||||
case ':':
|
||||
break;
|
||||
case '+':
|
||||
set_flag = '+';
|
||||
break;
|
||||
case '-':
|
||||
set_flag = '-';
|
||||
break;
|
||||
case 'a':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"a", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets away") :
|
||||
_("removes away"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_AWAY);
|
||||
break;
|
||||
case 'i':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"i", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets invisible") :
|
||||
_("removes invisible"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_INVISIBLE);
|
||||
break;
|
||||
case 'w':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"w", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets wallops") :
|
||||
_("removes wallops"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_WALLOPS);
|
||||
break;
|
||||
case 'r':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"r", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets restricted") :
|
||||
_("removes restricted"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_RESTRICTED);
|
||||
break;
|
||||
case 'o':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"o", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets operator") :
|
||||
_("removes operator"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_OPERATOR);
|
||||
break;
|
||||
case 'O':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"O", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets local operator") :
|
||||
_("removes local operator"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_LOCAL_OPERATOR);
|
||||
break;
|
||||
case 's':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"s", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets server notices") :
|
||||
_("removes server notices"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_LOCAL_OPERATOR);
|
||||
break;
|
||||
default: /* unknown mode received */
|
||||
if (nick_host && !no_display)
|
||||
{
|
||||
unknown_mode[0] = set_flag;
|
||||
unknown_mode[1] = modes[0];
|
||||
unknown_mode[2] = '\0';
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
unknown_mode + 1, nick_host,
|
||||
unknown_mode, NULL);
|
||||
}
|
||||
break;
|
||||
}
|
||||
modes++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_cmd_recv_mode: 'mode' message received
|
||||
*/
|
||||
@@ -1230,7 +653,7 @@ void irc_get_nick_modes (t_irc_server *server,
|
||||
int
|
||||
irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
{
|
||||
char *pos, *pos_parm;
|
||||
char *pos_modes, *pos;
|
||||
t_irc_channel *ptr_channel;
|
||||
|
||||
/* no host => we can't identify sender of message! */
|
||||
@@ -1243,8 +666,8 @@ irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
return -1;
|
||||
}
|
||||
|
||||
pos = strchr (arguments, ' ');
|
||||
if (!pos)
|
||||
pos_modes = strchr (arguments, ' ');
|
||||
if (!pos_modes)
|
||||
{
|
||||
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
|
||||
gui_printf_nolog (server->buffer,
|
||||
@@ -1252,18 +675,19 @@ irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
WEECHAT_ERROR, "mode");
|
||||
return -1;
|
||||
}
|
||||
pos[0] = '\0';
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
pos_modes[0] = '\0';
|
||||
pos_modes++;
|
||||
while (pos_modes[0] == ' ')
|
||||
pos_modes++;
|
||||
if (pos_modes[0] == ':')
|
||||
pos_modes++;
|
||||
|
||||
pos_parm = strchr (pos, ' ');
|
||||
if (pos_parm)
|
||||
/* remove spaces after modes */
|
||||
pos = pos_modes + strlen (pos_modes) - 1;
|
||||
while ((pos >= pos_modes) && (pos[0] == ' '))
|
||||
{
|
||||
pos_parm[0] = '\0';
|
||||
pos_parm++;
|
||||
while (pos_parm[0] == ' ')
|
||||
pos_parm++;
|
||||
pos[0] = '\0';
|
||||
pos--;
|
||||
}
|
||||
|
||||
if (string_is_channel (arguments))
|
||||
@@ -1271,10 +695,23 @@ irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
ptr_channel = channel_search (server, arguments);
|
||||
if (ptr_channel)
|
||||
{
|
||||
irc_get_channel_modes (server, ptr_channel, arguments, nick,
|
||||
pos, pos_parm, command_ignored);
|
||||
gui_status_draw (ptr_channel->buffer, 1);
|
||||
gui_input_draw (ptr_channel->buffer, 1);
|
||||
if (!command_ignored)
|
||||
{
|
||||
irc_display_prefix (server, ptr_channel->buffer, PREFIX_INFO);
|
||||
gui_printf (ptr_channel->buffer,
|
||||
_("Mode %s%s %s[%s%s%s]%s by %s%s\n"),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_CHANNEL),
|
||||
ptr_channel->name,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
pos_modes,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_NICK),
|
||||
nick);
|
||||
}
|
||||
irc_mode_channel_set (ptr_channel, pos_modes);
|
||||
server_sendf (server, "MODE %s\r\n", ptr_channel->name);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1287,9 +724,19 @@ irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
}
|
||||
else
|
||||
{
|
||||
irc_get_nick_modes (server, nick, pos, command_ignored);
|
||||
gui_status_draw (gui_current_window->buffer, 1);
|
||||
gui_input_draw (gui_current_window->buffer, 1);
|
||||
if (!command_ignored)
|
||||
{
|
||||
irc_display_prefix (server, server->buffer, PREFIX_INFO);
|
||||
gui_printf (server->buffer,
|
||||
_("User mode %s%s %s[%s%s%s]\n"),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_NICK),
|
||||
nick,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
pos_modes,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK));
|
||||
}
|
||||
irc_mode_user_set (server, pos_modes);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -2957,12 +2404,13 @@ irc_cmd_recv_221 (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
if (!command_ignored)
|
||||
{
|
||||
irc_display_prefix (server, server->buffer, PREFIX_SERVER);
|
||||
gui_printf (server->buffer, _("User mode %s[%s%s%s/%s%s%s]\n"),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
gui_printf (server->buffer,
|
||||
_("User mode for %s%s%s is %s[%s%s%s]\n"),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_NICK),
|
||||
arguments,
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_NICK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
pos_mode,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK));
|
||||
}
|
||||
@@ -3931,7 +3379,7 @@ irc_cmd_recv_323 (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
int
|
||||
irc_cmd_recv_324 (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
{
|
||||
char *pos_channel, *pos, *pos_parm;
|
||||
char *pos_channel, *pos_modes, *pos;
|
||||
t_irc_channel *ptr_channel;
|
||||
|
||||
/* make gcc happy */
|
||||
@@ -3946,28 +3394,44 @@ irc_cmd_recv_324 (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
while (pos_channel[0] == ' ')
|
||||
pos_channel++;
|
||||
|
||||
pos = strchr (pos_channel, ' ');
|
||||
if (pos)
|
||||
pos_modes = strchr (pos_channel, ' ');
|
||||
if (pos_modes)
|
||||
{
|
||||
pos[0] = '\0';
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
|
||||
pos_parm = strchr (pos, ' ');
|
||||
if (pos_parm)
|
||||
pos_modes[0] = '\0';
|
||||
pos_modes++;
|
||||
while (pos_modes[0] == ' ')
|
||||
pos_modes++;
|
||||
|
||||
/* remove spaces after modes */
|
||||
pos = pos_modes + strlen (pos_modes) - 1;
|
||||
while ((pos >= pos_modes) && (pos[0] == ' '))
|
||||
{
|
||||
pos_parm[0] = '\0';
|
||||
pos_parm++;
|
||||
while (pos_parm[0] == ' ')
|
||||
pos_parm++;
|
||||
pos[0] = '\0';
|
||||
pos--;
|
||||
}
|
||||
|
||||
/* search channel */
|
||||
ptr_channel = channel_search (server, pos_channel);
|
||||
if (ptr_channel)
|
||||
{
|
||||
irc_get_channel_modes (server, ptr_channel, NULL, NULL,
|
||||
pos, pos_parm, command_ignored);
|
||||
gui_status_draw (ptr_channel->buffer, 0);
|
||||
if (pos_modes[0])
|
||||
{
|
||||
if (ptr_channel->modes)
|
||||
ptr_channel->modes = (char *) realloc (ptr_channel->modes,
|
||||
strlen (pos_modes) + 1);
|
||||
else
|
||||
ptr_channel->modes = (char *) malloc (strlen (pos_modes) + 1);
|
||||
strcpy (ptr_channel->modes, pos_modes);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ptr_channel->modes)
|
||||
{
|
||||
free (ptr_channel->modes);
|
||||
ptr_channel->modes = NULL;
|
||||
}
|
||||
}
|
||||
gui_status_draw (ptr_channel->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,9 +102,7 @@ server_init (t_irc_server *server)
|
||||
server->ssl_connected = 0;
|
||||
server->unterminated_message = NULL;
|
||||
server->nick = NULL;
|
||||
server->nick_modes = (char *) malloc (NUM_NICK_MODES + 1);
|
||||
memset (server->nick_modes, ' ', NUM_NICK_MODES);
|
||||
server->nick_modes[NUM_NICK_MODES] = '\0';
|
||||
server->nick_modes = NULL;
|
||||
server->reconnect_start = 0;
|
||||
server->reconnect_join = 0;
|
||||
server->is_away = 0;
|
||||
@@ -1755,8 +1753,8 @@ server_disconnect (t_irc_server *server, int reconnect)
|
||||
|
||||
if (server->nick_modes)
|
||||
{
|
||||
memset (server->nick_modes, ' ', NUM_NICK_MODES);
|
||||
server->nick_modes[NUM_NICK_MODES] = '\0';
|
||||
free (server->nick_modes);
|
||||
server->nick_modes = NULL;
|
||||
}
|
||||
server->is_away = 0;
|
||||
server->away_time = 0;
|
||||
|
||||
+5
-29
@@ -85,21 +85,6 @@ struct t_irc_nick
|
||||
#define CHANNEL_TYPE_PRIVATE 1
|
||||
#define CHANNEL_TYPE_DCC_CHAT 2
|
||||
|
||||
#define NUM_CHANNEL_MODES 8
|
||||
#define CHANNEL_MODE_INVITE 0
|
||||
#define CHANNEL_MODE_KEY 1
|
||||
#define CHANNEL_MODE_LIMIT 2
|
||||
#define CHANNEL_MODE_MODERATED 3
|
||||
#define CHANNEL_MODE_NO_MSG_OUT 4
|
||||
#define CHANNEL_MODE_SECRET 5
|
||||
#define CHANNEL_MODE_TOPIC 6
|
||||
#define CHANNEL_MODE_PRIVATE 7
|
||||
#define CHANNEL_SET_MODE(channel, set, mode) \
|
||||
if (set) \
|
||||
channel->modes[mode] = channel_modes[mode]; \
|
||||
else \
|
||||
channel->modes[mode] = ' ';
|
||||
|
||||
typedef struct t_irc_channel t_irc_channel;
|
||||
|
||||
struct t_irc_channel
|
||||
@@ -125,20 +110,6 @@ struct t_irc_channel
|
||||
|
||||
/* server types */
|
||||
|
||||
#define NUM_NICK_MODES 7
|
||||
#define NICK_MODE_AWAY 0
|
||||
#define NICK_MODE_INVISIBLE 1
|
||||
#define NICK_MODE_WALLOPS 2
|
||||
#define NICK_MODE_RESTRICTED 3
|
||||
#define NICK_MODE_OPERATOR 4
|
||||
#define NICK_MODE_LOCAL_OPERATOR 5
|
||||
#define NICK_MODE_SERVER_NOTICES 6
|
||||
#define NICK_SET_MODE(server, set, mode) \
|
||||
if (set) \
|
||||
server->nick_modes[mode] = nick_modes[mode]; \
|
||||
else \
|
||||
server->nick_modes[mode] = ' ';
|
||||
|
||||
typedef struct t_irc_server t_irc_server;
|
||||
|
||||
struct t_irc_server
|
||||
@@ -432,6 +403,11 @@ extern int nick_get_max_length (t_irc_channel *);
|
||||
extern void nick_set_away (t_irc_channel *, t_irc_nick *, int);
|
||||
extern void nick_print_log (t_irc_nick *);
|
||||
|
||||
/* mode functions (irc-mode.c) */
|
||||
|
||||
extern void irc_mode_channel_set (t_irc_channel *, char *);
|
||||
extern void irc_mode_user_set (t_irc_server *, char *);
|
||||
|
||||
/* DCC functions (irc-dcc.c) */
|
||||
|
||||
extern void dcc_redraw (int);
|
||||
|
||||
@@ -834,6 +834,7 @@ weechat_plugin_get_server_info (t_weechat_plugin *plugin)
|
||||
new_server_info->is_connected = ptr_server->is_connected;
|
||||
new_server_info->ssl_connected = ptr_server->ssl_connected;
|
||||
new_server_info->nick = (ptr_server->nick) ? strdup (ptr_server->nick) : strdup ("");
|
||||
new_server_info->nick_modes = (ptr_server->nick_modes) ? strdup (ptr_server->nick_modes) : strdup ("");
|
||||
new_server_info->is_away = ptr_server->is_away;
|
||||
new_server_info->away_time = ptr_server->away_time;
|
||||
new_server_info->lag = ptr_server->lag;
|
||||
|
||||
@@ -1371,6 +1371,10 @@ weechat_lua_get_server_info (lua_State *L)
|
||||
lua_pushstring (lua_current_interpreter, "nick");
|
||||
lua_pushstring (lua_current_interpreter, ptr_server->nick);
|
||||
lua_rawset (lua_current_interpreter, -3);
|
||||
|
||||
lua_pushstring (lua_current_interpreter, "nick_modes");
|
||||
lua_pushstring (lua_current_interpreter, ptr_server->nick_modes);
|
||||
lua_rawset (lua_current_interpreter, -3);
|
||||
|
||||
lua_pushstring (lua_current_interpreter, "away_time");
|
||||
lua_pushstring (lua_current_interpreter, timebuffer);
|
||||
|
||||
@@ -1163,6 +1163,7 @@ static XS (XS_weechat_get_server_info)
|
||||
hv_store (server_hash_member, "is_connected", 12, newSViv (ptr_server->is_connected), 0);
|
||||
hv_store (server_hash_member, "ssl_connected", 13, newSViv (ptr_server->ssl_connected), 0);
|
||||
hv_store (server_hash_member, "nick", 4, newSVpv (ptr_server->nick, 0), 0);
|
||||
hv_store (server_hash_member, "nick_modes", 10, newSVpv (ptr_server->nick_modes, 0), 0);
|
||||
hv_store (server_hash_member, "away_time", 9, newSVpv (timebuffer, 0), 0);
|
||||
hv_store (server_hash_member, "lag", 3, newSViv (ptr_server->lag), 0);
|
||||
|
||||
|
||||
@@ -1134,6 +1134,8 @@ weechat_python_get_server_info (PyObject *self, PyObject *args)
|
||||
Py_BuildValue("i", ptr_server->ssl_connected));
|
||||
PyDict_SetItem(server_hash_member, Py_BuildValue("s", "nick"),
|
||||
Py_BuildValue("s", ptr_server->nick));
|
||||
PyDict_SetItem(server_hash_member, Py_BuildValue("s", "nick_modes"),
|
||||
Py_BuildValue("s", ptr_server->nick_modes));
|
||||
PyDict_SetItem(server_hash_member, Py_BuildValue("s", "away_time"),
|
||||
Py_BuildValue("s", timebuffer));
|
||||
PyDict_SetItem(server_hash_member, Py_BuildValue("s", "lag"),
|
||||
|
||||
@@ -1354,6 +1354,8 @@ weechat_ruby_get_server_info (VALUE class)
|
||||
INT2FIX(ptr_server->ssl_connected));
|
||||
rb_hash_aset (server_hash_member, rb_str_new2("nick"),
|
||||
rb_str_new2(ptr_server->nick));
|
||||
rb_hash_aset (server_hash_member, rb_str_new2("nick_modes"),
|
||||
rb_str_new2(ptr_server->nick_modes));
|
||||
rb_hash_aset (server_hash_member, rb_str_new2("away_time"),
|
||||
rb_str_new2(timebuffer));
|
||||
rb_hash_aset (server_hash_member, rb_str_new2("lag"),
|
||||
|
||||
@@ -107,6 +107,7 @@ struct t_plugin_server_info
|
||||
int is_connected; /* 1 if WeeChat is connected to server */
|
||||
int ssl_connected; /* = 1 if connected with SSL */
|
||||
char *nick; /* current nickname */
|
||||
char *nick_modes; /* nick modes */
|
||||
int is_away; /* 1 is user is marker as away */
|
||||
time_t away_time; /* time() when user marking as away */
|
||||
int lag; /* lag (in milliseconds) */
|
||||
|
||||
+3
-1
@@ -1,9 +1,11 @@
|
||||
WeeChat - Wee Enhanced Environment for Chat
|
||||
===========================================
|
||||
|
||||
ChangeLog - 2006-08-05
|
||||
ChangeLog - 2006-08-08
|
||||
|
||||
Version 0.2.0 (under dev!):
|
||||
* added missing modes (channel & user), now all modes are allowed (bug #16606)
|
||||
* added "%m" for completion with self nick (on current server)
|
||||
* added missing IRC command 338
|
||||
* fixed DCC restore after /upgrade (order is now correctly saved)
|
||||
* fixed away after server disconnection (now away is set again when
|
||||
|
||||
@@ -1991,6 +1991,10 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);
|
||||
<entry><literal>%k</literal></entry>
|
||||
<entry>Grundfunktionen</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%m</literal></entry>
|
||||
<entry>Nicknamen des gegenwärtigen Servers</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%n</literal></entry>
|
||||
<entry>Nicknamen des gegenwärtigen Channels</entry>
|
||||
|
||||
@@ -2008,6 +2008,10 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);
|
||||
<entry><literal>%k</literal></entry>
|
||||
<entry>key functions</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%m</literal></entry>
|
||||
<entry>nick on current server</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%n</literal></entry>
|
||||
<entry>nicks of current channel</entry>
|
||||
|
||||
@@ -2049,6 +2049,10 @@ plugin->msg_handler_add (plugin, "KICK", &msg_kick, NULL, NULL);
|
||||
<entry><literal>%k</literal></entry>
|
||||
<entry>fonctions associées aux touches</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%m</literal></entry>
|
||||
<entry>pseudo sur le serveur courant</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><literal>%n</literal></entry>
|
||||
<entry>pseudos du canal courant</entry>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
./src/irc/irc-mode.c
|
||||
./src/irc/irc-nick.c
|
||||
./src/irc/irc-server.c
|
||||
./src/irc/irc-channel.c
|
||||
@@ -67,6 +68,8 @@
|
||||
./src/common/session.h
|
||||
./src/common/utf8.c
|
||||
./src/common/utf8.h
|
||||
./src/common/util.c
|
||||
./src/common/util.h
|
||||
./src/common/weechat.c
|
||||
./src/common/weechat.h
|
||||
./src/common/weeconfig.c
|
||||
|
||||
+280
-315
File diff suppressed because it is too large
Load Diff
+301
-357
File diff suppressed because it is too large
Load Diff
+280
-315
File diff suppressed because it is too large
Load Diff
+281
-316
File diff suppressed because it is too large
Load Diff
+258
-326
File diff suppressed because it is too large
Load Diff
+280
-315
File diff suppressed because it is too large
Load Diff
+132
-314
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
|
||||
"POT-Creation-Date: 2006-08-05 22:09+0200\n"
|
||||
"POT-Creation-Date: 2006-08-08 00:08+0200\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"
|
||||
@@ -15,155 +15,155 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: src/irc/irc-server.c:192 src/common/weeconfig.c:2295
|
||||
#: src/irc/irc-server.c:190 src/common/weeconfig.c:2295
|
||||
msgid "Unable to get user's name"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:260
|
||||
#: src/irc/irc-server.c:258
|
||||
#, c-format
|
||||
msgid "%s cannot allocate new server\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:593
|
||||
#: src/irc/irc-server.c:591
|
||||
#, c-format
|
||||
msgid "%s error sending data to IRC server\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:615 src/irc/irc-server.c:628 src/irc/irc-server.c:675
|
||||
#: src/irc/irc-server.c:688
|
||||
#: src/irc/irc-server.c:613 src/irc/irc-server.c:626 src/irc/irc-server.c:673
|
||||
#: src/irc/irc-server.c:686
|
||||
#, c-format
|
||||
msgid "%s not enough memory for received IRC message\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:806
|
||||
#: src/irc/irc-server.c:804
|
||||
#, c-format
|
||||
msgid "%s Command \"%s\" failed!\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:812
|
||||
#: src/irc/irc-server.c:810
|
||||
#, c-format
|
||||
msgid "%s No command to execute!\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:818
|
||||
#: src/irc/irc-server.c:816
|
||||
#, c-format
|
||||
msgid "%s Unknown command: cmd=\"%s\", host=\"%s\", args=\"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:869
|
||||
#: src/irc/irc-server.c:867
|
||||
#, c-format
|
||||
msgid "%s cannot read data from socket, disconnecting from server...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:950
|
||||
#: src/irc/irc-server.c:948
|
||||
#, c-format
|
||||
msgid "%s: Reconnecting to server in %d seconds\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:984
|
||||
#: src/irc/irc-server.c:982
|
||||
#, c-format
|
||||
msgid "%s gnutls handshake failed\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1001
|
||||
#: src/irc/irc-server.c:999
|
||||
#, c-format
|
||||
msgid "%s proxy address \"%s\" not found\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1005
|
||||
#: src/irc/irc-server.c:1003
|
||||
#, c-format
|
||||
msgid "%s address \"%s\" not found\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1015
|
||||
#: src/irc/irc-server.c:1013
|
||||
#, c-format
|
||||
msgid "%s proxy IP address not found\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1018
|
||||
#: src/irc/irc-server.c:1016
|
||||
#, c-format
|
||||
msgid "%s IP address not found\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1027
|
||||
#: src/irc/irc-server.c:1025
|
||||
#, c-format
|
||||
msgid "%s proxy connection refused\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1030
|
||||
#: src/irc/irc-server.c:1028
|
||||
#, c-format
|
||||
msgid "%s connection refused\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1038
|
||||
#: src/irc/irc-server.c:1036
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s proxy fails to establish connection to server (check username/password if "
|
||||
"used)\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1048
|
||||
#: src/irc/irc-server.c:1046
|
||||
#, c-format
|
||||
msgid "%s unable to set local hostname/IP\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1563
|
||||
#: src/irc/irc-server.c:1561
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s cannot connect with SSL since WeeChat was not built with GNUtls support\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1572
|
||||
#: src/irc/irc-server.c:1570
|
||||
#, c-format
|
||||
msgid "%s: connecting to server %s:%d%s%s via %s proxy %s:%d%s...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1578
|
||||
#: src/irc/irc-server.c:1576
|
||||
#, c-format
|
||||
msgid "Connecting to server %s:%d%s%s via %s proxy %s:%d%s...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1588
|
||||
#: src/irc/irc-server.c:1586
|
||||
#, c-format
|
||||
msgid "%s: connecting to server %s:%d%s%s...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1592
|
||||
#: src/irc/irc-server.c:1590
|
||||
#, c-format
|
||||
msgid "Connecting to server %s:%d%s%s...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1610
|
||||
#: src/irc/irc-server.c:1608
|
||||
#, c-format
|
||||
msgid "%s gnutls init error\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1625
|
||||
#: src/irc/irc-server.c:1623
|
||||
#, c-format
|
||||
msgid "%s cannot create pipe\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1640
|
||||
#: src/irc/irc-server.c:1638
|
||||
#, c-format
|
||||
msgid "%s cannot create socket\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1651
|
||||
#: src/irc/irc-server.c:1649
|
||||
#, c-format
|
||||
msgid "%s cannot set socket option \"SO_REUSEADDR\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1662
|
||||
#: src/irc/irc-server.c:1660
|
||||
#, c-format
|
||||
msgid "%s cannot set socket option \"SO_KEEPALIVE\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1693
|
||||
#: src/irc/irc-server.c:1691
|
||||
#, c-format
|
||||
msgid "%s: Reconnecting to server...\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-server.c:1744 src/irc/irc-server.c:1753
|
||||
#: src/irc/irc-server.c:1742 src/irc/irc-server.c:1751
|
||||
msgid "Disconnected from server!\n"
|
||||
msgstr ""
|
||||
|
||||
@@ -1246,7 +1246,7 @@ msgstr ""
|
||||
msgid " (temporary server, will not be saved)"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-display.c:393 src/irc/irc-display.c:424 src/irc/irc-recv.c:3641
|
||||
#: src/irc/irc-display.c:393 src/irc/irc-display.c:424 src/irc/irc-recv.c:3089
|
||||
msgid "seconds"
|
||||
msgstr ""
|
||||
|
||||
@@ -1327,9 +1327,9 @@ msgstr ""
|
||||
msgid "You have been invited to %s%s%s by %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:424 src/irc/irc-recv.c:522 src/irc/irc-recv.c:1283
|
||||
#: src/irc/irc-recv.c:1696 src/irc/irc-recv.c:1976 src/irc/irc-recv.c:4023
|
||||
#: src/irc/irc-recv.c:4044
|
||||
#: src/irc/irc-recv.c:424 src/irc/irc-recv.c:522 src/irc/irc-recv.c:720
|
||||
#: src/irc/irc-recv.c:1143 src/irc/irc-recv.c:1423 src/irc/irc-recv.c:3487
|
||||
#: src/irc/irc-recv.c:3508
|
||||
#, c-format
|
||||
msgid "%s channel \"%s\" not found for \"%s\" command\n"
|
||||
msgstr ""
|
||||
@@ -1359,498 +1359,316 @@ msgstr ""
|
||||
msgid "%s host \"%s\" not found for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:685
|
||||
msgid "sets ban on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:686
|
||||
msgid "removes ban on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:711
|
||||
msgid "sets realname ban on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:712
|
||||
msgid "removes realname ban on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:737
|
||||
msgid "sets ban exemption on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:738
|
||||
msgid "removes ban exemption on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:763
|
||||
msgid "sets mode +f"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:764
|
||||
msgid "removes mode +f"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:789
|
||||
msgid "gives half channel operator status to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:790
|
||||
msgid "removes half channel operator status from"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:818
|
||||
msgid "sets invite-only channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:819
|
||||
msgid "removes invite-only channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:837
|
||||
msgid "sets invite-only exemption on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:838
|
||||
msgid "removes invite-only exemption on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:863
|
||||
msgid "sets channel key to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:864
|
||||
msgid "removes channel key"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:896
|
||||
msgid "sets the user limit to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:897
|
||||
msgid "removes user limit"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:923
|
||||
msgid "sets moderated channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:924
|
||||
msgid "removes moderated channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:935
|
||||
msgid "sets messages from channel only flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:936
|
||||
msgid "removes messages from channel only flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:954
|
||||
msgid "gives channel operator status to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:955
|
||||
msgid "removes channel operator status from"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:983
|
||||
msgid "sets private channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:984
|
||||
msgid "removes private channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1002
|
||||
msgid "sets quiet on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1003
|
||||
msgid "removes quiet on"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1021
|
||||
msgid "sets secret channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1022
|
||||
msgid "removes secret channel flag"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1033
|
||||
msgid "sets topic protection"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1034
|
||||
msgid "removes topic protection"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1052
|
||||
msgid "gives voice to"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1053
|
||||
msgid "removes voice from"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1138
|
||||
msgid "sets away"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1139
|
||||
msgid "removes away"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1149
|
||||
msgid "sets invisible"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1150
|
||||
msgid "removes invisible"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1160
|
||||
msgid "sets wallops"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1161
|
||||
msgid "removes wallops"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1171
|
||||
msgid "sets restricted"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1172
|
||||
msgid "removes restricted"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1182
|
||||
msgid "sets operator"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1183
|
||||
msgid "removes operator"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1193
|
||||
msgid "sets local operator"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1194
|
||||
msgid "removes local operator"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1204
|
||||
msgid "sets server notices"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1205
|
||||
msgid "removes server notices"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1241 src/irc/irc-recv.c:1315 src/irc/irc-recv.c:1775
|
||||
#: src/irc/irc-recv.c:2590
|
||||
#: src/irc/irc-recv.c:664 src/irc/irc-recv.c:762 src/irc/irc-recv.c:1222
|
||||
#: src/irc/irc-recv.c:2037
|
||||
#, c-format
|
||||
msgid "%s \"%s\" command received without host\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1251
|
||||
#: src/irc/irc-recv.c:674
|
||||
#, c-format
|
||||
msgid "%s \"%s\" command received without channel or nickname\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1354
|
||||
#: src/irc/irc-recv.c:702
|
||||
#, c-format
|
||||
msgid "Mode %s%s %s[%s%s%s]%s by %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:731
|
||||
#, c-format
|
||||
msgid "User mode %s%s %s[%s%s%s]\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:801
|
||||
#, c-format
|
||||
msgid "You are now known as %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1358
|
||||
#: src/irc/irc-recv.c:805
|
||||
#, c-format
|
||||
msgid "%s%s%s is now known as %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1426
|
||||
#: src/irc/irc-recv.c:873
|
||||
#, c-format
|
||||
msgid "%s nickname not found for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1440
|
||||
#: src/irc/irc-recv.c:887
|
||||
#, c-format
|
||||
msgid "CTCP %sVERSION%s reply from %s%s%s: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1474
|
||||
#: src/irc/irc-recv.c:921
|
||||
#, c-format
|
||||
msgid "CTCP %sPING%s reply from %s%s%s: %ld.%ld seconds\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1497 src/irc/irc-recv.c:2403 src/irc/irc-recv.c:2515
|
||||
#: src/irc/irc-recv.c:944 src/irc/irc-recv.c:1850 src/irc/irc-recv.c:1962
|
||||
#, c-format
|
||||
msgid "%s cannot create new private window \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1522 src/irc/irc-recv.c:2535
|
||||
#: src/irc/irc-recv.c:969 src/irc/irc-recv.c:1982
|
||||
msgid "Private"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1598
|
||||
#: src/irc/irc-recv.c:1045
|
||||
#, c-format
|
||||
msgid "%s \"%s\" command received without host or channel\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1626
|
||||
#: src/irc/irc-recv.c:1073
|
||||
#, c-format
|
||||
msgid "%s%s %s(%s%s%s)%s has left %s%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1825 src/irc/irc-recv.c:1951 src/irc/irc-recv.c:2431
|
||||
#: src/irc/irc-recv.c:1272 src/irc/irc-recv.c:1398 src/irc/irc-recv.c:1878
|
||||
msgid "Channel"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1859
|
||||
#: src/irc/irc-recv.c:1306
|
||||
#, c-format
|
||||
msgid "Received a CTCP %sSOUND%s \"%s\" from %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1889 src/irc/irc-recv.c:2075
|
||||
#: src/irc/irc-recv.c:1336 src/irc/irc-recv.c:1522
|
||||
#, c-format
|
||||
msgid "CTCP %sPING%s received from %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:1918 src/irc/irc-recv.c:2482
|
||||
#: src/irc/irc-recv.c:1365 src/irc/irc-recv.c:1929
|
||||
#, c-format
|
||||
msgid "Unknown CTCP %s%s%s received from %s%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2031
|
||||
#: src/irc/irc-recv.c:1478
|
||||
#, c-format
|
||||
msgid "CTCP %sVERSION%s received from %s%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2098 src/irc/irc-recv.c:2119 src/irc/irc-recv.c:2135
|
||||
#: src/irc/irc-recv.c:2151 src/irc/irc-recv.c:2182 src/irc/irc-recv.c:2203
|
||||
#: src/irc/irc-recv.c:2219 src/irc/irc-recv.c:2249 src/irc/irc-recv.c:2270
|
||||
#: src/irc/irc-recv.c:2286 src/irc/irc-recv.c:2316 src/irc/irc-recv.c:2337
|
||||
#: src/irc/irc-recv.c:2352 src/irc/irc-recv.c:2566 src/irc/irc-recv.c:2974
|
||||
#: src/irc/irc-recv.c:4428 src/irc/irc-recv.c:4443 src/irc/irc-recv.c:4458
|
||||
#: src/irc/irc-recv.c:4473 src/irc/irc-recv.c:4486 src/irc/irc-recv.c:4551
|
||||
#: src/irc/irc-recv.c:4565 src/irc/irc-recv.c:4811 src/irc/irc-recv.c:4929
|
||||
#: src/irc/irc-recv.c:5066 src/irc/irc-recv.c:5081 src/irc/irc-recv.c:5187
|
||||
#: src/irc/irc-recv.c:5201
|
||||
#: src/irc/irc-recv.c:1545 src/irc/irc-recv.c:1566 src/irc/irc-recv.c:1582
|
||||
#: src/irc/irc-recv.c:1598 src/irc/irc-recv.c:1629 src/irc/irc-recv.c:1650
|
||||
#: src/irc/irc-recv.c:1666 src/irc/irc-recv.c:1696 src/irc/irc-recv.c:1717
|
||||
#: src/irc/irc-recv.c:1733 src/irc/irc-recv.c:1763 src/irc/irc-recv.c:1784
|
||||
#: src/irc/irc-recv.c:1799 src/irc/irc-recv.c:2013 src/irc/irc-recv.c:2422
|
||||
#: src/irc/irc-recv.c:3892 src/irc/irc-recv.c:3907 src/irc/irc-recv.c:3922
|
||||
#: src/irc/irc-recv.c:3937 src/irc/irc-recv.c:3950 src/irc/irc-recv.c:4015
|
||||
#: src/irc/irc-recv.c:4029 src/irc/irc-recv.c:4275 src/irc/irc-recv.c:4393
|
||||
#: src/irc/irc-recv.c:4530 src/irc/irc-recv.c:4545 src/irc/irc-recv.c:4651
|
||||
#: src/irc/irc-recv.c:4665
|
||||
#, c-format
|
||||
msgid "%s cannot parse \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2365
|
||||
#: src/irc/irc-recv.c:1812
|
||||
#, c-format
|
||||
msgid "%s unknown DCC CHAT type received from "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2614
|
||||
#: src/irc/irc-recv.c:2061
|
||||
#, c-format
|
||||
msgid "%s%s %s(%s%s%s)%s has quit"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2789
|
||||
#: src/irc/irc-recv.c:2236
|
||||
#, c-format
|
||||
msgid "%s \"%s\" command received without channel\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2818
|
||||
#: src/irc/irc-recv.c:2265
|
||||
#, c-format
|
||||
msgid "%s%s%s has changed topic for %s%s%s to:"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2829
|
||||
#: src/irc/irc-recv.c:2276
|
||||
#, c-format
|
||||
msgid "%s%s%s has unset topic for %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:2960
|
||||
#: src/irc/irc-recv.c:2408
|
||||
#, c-format
|
||||
msgid "User mode %s[%s%s%s/%s%s%s]\n"
|
||||
msgid "User mode for %s%s%s is %s[%s%s%s]\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3024
|
||||
#: src/irc/irc-recv.c:2472
|
||||
#, c-format
|
||||
msgid "%s%s%s is away: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3116
|
||||
#: src/irc/irc-recv.c:2564
|
||||
msgid "Users online: "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3492
|
||||
#: src/irc/irc-recv.c:2940
|
||||
#, c-format
|
||||
msgid "%s%s %s(%s%s@%s%s)%s was %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3613
|
||||
#: src/irc/irc-recv.c:3061
|
||||
#, c-format
|
||||
msgid "%s[%s%s%s]%s idle: "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3625 src/common/command.c:4066 src/common/command.c:4084
|
||||
#: src/irc/irc-recv.c:3073 src/common/command.c:4066 src/common/command.c:4084
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3625 src/common/command.c:4066 src/common/command.c:4084
|
||||
#: src/irc/irc-recv.c:3073 src/common/command.c:4066 src/common/command.c:4084
|
||||
msgid "day"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3629
|
||||
#: src/irc/irc-recv.c:3077
|
||||
#, c-format
|
||||
msgid "%s%02d %s%s %s%02d %s%s %s%02d %s%s, signon at: %s%s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3633
|
||||
#: src/irc/irc-recv.c:3081
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3633
|
||||
#: src/irc/irc-recv.c:3081
|
||||
msgid "hour"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3637
|
||||
#: src/irc/irc-recv.c:3085
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3637
|
||||
#: src/irc/irc-recv.c:3085
|
||||
msgid "minute"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:3641
|
||||
#: src/irc/irc-recv.c:3089
|
||||
msgid "second"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4035
|
||||
#: src/irc/irc-recv.c:3499
|
||||
#, c-format
|
||||
msgid "No topic set for %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4095
|
||||
#: src/irc/irc-recv.c:3559
|
||||
#, c-format
|
||||
msgid "Topic for %s%s%s is: "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4110 src/irc/irc-recv.c:4192 src/irc/irc-recv.c:4303
|
||||
#: src/irc/irc-recv.c:3574 src/irc/irc-recv.c:3656 src/irc/irc-recv.c:3767
|
||||
#, c-format
|
||||
msgid "%s cannot identify channel for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4163
|
||||
#: src/irc/irc-recv.c:3627
|
||||
#, c-format
|
||||
msgid "Topic set by %s%s%s, %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4174
|
||||
#: src/irc/irc-recv.c:3638
|
||||
#, c-format
|
||||
msgid "%s cannot identify date/time for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4183 src/irc/irc-recv.c:4312
|
||||
#: src/irc/irc-recv.c:3647 src/irc/irc-recv.c:3776
|
||||
#, c-format
|
||||
msgid "%s cannot identify nickname for \"%s\" command\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4288
|
||||
#: src/irc/irc-recv.c:3752
|
||||
#, c-format
|
||||
msgid "%s%s%s has invited %s%s%s on %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4348
|
||||
#: src/irc/irc-recv.c:3812
|
||||
#, c-format
|
||||
msgid "Channel reop %s%s%s: %s%s\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4825 src/irc/irc-recv.c:4975
|
||||
#: src/irc/irc-recv.c:4289 src/irc/irc-recv.c:4439
|
||||
#, c-format
|
||||
msgid "Nicks %s%s%s: %s["
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4897
|
||||
#: src/irc/irc-recv.c:4361
|
||||
#, c-format
|
||||
msgid "%s cannot create nick \"%s\" for channel \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:4996
|
||||
#: src/irc/irc-recv.c:4460
|
||||
#, c-format
|
||||
msgid ""
|
||||
"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"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5004
|
||||
#: src/irc/irc-recv.c:4468
|
||||
msgid "nicks"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5004
|
||||
#: src/irc/irc-recv.c:4468
|
||||
msgid "nick"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5009
|
||||
#: src/irc/irc-recv.c:4473
|
||||
msgid "ops"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5009
|
||||
#: src/irc/irc-recv.c:4473
|
||||
msgid "op"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5013
|
||||
#: src/irc/irc-recv.c:4477
|
||||
msgid "halfops"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5013
|
||||
#: src/irc/irc-recv.c:4477
|
||||
msgid "halfop"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5017
|
||||
#: src/irc/irc-recv.c:4481
|
||||
msgid "voices"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5017
|
||||
#: src/irc/irc-recv.c:4481
|
||||
msgid "voice"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5021
|
||||
#: src/irc/irc-recv.c:4485
|
||||
msgid "normal"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5121
|
||||
#: src/irc/irc-recv.c:4585
|
||||
#, c-format
|
||||
msgid "%s[%s%s%s] %s%s%s banned by "
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5156
|
||||
#: src/irc/irc-recv.c:4620
|
||||
#, c-format
|
||||
msgid "%s[%s%s%s] %s%s%s banned\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5291
|
||||
#: src/irc/irc-recv.c:4755
|
||||
#, c-format
|
||||
msgid "%s: nickname \"%s\" is already in use, trying 2nd nickname \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5303
|
||||
#: src/irc/irc-recv.c:4767
|
||||
#, c-format
|
||||
msgid "%s: nickname \"%s\" is already in use, trying 3rd nickname \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5315
|
||||
#: src/irc/irc-recv.c:4779
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%s: all declared nicknames are already in use, closing connection with "
|
||||
"server!\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5325
|
||||
#: src/irc/irc-recv.c:4789
|
||||
#, c-format
|
||||
msgid "%s: nickname \"%s\" is already in use, trying 1st nickname \"%s\"\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/irc/irc-recv.c:5337
|
||||
#: src/irc/irc-recv.c:4801
|
||||
msgid "unknown"
|
||||
msgstr ""
|
||||
|
||||
@@ -2249,27 +2067,27 @@ msgstr ""
|
||||
msgid "ETA"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:410
|
||||
#: src/gui/curses/gui-curses-input.c:390
|
||||
msgid " [A] Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:411 src/gui/curses/gui-curses-input.c:415
|
||||
#: src/gui/curses/gui-curses-input.c:391 src/gui/curses/gui-curses-input.c:395
|
||||
msgid " [C] Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:420
|
||||
#: src/gui/curses/gui-curses-input.c:400
|
||||
msgid " [R] Remove"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:424
|
||||
#: src/gui/curses/gui-curses-input.c:404
|
||||
msgid " [P] Purge old DCC"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:425
|
||||
#: src/gui/curses/gui-curses-input.c:405
|
||||
msgid " [Q] Close DCC view"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-input.c:432
|
||||
#: src/gui/curses/gui-curses-input.c:412
|
||||
msgid " [Q] Close raw data view"
|
||||
msgstr ""
|
||||
|
||||
@@ -2291,28 +2109,28 @@ msgstr ""
|
||||
msgid "(away)"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:232
|
||||
#: src/gui/curses/gui-curses-status.c:214
|
||||
msgid "[not connected] "
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:238
|
||||
#: src/gui/curses/gui-curses-status.c:220
|
||||
msgid "<RAW_IRC> "
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:250
|
||||
#: src/gui/curses/gui-curses-status.c:232
|
||||
msgid "Act: "
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:331
|
||||
#: src/gui/curses/gui-curses-status.c:313
|
||||
msgid "RAW_IRC"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:352
|
||||
#: src/gui/curses/gui-curses-status.c:334
|
||||
#, c-format
|
||||
msgid "Lag: %.1f"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/curses/gui-curses-status.c:368
|
||||
#: src/gui/curses/gui-curses-status.c:350
|
||||
msgid "-MORE-"
|
||||
msgstr ""
|
||||
|
||||
@@ -2320,7 +2138,7 @@ msgstr ""
|
||||
msgid "server"
|
||||
msgstr ""
|
||||
|
||||
#: src/gui/gui-buffer.c:544
|
||||
#: src/gui/gui-buffer.c:545
|
||||
msgid "Not enough memory for new line\n"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -348,6 +348,19 @@ completion_list_add_key_cmd (t_completion *completion)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* completion_list_add_self_nick: add self nick on server to completion list
|
||||
*/
|
||||
|
||||
void
|
||||
completion_list_add_self_nick (t_completion *completion)
|
||||
{
|
||||
if (completion->server)
|
||||
{
|
||||
completion_list_add (completion, ((t_irc_server *)(completion->server))->nick);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* completion_list_add_channel_nicks: add channel nicks to completion list
|
||||
*/
|
||||
@@ -755,6 +768,9 @@ completion_build_list_template (t_completion *completion, char *template)
|
||||
case 'k': /* key cmd/funtcions*/
|
||||
completion_list_add_key_cmd (completion);
|
||||
break;
|
||||
case 'm': /* self nickname */
|
||||
completion_list_add_self_nick (completion);
|
||||
break;
|
||||
case 'n': /* channel nicks */
|
||||
completion_list_add_channel_nicks (completion);
|
||||
break;
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../../common/weechat.h"
|
||||
#include "../gui.h"
|
||||
@@ -73,8 +74,8 @@ gui_input_set_color (t_gui_window *window, int irc_color)
|
||||
int
|
||||
gui_input_get_prompt_length (t_gui_window *window, char *nick)
|
||||
{
|
||||
char *pos, saved_char, *modes;
|
||||
int char_size, length, mode_found;
|
||||
char *pos, saved_char;
|
||||
int char_size, length;
|
||||
|
||||
length = 0;
|
||||
pos = cfg_look_input_format;
|
||||
@@ -99,18 +100,9 @@ gui_input_get_prompt_length (t_gui_window *window, char *nick)
|
||||
case 'm':
|
||||
if (SERVER(window->buffer))
|
||||
{
|
||||
mode_found = 0;
|
||||
for (modes = SERVER(window->buffer)->nick_modes;
|
||||
modes && modes[0]; modes++)
|
||||
{
|
||||
if (modes[0] != ' ')
|
||||
{
|
||||
length++;
|
||||
mode_found = 1;
|
||||
}
|
||||
}
|
||||
if (mode_found)
|
||||
length++;
|
||||
if (SERVER(window->buffer)->nick_modes
|
||||
&& SERVER(window->buffer)->nick_modes[0])
|
||||
length += strlen (SERVER(window->buffer)->nick_modes);
|
||||
}
|
||||
pos++;
|
||||
break;
|
||||
@@ -155,8 +147,8 @@ gui_input_get_prompt_length (t_gui_window *window, char *nick)
|
||||
void
|
||||
gui_input_draw_prompt (t_gui_window *window, char *nick)
|
||||
{
|
||||
char *pos, saved_char, *modes;
|
||||
int char_size, mode_found;
|
||||
char *pos, saved_char;
|
||||
int char_size;
|
||||
|
||||
wmove (GUI_CURSES(window)->win_input, 0, 0);
|
||||
pos = cfg_look_input_format;
|
||||
@@ -191,25 +183,13 @@ gui_input_draw_prompt (t_gui_window *window, char *nick)
|
||||
case 'm':
|
||||
if (SERVER(window->buffer))
|
||||
{
|
||||
mode_found = 0;
|
||||
for (modes = SERVER(window->buffer)->nick_modes;
|
||||
modes && modes[0]; modes++)
|
||||
{
|
||||
if (modes[0] != ' ')
|
||||
mode_found = 1;
|
||||
}
|
||||
if (mode_found)
|
||||
if (SERVER(window->buffer)->nick_modes
|
||||
&& SERVER(window->buffer)->nick_modes[0])
|
||||
{
|
||||
gui_window_set_weechat_color (GUI_CURSES(window)->win_input,
|
||||
COLOR_WIN_INPUT);
|
||||
wprintw (GUI_CURSES(window)->win_input, "+");
|
||||
for (modes = SERVER(window->buffer)->nick_modes;
|
||||
modes && modes[0]; modes++)
|
||||
{
|
||||
if (modes[0] != ' ')
|
||||
wprintw (GUI_CURSES(window)->win_input, "%c",
|
||||
modes[0]);
|
||||
}
|
||||
wprintw (GUI_CURSES(window)->win_input, "%s",
|
||||
SERVER(window->buffer)->nick_modes);
|
||||
}
|
||||
}
|
||||
pos++;
|
||||
|
||||
@@ -44,7 +44,7 @@ gui_status_draw (t_gui_buffer *buffer, int erase)
|
||||
t_gui_window *ptr_win;
|
||||
t_weechat_hotlist *ptr_hotlist;
|
||||
char format[32], str_nicks[32], *more;
|
||||
int i, first_mode, x, server_pos, server_total;
|
||||
int x, server_pos, server_total;
|
||||
int display_name, names_count;
|
||||
|
||||
/* make gcc happy */
|
||||
@@ -171,28 +171,10 @@ gui_status_draw (t_gui_buffer *buffer, int erase)
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, "(");
|
||||
gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_status,
|
||||
COLOR_WIN_STATUS);
|
||||
i = 0;
|
||||
first_mode = 1;
|
||||
while (CHANNEL(ptr_win->buffer)->modes[i])
|
||||
{
|
||||
if (CHANNEL(ptr_win->buffer)->modes[i] != ' ')
|
||||
{
|
||||
if (first_mode)
|
||||
{
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, "+");
|
||||
first_mode = 0;
|
||||
}
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, "%c",
|
||||
CHANNEL(ptr_win->buffer)->modes[i]);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (CHANNEL(ptr_win->buffer)->modes[CHANNEL_MODE_KEY] != ' ')
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, ",%s",
|
||||
CHANNEL(ptr_win->buffer)->key);
|
||||
if (CHANNEL(ptr_win->buffer)->modes[CHANNEL_MODE_LIMIT] != ' ')
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, ",%d",
|
||||
CHANNEL(ptr_win->buffer)->limit);
|
||||
if (CHANNEL(ptr_win->buffer)->modes
|
||||
&& (strcmp (CHANNEL(ptr_win->buffer)->modes, "+") != 0))
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, "%s",
|
||||
CHANNEL(ptr_win->buffer)->modes);
|
||||
gui_window_set_weechat_color (GUI_CURSES(ptr_win)->win_status,
|
||||
COLOR_WIN_STATUS_DELIMITERS);
|
||||
wprintw (GUI_CURSES(ptr_win)->win_status, ")");
|
||||
|
||||
@@ -99,6 +99,7 @@ gui_buffer_new (t_gui_window *window, void *server, void *channel, int type,
|
||||
gui_buffers->all_servers = 1;
|
||||
if (cfg_log_auto_server)
|
||||
gui_log_start (gui_buffers);
|
||||
gui_buffers->completion.server = server;
|
||||
return gui_buffers;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ lib_weechat_irc_a_SOURCES = irc.h \
|
||||
irc-server.c \
|
||||
irc-channel.c \
|
||||
irc-nick.c \
|
||||
irc-mode.c \
|
||||
irc-dcc.c \
|
||||
irc-ignore.c \
|
||||
irc-display.c
|
||||
|
||||
@@ -61,9 +61,7 @@ channel_new (t_irc_server *server, int channel_type, char *channel_name)
|
||||
new_channel->dcc_chat = NULL;
|
||||
new_channel->name = strdup (channel_name);
|
||||
new_channel->topic = NULL;
|
||||
new_channel->modes = (char *) malloc (NUM_CHANNEL_MODES + 1);
|
||||
memset (new_channel->modes, ' ', NUM_CHANNEL_MODES);
|
||||
new_channel->modes[NUM_CHANNEL_MODES] = '\0';
|
||||
new_channel->modes = NULL;
|
||||
new_channel->limit = 0;
|
||||
new_channel->key = NULL;
|
||||
new_channel->nicks_count = 0;
|
||||
@@ -127,6 +125,10 @@ channel_free (t_irc_server *server, t_irc_channel *channel)
|
||||
free (channel->name);
|
||||
if (channel->topic)
|
||||
free (channel->topic);
|
||||
if (channel->modes)
|
||||
free (channel->modes);
|
||||
if (channel->key)
|
||||
free (channel->key);
|
||||
nick_free_all (channel);
|
||||
if (channel->away_message)
|
||||
free (channel->away_message);
|
||||
|
||||
@@ -156,7 +156,7 @@ t_irc_command irc_commands[] =
|
||||
" s: mark a user for receive server notices\n"
|
||||
" w: user receives wallops\n"
|
||||
" o: operator flag"),
|
||||
"", 1, MAX_ARGS, 0, 1, NULL, irc_cmd_send_mode, irc_cmd_recv_mode },
|
||||
"%c|%m", 1, MAX_ARGS, 0, 1, NULL, irc_cmd_send_mode, irc_cmd_recv_mode },
|
||||
{ "motd", N_("get the \"Message Of The Day\""),
|
||||
N_("[target]"),
|
||||
N_("target: server name"),
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
/*
|
||||
* Copyright (c) 2003-2006 by FlashCode <flashcode@flashtux.org>
|
||||
* See README for License detail, AUTHORS for developers list.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/* irc-mode.c: IRC channel/user modes management */
|
||||
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../common/weechat.h"
|
||||
#include "irc.h"
|
||||
#include "../common/command.h"
|
||||
#include "../gui/gui.h"
|
||||
|
||||
|
||||
/*
|
||||
* irc_mode_channel_set_nick: set a mode for a nick on a channel
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_channel_set_nick (t_irc_channel *channel, char *nick,
|
||||
char set_flag, int flag)
|
||||
{
|
||||
t_irc_nick *ptr_nick;
|
||||
|
||||
if (nick)
|
||||
{
|
||||
ptr_nick = nick_search (channel, nick);
|
||||
if (ptr_nick)
|
||||
{
|
||||
NICK_SET_FLAG(ptr_nick, (set_flag == '+'), flag);
|
||||
nick_resort (channel, ptr_nick);
|
||||
gui_nicklist_draw (channel->buffer, 1, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_channel_get_flag: search for flag before current position
|
||||
*/
|
||||
|
||||
char
|
||||
irc_mode_channel_get_flag (char *str, char *pos)
|
||||
{
|
||||
char set_flag;
|
||||
|
||||
set_flag = '+';
|
||||
pos--;
|
||||
while (pos >= str)
|
||||
{
|
||||
if (pos[0] == '-')
|
||||
return '-';
|
||||
if (pos[0] == '+')
|
||||
return '+';
|
||||
pos--;
|
||||
}
|
||||
return set_flag;
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_channel_set: set channel modes
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_channel_set (t_irc_channel *channel, char *modes)
|
||||
{
|
||||
char *pos_args, set_flag, **argv, *pos, *ptr_arg;
|
||||
int argc, current_arg;
|
||||
|
||||
argc = 0;
|
||||
argv = NULL;
|
||||
current_arg = 0;
|
||||
pos_args = strchr (modes, ' ');
|
||||
if (pos_args)
|
||||
{
|
||||
pos_args[0] = '\0';
|
||||
pos_args++;
|
||||
while (pos_args[0] == ' ')
|
||||
pos_args++;
|
||||
argv = explode_string (pos_args, " ", 0, &argc);
|
||||
if (argc > 0)
|
||||
current_arg = argc - 1;
|
||||
}
|
||||
|
||||
if (modes && modes[0])
|
||||
{
|
||||
set_flag = '+';
|
||||
pos = modes + strlen (modes) - 1;
|
||||
while (pos >= modes)
|
||||
{
|
||||
switch (pos[0])
|
||||
{
|
||||
case ':':
|
||||
case ' ':
|
||||
case '+':
|
||||
case '-':
|
||||
break;
|
||||
default:
|
||||
set_flag = irc_mode_channel_get_flag (modes, pos);
|
||||
ptr_arg = ((argc > 0) && (current_arg >= 0)) ?
|
||||
argv[current_arg--] : NULL;
|
||||
switch (pos[0])
|
||||
{
|
||||
case 'h':
|
||||
irc_mode_channel_set_nick (channel, ptr_arg,
|
||||
set_flag, NICK_HALFOP);
|
||||
break;
|
||||
case 'k':
|
||||
if (channel->key)
|
||||
{
|
||||
free (channel->key);
|
||||
channel->key = NULL;
|
||||
}
|
||||
if ((set_flag == '+') && ptr_arg)
|
||||
channel->key = strdup (ptr_arg);
|
||||
break;
|
||||
case 'l':
|
||||
if (set_flag == '-')
|
||||
channel->limit = 0;
|
||||
if ((set_flag == '+') && ptr_arg)
|
||||
channel->limit = atoi (ptr_arg);
|
||||
break;
|
||||
case 'o':
|
||||
irc_mode_channel_set_nick (channel, ptr_arg,
|
||||
set_flag, NICK_OP);
|
||||
break;
|
||||
case 'v':
|
||||
irc_mode_channel_set_nick (channel, ptr_arg,
|
||||
set_flag, NICK_VOICE);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
pos--;
|
||||
}
|
||||
}
|
||||
|
||||
if (argv)
|
||||
free_exploded_string (argv);
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_user_add: add a user mode
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_user_add (t_irc_server *server, char mode)
|
||||
{
|
||||
char str_mode[2];
|
||||
|
||||
str_mode[0] = mode;
|
||||
str_mode[1] = '\0';
|
||||
|
||||
if (server->nick_modes)
|
||||
{
|
||||
if (!strchr (server->nick_modes, mode))
|
||||
{
|
||||
server->nick_modes = (char *) realloc (server->nick_modes,
|
||||
strlen (server->nick_modes) + 1 + 1);
|
||||
strcat (server->nick_modes, str_mode);
|
||||
gui_status_draw (gui_current_window->buffer, 1);
|
||||
gui_input_draw (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
server->nick_modes = (char *) malloc (2);
|
||||
strcpy (server->nick_modes, str_mode);
|
||||
gui_status_draw (gui_current_window->buffer, 1);
|
||||
gui_input_draw (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_user_remove: remove a user mode
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_user_remove (t_irc_server *server, char mode)
|
||||
{
|
||||
char *pos;
|
||||
int new_size;
|
||||
|
||||
if (server->nick_modes)
|
||||
{
|
||||
pos = strchr (server->nick_modes, mode);
|
||||
if (pos)
|
||||
{
|
||||
new_size = strlen (server->nick_modes);
|
||||
memmove (pos, pos + 1, strlen (pos + 1) + 1);
|
||||
server->nick_modes = (char *) realloc (server->nick_modes,
|
||||
new_size);
|
||||
gui_status_draw (gui_current_window->buffer, 1);
|
||||
gui_input_draw (gui_current_window->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_mode_user_set: set user modes
|
||||
*/
|
||||
|
||||
void
|
||||
irc_mode_user_set (t_irc_server *server, char *modes)
|
||||
{
|
||||
char set_flag;
|
||||
|
||||
set_flag = '+';
|
||||
while (modes && modes[0])
|
||||
{
|
||||
switch (modes[0])
|
||||
{
|
||||
case ':':
|
||||
case ' ':
|
||||
break;
|
||||
case '+':
|
||||
set_flag = '+';
|
||||
break;
|
||||
case '-':
|
||||
set_flag = '-';
|
||||
break;
|
||||
default:
|
||||
if (set_flag == '+')
|
||||
irc_mode_user_add (server, modes[0]);
|
||||
else
|
||||
irc_mode_user_remove (server, modes[0]);
|
||||
break;
|
||||
}
|
||||
modes++;
|
||||
}
|
||||
}
|
||||
+81
-617
@@ -646,583 +646,6 @@ irc_cmd_recv_kill (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_get_channel_modes: get channel modes
|
||||
*/
|
||||
|
||||
void irc_get_channel_modes (t_irc_server *server, t_irc_channel *channel,
|
||||
char *channel_name,
|
||||
char *nick_host, char *modes, char *parm,
|
||||
int no_display)
|
||||
{
|
||||
char *pos, set_flag, unknown_mode[3];
|
||||
t_irc_nick *ptr_nick;
|
||||
|
||||
set_flag = '+';
|
||||
while (modes && modes[0])
|
||||
{
|
||||
switch (modes[0])
|
||||
{
|
||||
case '+':
|
||||
set_flag = '+';
|
||||
break;
|
||||
case '-':
|
||||
set_flag = '-';
|
||||
break;
|
||||
case 'b':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"b", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets ban on") :
|
||||
_("removes ban on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'd':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"d", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets realname ban on") :
|
||||
_("removes realname ban on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'e':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"e", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets ban exemption on") :
|
||||
_("removes ban exemption on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'f':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"f", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets mode +f") :
|
||||
_("removes mode +f"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'h':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"h", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("gives half channel operator status to") :
|
||||
_("removes half channel operator status from"),
|
||||
(parm) ? parm : NULL);
|
||||
if (parm)
|
||||
{
|
||||
ptr_nick = nick_search (channel, parm);
|
||||
if (ptr_nick)
|
||||
{
|
||||
NICK_SET_FLAG(ptr_nick, (set_flag == '+'), NICK_HALFOP);
|
||||
nick_resort (channel, ptr_nick);
|
||||
gui_nicklist_draw (channel->buffer, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'i':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"i", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets invite-only channel flag") :
|
||||
_("removes invite-only channel flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_INVITE);
|
||||
break;
|
||||
case 'I':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"I", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets invite-only exemption on") :
|
||||
_("removes invite-only exemption on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'k':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"k", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets channel key to") :
|
||||
_("removes channel key"),
|
||||
(set_flag == '+') ?
|
||||
((parm) ? parm : NULL) :
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_KEY);
|
||||
if (channel->key)
|
||||
free (channel->key);
|
||||
channel->key = strdup (parm);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'l':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"l", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets the user limit to") :
|
||||
_("removes user limit"),
|
||||
(set_flag == '+') ?
|
||||
((parm) ? parm : NULL) :
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_LIMIT);
|
||||
if (set_flag == '-')
|
||||
channel->limit = 0;
|
||||
if ((set_flag == '+') && parm)
|
||||
channel->limit = atoi (parm);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'm':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"m", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets moderated channel flag") :
|
||||
_("removes moderated channel flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_MODERATED);
|
||||
break;
|
||||
case 'n':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"n", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets messages from channel only flag") :
|
||||
_("removes messages from channel only flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_NO_MSG_OUT);
|
||||
break;
|
||||
case 'o':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"o", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("gives channel operator status to") :
|
||||
_("removes channel operator status from"),
|
||||
(parm) ? parm : NULL);
|
||||
if (parm)
|
||||
{
|
||||
ptr_nick = nick_search (channel, parm);
|
||||
if (ptr_nick)
|
||||
{
|
||||
NICK_SET_FLAG(ptr_nick, (set_flag == '+'), NICK_OP);
|
||||
nick_resort (channel, ptr_nick);
|
||||
gui_nicklist_draw (channel->buffer, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 'p':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"p", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets private channel flag") :
|
||||
_("removes private channel flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_PRIVATE);
|
||||
break;
|
||||
case 'q':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"q", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets quiet on") :
|
||||
_("removes quiet on"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
case 's':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"s", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets secret channel flag") :
|
||||
_("removes secret channel flag"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_SECRET);
|
||||
break;
|
||||
case 't':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"t", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets topic protection") :
|
||||
_("removes topic protection"),
|
||||
NULL);
|
||||
CHANNEL_SET_MODE(channel, (set_flag == '+'),
|
||||
CHANNEL_MODE_TOPIC);
|
||||
break;
|
||||
case 'v':
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
"v", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("gives voice to") :
|
||||
_("removes voice from"),
|
||||
(parm) ? parm : NULL);
|
||||
|
||||
if (parm)
|
||||
{
|
||||
ptr_nick = nick_search (channel, parm);
|
||||
if (ptr_nick)
|
||||
{
|
||||
NICK_SET_FLAG(ptr_nick, (set_flag == '+'), NICK_VOICE);
|
||||
nick_resort (channel, ptr_nick);
|
||||
gui_nicklist_draw (channel->buffer, 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
default: /* unknown mode received */
|
||||
pos = NULL;
|
||||
if (parm)
|
||||
{
|
||||
pos = strchr (parm, ' ');
|
||||
if (pos)
|
||||
pos[0] = '\0';
|
||||
}
|
||||
if (nick_host && !no_display)
|
||||
{
|
||||
unknown_mode[0] = set_flag;
|
||||
unknown_mode[1] = modes[0];
|
||||
unknown_mode[2] = '\0';
|
||||
irc_display_mode (server, channel->buffer,
|
||||
channel_name, NULL, set_flag,
|
||||
unknown_mode + 1, nick_host,
|
||||
unknown_mode,
|
||||
(parm) ? parm : NULL);
|
||||
}
|
||||
|
||||
/* look for next parameter */
|
||||
if (parm && pos)
|
||||
{
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
parm = pos;
|
||||
}
|
||||
break;
|
||||
}
|
||||
modes++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_get_nick_modes: get nick modes
|
||||
*/
|
||||
|
||||
void irc_get_nick_modes (t_irc_server *server,
|
||||
char *nick_host, char *modes, int no_display)
|
||||
{
|
||||
char set_flag, unknown_mode[3];
|
||||
|
||||
set_flag = '+';
|
||||
while (modes && modes[0])
|
||||
{
|
||||
switch (modes[0])
|
||||
{
|
||||
case ':':
|
||||
break;
|
||||
case '+':
|
||||
set_flag = '+';
|
||||
break;
|
||||
case '-':
|
||||
set_flag = '-';
|
||||
break;
|
||||
case 'a':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"a", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets away") :
|
||||
_("removes away"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_AWAY);
|
||||
break;
|
||||
case 'i':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"i", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets invisible") :
|
||||
_("removes invisible"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_INVISIBLE);
|
||||
break;
|
||||
case 'w':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"w", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets wallops") :
|
||||
_("removes wallops"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_WALLOPS);
|
||||
break;
|
||||
case 'r':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"r", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets restricted") :
|
||||
_("removes restricted"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_RESTRICTED);
|
||||
break;
|
||||
case 'o':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"o", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets operator") :
|
||||
_("removes operator"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_OPERATOR);
|
||||
break;
|
||||
case 'O':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"O", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets local operator") :
|
||||
_("removes local operator"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_LOCAL_OPERATOR);
|
||||
break;
|
||||
case 's':
|
||||
if (nick_host && !no_display)
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
"s", nick_host,
|
||||
(set_flag == '+') ?
|
||||
_("sets server notices") :
|
||||
_("removes server notices"),
|
||||
NULL);
|
||||
NICK_SET_MODE(server, (set_flag == '+'), NICK_MODE_LOCAL_OPERATOR);
|
||||
break;
|
||||
default: /* unknown mode received */
|
||||
if (nick_host && !no_display)
|
||||
{
|
||||
unknown_mode[0] = set_flag;
|
||||
unknown_mode[1] = modes[0];
|
||||
unknown_mode[2] = '\0';
|
||||
irc_display_mode (server, server->buffer,
|
||||
NULL, server->nick, set_flag,
|
||||
unknown_mode + 1, nick_host,
|
||||
unknown_mode, NULL);
|
||||
}
|
||||
break;
|
||||
}
|
||||
modes++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_cmd_recv_mode: 'mode' message received
|
||||
*/
|
||||
@@ -1230,7 +653,7 @@ void irc_get_nick_modes (t_irc_server *server,
|
||||
int
|
||||
irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
{
|
||||
char *pos, *pos_parm;
|
||||
char *pos_modes, *pos;
|
||||
t_irc_channel *ptr_channel;
|
||||
|
||||
/* no host => we can't identify sender of message! */
|
||||
@@ -1243,8 +666,8 @@ irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
return -1;
|
||||
}
|
||||
|
||||
pos = strchr (arguments, ' ');
|
||||
if (!pos)
|
||||
pos_modes = strchr (arguments, ' ');
|
||||
if (!pos_modes)
|
||||
{
|
||||
irc_display_prefix (server, server->buffer, PREFIX_ERROR);
|
||||
gui_printf_nolog (server->buffer,
|
||||
@@ -1252,18 +675,19 @@ irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
WEECHAT_ERROR, "mode");
|
||||
return -1;
|
||||
}
|
||||
pos[0] = '\0';
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
pos_modes[0] = '\0';
|
||||
pos_modes++;
|
||||
while (pos_modes[0] == ' ')
|
||||
pos_modes++;
|
||||
if (pos_modes[0] == ':')
|
||||
pos_modes++;
|
||||
|
||||
pos_parm = strchr (pos, ' ');
|
||||
if (pos_parm)
|
||||
/* remove spaces after modes */
|
||||
pos = pos_modes + strlen (pos_modes) - 1;
|
||||
while ((pos >= pos_modes) && (pos[0] == ' '))
|
||||
{
|
||||
pos_parm[0] = '\0';
|
||||
pos_parm++;
|
||||
while (pos_parm[0] == ' ')
|
||||
pos_parm++;
|
||||
pos[0] = '\0';
|
||||
pos--;
|
||||
}
|
||||
|
||||
if (string_is_channel (arguments))
|
||||
@@ -1271,10 +695,23 @@ irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
ptr_channel = channel_search (server, arguments);
|
||||
if (ptr_channel)
|
||||
{
|
||||
irc_get_channel_modes (server, ptr_channel, arguments, nick,
|
||||
pos, pos_parm, command_ignored);
|
||||
gui_status_draw (ptr_channel->buffer, 1);
|
||||
gui_input_draw (ptr_channel->buffer, 1);
|
||||
if (!command_ignored)
|
||||
{
|
||||
irc_display_prefix (server, ptr_channel->buffer, PREFIX_INFO);
|
||||
gui_printf (ptr_channel->buffer,
|
||||
_("Mode %s%s %s[%s%s%s]%s by %s%s\n"),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_CHANNEL),
|
||||
ptr_channel->name,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
pos_modes,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_NICK),
|
||||
nick);
|
||||
}
|
||||
irc_mode_channel_set (ptr_channel, pos_modes);
|
||||
server_sendf (server, "MODE %s\r\n", ptr_channel->name);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1287,9 +724,19 @@ irc_cmd_recv_mode (t_irc_server *server, char *host, char *nick, char *arguments
|
||||
}
|
||||
else
|
||||
{
|
||||
irc_get_nick_modes (server, nick, pos, command_ignored);
|
||||
gui_status_draw (gui_current_window->buffer, 1);
|
||||
gui_input_draw (gui_current_window->buffer, 1);
|
||||
if (!command_ignored)
|
||||
{
|
||||
irc_display_prefix (server, server->buffer, PREFIX_INFO);
|
||||
gui_printf (server->buffer,
|
||||
_("User mode %s%s %s[%s%s%s]\n"),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_NICK),
|
||||
nick,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
pos_modes,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK));
|
||||
}
|
||||
irc_mode_user_set (server, pos_modes);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -2957,12 +2404,13 @@ irc_cmd_recv_221 (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
if (!command_ignored)
|
||||
{
|
||||
irc_display_prefix (server, server->buffer, PREFIX_SERVER);
|
||||
gui_printf (server->buffer, _("User mode %s[%s%s%s/%s%s%s]\n"),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
gui_printf (server->buffer,
|
||||
_("User mode for %s%s%s is %s[%s%s%s]\n"),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_NICK),
|
||||
arguments,
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_NICK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK),
|
||||
GUI_COLOR(COLOR_WIN_CHAT),
|
||||
pos_mode,
|
||||
GUI_COLOR(COLOR_WIN_CHAT_DARK));
|
||||
}
|
||||
@@ -3931,7 +3379,7 @@ irc_cmd_recv_323 (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
int
|
||||
irc_cmd_recv_324 (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
{
|
||||
char *pos_channel, *pos, *pos_parm;
|
||||
char *pos_channel, *pos_modes, *pos;
|
||||
t_irc_channel *ptr_channel;
|
||||
|
||||
/* make gcc happy */
|
||||
@@ -3946,28 +3394,44 @@ irc_cmd_recv_324 (t_irc_server *server, char *host, char *nick, char *arguments)
|
||||
while (pos_channel[0] == ' ')
|
||||
pos_channel++;
|
||||
|
||||
pos = strchr (pos_channel, ' ');
|
||||
if (pos)
|
||||
pos_modes = strchr (pos_channel, ' ');
|
||||
if (pos_modes)
|
||||
{
|
||||
pos[0] = '\0';
|
||||
pos++;
|
||||
while (pos[0] == ' ')
|
||||
pos++;
|
||||
|
||||
pos_parm = strchr (pos, ' ');
|
||||
if (pos_parm)
|
||||
pos_modes[0] = '\0';
|
||||
pos_modes++;
|
||||
while (pos_modes[0] == ' ')
|
||||
pos_modes++;
|
||||
|
||||
/* remove spaces after modes */
|
||||
pos = pos_modes + strlen (pos_modes) - 1;
|
||||
while ((pos >= pos_modes) && (pos[0] == ' '))
|
||||
{
|
||||
pos_parm[0] = '\0';
|
||||
pos_parm++;
|
||||
while (pos_parm[0] == ' ')
|
||||
pos_parm++;
|
||||
pos[0] = '\0';
|
||||
pos--;
|
||||
}
|
||||
|
||||
/* search channel */
|
||||
ptr_channel = channel_search (server, pos_channel);
|
||||
if (ptr_channel)
|
||||
{
|
||||
irc_get_channel_modes (server, ptr_channel, NULL, NULL,
|
||||
pos, pos_parm, command_ignored);
|
||||
gui_status_draw (ptr_channel->buffer, 0);
|
||||
if (pos_modes[0])
|
||||
{
|
||||
if (ptr_channel->modes)
|
||||
ptr_channel->modes = (char *) realloc (ptr_channel->modes,
|
||||
strlen (pos_modes) + 1);
|
||||
else
|
||||
ptr_channel->modes = (char *) malloc (strlen (pos_modes) + 1);
|
||||
strcpy (ptr_channel->modes, pos_modes);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ptr_channel->modes)
|
||||
{
|
||||
free (ptr_channel->modes);
|
||||
ptr_channel->modes = NULL;
|
||||
}
|
||||
}
|
||||
gui_status_draw (ptr_channel->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,9 +102,7 @@ server_init (t_irc_server *server)
|
||||
server->ssl_connected = 0;
|
||||
server->unterminated_message = NULL;
|
||||
server->nick = NULL;
|
||||
server->nick_modes = (char *) malloc (NUM_NICK_MODES + 1);
|
||||
memset (server->nick_modes, ' ', NUM_NICK_MODES);
|
||||
server->nick_modes[NUM_NICK_MODES] = '\0';
|
||||
server->nick_modes = NULL;
|
||||
server->reconnect_start = 0;
|
||||
server->reconnect_join = 0;
|
||||
server->is_away = 0;
|
||||
@@ -1755,8 +1753,8 @@ server_disconnect (t_irc_server *server, int reconnect)
|
||||
|
||||
if (server->nick_modes)
|
||||
{
|
||||
memset (server->nick_modes, ' ', NUM_NICK_MODES);
|
||||
server->nick_modes[NUM_NICK_MODES] = '\0';
|
||||
free (server->nick_modes);
|
||||
server->nick_modes = NULL;
|
||||
}
|
||||
server->is_away = 0;
|
||||
server->away_time = 0;
|
||||
|
||||
+5
-29
@@ -85,21 +85,6 @@ struct t_irc_nick
|
||||
#define CHANNEL_TYPE_PRIVATE 1
|
||||
#define CHANNEL_TYPE_DCC_CHAT 2
|
||||
|
||||
#define NUM_CHANNEL_MODES 8
|
||||
#define CHANNEL_MODE_INVITE 0
|
||||
#define CHANNEL_MODE_KEY 1
|
||||
#define CHANNEL_MODE_LIMIT 2
|
||||
#define CHANNEL_MODE_MODERATED 3
|
||||
#define CHANNEL_MODE_NO_MSG_OUT 4
|
||||
#define CHANNEL_MODE_SECRET 5
|
||||
#define CHANNEL_MODE_TOPIC 6
|
||||
#define CHANNEL_MODE_PRIVATE 7
|
||||
#define CHANNEL_SET_MODE(channel, set, mode) \
|
||||
if (set) \
|
||||
channel->modes[mode] = channel_modes[mode]; \
|
||||
else \
|
||||
channel->modes[mode] = ' ';
|
||||
|
||||
typedef struct t_irc_channel t_irc_channel;
|
||||
|
||||
struct t_irc_channel
|
||||
@@ -125,20 +110,6 @@ struct t_irc_channel
|
||||
|
||||
/* server types */
|
||||
|
||||
#define NUM_NICK_MODES 7
|
||||
#define NICK_MODE_AWAY 0
|
||||
#define NICK_MODE_INVISIBLE 1
|
||||
#define NICK_MODE_WALLOPS 2
|
||||
#define NICK_MODE_RESTRICTED 3
|
||||
#define NICK_MODE_OPERATOR 4
|
||||
#define NICK_MODE_LOCAL_OPERATOR 5
|
||||
#define NICK_MODE_SERVER_NOTICES 6
|
||||
#define NICK_SET_MODE(server, set, mode) \
|
||||
if (set) \
|
||||
server->nick_modes[mode] = nick_modes[mode]; \
|
||||
else \
|
||||
server->nick_modes[mode] = ' ';
|
||||
|
||||
typedef struct t_irc_server t_irc_server;
|
||||
|
||||
struct t_irc_server
|
||||
@@ -432,6 +403,11 @@ extern int nick_get_max_length (t_irc_channel *);
|
||||
extern void nick_set_away (t_irc_channel *, t_irc_nick *, int);
|
||||
extern void nick_print_log (t_irc_nick *);
|
||||
|
||||
/* mode functions (irc-mode.c) */
|
||||
|
||||
extern void irc_mode_channel_set (t_irc_channel *, char *);
|
||||
extern void irc_mode_user_set (t_irc_server *, char *);
|
||||
|
||||
/* DCC functions (irc-dcc.c) */
|
||||
|
||||
extern void dcc_redraw (int);
|
||||
|
||||
@@ -834,6 +834,7 @@ weechat_plugin_get_server_info (t_weechat_plugin *plugin)
|
||||
new_server_info->is_connected = ptr_server->is_connected;
|
||||
new_server_info->ssl_connected = ptr_server->ssl_connected;
|
||||
new_server_info->nick = (ptr_server->nick) ? strdup (ptr_server->nick) : strdup ("");
|
||||
new_server_info->nick_modes = (ptr_server->nick_modes) ? strdup (ptr_server->nick_modes) : strdup ("");
|
||||
new_server_info->is_away = ptr_server->is_away;
|
||||
new_server_info->away_time = ptr_server->away_time;
|
||||
new_server_info->lag = ptr_server->lag;
|
||||
|
||||
@@ -1371,6 +1371,10 @@ weechat_lua_get_server_info (lua_State *L)
|
||||
lua_pushstring (lua_current_interpreter, "nick");
|
||||
lua_pushstring (lua_current_interpreter, ptr_server->nick);
|
||||
lua_rawset (lua_current_interpreter, -3);
|
||||
|
||||
lua_pushstring (lua_current_interpreter, "nick_modes");
|
||||
lua_pushstring (lua_current_interpreter, ptr_server->nick_modes);
|
||||
lua_rawset (lua_current_interpreter, -3);
|
||||
|
||||
lua_pushstring (lua_current_interpreter, "away_time");
|
||||
lua_pushstring (lua_current_interpreter, timebuffer);
|
||||
|
||||
@@ -1163,6 +1163,7 @@ static XS (XS_weechat_get_server_info)
|
||||
hv_store (server_hash_member, "is_connected", 12, newSViv (ptr_server->is_connected), 0);
|
||||
hv_store (server_hash_member, "ssl_connected", 13, newSViv (ptr_server->ssl_connected), 0);
|
||||
hv_store (server_hash_member, "nick", 4, newSVpv (ptr_server->nick, 0), 0);
|
||||
hv_store (server_hash_member, "nick_modes", 10, newSVpv (ptr_server->nick_modes, 0), 0);
|
||||
hv_store (server_hash_member, "away_time", 9, newSVpv (timebuffer, 0), 0);
|
||||
hv_store (server_hash_member, "lag", 3, newSViv (ptr_server->lag), 0);
|
||||
|
||||
|
||||
@@ -1134,6 +1134,8 @@ weechat_python_get_server_info (PyObject *self, PyObject *args)
|
||||
Py_BuildValue("i", ptr_server->ssl_connected));
|
||||
PyDict_SetItem(server_hash_member, Py_BuildValue("s", "nick"),
|
||||
Py_BuildValue("s", ptr_server->nick));
|
||||
PyDict_SetItem(server_hash_member, Py_BuildValue("s", "nick_modes"),
|
||||
Py_BuildValue("s", ptr_server->nick_modes));
|
||||
PyDict_SetItem(server_hash_member, Py_BuildValue("s", "away_time"),
|
||||
Py_BuildValue("s", timebuffer));
|
||||
PyDict_SetItem(server_hash_member, Py_BuildValue("s", "lag"),
|
||||
|
||||
@@ -1354,6 +1354,8 @@ weechat_ruby_get_server_info (VALUE class)
|
||||
INT2FIX(ptr_server->ssl_connected));
|
||||
rb_hash_aset (server_hash_member, rb_str_new2("nick"),
|
||||
rb_str_new2(ptr_server->nick));
|
||||
rb_hash_aset (server_hash_member, rb_str_new2("nick_modes"),
|
||||
rb_str_new2(ptr_server->nick_modes));
|
||||
rb_hash_aset (server_hash_member, rb_str_new2("away_time"),
|
||||
rb_str_new2(timebuffer));
|
||||
rb_hash_aset (server_hash_member, rb_str_new2("lag"),
|
||||
|
||||
@@ -107,6 +107,7 @@ struct t_plugin_server_info
|
||||
int is_connected; /* 1 if WeeChat is connected to server */
|
||||
int ssl_connected; /* = 1 if connected with SSL */
|
||||
char *nick; /* current nickname */
|
||||
char *nick_modes; /* nick modes */
|
||||
int is_away; /* 1 is user is marker as away */
|
||||
time_t away_time; /* time() when user marking as away */
|
||||
int lag; /* lag (in milliseconds) */
|
||||
|
||||
Reference in New Issue
Block a user