about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Completion/Core/compinit1
-rw-r--r--Src/params.c14
3 files changed, 20 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 00294ed93..f7522a984 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2000-11-25  Bart Schaefer  <schaefer@zsh.org>
+
+	* 13192: Completion/Core/compinit, Src/params.c: Turn off
+	ALL_EXPORT during completion; don't export arrays or hashes, even
+	with ALL_EXPORT.
+
 2000-11-22  Tanaka Akira  <akr@zsh.org>
 
 	* 13181: Completion/Debian/_apt: add an action for _alternative.
diff --git a/Completion/Core/compinit b/Completion/Core/compinit
index d5b7c20af..86e4204f0 100644
--- a/Completion/Core/compinit
+++ b/Completion/Core/compinit
@@ -134,6 +134,7 @@ _comp_options=(
     NO_shglob
     NO_ksharrays
     NO_cshnullglob
+    NO_allexport
 )
 
 # These can hold names of functions that are to be called before/after all
diff --git a/Src/params.c b/Src/params.c
index 93319dbfe..1c41d2fc2 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -1484,7 +1484,19 @@ export_param(Param pm)
 {
     char buf[(sizeof(zlong) * 8) + 4], *val;
 
-    if (PM_TYPE(pm->flags) == PM_INTEGER)
+    if (PM_TYPE(pm->flags) & (PM_ARRAY|PM_HASHED)) {
+#if 0	/* Requires changes elsewhere in params.c and builtin.c */
+	if (emulation == EMULATE_KSH /* isset(KSHARRAYS) */) {
+	    struct value v;
+	    v.isarr = 1;
+	    v.inv = 0;
+	    v.start = 0;
+	    v.end = -1;
+	    val = getstrvalue(&v);
+	} else
+#endif
+	    return;
+    } else if (PM_TYPE(pm->flags) == PM_INTEGER)
 	convbase(val = buf, pm->gets.ifn(pm), pm->ct);
     else if (pm->flags & (PM_EFLOAT|PM_FFLOAT))
 	val = convfloat(pm->gets.ffn(pm), pm->ct,