about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--Doc/Zsh/builtins.yo8
-rw-r--r--Src/builtin.c2
-rw-r--r--Src/params.c3
-rw-r--r--Src/zsh.h1
5 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b1766e856..90fe5e90e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2000-06-12  Peter Stephenson  <pws@cambridgesiliconradio.com>
+
+	* 11867: Src/builtin.c, Src/params.c, Src/zsh.h,
+	Doc/Zsh/builtins.yo: don't use -H flag for parameters mentioned
+	explicitly or by pattern.
+
 2000-06-11  Bart Schaefer  <schaefer@zsh.org>
 
 	* 11866: Functions/Misc/colors, Functions/Prompts/promptinit:  Set
diff --git a/Doc/Zsh/builtins.yo b/Doc/Zsh/builtins.yo
index 7bb4cf8e1..fb97cf56d 100644
--- a/Doc/Zsh/builtins.yo
+++ b/Doc/Zsh/builtins.yo
@@ -1132,9 +1132,11 @@ item(tt(-H))(
 Hide value: specifies that tt(typeset) will not display the value of the
 parameter when listing parameters; the display for such parameters is
 always as if the `tt(PLUS())' flag had been given.  Use of the parameter is
-in other respects normal.  This is on by default for the parameters in the
-tt(zsh/parameter) and tt(zsh/mapfile) modules.  Note, however, that unlike
-the tt(-h) flag this is also useful for non-special parameters.
+in other respects normal, and the option does not apply if the parameter is
+specified by name, or by pattern with the tt(-m) option.  This is on by
+default for the parameters in the tt(zsh/parameter) and tt(zsh/mapfile)
+modules.  Note, however, that unlike the tt(-h) flag this is also useful
+for non-special parameters.
 )
 item(tt(-i))(
 Use an internal integer representation.  If var(n) is nonzero it
diff --git a/Src/builtin.c b/Src/builtin.c
index 950595c72..8ea88862f 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -1598,7 +1598,7 @@ typeset_single(char *cname, char *pname, Param pm, int func,
     if (usepm) {
 	on &= ~PM_LOCAL;
 	if (!on && !roff && !value) {
-	    paramtab->printnode((HashNode)pm, 0);
+	    paramtab->printnode((HashNode)pm, PRINT_INCLUDEVALUE);
 	    return pm;
 	}
 	if ((pm->flags & PM_RESTRICTED) && isset(RESTRICTED)) {
diff --git a/Src/params.c b/Src/params.c
index f57173495..2768c273d 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -3181,7 +3181,8 @@ printparamnode(HashNode hn, int printflags)
 	    printf("exported ");
     }
 
-    if ((printflags & PRINT_NAMEONLY) || (p->flags & PM_HIDEVAL)) {
+    if ((printflags & PRINT_NAMEONLY) ||
+	((p->flags & PM_HIDEVAL) && !(printflags & PRINT_INCLUDEVALUE))) {
 	zputs(p->nam, stdout);
 	putchar('\n');
 	return;
diff --git a/Src/zsh.h b/Src/zsh.h
index 49f434691..d4f521f48 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -1213,6 +1213,7 @@ struct nameddir {
 #define PRINT_TYPE		(1<<1)
 #define PRINT_LIST		(1<<2)
 #define PRINT_KV_PAIR		(1<<3)
+#define PRINT_INCLUDEVALUE	(1<<4)
 
 /* flags for printing for the whence builtin */
 #define PRINT_WHENCE_CSH	(1<<4)