|
|
@@ -998,10 +998,13 @@ void enforce_closed(struct chanset_t *chan) {
|
|
|
static char *
|
|
|
take_massopline(char *op, char **to_op)
|
|
|
{
|
|
|
- char *nicks = (char *) calloc(1, 51), *modes = (char *) calloc(1, 10), *ret = (char *) calloc(1, 61), *nick = NULL;
|
|
|
+ char *nicks = (char *) calloc(1, 151),
|
|
|
+ *modes = (char *) calloc(1, 31),
|
|
|
+ *ret = (char *) calloc(1, 182),
|
|
|
+ *nick = NULL;
|
|
|
register bool useop = 0;
|
|
|
|
|
|
- for (int i = 0; i < 4; i++) {
|
|
|
+ for (int i = 0; i < modesperline; i++) {
|
|
|
if (*to_op[0] || op) {
|
|
|
/* if 'op' then use it, then move on to to_op */
|
|
|
if (!useop && op) {
|
|
|
@@ -1026,13 +1029,13 @@ take_massopline(char *op, char **to_op)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-static char *
|
|
|
+inline static char *
|
|
|
take_makeline(char *op, char *deops, unsigned int deopn)
|
|
|
{
|
|
|
bool opn = op ? 1 : 0;
|
|
|
unsigned int n = opn + deopn; /* op + deops */
|
|
|
unsigned int pos = randint(deopn), i;
|
|
|
- char *ret = (char *) calloc(1, 101);
|
|
|
+ char *ret = (char *) calloc(1, 151);
|
|
|
|
|
|
for (i = 0; i < n; i++) {
|
|
|
if (opn && i == pos)
|
|
|
@@ -1100,7 +1103,7 @@ do_take(struct chanset_t *chan)
|
|
|
if (to_op[0])
|
|
|
op = newsplit(&to_op);
|
|
|
|
|
|
- for (i = 0; i < modesperline; i ++) {
|
|
|
+ for (i = 0; i < modesperline; i++) {
|
|
|
if (to_deop[0] && ((i < (modesperline - 1)) || (!op))) {
|
|
|
deopn++;
|
|
|
strcat(deops, newsplit(&to_deop));
|
|
|
@@ -1117,8 +1120,7 @@ do_take(struct chanset_t *chan)
|
|
|
else
|
|
|
modeline = take_massopline(op, &to_op);
|
|
|
strcat(work, modeline);
|
|
|
- strcat(work, "\r");
|
|
|
- strcat(work, "\n");
|
|
|
+ strcat(work, "\r\n");
|
|
|
lines++;
|
|
|
free(modeline);
|
|
|
|