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_list vl;
|
||||||
va_start(vl, pattern);
|
va_start(vl, pattern);
|
||||||
vsendto_one(to, pattern, vl);
|
vsendto_one(to, pattern, &vl);
|
||||||
va_end(vl);
|
va_end(vl);
|
||||||
}
|
}
|
||||||
|
|
||||||
void vsendto_one(to, pattern, vl)
|
void vsendto_one(aClient *to, char *pattern, const va_list *cvlp)
|
||||||
aClient *to;
|
|
||||||
char *pattern;
|
|
||||||
va_list vl;
|
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
void sendto_one(to, pattern, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)
|
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
|
#endif
|
||||||
|
|
||||||
#ifdef USE_VARARGS
|
#ifdef USE_VARARGS
|
||||||
|
va_list vl;
|
||||||
|
va_copy(vl, *cvlp);
|
||||||
(void)vsprintf(sendbuf, pattern, vl);
|
(void)vsprintf(sendbuf, pattern, vl);
|
||||||
#else
|
#else
|
||||||
(void)sprintf(sendbuf, pattern, p1, p2, p3, p4, p5, p6,
|
(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))
|
if (MyConnect(acptr) && IsRegisteredUser(acptr))
|
||||||
{
|
{
|
||||||
# ifdef USE_VARARGS
|
# ifdef USE_VARARGS
|
||||||
vsendto_prefix_one(acptr, from, pattern, vl);
|
vsendto_prefix_one(acptr, from, pattern, &vl);
|
||||||
# else
|
# else
|
||||||
sendto_prefix_one(acptr, from, pattern, p1, p2,
|
sendto_prefix_one(acptr, from, pattern, p1, p2,
|
||||||
p3, p4, p5, p6, p7, p8);
|
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)
|
if (sentalong[i] == 0)
|
||||||
{
|
{
|
||||||
# ifdef USE_VARARGS
|
# ifdef USE_VARARGS
|
||||||
vsendto_prefix_one(acptr, from, pattern, vl);
|
vsendto_prefix_one(acptr, from, pattern, &vl);
|
||||||
# else
|
# else
|
||||||
sendto_prefix_one(acptr, from, pattern,
|
sendto_prefix_one(acptr, from, pattern,
|
||||||
p1, p2, p3, p4,
|
p1, p2, p3, p4,
|
||||||
@@ -408,7 +407,7 @@ void sendto_common_channels(aClient *user, char *pattern, ...)
|
|||||||
IsMember(cptr, lp->value.chptr))
|
IsMember(cptr, lp->value.chptr))
|
||||||
{
|
{
|
||||||
# ifdef USE_VARARGS
|
# ifdef USE_VARARGS
|
||||||
vsendto_prefix_one(cptr, user, pattern, vl);
|
vsendto_prefix_one(cptr, user, pattern, &vl);
|
||||||
# else
|
# else
|
||||||
sendto_prefix_one(cptr, user, pattern,
|
sendto_prefix_one(cptr, user, pattern,
|
||||||
p1, p2, p3, p4,
|
p1, p2, p3, p4,
|
||||||
@@ -419,7 +418,7 @@ void sendto_common_channels(aClient *user, char *pattern, ...)
|
|||||||
}
|
}
|
||||||
if (MyConnect(user))
|
if (MyConnect(user))
|
||||||
# ifdef USE_VARARGS
|
# ifdef USE_VARARGS
|
||||||
vsendto_prefix_one(user, user, pattern, vl);
|
vsendto_prefix_one(user, user, pattern, &vl);
|
||||||
va_end(vl);
|
va_end(vl);
|
||||||
# else
|
# else
|
||||||
sendto_prefix_one(user, user, pattern, p1, p2, p3, p4,
|
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)
|
for (lp = chptr->members; lp; lp = lp->next)
|
||||||
if (MyConnect(acptr = lp->value.cptr) &&
|
if (MyConnect(acptr = lp->value.cptr) &&
|
||||||
!(lp->flags & CHFL_ZOMBIE))
|
!(lp->flags & CHFL_ZOMBIE))
|
||||||
vsendto_prefix_one(acptr, from, pattern, vl);
|
vsendto_prefix_one(acptr, from, pattern, &vl);
|
||||||
va_end(vl);
|
va_end(vl);
|
||||||
#else
|
#else
|
||||||
for (lp = chptr->members; lp; lp = lp->next)
|
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)))
|
match_it(cptr, mask, what)))
|
||||||
continue;
|
continue;
|
||||||
#ifdef USE_VARARGS
|
#ifdef USE_VARARGS
|
||||||
vsendto_prefix_one(cptr, from, pattern, vl);
|
vsendto_prefix_one(cptr, from, pattern, &vl);
|
||||||
}
|
}
|
||||||
va_end(vl);
|
va_end(vl);
|
||||||
#else
|
#else
|
||||||
@@ -628,7 +627,7 @@ void sendto_all_butone(aClient *one, aClient *from, char *pattern, ...)
|
|||||||
va_start(vl, pattern);
|
va_start(vl, pattern);
|
||||||
for (i = 0; i <= highest_fd; i++)
|
for (i = 0; i <= highest_fd; i++)
|
||||||
if ((cptr = local[i]) && !IsMe(cptr) && one != cptr)
|
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);
|
va_end(vl);
|
||||||
#else
|
#else
|
||||||
for (i = 0; i <= highest_fd; i++)
|
for (i = 0; i <= highest_fd; i++)
|
||||||
@@ -716,7 +715,7 @@ void sendto_ops(char *pattern, ...)
|
|||||||
strcat(fmt_target, " :*** Notice -- ");
|
strcat(fmt_target, " :*** Notice -- ");
|
||||||
strcat(fmt_target, pattern);
|
strcat(fmt_target, pattern);
|
||||||
#ifdef USE_VARARGS
|
#ifdef USE_VARARGS
|
||||||
vsendto_one(cptr, fmt, vl);
|
vsendto_one(cptr, fmt, &vl);
|
||||||
#else
|
#else
|
||||||
sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7);
|
sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7);
|
||||||
#endif
|
#endif
|
||||||
@@ -729,7 +728,7 @@ void sendto_ops(char *pattern, ...)
|
|||||||
strcat(fmt, " :*** Notice -- ");
|
strcat(fmt, " :*** Notice -- ");
|
||||||
strcat(fmt, pattern);
|
strcat(fmt, pattern);
|
||||||
# ifdef USE_VARARGS
|
# ifdef USE_VARARGS
|
||||||
vsendto_one(cptr, fmt, vl);
|
vsendto_one(cptr, fmt, &vl);
|
||||||
# else
|
# else
|
||||||
sendto_one(cptr, fmt, cptr->name, p1, p2, p3, p4, p5, p6, p7);
|
sendto_one(cptr, fmt, cptr->name, p1, p2, p3, p4, p5, p6, p7);
|
||||||
# endif
|
# endif
|
||||||
@@ -778,7 +777,7 @@ void sendto_ops_butone(aClient *one, aClient *from, char *pattern, ...)
|
|||||||
continue; /* ...was the one I should skip */
|
continue; /* ...was the one I should skip */
|
||||||
sentalong[i] = 1;
|
sentalong[i] = 1;
|
||||||
# ifdef USE_VARARGS
|
# ifdef USE_VARARGS
|
||||||
vsendto_prefix_one(cptr->from, from, pattern, vl);
|
vsendto_prefix_one(cptr->from, from, pattern, &vl);
|
||||||
}
|
}
|
||||||
va_end(vl);
|
va_end(vl);
|
||||||
# else
|
# else
|
||||||
@@ -801,15 +800,12 @@ void sendto_prefix_one(aClient *to, aClient *from, char *pattern, ...)
|
|||||||
{
|
{
|
||||||
va_list vl;
|
va_list vl;
|
||||||
va_start(vl, pattern);
|
va_start(vl, pattern);
|
||||||
vsendto_prefix_one(to, from, pattern, vl);
|
vsendto_prefix_one(to, from, pattern, &vl);
|
||||||
va_end(vl);
|
va_end(vl);
|
||||||
}
|
}
|
||||||
|
|
||||||
void vsendto_prefix_one(to, from, pattern, vl)
|
void vsendto_prefix_one(register aClient *to, register aClient *from,
|
||||||
Reg1 aClient *to;
|
char *pattern, const va_list *cvlp)
|
||||||
Reg2 aClient *from;
|
|
||||||
char *pattern;
|
|
||||||
va_list vl;
|
|
||||||
{
|
{
|
||||||
#else
|
#else
|
||||||
void sendto_prefix_one(to, from, pattern, p1, p2, p3, p4, p5, p6, p7, p8)
|
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;
|
int flag = 0;
|
||||||
|
|
||||||
#ifdef USE_VARARGS
|
#ifdef USE_VARARGS
|
||||||
|
va_list vl;
|
||||||
|
va_copy(vl, *cvlp);
|
||||||
par = va_arg(vl, char *);
|
par = va_arg(vl, char *);
|
||||||
#else
|
#else
|
||||||
par = p1;
|
par = p1;
|
||||||
@@ -905,7 +903,7 @@ void sendto_realops(char *pattern, ...)
|
|||||||
strcat(fmt_target, " :*** Notice -- ");
|
strcat(fmt_target, " :*** Notice -- ");
|
||||||
strcat(fmt_target, pattern);
|
strcat(fmt_target, pattern);
|
||||||
#ifdef USE_VARARGS
|
#ifdef USE_VARARGS
|
||||||
vsendto_one(cptr, fmt, vl);
|
vsendto_one(cptr, fmt, &vl);
|
||||||
#else
|
#else
|
||||||
sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7);
|
sendto_one(cptr, fmt, p1, p2, p3, p4, p5, p6, p7);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user