summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/m_map.c25
-rw-r--r--src/numeric.c2
2 files changed, 20 insertions, 7 deletions
diff --git a/modules/m_map.c b/modules/m_map.c
index 36f0648..fb1981c 100644
--- a/modules/m_map.c
+++ b/modules/m_map.c
@@ -44,8 +44,10 @@ static void dump_map(struct Client *client,
dlink_node *ptr = NULL;
struct Client *target_p = NULL;
static char prompt[64];
+ static char buf[IRCD_BUFSIZE];
char *p = prompt + prompt_length;
int cnt = 0;
+ int bufpos = 0;
*p = '\0';
@@ -54,15 +56,26 @@ static void dump_map(struct Client *client,
client->name, prompt, server->name);
else
{
- char buf[IRC_MAXSID + 3] = ""; /* +3 for [, ], \0 */
+ int dashes;
- if (HasUMode(client, UMODE_OPER) && server->id[0])
- snprintf(buf, sizeof(buf), "[%s]", server->id);
+ bufpos += snprintf(buf + bufpos, sizeof(buf) - bufpos, "%s", server->name);
+ if (HasUMode(client, UMODE_OPER) && server->id[0])
+ bufpos += snprintf(buf + bufpos, sizeof(buf) - bufpos, "[%s]", server->id);
+
+ buf[bufpos++] = ' ';
+ dashes = 50 - bufpos - prompt_length;
+ for (; dashes > 0; --dashes)
+ buf[bufpos++] = '-';
+ buf[bufpos++] = ' ';
+ buf[bufpos++] = '|';
+
+ bufpos += snprintf(buf + bufpos, sizeof(buf) - bufpos, " Users %5d (%1.2f%%)",
+ dlink_list_length(&server->serv->client_list), 100 *
+ (float)dlink_list_length(&server->serv->client_list) /
+ (float)Count.total);
sendto_one(client, form_str(RPL_MAP), me.name, client->name,
- prompt, server->name, buf,
- dlink_list_length(&server->serv->client_list),
- dlink_list_length(&server->serv->client_list) * 100 / Count.total);
+ prompt, buf);
}
if (prompt_length > 0)
diff --git a/src/numeric.c b/src/numeric.c
index 1c50f1b..7a0f567 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -49,7 +49,7 @@ static const char *const replies[] =
/* 012 */ NULL,
/* 013 */ NULL,
/* 014 */ NULL,
-/* 015 RPL_MAP */ ":%s 015 %s :%s%s%s [%u clients] (%u%%)",
+/* 015 RPL_MAP */ ":%s 015 %s :%s%s",
/* 016 RPL_MAPMORE */ ":%s 016 %s :%s%s --> *more*",
/* 017 RPL_MAPEND */ ":%s 017 %s :End of /MAP",
/* 018 */ NULL,