[PATCH] fix broken set [+-]o output

Martijn Dekker martijn at inlv.org
Wed Jul 24 16:00:10 UTC 2019


Commit f3634584 introduced short-form shell options without long-form 
equivalents. This broke the output of 'set -o' and 'set +o' as the 
function writing this output assumed all options have long names. This 
simple patch removes that assumption.

-- 
modernish -- harness the shell
https://github.com/modernish/modernish
-------------- next part --------------
diff --git a/shell/ash.c b/shell/ash.c
index e3bbac9a0..625288770 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -11091,6 +11091,8 @@ plus_minus_o(char *name, int val)
 		return 1;
 	}
 	for (i = 0; i < NOPTS; i++) {
+		if (optnames(i)[0] == '\0')
+			continue;
 		if (val) {
 			out1fmt("%-16s%s\n", optnames(i), optlist[i] ? "on" : "off");
 		} else {


More information about the busybox mailing list