Просмотр исходного кода

* Fix cmd_mop not working (fixes #392)

svn: 3616
Bryan Drewery 18 лет назад
Родитель
Сommit
029c0f1c67
1 измененных файлов с 7 добавлено и 7 удалено
  1. 7 7
      src/mod/irc.mod/cmdsirc.c

+ 7 - 7
src/mod/irc.mod/cmdsirc.c

@@ -1146,6 +1146,7 @@ static void cmd_mop(int idx, char *par)
 {
   struct chanset_t *chan = NULL;
   bool found = 0, all = 0;
+  char *chname = NULL;
 
   if (par[0] == '*' && !par[1]) {
     get_user_flagrec(dcc[idx].user, &user, NULL);
@@ -1158,21 +1159,20 @@ static void cmd_mop(int idx, char *par)
     newsplit(&par);
   } else {
     if (par[0] && (strchr(CHANMETA, par[0]) != NULL)) {
-      chan = get_channel(idx, newsplit(&par), 0);
+      chname = newsplit(&par);
+      chan = get_channel(idx, chname, 0);
     } else
       chan = get_channel(idx, "", 0);
   }
 
-  if (!chan)
+  if (!chan && !all && !chname) {
+    dprintf(idx, "Usage: mop <channel|*>\n");
+    return;
+  } else if (!chan)
     return;
 
   putlog(LOG_CMDS, "*", "#%s# (%s) mop %s", dcc[idx].nick, all ? "*" : chan->dname, par);
 
-  if (!all) {
-    dprintf(idx, "Usage: mop <channel|*>\n");
-    return;
-  }
-
   memberlist *m = NULL;
   char s[256] = "";