about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Functions/Misc/allopt7
2 files changed, 7 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index c4dcfa2fd..b5db33db7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-10  Bart Schaefer  <schaefer@zsh.org>
+
+	* unposted: Functions/Misc/allopt: use "set -o" to avoid twaddling
+	the setting of kshoptionprint.
+
 2005-07-10  Clint Adams  <clint@zsh.org>
 
 	* 21416: Completion/Unix/Command/_gpg: cope with an equals
diff --git a/Functions/Misc/allopt b/Functions/Misc/allopt
index 0d59fa3e9..0c521f391 100644
--- a/Functions/Misc/allopt
+++ b/Functions/Misc/allopt
@@ -8,11 +8,8 @@
 # Written by Sweth Chandramouli with hacks by Bart Schaefer.
 
 listalloptions () {
-   builtin setopt localoptions kshoptionprint
-   local OPT_NAME OPT_PAIR OPT_VALUE
-   for OPT_PAIR in "${(f)$(builtin setopt)}" ; do
-      OPT_VALUE=${OPT_PAIR##* }
-      OPT_NAME=${OPT_PAIR%% *}
+   local OPT_NAME OPT_VALUE
+   builtin set -o | while read OPT_NAME OPT_VALUE ; do
       if [[ ${OPT_NAME#no} != ${OPT_NAME} ]] ; then
 	 OPT_VALUE=${(L)${${OPT_VALUE:s/on/OFF}:s/off/on}}
 	 OPT_NAME=${OPT_NAME#no}