fix: use const va_list *cvlp and copy (fix from ircu2.10.09)
This commit is contained in:
42
common/send.c
Normal file → Executable file
42
common/send.c
Normal file → Executable file
@@ -168,14 +168,11 @@ void sendto_one(aClient *to, char *pattern, ...)
|
||||
{
|
||||
va_list vl;
|
||||
va_start(vl, pattern);
|
||||
vsendto_one(to, pattern, vl);
|
||||
vsendto_one(to, pattern, &vl);
|
||||
va_end(vl);
|
||||
}
|
||||
|
||||
void vsendto_one(to, pattern, vl)
|
||||
aClient *to;
|
||||
char *pattern;
|
||||
va_list vl;
|
||||
void vsendto_one(aClient *to, char *pattern, const va_list *cvlp)
|
||||
{
|
||||
#else
|
||||
void sendto_one(to, pattern, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)
|
||||
@@ -185,6 +182,8 @@ char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8, *p9, *p10, *p11;
|
||||
#endif
|
||||
|
||||
#ifdef USE_VARARGS
|
||||
va_list vl;
|
||||
va_copy(vl, *cvlp);
|
||||
(void)vsprintf(sendbuf, pattern, vl);
|
||||
#else
|
||||
(void)sprintf(sendbuf, pattern, p1, p2, p3, p4, p5, p6,
|
||||
@@ -308,7 +307,7 @@ void sendto_channel_butone(aClient *one, aClient *from, aChannel *chptr, char *p
|
||||
if (MyConnect(acptr) && IsRegisteredUser(acptr))
|
||||
{
|
||||
# ifdef USE_VARARGS
|
||||
vsendto_prefix_one(acptr, from, pattern, vl);
|
||||
vsendto_prefix_one(acptr, from, pattern, &vl);
|
||||
# else
|
||||
sendto_prefix_one(acptr, from, pattern, p1, p2,
|
||||
p3, p4, p5, p6, p7, p8);
|
||||
@@ -322,7 +321,7 @@ void sendto_channel_butone(aClient *one, aClient *from, aChannel *chptr, char *p
|
||||
if (sentalong[i] == 0)
|
||||
{
|
||||
# ifdef USE_VARARGS
|
||||
vsendto_prefix_one(acptr, from, pattern, vl);
|
||||
vsendto_prefix_one(acptr, from, pattern, &vl);
|
||||
# else
|
||||
sendto_prefix_one(acptr, from, pattern,
|
||||
p1, p2, p3, p4,
|
||||
@@ -408,7 +407,7 @@ void sendto_common_channels(aClient *user, char *pattern, ...)
|
||||
IsMember(cptr, lp->value.chptr))
|
||||
{
|
||||
# ifdef USE_VARARGS
|
||||
vsendto_prefix_one(cptr, user, pattern, vl);
|
||||
vsendto_prefix_one(cptr, user, pattern, &vl);
|
||||
# else
|
||||
sendto_prefix_one(cptr, user, pattern,
|
||||
p1, p2, p3, p4,
|
||||
@@ -419,7 +418,7 @@ void sendto_common_channels(aClient *user, char *pattern, ...)
|
||||
}
|
||||
if (MyConnect(user))
|
||||
# ifdef USE_VARARGS
|
||||
vsendto_prefix_one(user, user, pattern, vl);
|
||||
vsendto_prefix_one(user, user, pattern, &vl);
|
||||
va_end(vl);
|
||||
# else
|
||||
sendto_prefix_one(user, user, pattern, p1, p2, p3, p4,
|
||||
@@ -456,7 +455,7 @@ void sendto_channel_butserv(aChannel *chptr, aClient *from, char *pattern, ...)
|
||||
for (lp = chptr->members; lp; lp = lp->next)
|
||||
if (MyConnect(acptr = lp->value.cptr) &&
|
||||
!(lp->flags & CHFL_ZOMBIE))
|
||||
vsendto_prefix_one(acptr, from, pattern, vl);
|
||||
vsendto_prefix_one(acptr, from, pattern, &vl);
|
||||
va_end(vl);
|
||||
#else
|
||||
for (lp = chptr->members; lp; lp = lp->next)
|
||||
@@ -593,7 +592,7 @@ void sendto_match_butone(aClient *one, aClient *from, char *mask, int what, char
|
||||
match_it(cptr, mask, what)))
|
||||
continue;
|
||||
#ifdef USE_VARARGS
|
||||
vsendto_prefix_one(cptr, from, pattern, vl);
|
||||
vsendto_prefix_one(cptr, from, pattern, &vl);
|
||||
}
|
||||
va_end(vl);
|
||||
#else
|
||||
@@ -628,7 +627,7 @@ void sendto_all_butone(aClient *one, aClient *from, char *pattern, ...)
|
||||
va_start(vl, pattern);
|
||||
for (i = 0; i <= highest_fd; i++)
|
||||
if ((cptr = local[i]) && !IsMe(cptr) && one != cptr)
|
||||
vsendto_prefix_one(cptr, from, pattern, vl);
|
||||
vsendto_prefix_one(cptr, from, pattern, &vl);
|
||||
va_end(vl);
|
||||
#else
|
||||
for (i = 0; i <= highest_fd; i++)
|
||||
@@ -716,7 +715,7 @@ void sendto_ops(char *pattern, ...)
|
||||
strcat(fmt_target, " :*** Notice -- ");
|
||||
strcat(fmt_target, pattern);
|
||||
#ifdef USE_VARARGS
|
||||
vsendto_one(cptr, fmt, vl);
|
||||
vsendto_one(cptr, fmt, &vl);
|
||||
#else
|
||||
sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7);
|
||||
#endif
|
||||
@@ -729,7 +728,7 @@ void sendto_ops(char *pattern, ...)
|
||||
strcat(fmt, " :*** Notice -- ");
|
||||
strcat(fmt, pattern);
|
||||
# ifdef USE_VARARGS
|
||||
vsendto_one(cptr, fmt, vl);
|
||||
vsendto_one(cptr, fmt, &vl);
|
||||
# else
|
||||
sendto_one(cptr, fmt, cptr->name, p1, p2, p3, p4, p5, p6, p7);
|
||||
# endif
|
||||
@@ -778,7 +777,7 @@ void sendto_ops_butone(aClient *one, aClient *from, char *pattern, ...)
|
||||
continue; /* ...was the one I should skip */
|
||||
sentalong[i] = 1;
|
||||
# ifdef USE_VARARGS
|
||||
vsendto_prefix_one(cptr->from, from, pattern, vl);
|
||||
vsendto_prefix_one(cptr->from, from, pattern, &vl);
|
||||
}
|
||||
va_end(vl);
|
||||
# else
|
||||
@@ -801,15 +800,12 @@ void sendto_prefix_one(aClient *to, aClient *from, char *pattern, ...)
|
||||
{
|
||||
va_list vl;
|
||||
va_start(vl, pattern);
|
||||
vsendto_prefix_one(to, from, pattern, vl);
|
||||
vsendto_prefix_one(to, from, pattern, &vl);
|
||||
va_end(vl);
|
||||
}
|
||||
|
||||
void vsendto_prefix_one(to, from, pattern, vl)
|
||||
Reg1 aClient *to;
|
||||
Reg2 aClient *from;
|
||||
char *pattern;
|
||||
va_list vl;
|
||||
void vsendto_prefix_one(register aClient *to, register aClient *from,
|
||||
char *pattern, const va_list *cvlp)
|
||||
{
|
||||
#else
|
||||
void sendto_prefix_one(to, from, pattern, p1, p2, p3, p4, p5, p6, p7, p8)
|
||||
@@ -824,6 +820,8 @@ char *pattern, *p1, *p2, *p3, *p4, *p5, *p6, *p7, *p8;
|
||||
int flag = 0;
|
||||
|
||||
#ifdef USE_VARARGS
|
||||
va_list vl;
|
||||
va_copy(vl, *cvlp);
|
||||
par = va_arg(vl, char *);
|
||||
#else
|
||||
par = p1;
|
||||
@@ -905,7 +903,7 @@ void sendto_realops(char *pattern, ...)
|
||||
strcat(fmt_target, " :*** Notice -- ");
|
||||
strcat(fmt_target, pattern);
|
||||
#ifdef USE_VARARGS
|
||||
vsendto_one(cptr, fmt, vl);
|
||||
vsendto_one(cptr, fmt, &vl);
|
||||
#else
|
||||
sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user