fixed merge_argv_char to walk over skipped spaces
[NeonServV5.git] / src / IRCParser.c
index b525a7d95dd3d63652ab176304de80168d8943a2..c1dbf6bca825450332036be9c19114fdc10dbe7a 100644 (file)
@@ -566,8 +566,8 @@ static IRC_CMD(raw_mode) {
         struct ChanNode *chan = getChanByName(argv[0]);
         if(!chan) return 0;
         if(chan->chanbot != client->user) return 1;
-        event_mode(user, chan, argv[1], argv+2, argc-2);
         parseModes(chan->modes, argv[1], argv+2, argc-2);
+        event_mode(user, chan, argv[1], argv+2, argc-2);
     } else {
         //UserMode
     }
@@ -686,7 +686,12 @@ char* merge_argv_char(char **argv, int start, int end, char seperator) {
     for(i = start; i < end; i++) {
         p = argv[i];
         while(*p) p++;
-        *p = seperator;
+        if(i < end-1) {
+            while(p != argv[i+1]) {
+                *p++ = seperator;
+            }
+        } else
+            *p = seperator;
     }
     if(p) *p = '\0';
     return argv[start];