summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/inspircd20.example.conf16
-rw-r--r--include/config.h2
-rw-r--r--include/defs.h1
-rw-r--r--include/modes.h2
-rw-r--r--include/modules/chanserv/chanaccess.h35
-rw-r--r--include/modules/chanserv/main/chanaccess.h2
-rw-r--r--include/modules/nickserv/account.h6
-rw-r--r--include/modules/protocol/plexus.h20
-rw-r--r--include/serialize.h2
-rw-r--r--language/anope.fr_FR.po2831
-rw-r--r--modules/chanserv/access.cpp22
-rw-r--r--modules/chanserv/main/chanaccess.cpp20
-rw-r--r--modules/chanserv/mode.cpp29
-rw-r--r--modules/memoserv/main/memoserv.cpp33
-rw-r--r--modules/memoserv/read.cpp12
-rw-r--r--modules/nickserv/main/account.cpp9
-rw-r--r--modules/nickserv/main/account.h4
-rw-r--r--modules/nickserv/main/accounttype.cpp1
-rw-r--r--modules/nickserv/main/accounttype.h1
-rw-r--r--modules/nickserv/register.cpp4
-rw-r--r--modules/operserv/list.cpp9
-rw-r--r--modules/protocol/charybdis.cpp1
-rw-r--r--modules/protocol/plexus.cpp36
-rw-r--r--modules/sqlite.cpp6
-rw-r--r--src/logger.cpp4
-rw-r--r--src/mail.cpp7
26 files changed, 1598 insertions, 1517 deletions
diff --git a/data/inspircd20.example.conf b/data/inspircd20.example.conf
index 347fb52ea..5eaccf3ce 100644
--- a/data/inspircd20.example.conf
+++ b/data/inspircd20.example.conf
@@ -338,6 +338,14 @@ channelmode
character = "T"
}
+#channelmode
+{
+ name = "OFFICIALJOIN"
+ character = "Y"
+ status = "!"
+ level = 6
+}
+
channelmode
{
name = "OP"
@@ -353,6 +361,14 @@ channelmode
oper_only = yes
}
+#channelmode
+{
+ name = "OPERPREFIX"
+ character = "y"
+ status = "!"
+ level = 6
+}
+
channelmode
{
name = "PERM"
diff --git a/include/config.h b/include/config.h
index b6b36b726..25c8f6166 100644
--- a/include/config.h
+++ b/include/config.h
@@ -26,7 +26,7 @@ namespace Configuration
{
class CoreExport Block
{
- friend struct Conf;
+ friend class Conf;
public:
typedef Anope::map<Anope::string> item_map;
diff --git a/include/defs.h b/include/defs.h
index 989ce3e5b..bd4f2871e 100644
--- a/include/defs.h
+++ b/include/defs.h
@@ -33,7 +33,6 @@ struct ChanUserContainer;
class ClientSocket;
class Command;
class CommandSource;
-namespace Configuration { struct Conf; }
class ConnectionSocket;
class Entry;
class ExtensibleBase;
diff --git a/include/modes.h b/include/modes.h
index 706b0b716..49e923cda 100644
--- a/include/modes.h
+++ b/include/modes.h
@@ -23,6 +23,8 @@
#include "anope.h"
#include "base.h"
+namespace Configuration { class Conf; }
+
/** The different types of modes
*/
enum ModeType
diff --git a/include/modules/chanserv/chanaccess.h b/include/modules/chanserv/chanaccess.h
index dff39c0f8..ec05a7ae5 100644
--- a/include/modules/chanserv/chanaccess.h
+++ b/include/modules/chanserv/chanaccess.h
@@ -83,40 +83,17 @@ class CoreExport ChanAccess : public Serialize::Object
*/
virtual void AccessUnserialize(const Anope::string &data) anope_abstract;
+ virtual int Compare(ChanAccess *other) anope_abstract;
+
/* Comparison operators to other Access entries */
- virtual bool operator>(ChanAccess &other)
+ bool operator>(ChanAccess &other)
{
-// const std::vector<Privilege> &privs = service->GetPrivileges();
-// for (unsigned i = privs.size(); i > 0; --i)
-// {
-// bool this_p = this->HasPriv(privs[i - 1].name),
-// other_p = other.HasPriv(privs[i - 1].name);
-//
-// if (!this_p && !other_p)
-// continue;
-//
-// return this_p && !other_p;
-// }
-
- return false;
+ return Compare(&other) > 0;
}
-#warning "move this out"
- virtual bool operator<(ChanAccess &other)
+ bool operator<(ChanAccess &other)
{
-// const std::vector<Privilege> &privs = service->GetPrivileges();
-// for (unsigned i = privs.size(); i > 0; --i)
-// {
-// bool this_p = this->HasPriv(privs[i - 1].name),
-// other_p = other.HasPriv(privs[i - 1].name);
-//
-// if (!this_p && !other_p)
-// continue;
-//
-// return !this_p && other_p;
-// }
-
- return false;
+ return Compare(&other) < 0;
}
bool operator>=(ChanAccess &other)
diff --git a/include/modules/chanserv/main/chanaccess.h b/include/modules/chanserv/main/chanaccess.h
index fb78056ea..ca6661a5b 100644
--- a/include/modules/chanserv/main/chanaccess.h
+++ b/include/modules/chanserv/main/chanaccess.h
@@ -45,4 +45,6 @@ class ChanAccessImpl : public ChanServ::ChanAccess
Anope::string Mask() override;
bool Matches(const User *u, NickServ::Account *acc) override;
+
+ int Compare(ChanAccess *other) override;
};
diff --git a/include/modules/nickserv/account.h b/include/modules/nickserv/account.h
index ebe1061b6..8dc5ad7c8 100644
--- a/include/modules/nickserv/account.h
+++ b/include/modules/nickserv/account.h
@@ -30,9 +30,6 @@ class CoreExport Account : public Serialize::Object
public:
static constexpr const char *const NAME = "account";
-#warning "move lastmail to a field"
- /* Last time an email was sent to this user */
- time_t lastmail = 0;
/* Users online now logged into this account */
std::vector<User *> users;
@@ -120,6 +117,9 @@ class CoreExport Account : public Serialize::Object
virtual MemoServ::MemoInfo *GetMemos() anope_abstract;
virtual unsigned int GetChannelCount() anope_abstract;
+
+ virtual time_t GetLastMail() anope_abstract;
+ virtual void SetLastMail(time_t) anope_abstract;
};
} // namespace NickServ
diff --git a/include/modules/protocol/plexus.h b/include/modules/protocol/plexus.h
index 4afbc391e..4d35cdd1f 100644
--- a/include/modules/protocol/plexus.h
+++ b/include/modules/protocol/plexus.h
@@ -53,6 +53,14 @@ class NOOP : public messages::NOOP
void Send(Server *s, bool mode) override;
};
+class SASL : public messages::SASL
+{
+ public:
+ using messages::SASL::SASL;
+
+ void Send(const ::SASL::Message &) override;
+};
+
class Topic : public messages::Topic
{
public:
@@ -69,6 +77,14 @@ class SVSJoin : public messages::SVSJoin
void Send(const MessageSource &source, User *u, const Anope::string &chan, const Anope::string &key) override;
};
+class SVSLogin : public messages::SVSLogin
+{
+ public:
+ using messages::SVSLogin::SVSLogin;
+
+ void Send(const Anope::string &uid, const Anope::string &acc, const Anope::string &vident, const Anope::string &vhost) override;
+};
+
class SVSNick : public messages::SVSNick
{
public:
@@ -113,8 +129,10 @@ class Proto : public ts6::Proto
class Encap : public IRCDMessage
{
+ ServiceReference<SASL::Service> sasl;
+
public:
- Encap(Module *creator) : IRCDMessage(creator, "ENCAP", 4) { SetFlag(IRCDMESSAGE_REQUIRE_SERVER); }
+ Encap(Module *creator) : IRCDMessage(creator, "ENCAP", 4) { SetFlag(IRCDMESSAGE_REQUIRE_SERVER); SetFlag(IRCDMESSAGE_SOFT_LIMIT); }
void Run(MessageSource &source, const std::vector<Anope::string> &params) override;
};
diff --git a/include/serialize.h b/include/serialize.h
index 8137e18e9..497e28866 100644
--- a/include/serialize.h
+++ b/include/serialize.h
@@ -718,7 +718,7 @@ class Serialize::ObjectField : public CommonFieldBase<TypeImpl, T>
this->is_object = true;
}
- T GetField(TypeImpl *s)
+ T GetField(TypeImpl *s) override
{
T *t = this->Get_(s);
diff --git a/language/anope.fr_FR.po b/language/anope.fr_FR.po
index 4059d8790..9bcb405e9 100644
--- a/language/anope.fr_FR.po
+++ b/language/anope.fr_FR.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Anope\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-10-25 00:23+0200\n"
-"PO-Revision-Date: 2014-10-28 18:47+0100\n"
+"POT-Creation-Date: 2017-01-16 18:59-0500\n"
+"PO-Revision-Date: 2017-02-04 20:52+0100\n"
"Last-Translator: Thomas Fargeix <t.fargeix@gmail.com>\n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.8.7.1\n"
#: modules/commands/os_forbid.cpp:312
#, c-format
@@ -28,17 +28,17 @@ msgstr "%d canau(x) vidé(s) et %d canau(x) supprimé(s)."
msgid "%d nickname(s) dropped."
msgstr "%d pseudo(s) effacé(s)."
-#: modules/commands/cs_xop.cpp:222
+#: modules/commands/cs_xop.cpp:219
#, c-format
msgid "%s added to %s %s list."
msgstr "%1$s ajouté à la liste des %3$s de %2$s."
-#: modules/commands/cs_access.cpp:223
+#: modules/commands/cs_access.cpp:225
#, c-format
msgid "%s added to %s access list at level %d."
msgstr "%s ajouté à la liste d'accès de %s avec le niveau %d."
-#: modules/commands/cs_access.cpp:221
+#: modules/commands/cs_access.cpp:223
#, c-format
msgid "%s added to %s access list at privilege %s (level %d)"
msgstr "%s ajouté à la liste d'accès de %s avec le privilège %s (niveau %d)"
@@ -68,12 +68,12 @@ msgstr "%s ajouté à la liste des certificats de %s."
msgid "%s added to ignore list."
msgstr "%s ajouté à la liste d'ignore."
-#: modules/commands/os_sxline.cpp:408 modules/commands/os_sxline.cpp:641
+#: modules/commands/os_sxline.cpp:415 modules/commands/os_sxline.cpp:649
#, c-format
msgid "%s added to the %s list."
msgstr "%s ajouté à la liste des %s."
-#: modules/commands/os_akill.cpp:202
+#: modules/commands/os_akill.cpp:203
#, c-format
msgid "%s added to the AKILL list."
msgstr "%s ajouté à la liste d'AKILL."
@@ -83,8 +83,7 @@ msgstr "%s ajouté à la liste d'AKILL."
msgid ""
"%s allows you to execute \"fantasy\" commands in the channel.\n"
"Fantasy commands are commands that can be executed from messaging a\n"
-"channel, and provide a more convenient way to execute commands. Commands "
-"that\n"
+"channel, and provide a more convenient way to execute commands. Commands that\n"
"require a channel as a parameter will automatically have that parameter\n"
"given.\n"
msgstr ""
@@ -92,8 +91,7 @@ msgstr ""
"Les commandes fantaisie sont des commandes qui peuvent être exécutées en\n"
"envoyant un message sur un canal, et fournissent une façon plus pratique "
"d'exécuter\n"
-"les commandes. Les commandes qui nécessitent un paramètre de canal auront "
-"ce\n"
+"les commandes. Les commandes qui nécessitent un paramètre de canal auront ce\n"
"paramètre automatiquement.\n"
#: modules/pseudoclients/botserv.cpp:148
@@ -116,7 +114,7 @@ msgstr ""
"%s%s commande. Pour plus d'informations sur\n"
"une commande spécifique, tapez %s%s %s commande.\n"
-#: modules/pseudoclients/nickserv.cpp:462
+#: modules/pseudoclients/nickserv.cpp:466
#, c-format
msgid ""
"%s allows you to register a nickname and\n"
@@ -133,7 +131,7 @@ msgstr ""
"d'informations sur une certaine commande, tapez\n"
"%s%s %s commande.\n"
-#: modules/pseudoclients/nickserv.cpp:469
+#: modules/pseudoclients/nickserv.cpp:473
#, c-format
msgid ""
"%s allows you to register an account.\n"
@@ -149,7 +147,7 @@ msgstr ""
"Pour plus d'informations sur une commande spécifique, tapez\n"
"%s%s %s commande.\n"
-#: modules/pseudoclients/chanserv.cpp:248
+#: modules/pseudoclients/chanserv.cpp:255
#, c-format
msgid ""
"%s allows you to register and control various\n"
@@ -184,28 +182,28 @@ msgstr "%s existe déjà dans la liste de kicks automatiques de %s."
msgid "%s already exists on the EXCEPTION list."
msgstr "%s existe déjà dans la liste des exceptions."
-#: modules/commands/bs_kick.cpp:216 modules/commands/bs_kick.cpp:391
-#: modules/commands/bs_kick.cpp:522 modules/commands/bs_kick.cpp:653
+#: modules/commands/bs_kick.cpp:214 modules/commands/bs_kick.cpp:389
+#: modules/commands/bs_kick.cpp:520 modules/commands/bs_kick.cpp:651
#, c-format
msgid "%s cannot be taken as times to ban."
msgstr "%s ne peut être utilisé comme nombre de fois avant un ban."
-#: modules/commands/os_mode.cpp:157
+#: modules/commands/os_mode.cpp:163
#, c-format
msgid "%s changed your usermodes to %s."
msgstr "%s a changé vos modes utilisateur en %s."
-#: modules/commands/os_list.cpp:46
+#: modules/commands/os_list.cpp:47
#, c-format
msgid "%s channel list:"
msgstr "Liste de canaux de %s :"
-#: modules/commands/cs_xop.cpp:350
+#: modules/commands/cs_xop.cpp:343
#, c-format
msgid "%s deleted from %s %s list."
msgstr "%1$s supprimé de la liste des %3$s de %2$s."
-#: modules/commands/cs_access.cpp:324
+#: modules/commands/cs_access.cpp:326
#, c-format
msgid "%s deleted from %s access list."
msgstr "%s supprimé de la liste d'accès de %s."
@@ -240,12 +238,12 @@ msgstr "%s supprimé de la liste des exceptions à la limitation de sessions."
msgid "%s deleted from the %s list."
msgstr "%s supprimé de la liste des %s."
-#: modules/commands/os_akill.cpp:245
+#: modules/commands/os_akill.cpp:246
#, c-format
msgid "%s deleted from the AKILL list."
msgstr "%s supprimé de la liste d'AKILL."
-#: modules/commands/cs_access.cpp:683
+#: modules/commands/cs_access.cpp:685
#, c-format
msgid "%s disabled on channel %s."
msgstr "Le niveau %s est maintenant désactivé sur le canal %s."
@@ -270,7 +268,7 @@ msgstr "%s a été PART de %s."
msgid "%s has been unbanned from %s."
msgstr "%s a été débanni de %s."
-#: modules/commands/ns_alist.cpp:101
+#: modules/commands/ns_alist.cpp:110
#, c-format
msgid "%s has no access in any channels."
msgstr "%s n'a accès à aucun canal."
@@ -290,7 +288,7 @@ msgstr "%s a trop de canaux enregistrés."
msgid "%s is a super administrator."
msgstr "%s est un super-administrateur."
-#: modules/pseudoclients/memoserv.cpp:202
+#: modules/pseudoclients/memoserv.cpp:214
#, c-format
msgid ""
"%s is a utility allowing IRC users to send short\n"
@@ -328,7 +326,7 @@ msgstr "%s ajouté à votre liste d'ignore."
msgid "%s is already suspended."
msgstr "%s est déjà suspendu."
-#: modules/commands/ms_rsend.cpp:56 modules/commands/ms_send.cpp:55
+#: modules/commands/ms_send.cpp:55 modules/commands/ms_rsend.cpp:56
#, c-format
msgid "%s is not a registered unforbidden nick or channel."
msgstr "%s n'est pas un pseudo ou canal enregistré qui n'est pas interdit."
@@ -338,17 +336,17 @@ msgstr "%s n'est pas un pseudo ou canal enregistré qui n'est pas interdit."
msgid "%s is not a valid ban type."
msgstr "%s n'est pas un type de ban valide."
-#: modules/commands/bs_info.cpp:102
+#: modules/commands/bs_info.cpp:101
#, c-format
msgid "%s is not a valid bot or registered channel."
msgstr "%s n'est pas un bot ou canal enregistré valide."
-#: include/language.h:87
+#: include/language.h:86
#, c-format
msgid "%s is not a valid e-mail address."
msgstr "%s n'est pas une adresse email valide."
-#: include/language.h:81
+#: include/language.h:80
#, c-format
msgid "%s is not currently on channel %s."
msgstr "%s n'est pas actuellement sur le canal %s."
@@ -363,7 +361,7 @@ msgstr "%s n'est pas sur %s."
msgid "%s is not on the ignore list."
msgstr "%s n'a pas été trouvé dans la liste des ignorés."
-#: modules/commands/cs_status.cpp:75
+#: modules/commands/cs_status.cpp:90
#, c-format
msgid "%s is on the auto kick list of %s (%s)."
msgstr "%s est dans la liste de kicks automatiques de %s (%s)."
@@ -373,31 +371,35 @@ msgstr "%s est dans la liste de kicks automatiques de %s (%s)."
msgid "%s is the founder of %s."
msgstr "%s est le fondateur de %s."
-#: modules/commands/cs_status.cpp:64
+#: modules/commands/cs_status.cpp:78
+#, c-format
+msgid "%s matches access entry %s (from entry %s), which has privilege %s."
+msgstr "%s correspond à l'entrée d'accès %s (venant de %s), qui a le privilège %s."
+
+#: modules/commands/cs_status.cpp:71
#, c-format
msgid "%s matches access entry %s, which has privilege %s."
msgstr "%s correspond à l'entrée d'accès %s, qui a le privilège %s."
-#: include/language.h:110
+#: include/language.h:109
#, c-format
msgid ""
-"%s matches an except on %s and cannot be banned until the except has been "
-"removed."
+"%s matches an except on %s and cannot be banned until the except has been removed."
msgstr ""
"%s correspond à une exception sur %s et ne peut pas être banni tant que "
"l'exception n'a pas été supprimée."
-#: modules/commands/cs_status.cpp:81
+#: modules/commands/cs_status.cpp:96
#, c-format
msgid "%s matches auto kick entry %s on %s (%s)."
msgstr "%s correspond à l'entrée d'auto kick %s sur %s (%s)."
-#: modules/commands/cs_xop.cpp:360
+#: modules/commands/cs_xop.cpp:353
#, c-format
msgid "%s not found on %s %s list."
msgstr "%1$s introuvable sur la liste des %3$s de %2$s."
-#: modules/commands/cs_access.cpp:336 modules/commands/cs_flags.cpp:254
+#: modules/commands/cs_flags.cpp:255 modules/commands/cs_access.cpp:338
#, c-format
msgid "%s not found on %s access list."
msgstr "%s introuvable sur la liste d'accès de %s."
@@ -430,11 +432,10 @@ msgstr "%s n'a pas été trouvé dans la liste des ignorés."
#: modules/commands/os_session.cpp:238
#, c-format
msgid ""
-"%s not found on session list, but has a limit of %d because it matches entry:"
-" %s."
+"%s not found on session list, but has a limit of %d because it matches entry: %s."
msgstr ""
-"%s non trouvé sur la liste de sessions, mais a une limite de %d parce "
-"l'entrée suivante correspond : %s."
+"%s non trouvé sur la liste de sessions, mais a une limite de %d parce l'entrée "
+"suivante correspond : %s."
#: modules/commands/os_session.cpp:418
#, c-format
@@ -446,12 +447,12 @@ msgstr "%s non trouvé sur la liste des exceptions à la limitation de session
msgid "%s not found on the %s list."
msgstr "%s introuvable sur la liste des %s."
-#: modules/commands/os_akill.cpp:236
+#: modules/commands/os_akill.cpp:237
#, c-format
msgid "%s not found on the AKILL list."
msgstr "%s introuvable sur la liste d'AKILL."
-#: modules/commands/cs_flags.cpp:250
+#: modules/commands/cs_flags.cpp:251
#, c-format
msgid "%s removed from the %s access list."
msgstr "%s supprimé de la liste d'accès de %s."
@@ -461,7 +462,7 @@ msgstr "%s supprimé de la liste d'accès de %s."
msgid "%s removed from the ignore list."
msgstr "%s supprimé de la liste d'ignorés."
-#: modules/commands/os_list.cpp:151
+#: modules/commands/os_list.cpp:157
#, c-format
msgid "%s users list:"
msgstr "Liste des utilisateurs de %s :"
@@ -481,24 +482,24 @@ msgstr "%s est ignoré pour %s."
msgid "%s will now permanently be ignored."
msgstr "%s est ignoré définitivement."
-#: include/language.h:67
+#: include/language.h:66
#, c-format
msgid "%s%s HELP %s for more information."
msgstr "%s%s HELP %s pour plus d'informations."
-#: modules/commands/bs_bot.cpp:254
+#: modules/commands/bs_bot.cpp:270
msgid "ADD nick user host real"
msgstr "ADD pseudo user host realname"
-#: modules/commands/bs_bot.cpp:255
+#: modules/commands/bs_bot.cpp:271
msgid "CHANGE oldnick newnick [user [host [real]]]"
-msgstr "CHANGE ancien-nick nouveau-nick [user [host [realname]]]"
+msgstr "CHANGE ancien-pseudo nouveau-pseudo [user [host [realname]]]"
-#: modules/commands/bs_bot.cpp:256
+#: modules/commands/bs_bot.cpp:272
msgid "DEL nick"
msgstr "DEL pseudo"
-#: modules/commands/os_session.cpp:601
+#: modules/commands/os_session.cpp:560
msgid ""
"EXCEPTION ADD adds the given host mask to the exception list.\n"
"Note that nick!user@host and user@host masks are invalid!\n"
@@ -512,9 +513,6 @@ msgid ""
" \n"
"EXCEPTION DEL removes the given mask from the exception list.\n"
" \n"
-"EXCEPTION MOVE moves exception num to position. The\n"
-"sessions inbetween will be shifted up or down to fill the gap.\n"
-" \n"
"EXCEPTION LIST and EXCEPTION VIEW show all current\n"
"sessions if the optional mask is given, the list is limited\n"
"to those sessions matching the mask. The difference is that\n"
@@ -526,13 +524,12 @@ msgid ""
"their host matches."
msgstr ""
"EXCEPTION ADD ajoute le masque donné à la liste des exceptions.\n"
-"Notez que les masques nick!user@host et user@host sont invalides !\n"
+"Notez que les masques pseudo!user@host et user@host sont invalides !\n"
"Seuls les masques d'hôtes réels, tels que box.host.dom ou *.host.dom,\n"
-"sont autorisés parce que la limitation de sessions ne prend pas en compte "
-"le\n"
+"sont autorisés parce que la limitation de sessions ne prend pas en compte le\n"
"pseudo ou l'utilisateur. limite doit être un nombre supérieur ou égal à\n"
-"zéro. Ceci détermine combien de sessions sont autorisées simultanément pour\n"
-"cet hôte. Une valeur de zéro signifie que l'hôte n'a pas de limite de\n"
+"zéro. Cette limite définit combien de sessions sont autorisées simultanément\n"
+"pour cet hôte. Une valeur de zéro signifie que l'hôte n'a pas de limite de\n"
"sessions. Consultez l'aide de AKILL pour les détails sur le format du\n"
"paramètre optionnel expiration.\n"
" \n"
@@ -546,7 +543,7 @@ msgstr ""
"exceptions actuelles. Si un masque est indiqué, la liste ne montre que\n"
"les exceptions correspondantes au masque. La différence est que\n"
"EXCEPTION VIEW est plus détaillée, puisqu'elle affiche\n"
-"également le pseudo de la personne qui a ajouté l'exception, sa \n"
+"également le pseudo de la personne qui a ajouté l'exception, la \n"
"limite de sessions, la raison, le masque et la date d'échéance.\n"
" \n"
"Notez qu'un client se connectant \"utilisera\" la première \n"
@@ -563,7 +560,7 @@ msgstr ""
"et empêche les opérateurs d'opérer sur le serveur indiqué.\n"
"REVOKE supprime cette restriction."
-#: modules/commands/cs_access.cpp:609
+#: modules/commands/cs_access.cpp:611
#, c-format
msgid ""
"User access levels can be seen by using the\n"
@@ -583,7 +580,7 @@ msgstr "[auto-memo] Le mémo que vous avez envoyé a %s a été vu."
msgid "[target] [password]"
msgstr "[cible] [motdepasse]"
-#: modules/commands/ns_set.cpp:435
+#: modules/commands/ns_set.cpp:448
msgid "address"
msgstr "adresse"
@@ -591,11 +588,11 @@ msgstr "adresse"
msgid "botname {ON|OFF}"
msgstr "nom-du-bot {ON|OFF}"
+#: modules/commands/bs_assign.cpp:91 modules/commands/cs_info.cpp:20
+#: modules/commands/cs_suspend.cpp:152 modules/commands/cs_getkey.cpp:20
+#: modules/commands/cs_log.cpp:106 modules/commands/cs_sync.cpp:20
#: modules/extra/stats/cs_fantasy_top.cpp:39
-#: modules/extra/stats/cs_fantasy_top.cpp:51 modules/commands/cs_info.cpp:20
-#: modules/commands/cs_sync.cpp:20 modules/commands/cs_suspend.cpp:152
-#: modules/commands/cs_log.cpp:106 modules/commands/bs_assign.cpp:91
-#: modules/commands/cs_getkey.cpp:20
+#: modules/extra/stats/cs_fantasy_top.cpp:51
msgid "channel"
msgstr "canal"
@@ -619,8 +616,8 @@ msgstr "canal masque [raison]"
msgid "channel modes"
msgstr "canal modes"
-#: modules/commands/cs_set.cpp:264 modules/commands/cs_set.cpp:962
-#: modules/commands/bs_assign.cpp:20
+#: modules/commands/bs_assign.cpp:20 modules/commands/cs_set.cpp:264
+#: modules/commands/cs_set.cpp:961
msgid "channel nick"
msgstr "canal pseudo"
@@ -628,7 +625,7 @@ msgstr "canal pseudo"
msgid "channel nick [reason]"
msgstr "canal pseudo [raison]"
-#: modules/commands/cs_clone.cpp:21
+#: modules/commands/cs_clone.cpp:115
msgid "channel target [what]"
msgstr "canal cible [quoi]"
@@ -648,11 +645,11 @@ msgstr "canal utilisateur raison"
msgid "channel what"
msgstr "canal [quoi]"
-#: modules/commands/cs_xop.cpp:488
+#: modules/commands/cs_xop.cpp:481
msgid "channel ADD mask"
msgstr "canal ADD masque"
-#: modules/commands/cs_access.cpp:497
+#: modules/commands/cs_access.cpp:499
msgid "channel ADD mask level"
msgstr "canal ADD masque niveau"
@@ -672,13 +669,13 @@ msgstr "canal ADD {pseudo | masque} [raison]"
msgid "channel APPEND topic"
msgstr "canal APPEND sujet"
-#: modules/commands/cs_access.cpp:501 modules/commands/cs_xop.cpp:491
-#: modules/commands/cs_akick.cpp:428 modules/commands/cs_flags.cpp:375
-#: modules/commands/cs_entrymsg.cpp:197 modules/commands/bs_badwords.cpp:374
+#: modules/commands/bs_badwords.cpp:374 modules/commands/cs_xop.cpp:484
+#: modules/commands/cs_entrymsg.cpp:197 modules/commands/cs_flags.cpp:376
+#: modules/commands/cs_akick.cpp:428 modules/commands/cs_access.cpp:503
msgid "channel CLEAR"
msgstr "canal CLEAR"
-#: modules/commands/cs_mode.cpp:678
+#: modules/commands/cs_mode.cpp:726
msgid "channel CLEAR [what]"
msgstr "canal CLEAR [quoi]"
@@ -690,7 +687,7 @@ msgstr "canal CLEAR [ALL]"
msgid "channel DEL num"
msgstr "canal DEL num"
-#: modules/commands/cs_access.cpp:498 modules/commands/cs_xop.cpp:489
+#: modules/commands/cs_xop.cpp:482 modules/commands/cs_access.cpp:500
msgid "channel DEL {mask | entry-num | list}"
msgstr "canal DEL {masque | numéro-entrée | liste}"
@@ -706,7 +703,7 @@ msgstr "canal DEL {mot | numéro-entrée | liste}"
msgid "channel ENFORCE"
msgstr "canal ENFORCE"
-#: modules/commands/cs_access.cpp:742 modules/commands/cs_entrymsg.cpp:196
+#: modules/commands/cs_entrymsg.cpp:196 modules/commands/cs_access.cpp:744
msgid "channel LIST"
msgstr "canal LIST"
@@ -714,28 +711,28 @@ msgstr "canal LIST"
msgid "channel LIST [mask | entry-num | list]"
msgstr "canal LIST [masque | numéro-entrée | liste]"
-#: modules/commands/cs_access.cpp:499 modules/commands/cs_xop.cpp:490
-#: modules/commands/bs_badwords.cpp:373
+#: modules/commands/bs_badwords.cpp:373 modules/commands/cs_xop.cpp:483
+#: modules/commands/cs_access.cpp:501
msgid "channel LIST [mask | list]"
msgstr "canal LIST [masque | liste]"
-#: modules/commands/cs_flags.cpp:374
+#: modules/commands/cs_flags.cpp:375
msgid "channel LIST [mask | +flags]"
msgstr "canal LIST [masque | +flags]"
-#: modules/commands/cs_mode.cpp:676
+#: modules/commands/cs_mode.cpp:724
msgid "channel LOCK {ADD|DEL|SET|LIST} [what]"
msgstr "canal LOCK {ADD|DEL|SET|LIST} [quoi]"
-#: modules/commands/cs_access.cpp:743
+#: modules/commands/cs_access.cpp:745
msgid "channel RESET"
msgstr "canal RESET"
-#: modules/commands/cs_mode.cpp:677
+#: modules/commands/cs_mode.cpp:725
msgid "channel SET modes"
msgstr "canal SET modes"
-#: modules/commands/cs_access.cpp:740
+#: modules/commands/cs_access.cpp:742
msgid "channel SET type level"
msgstr "canal SET type niveau"
@@ -743,7 +740,7 @@ msgstr "canal SET type niveau"
msgid "channel VIEW [mask | entry-num | list]"
msgstr "canal VIEW [masque | numéro-entrée | liste]"
-#: modules/commands/cs_access.cpp:500
+#: modules/commands/cs_access.cpp:502
msgid "channel VIEW [mask | list]"
msgstr "canal VIEW [masque | liste]"
@@ -755,11 +752,11 @@ msgstr "canal [description]"
msgid "channel [nick]"
msgstr "canal [pseudo]"
-#: modules/commands/cs_set_misc.cpp:95
+#: modules/commands/cs_set_misc.cpp:96
msgid "channel [parameters]"
msgstr "canal [paramètres]"
-#: modules/commands/cs_mode.cpp:749 modules/commands/cs_status.cpp:20
+#: modules/commands/cs_status.cpp:20 modules/commands/cs_mode.cpp:797
msgid "channel [user]"
msgstr "canal [user]"
@@ -767,11 +764,11 @@ msgstr "canal [user]"
msgid "channel [+expiry] [reason]"
msgstr "canal [+expiration] [raison]"
-#: modules/commands/cs_ban.cpp:41
+#: modules/commands/cs_ban.cpp:40
msgid "channel [+expiry] {nick | mask} [reason]"
msgstr "canal [+expiration] {pseudo | masque} [raison]"
-#: modules/commands/cs_flags.cpp:373
+#: modules/commands/cs_flags.cpp:374
msgid "channel [MODIFY] mask changes"
msgstr "canal [MODIFY] masque modifications"
@@ -783,53 +780,53 @@ msgstr "canal [SET] [sujet]"
msgid "channel [UNLOCK|LOCK]"
msgstr "canal [UNLOCK|LOCK]"
-#: modules/commands/greet.cpp:20 modules/commands/bs_assign.cpp:154
+#: modules/commands/bs_assign.cpp:154 modules/commands/greet.cpp:20
#: modules/fantasy.cpp:20
msgid "channel {ON|OFF}"
msgstr "canal {ON|OFF}"
-#: modules/commands/bs_kick.cpp:493
+#: modules/commands/bs_kick.cpp:491
msgid "channel {ON|OFF} [ttb [ln [secs]]]"
msgstr "canal {ON|OFF} [ttb [ln [secs]]]"
-#: modules/commands/bs_kick.cpp:363
+#: modules/commands/bs_kick.cpp:361
msgid "channel {ON|OFF} [ttb [min [percent]]]"
msgstr "canal {ON|OFF} [ttb [min [pourcentage]]]"
-#: modules/commands/bs_kick.cpp:625
+#: modules/commands/bs_kick.cpp:623
msgid "channel {ON|OFF} [ttb [num]]"
msgstr "canal {ON|OFF} [ttb [num]]"
-#: modules/commands/bs_kick.cpp:254 modules/commands/bs_kick.cpp:290
-#: modules/commands/bs_kick.cpp:329 modules/commands/bs_kick.cpp:459
-#: modules/commands/bs_kick.cpp:591 modules/commands/bs_kick.cpp:713
-#: modules/commands/bs_kick.cpp:747
+#: modules/commands/bs_kick.cpp:252 modules/commands/bs_kick.cpp:288
+#: modules/commands/bs_kick.cpp:327 modules/commands/bs_kick.cpp:457
+#: modules/commands/bs_kick.cpp:589 modules/commands/bs_kick.cpp:724
+#: modules/commands/bs_kick.cpp:758
msgid "channel {ON|OFF} [ttb]"
msgstr "canal {ON|OFF} [ttb]"
-#: modules/commands/cs_access.cpp:741
+#: modules/commands/cs_access.cpp:743
msgid "channel {DIS | DISABLE} type"
msgstr "canal {DIS | DISABLE} type"
-#: modules/commands/cs_set.cpp:885
+#: modules/commands/cs_set.cpp:884
msgid "channel {ON | LEVEL | OFF}"
msgstr "canal {ON | LEVEL | OFF}"
-#: modules/extra/stats/m_chanstats.cpp:10 modules/commands/cs_set.cpp:72
-#: modules/commands/cs_set.cpp:333 modules/commands/cs_set.cpp:398
-#: modules/commands/cs_set.cpp:470 modules/commands/cs_set.cpp:633
-#: modules/commands/cs_set.cpp:695