diff --git a/common/send.c b/common/send.c old mode 100644 new mode 100755 index 020fe77..17afdff --- a/common/send.c +++ b/common/send.c @@ -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