summary refs log tree commit diff
path: root/extra/edit
diff options
context:
space:
mode:
Diffstat (limited to 'extra/edit')
-rw-r--r--extra/edit/edit.c40
1 files 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)) {