]> PatchyGit - patchyircd.git/commitdiff
allow listing A-type modes with just the letter
authorEgor <egor@patchysicp.xyz>
Thu, 12 May 2022 18:08:37 +0000 (21:08 +0300)
committerEgor <egor@patchysicp.xyz>
Thu, 12 May 2022 18:08:37 +0000 (21:08 +0300)
irc.c

diff --git a/irc.c b/irc.c
index cef012e..b86e7a9 100644 (file)
--- a/irc.c
+++ b/irc.c
@@ -606,35 +606,35 @@ int processPacket(struct client_data *client, char *source, char *command, int a
                                        return 0; // TODO: error
                                if (argc == 2) { // Type A channel modes
                                        struct trie_find *f = NULL;
-                                       if (!strcmp(args[1], "+b")) {
+                                       if (!strcmp(args[1], "+b") || !strcmp(args[1], "b")) {
                                                if (trie_findfirst(&f, &chan->listb) == 1)
                                                        do {
                                                                rpl_banlist(client, chan, f->key), sendbuf(client);
                                                        } while(trie_findnext(&f) == 1);
                                                return rpl_endofbanlist(client, chan), sendbuf(client), 0;
                                        }
-                                       if (!strcmp(args[1], "+e")) {
+                                       if (!strcmp(args[1], "+e") || !strcmp(args[1], "e")) {
                                                if (trie_findfirst(&f, &chan->liste) == 1)
                                                        do {
                                                                rpl_exceptlist(client, chan, f->key), sendbuf(client);
                                                        } while(trie_findnext(&f) == 1);
                                                return rpl_endofexceptlist(client, chan), sendbuf(client), 0;
                                        }
-                                       if (!strcmp(args[1], "+I")) {
+                                       if (!strcmp(args[1], "+I") || !strcmp(args[1], "I")) {
                                                if (trie_findfirst(&f, &chan->listI) == 1)
                                                        do {
                                                                rpl_invexlist(client, chan, f->key), sendbuf(client);
                                                        } while(trie_findnext(&f) == 1);
                                                return rpl_endofinvexlist(client, chan), sendbuf(client), 0;
                                        }
-                                       if (!strcmp(args[1], "+q")) {
+                                       if (!strcmp(args[1], "+q") || !strcmp(args[1], "q")) {
                                                if (trie_findfirst(&f, &chan->listq) == 1)
                                                        do {
                                                                rpl_quietlist(client, chan, f->key), sendbuf(client);
                                                        } while(trie_findnext(&f) == 1);
                                                return rpl_endofquietlist(client, chan), sendbuf(client), 0;
                                        }
-                                       if (!strcmp(args[1], "+w")) {
+                                       if (!strcmp(args[1], "+w") || !strcmp(args[1], "w")) {
                                                if (trie_findfirst(&f, &chan->listwo) == 1)
                                                        do {
                                                                rpl_accesslist(client, chan, 'o', f->key), sendbuf(client);