]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/m_map.c
Allow /ojoin !#channel/%#channel, if admin/halfop are enabled.
[irc/rqf/shadowircd.git] / modules / m_map.c
index 4e7cee8ff24bd911af5cbe31ed3c5c642d3a0ffc..c2ab6be4ccd05379cfa4d8568e6de2da6d2928fe 100644 (file)
@@ -28,7 +28,6 @@
 #include "numeric.h"
 #include "send.h"
 #include "s_conf.h"
-#include "sprintf_irc.h"
 #include "scache.h"
 
 #define USER_COL       50      /* display | Users: %d at col 50 */
@@ -49,7 +48,6 @@ static void dump_map(struct Client *client_p, struct Client *root, char *pbuf);
 static char buf[BUFSIZE];
 
 /* m_map
-**     parv[0] = sender prefix
 */
 static int
 m_map(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
@@ -68,7 +66,6 @@ m_map(struct Client *client_p, struct Client *source_p, int parc, const char *pa
 
 /*
 ** mo_map
-**      parv[0] = sender prefix
 */
 static int
 mo_map(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
@@ -87,17 +84,17 @@ mo_map(struct Client *client_p, struct Client *source_p, int parc, const char *p
 static void
 dump_map(struct Client *client_p, struct Client *root_p, char *pbuf)
 {
-       int cnt = 0, i = 0, len;
+       int cnt = 0, i = 0, len, frac;
        struct Client *server_p;
        rb_dlink_node *ptr;
        *pbuf = '\0';
 
-       strlcat(pbuf, root_p->name, BUFSIZE);
+       rb_strlcat(pbuf, root_p->name, BUFSIZE);
        if (has_id(root_p))
        {
-               strlcat(pbuf, "[", BUFSIZE);
-               strlcat(pbuf, root_p->id, BUFSIZE);
-               strlcat(pbuf, "]", BUFSIZE);
+               rb_strlcat(pbuf, "[", BUFSIZE);
+               rb_strlcat(pbuf, root_p->id, BUFSIZE);
+               rb_strlcat(pbuf, "]", BUFSIZE);
        }
        len = strlen(buf);
        buf[len] = ' ';
@@ -110,9 +107,10 @@ dump_map(struct Client *client_p, struct Client *root_p, char *pbuf)
                }
        }
 
-       ircsnprintf(buf + USER_COL, BUFSIZE - USER_COL,
-                " | Users: %5lu (%4.1f%%)", rb_dlink_list_length(&root_p->serv->users),
-                100 * (float) rb_dlink_list_length(&root_p->serv->users) / (float) Count.total);
+       frac = (1000 * rb_dlink_list_length(&root_p->serv->users) + Count.total / 2) / Count.total;
+       rb_snprintf(buf + USER_COL, BUFSIZE - USER_COL,
+                " | Users: %5lu (%2d.%1d%%)", rb_dlink_list_length(&root_p->serv->users),
+                frac / 10, frac % 10);
 
        sendto_one_numeric(client_p, RPL_MAP, form_str(RPL_MAP), buf);