All pastes #228932 Raw Edit

Unnamed

public c v1 · immutable
#228932 ·published 2006-10-30 09:47 UTC
rendered paste body
--- chanserv.c	2006-10-30 10:45:49.141355864 +0100+++ chanserv-new.c	2006-10-30 10:44:15.462597200 +0100@@ -7026,6 +7026,7 @@   {     int ii, arc;     char *tempnix, *tempptr, **arv;+    char *currnick;     struct Luser *currlptr;      /* they want to voice other people */@@ -7039,26 +7040,35 @@     dnicks[0] = '\0';     for (ii = 0; ii < arc; ii++)     {-      if (*arv[ii] == '-')-        currlptr = FindClient(arv[ii] + 1);+      if ((*arv[ii] == '-') || (*arv[ii] == '+'))+        currnick = arv[ii] + 1;       else-        currlptr = FindClient(arv[ii]);+        currnick = arv[ii];+      currlptr = FindClient(currnick);        if (!IsChannelMember(chptr, currlptr))         continue; +      /* Cute little hack to ignore voice requests for autodevoiced nicks.+       * I do hope no nicks start with +, this char can be prefixed to force+       * a voice anyway+       */+      if ((*arv[ii] != '-') && (*arv[ii] != '+') &&+          (GetAccess(cptr, lptr) == cptr->access_lvl[CA_AUTODEOP]))+        continue;+       if (arv[ii][0] == '-')       {         dnicks = (char *) MyRealloc(dnicks, strlen(dnicks)-            + strlen(arv[ii] + 1) + (2 * sizeof(char)));-        strcat(dnicks, arv[ii] + 1);+            + strlen(currnick) + (2 * sizeof(char)));+        strcat(dnicks, currnick);         strcat(dnicks, " ");       }       else       {         vnicks = (char *) MyRealloc(vnicks, strlen(vnicks)-            + strlen(arv[ii]) + (2 * sizeof(char)));-        strcat(vnicks, arv[ii]);+            + strlen(currnick) + (2 * sizeof(char)));+        strcat(vnicks, currnick);         strcat(vnicks, " ");       }     }