summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--Src/options.c7
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 8498c5954..6b80b19f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-03-03 Barton E. Schaefer <schaefer@zsh.org>
+
+ * 38039: Src/options.c: POSIXy behavior for "set +o"
+
2016-02-26 Peter Stephenson <p.w.stephenson@ntlworld.com>
* Stephane: 38020: fix problems with fractions of a second in
diff --git a/Src/options.c b/Src/options.c
index 17c46c311..18619c851 100644
--- a/Src/options.c
+++ b/Src/options.c
@@ -847,9 +847,10 @@ printoptionnodestate(HashNode hn, int hadplus)
int optno = on->optno;
if (hadplus) {
- if (defset(on, emulation) != isset(optno))
- printf("set -o %s%s\n", defset(on, emulation) ?
- "no" : "", on->node.nam);
+ printf("set %co %s%s\n",
+ defset(on, emulation) != isset(optno) ? '-' : '+',
+ defset(on, emulation) ? "no" : "",
+ on->node.nam);
} else {
if (defset(on, emulation))
printf("no%-19s %s\n", on->node.nam, isset(optno) ? "off" : "on");