From d5f30713413dd3c3cb6181e5d3fff3bb6347628a Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Mon, 4 Apr 2022 18:54:55 -0400 Subject: edit: Be more helpful --- extra/edit/edit.c | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/extra/edit/edit.c b/extra/edit/edit.c index ffbf7a9..98c8acf 100644 --- a/extra/edit/edit.c +++ b/extra/edit/edit.c @@ -315,14 +315,16 @@ static void handlePrivmsg(struct Message *msg) { if (!strcmp(cmd, "get")) { if (!name) { - format("NOTICE %s :", msg->nick); - bool some = false; + format("NOTICE %s :set: ", msg->nick); for (size_t i = 0; i < own.len; ++i) { if (!own.opts[i].set) continue; - format("%s\2%s\2", (i ? " " : ""), own.opts[i].name); - some = true; + format("%s\2%s\2", (i ? ", " : ""), own.opts[i].name); } - format("%s\r\n", (some ? "" : "(none)")); + format("\r\nNOTICE %s :inherited: ", msg->nick); + for (size_t i = 0; i < inherit.len; ++i) { + format("%s\2%s\2", (i ? ", " : ""), inherit.opts[i].name); + } + format("\r\n"); return; } if (!exists(name)) { @@ -342,10 +344,23 @@ static void handlePrivmsg(struct Message *msg) { } else if (!strcmp(cmd, "set")) { if (!name) { - format( - "NOTICE %s :\2set\2 \35option\35 [\35value\35]\r\n", - msg->nick - ); + format("NOTICE %s :options: ", msg->nick); + if (allowUnsafe) { + for (size_t i = 0; i < ARRAY_LEN(Boolean); ++i) { + format("%s\2%s\2", (i ? ", " : ""), Boolean[i]); + } + for (size_t i = 0; i < ARRAY_LEN(Integer); ++i) { + format(", \2%s\2", Integer[i]); + } + for (size_t i = 0; i < ARRAY_LEN(String); ++i) { + format(", \2%s\2", String[i]); + } + } else { + for (size_t i = 0; i < ARRAY_LEN(Safe); ++i) { + format("%s\2%s\2", (i ? ", " : ""), Safe[i]); + } + } + format("\r\n"); return; } @@ -360,7 +375,12 @@ static void handlePrivmsg(struct Message *msg) { } else if (!strcmp(cmd, "unset")) { if (!name) { - format("NOTICE %s :\2unset\2 \35option\35\r\n", msg->nick); + format("NOTICE %s :set: ", msg->nick); + for (size_t i = 0; i < own.len; ++i) { + if (!own.opts[i].set) continue; + format("%s\2%s\2", (i ? ", " : ""), own.opts[i].name); + } + format("\r\n"); return; } if (!exists(name)) { -- cgit 1.4.1