Directly link string format to numargs in do_dirlasttype()

This is just a simplification - the string format should always match the arguments passed,
and none of the options are using anything but plain %s formats.

This also requires modifying /RELI to store the invited-channel in .last_msg so that it
can use the numargs = 3 format.
This commit is contained in:
Kevin Easton
2016-05-15 22:29:13 +10:00
parent 2c805c096f
commit 95a422cd27
2 changed files with 10 additions and 25 deletions

View File

@@ -1308,7 +1308,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
char *channel = NULL; int count = -1; char *channel = NULL; int count = -1;
LastMsg *t = NULL; LastMsg *t = NULL;
char *form = NULL; char *form = NULL;
char *sform;
int numargs = 5; int numargs = 5;
int size = 1; int size = 1;
int len = strlen(command); int len = strlen(command);
@@ -1319,7 +1318,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
{ {
t = &last_ctcp_reply[0]; t = &last_ctcp_reply[0];
form = fget_string_var(FORMAT_CTCP_REPLY_FSET); form = fget_string_var(FORMAT_CTCP_REPLY_FSET);
sform = "%s %s %s %s %s";
if (len == 6 && command[len-1] == 'T') if (len == 6 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
} }
@@ -1327,7 +1325,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
{ {
t = &last_sent_ctcp[0]; t = &last_sent_ctcp[0];
form = fget_string_var(FORMAT_SEND_CTCP_FSET); form = fget_string_var(FORMAT_SEND_CTCP_FSET);
sform = "%s %s %s %s %s";
if (len > 4 && command[len-1] == 'T') if (len > 4 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
} }
@@ -1336,7 +1333,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
t = &last_dcc[0]; t = &last_dcc[0];
size = MAX_LAST_MSG; size = MAX_LAST_MSG;
form = fget_string_var(FORMAT_DCC_CHAT_FSET); form = fget_string_var(FORMAT_DCC_CHAT_FSET);
sform = "%s %s %s %s";
if (len > 4 && command[len-1] == 'T') if (len > 4 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
numargs = 4; numargs = 4;
@@ -1346,7 +1342,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
t = &last_sent_dcc[0]; t = &last_sent_dcc[0];
size = MAX_LAST_MSG; size = MAX_LAST_MSG;
form = fget_string_var(FORMAT_DCC_CHAT_FSET); form = fget_string_var(FORMAT_DCC_CHAT_FSET);
sform = "%s %s %s %s";
if (len > 5 && command[len-1] == 'T') if (len > 5 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
numargs = 4; numargs = 4;
@@ -1355,8 +1350,7 @@ BUILT_IN_COMMAND(do_dirlasttype)
{ {
t = &last_invite_channel[0]; t = &last_invite_channel[0];
form = fget_string_var(FORMAT_INVITE_FSET); form = fget_string_var(FORMAT_INVITE_FSET);
numargs = 4; numargs = 3;
sform = "%s %s %s";
if (len > 4 && command[len-1] == 'T') if (len > 4 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
} }
@@ -1365,7 +1359,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
/* ??? */ /* ??? */
t = &last_msg[0]; size = MAX_LAST_MSG; t = &last_msg[0]; size = MAX_LAST_MSG;
form = fget_string_var(FORMAT_RELM_FSET); form = fget_string_var(FORMAT_RELM_FSET);
sform = "%s %s %s %s %s";
if (len > 4 && command[len-1] == 'T') if (len > 4 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
} }
@@ -1374,7 +1367,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
/* ??? */ /* ??? */
t = &last_notice[0]; size = MAX_LAST_MSG; t = &last_notice[0]; size = MAX_LAST_MSG;
form = fget_string_var(FORMAT_RELN_FSET); form = fget_string_var(FORMAT_RELN_FSET);
sform = "%s %s %s %s %s";
if (len > 4 && command[len-1] == 'T') if (len > 4 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
} }
@@ -1383,7 +1375,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
/* ??? */ /* ??? */
t = &last_sent_msg[0]; size = MAX_LAST_MSG; t = &last_sent_msg[0]; size = MAX_LAST_MSG;
form = fget_string_var(FORMAT_RELSM_FSET); form = fget_string_var(FORMAT_RELSM_FSET);
sform = "%s %s %s %s %s";
if (len > 5 && command[len-1] == 'T') if (len > 5 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
} }
@@ -1392,7 +1383,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
/* ??? */ /* ??? */
t = &last_sent_notice[0]; size = MAX_LAST_MSG; t = &last_sent_notice[0]; size = MAX_LAST_MSG;
form = fget_string_var(FORMAT_RELSN_FSET); form = fget_string_var(FORMAT_RELSN_FSET);
sform = "%s %s %s";
numargs = 2; numargs = 2;
if (len > 5 && command[len-1] == 'T') if (len > 5 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
@@ -1402,7 +1392,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
/* ??? */ /* ??? */
t = &last_sent_topic[0]; t = &last_sent_topic[0];
form = fget_string_var(FORMAT_TOPIC_FSET); form = fget_string_var(FORMAT_TOPIC_FSET);
sform = "%s %s %s";
numargs = 2; numargs = 2;
if (len > 5 && command[len-1] == 'T') if (len > 5 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
@@ -1412,7 +1401,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
/* ??? */ /* ??? */
t = &last_sent_wall[0]; t = &last_sent_wall[0];
form = fget_string_var(FORMAT_WALLOP_FSET); form = fget_string_var(FORMAT_WALLOP_FSET);
sform = "%s %s %s %s %s";
if (len > 5 && command[len-1] == 'T') if (len > 5 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
} }
@@ -1420,7 +1408,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
{ {
t = &last_servermsg[0]; size = MAX_LAST_MSG; t = &last_servermsg[0]; size = MAX_LAST_MSG;
form = fget_string_var(FORMAT_RELS_FSET); form = fget_string_var(FORMAT_RELS_FSET);
sform = "%s %s %s %s";
numargs = 4; numargs = 4;
if (len > 4 && command[len-1] == 'T') if (len > 4 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
@@ -1430,7 +1417,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
/* ??? */ /* ??? */
t = &last_topic[0]; t = &last_topic[0];
form = fget_string_var(FORMAT_TOPIC_FSET); form = fget_string_var(FORMAT_TOPIC_FSET);
sform = "%s %s %s";
numargs = 2; numargs = 2;
if (len > 4 && command[len-1] == 'T') if (len > 4 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
@@ -1441,7 +1427,6 @@ BUILT_IN_COMMAND(do_dirlasttype)
t = &last_wall[0]; t = &last_wall[0];
size = MAX_LAST_MSG; size = MAX_LAST_MSG;
form = fget_string_var(FORMAT_WALLOP_FSET); form = fget_string_var(FORMAT_WALLOP_FSET);
sform = "%s %s %s %s";
numargs = 4; numargs = 4;
if (len > 4 && command[len-1] == 'T') if (len > 4 && command[len-1] == 'T')
what = TOPIC; what = TOPIC;
@@ -1472,16 +1457,16 @@ BUILT_IN_COMMAND(do_dirlasttype)
switch(numargs) switch(numargs)
{ {
case 2: case 2:
put_it("%2d %s", count, convert_output_format(form, sform, t[count].time, t[count].to, t[count].last_msg)); put_it("%2d %s", count, convert_output_format(form, "%s %s %s", t[count].time, t[count].to, t[count].last_msg));
break; break;
case 3: case 3:
put_it("%2d %s", count, convert_output_format(form, sform, t[count].time, t[count].from, t[count].last_msg)); put_it("%2d %s", count, convert_output_format(form, "%s %s %s", t[count].time, t[count].from, t[count].last_msg));
break; break;
case 4: case 4:
put_it("%2d %s", count, convert_output_format(form, sform, t[count].time, t[count].from, t[count].to, t[count].last_msg)); put_it("%2d %s", count, convert_output_format(form, "%s %s %s %s", t[count].time, t[count].from, t[count].to, t[count].last_msg));
break; break;
case 5: case 5:
put_it("%2d %s", count, convert_output_format(form, sform, t[count].time, t[count].from, t[count].uh, t[count].to, t[count].last_msg)); put_it("%2d %s", count, convert_output_format(form, "%s %s %s %s %s", t[count].time, t[count].from, t[count].uh, t[count].to, t[count].last_msg));
} }
} }
return; return;
@@ -1537,16 +1522,16 @@ BUILT_IN_COMMAND(do_dirlasttype)
switch(numargs) switch(numargs)
{ {
case 2: case 2:
malloc_strcpy(&p, convert_output_format(form, sform, t[count].time, t[count].to, t[count].last_msg)); malloc_strcpy(&p, convert_output_format(form, "%s %s %s", t[count].time, t[count].to, t[count].last_msg));
break; break;
case 3: case 3:
malloc_strcpy(&p, convert_output_format(form, sform, t[count].time, t[count].from, t[count].last_msg)); malloc_strcpy(&p, convert_output_format(form, "%s %s %s", t[count].time, t[count].from, t[count].last_msg));
break; break;
case 4: case 4:
malloc_strcpy(&p, convert_output_format(form, sform, t[count].time, t[count].from, t[count].to, t[count].last_msg)); malloc_strcpy(&p, convert_output_format(form, "%s %s %s %s", t[count].time, t[count].from, t[count].to, t[count].last_msg));
break; break;
case 5: case 5:
malloc_strcpy(&p, convert_output_format(form, sform, t[count].time, t[count].from, t[count].uh, t[count].to, t[count].last_msg)); malloc_strcpy(&p, convert_output_format(form, "%s %s %s %s %s", t[count].time, t[count].from, t[count].uh, t[count].to, t[count].last_msg));
} }
redirect_msg(channel, what, p, showansi); redirect_msg(channel, what, p, showansi);
new_free(&p); new_free(&p);

View File

@@ -1261,7 +1261,7 @@ static void p_invite(char *from, char **ArgList)
} }
if (!(chan = lookup_channel(invite_channel, from_server, 0))) if (!(chan = lookup_channel(invite_channel, from_server, 0)))
check_auto_join(from_server, from, invite_channel, ArgList[2]); check_auto_join(from_server, from, invite_channel, ArgList[2]);
add_last_type(&last_invite_channel[0], 1, from, FromUserHost, ArgList[1], ArgList[2]?ArgList[2]:empty_string); add_last_type(&last_invite_channel[0], 1, from, FromUserHost, NULL, ArgList[1]);
reset_display_target(); reset_display_target();
} }
} }