Pārlūkot izejas kodu

Refactor chk_voice into an actual function.

This also fixes !chan defaulting to VOICE rather than NO voice.
Bryan Drewery 7 gadi atpakaļ
vecāks
revīzija
976132c2c2
2 mainītis faili ar 11 papildinājumiem un 5 dzēšanām
  1. 10 0
      src/flags.cc
  2. 1 5
      src/flags.h

+ 10 - 0
src/flags.cc

@@ -488,6 +488,16 @@ chk_autoop(memberlist *m, const struct flag_record fr, const struct chanset_t *c
   return 0;
 }
 
+int
+chk_voice(struct flag_record fr, const struct chanset_t *chan)
+{
+  if (!chan || privchan(fr, chan, PRIV_VOICE) || chk_devoice(fr))
+    return 0;
+  if (chan_voice(fr) || (glob_voice(fr) && !chan_quiet(fr)))
+    return 1;
+  return 0;
+}
+
 int
 real_chk_deop(const struct flag_record fr, const struct chanset_t *chan, bool botbitch)
 {

+ 1 - 5
src/flags.h

@@ -178,11 +178,7 @@ int real_chk_op(const struct flag_record, const struct chanset_t *, bool);
 int chk_autoop(memberlist *, const struct flag_record, const struct chanset_t *);
 #define chk_deop(fr, chan) real_chk_deop(fr, chan, 1)
 int real_chk_deop(const struct flag_record, const struct chanset_t *, bool);
-#define chk_voice(fr, chan) (\
-    (\
-     (!chan || (!privchan(fr, chan, PRIV_VOICE) && !chk_devoice(fr))) \
-     && (chan_voice(fr) || (glob_voice(fr) && !chan_quiet(fr))) \
-    ) ? 1 : 0)
+int chk_voice(const struct flag_record, const struct chanset_t *);
 #define chk_noflood(fr) (chan_noflood(fr) || glob_noflood(fr))
 #define chk_devoice(fr) ((chan_quiet(fr) || (glob_quiet(fr) && !chan_voice(fr))) ? 1 : 0)
 #define isupdatehub() ((conf.bot->hub && conf.bot->u && (conf.bot->u->flags & BOT_UPDATEHUB)) ? 1 : 0)