summaryrefslogtreecommitdiff
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,