- void **args = (void **)arg;
- nick *sender = (nick *)args[0], *target = (nick *)args[1];
-
- if(IsService(target) || IsHideChan(target))
+ char **args = (char **)arg;
+ nick *sender = (nick *)args[0]; /* sender nick */
+ nick *target = (nick *)args[1]; /* target nick */
+ char *sourcenum = args[2]; /* source numeric */
+
+ /* do not show channels for +k service clients or IRC Operators
+ * do not show channels for +n users
+ * unless they whois themselves
+ */
+ if ((IsService(target) || IsHideChan(target)) && sender != target)