]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/proto-common.c
found out from Kyle what b flag is.
[irc/evilnet/x3.git] / src / proto-common.c
index 0cff85ad2b3e728da3b2f45cb902161aa8792b20..22ec8cc1ac715b97787c4699f670df6cd6e99f48 100644 (file)
@@ -626,13 +626,23 @@ mod_chanmode_apply(struct userNode *who, struct chanNode *channel, struct mod_ch
                 break;
             }
             break;
+            /* XXX Hack: this is the stupedest use of switch iv ever seen.
+             * you have to compare for EVERY POSSIBLE COMBINATION of bitmask
+             * because switch does only full comparison. This needs redone as if/else.
+             **/
         case MODE_CHANOP:
         case MODE_HALFOP:
         case MODE_VOICE:
+        case MODE_VOICE|MODE_CHANOP:
+        case MODE_VOICE|MODE_HALFOP:
+        case MODE_CHANOP|MODE_HALFOP:
         case MODE_VOICE|MODE_CHANOP|MODE_HALFOP:
         case MODE_REMOVE|MODE_CHANOP:
         case MODE_REMOVE|MODE_HALFOP:
         case MODE_REMOVE|MODE_VOICE:
+        case MODE_REMOVE|MODE_VOICE|MODE_CHANOP:
+        case MODE_REMOVE|MODE_VOICE|MODE_HALFOP:
+        case MODE_REMOVE|MODE_CHANOP|MODE_HALFOP:
         case MODE_REMOVE|MODE_VOICE|MODE_CHANOP|MODE_HALFOP:
             if (change->args[ii].mode & MODE_REMOVE)
                 change->args[ii].u.member->modes &= ~change->args[ii].mode;