]> jfr.im git - solanum.git/blobdiff - modules/m_who.c
buildsystem: honor $DESTDIR in install-data-hook
[solanum.git] / modules / m_who.c
index 401afcf4ca4d52147fb5414f70364006a17c80da..d24cf46189d56df6e8c5468acabeb9e5b5f976e6 100644 (file)
@@ -41,6 +41,7 @@
 #include "packet.h"
 #include "s_newconf.h"
 #include "ratelimit.h"
+#include "supported.h"
 
 #define FIELD_CHANNEL    0x0001
 #define FIELD_HOP        0x0002
@@ -62,15 +63,28 @@ struct who_format
        const char *querytype;
 };
 
-static int m_who(struct Client *, struct Client *, int, const char **);
+static int m_who(struct MsgBuf *, struct Client *, struct Client *, int, const char **);
 
 struct Message who_msgtab = {
-       "WHO", 0, 0, 0, MFLG_SLOW,
+       "WHO", 0, 0, 0, 0,
        {mg_unreg, {m_who, 2}, mg_ignore, mg_ignore, mg_ignore, {m_who, 2}}
 };
 
+static int
+_modinit(void)
+{
+       add_isupport("WHOX", isupport_string, "");
+       return 0;
+}
+
+static void
+_moddeinit(void)
+{
+       delete_isupport("WHOX");
+}
+
 mapi_clist_av1 who_clist[] = { &who_msgtab, NULL };
-DECLARE_MODULE_AV1(who, NULL, NULL, who_clist, NULL, NULL, "$Revision: 3350 $");
+DECLARE_MODULE_AV1(who, _modinit, _moddeinit, who_clist, NULL, NULL, "$Revision: 3350 $");
 
 static void do_who_on_channel(struct Client *source_p, struct Channel *chptr,
                              int server_oper, int member,
@@ -89,7 +103,7 @@ static void do_who(struct Client *source_p,
 **      parv[2] = additional selection flag and format options
 */
 static int
-m_who(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
+m_who(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
        static time_t last_used = 0;
        struct Client *target_p;
@@ -454,7 +468,7 @@ append_format(char *buf, size_t bufsize, size_t *pos, const char *fmt, ...)
 
        max = *pos >= bufsize ? 0 : bufsize - *pos;
        va_start(ap, fmt);
-       result = rb_vsnprintf(buf + *pos, max, fmt, ap);
+       result = vsnprintf(buf + *pos, max, fmt, ap);
        va_end(ap);
        *pos += result;
 }
@@ -478,7 +492,7 @@ do_who(struct Client *source_p, struct Client *target_p, struct membership *mspt
        size_t pos;
        const char *q;
 
-       rb_sprintf(status, "%c%s%s",
+       sprintf(status, "%c%s%s",
                   target_p->user->away ? 'G' : 'H', IsOper(target_p) ? "*" : "", msptr ? find_channel_status(msptr, fmt->fields || IsCapable(source_p, CLICAP_MULTI_PREFIX)) : "");
 
        if (fmt->fields == 0)