summaryrefslogtreecommitdiff
path: root/Src
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2000-06-09 15:37:05 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2000-06-09 15:37:05 +0000
commit6b87e6fda32ce20feab9b4922c8841d5329c232f (patch)
tree1d72ffeab95f06203b481a96308460eabaeff9a6 /Src
parent716f5d4e3940ab5129eda866aa20b8fd2d458999 (diff)
downloadzsh-6b87e6fda32ce20feab9b4922c8841d5329c232f.tar.gz
zsh-6b87e6fda32ce20feab9b4922c8841d5329c232f.zip
11838: typeset -H
Diffstat (limited to 'Src')
-rw-r--r--Src/Modules/mapfile.c4
-rw-r--r--Src/Modules/parameter.c9
-rw-r--r--Src/builtin.c14
-rw-r--r--Src/params.c2
-rw-r--r--Src/subst.c2
-rw-r--r--Src/zsh.h23
6 files changed, 30 insertions, 24 deletions
diff --git a/Src/Modules/mapfile.c b/Src/Modules/mapfile.c
index 77595e022..bed98da2b 100644
--- a/Src/Modules/mapfile.c
+++ b/Src/Modules/mapfile.c
@@ -86,8 +86,8 @@ createmapfilehash()
unsetparam(mapfile_nam);
mapfile_pm = NULL;
- if (!(pm = createparam(mapfile_nam,
- PM_SPECIAL|PM_HIDE|PM_REMOVABLE|PM_HASHED)))
+ if (!(pm = createparam(mapfile_nam, PM_SPECIAL|PM_HIDE|PM_HIDEVAL|
+ PM_REMOVABLE|PM_HASHED)))
return NULL;
pm->level = pm->old ? locallevel : 0;
diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c
index d7c3ba690..4378d0961 100644
--- a/Src/Modules/parameter.c
+++ b/Src/Modules/parameter.c
@@ -51,7 +51,8 @@ createspecialhash(char *name, GetNodeFunc get, ScanTabFunc scan)
Param pm;
HashTable ht;
- if (!(pm = createparam(name, PM_SPECIAL|PM_HIDE|PM_REMOVABLE|PM_HASHED)))
+ if (!(pm = createparam(name, PM_SPECIAL|PM_HIDE|PM_HIDEVAL|
+ PM_REMOVABLE|PM_HASHED)))
return NULL;
pm->level = pm->old ? locallevel : 0;
@@ -122,6 +123,8 @@ paramtypestr(Param pm)
val = dyncat(val, "-unique");
if (f & PM_HIDE)
val = dyncat(val, "-hide");
+ if (f & PM_HIDEVAL)
+ val = dyncat(val, "-hideval");
if (f & PM_SPECIAL)
val = dyncat(val, "-special");
} else
@@ -1942,8 +1945,8 @@ boot_(Module m)
if (def->hsetfn)
def->pm->sets.hfn = def->hsetfn;
} else {
- if (!(def->pm = createparam(def->name, def->flags | PM_HIDE |
- PM_REMOVABLE)))
+ if (!(def->pm = createparam(def->name, def->flags | PM_HIDE|
+ PM_HIDEVAL | PM_REMOVABLE)))
return 1;
def->pm->sets.afn = def->setfn;
def->pm->gets.afn = def->getfn;
diff --git a/Src/builtin.c b/Src/builtin.c
index e6e89faef..950595c72 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -50,7 +50,7 @@ static struct builtin builtins[] =
BUILTIN("cd", 0, bin_cd, 0, 2, BIN_CD, NULL, NULL),
BUILTIN("chdir", 0, bin_cd, 0, 2, BIN_CD, NULL, NULL),
BUILTIN("continue", BINF_PSPECIAL, bin_break, 0, 1, BIN_CONTINUE, NULL, NULL),
- BUILTIN("declare", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AEFLRTUZafghilrtux", NULL),
+ BUILTIN("declare", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AEFHLRTUZafghilrtux", NULL),
BUILTIN("dirs", 0, bin_dirs, 0, -1, 0, "v", NULL),
BUILTIN("disable", 0, bin_enable, 0, -1, BIN_DISABLE, "afmr", NULL),
BUILTIN("disown", 0, bin_fg, 0, -1, BIN_DISOWN, NULL, NULL),
@@ -60,11 +60,11 @@ static struct builtin builtins[] =
BUILTIN("enable", 0, bin_enable, 0, -1, BIN_ENABLE, "afmr", NULL),
BUILTIN("eval", BINF_PSPECIAL, bin_eval, 0, -1, BIN_EVAL, NULL, NULL),
BUILTIN("exit", BINF_PSPECIAL, bin_break, 0, 1, BIN_EXIT, NULL, NULL),
- BUILTIN("export", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, BIN_EXPORT, "EFLRTUZafhilrtu", "xg"),
+ BUILTIN("export", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, BIN_EXPORT, "EFHLRTUZafhilrtu", "xg"),
BUILTIN("false", 0, bin_false, 0, -1, 0, NULL, NULL),
BUILTIN("fc", BINF_FCOPTS, bin_fc, 0, -1, BIN_FC, "nlreIRWAdDfEim", NULL),
BUILTIN("fg", 0, bin_fg, 0, -1, BIN_FG, NULL, NULL),
- BUILTIN("float", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "EFghlrtux", "E"),
+ BUILTIN("float", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "EFHghlrtux", "E"),
BUILTIN("functions", BINF_TYPEOPTS, bin_functions, 0, -1, 0, "mtuU", NULL),
BUILTIN("getln", 0, bin_read, 0, -1, 0, "ecnAlE", "zr"),
BUILTIN("getopts", 0, bin_getopts, 2, -1, 0, NULL, NULL),
@@ -75,11 +75,11 @@ static struct builtin builtins[] =
#endif
BUILTIN("history", 0, bin_fc, 0, -1, BIN_FC, "nrdDfEim", "l"),
- BUILTIN("integer", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "ghilrtux", "i"),
+ BUILTIN("integer", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "Hghilrtux", "i"),
BUILTIN("jobs", 0, bin_fg, 0, -1, BIN_JOBS, "dlpZrs", NULL),
BUILTIN("kill", 0, bin_kill, 0, -1, 0, NULL, NULL),
BUILTIN("let", 0, bin_let, 1, -1, 0, NULL, NULL),
- BUILTIN("local", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AEFLRTUZahilrtux", NULL),
+ BUILTIN("local", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AEFHLRTUZahilrtux", NULL),
BUILTIN("log", 0, bin_log, 0, 0, 0, NULL, NULL),
BUILTIN("logout", 0, bin_break, 0, 1, BIN_LOGOUT, NULL, NULL),
@@ -98,7 +98,7 @@ static struct builtin builtins[] =
BUILTIN("pwd", 0, bin_pwd, 0, 0, 0, "rLP", NULL),
BUILTIN("r", BINF_R, bin_fc, 0, -1, BIN_FC, "nrl", NULL),
BUILTIN("read", 0, bin_read, 0, -1, 0, "rzu0123456789pkqecnAlE", NULL),
- BUILTIN("readonly", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AEFLRTUZafghiltux", "r"),
+ BUILTIN("readonly", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AEFHLRTUZafghiltux", "r"),
BUILTIN("rehash", 0, bin_hash, 0, 0, 0, "df", "r"),
BUILTIN("return", BINF_PSPECIAL, bin_break, 0, 1, BIN_RETURN, NULL, NULL),
BUILTIN("set", BINF_PSPECIAL, bin_set, 0, -1, 0, NULL, NULL),
@@ -112,7 +112,7 @@ static struct builtin builtins[] =
BUILTIN("trap", BINF_PSPECIAL, bin_trap, 0, -1, 0, NULL, NULL),
BUILTIN("true", 0, bin_true, 0, -1, 0, NULL, NULL),
BUILTIN("type", 0, bin_whence, 0, -1, 0, "ampfsw", "v"),
- BUILTIN("typeset", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AEFLRTUZafghilrtuxm", NULL),
+ BUILTIN("typeset", BINF_TYPEOPTS | BINF_MAGICEQUALS | BINF_PSPECIAL, bin_typeset, 0, -1, 0, "AEFHLRTUZafghilrtuxm", NULL),
BUILTIN("umask", 0, bin_umask, 0, 1, 0, "S", NULL),
BUILTIN("unalias", 0, bin_unhash, 1, -1, 0, "m", "a"),
BUILTIN("unfunction", 0, bin_unhash, 1, -1, 0, "m", "f"),
diff --git a/Src/params.c b/Src/params.c
index 43492c5ad..f57173495 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -3181,7 +3181,7 @@ printparamnode(HashNode hn, int printflags)
printf("exported ");
}
- if (printflags & PRINT_NAMEONLY) {
+ if ((printflags & PRINT_NAMEONLY) || (p->flags & PM_HIDEVAL)) {
zputs(p->nam, stdout);
putchar('\n');
return;
diff --git a/Src/subst.c b/Src/subst.c
index 823b858e7..5dad163ee 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -1109,6 +1109,8 @@ paramsubst(LinkList l, LinkNode n, char **str, int qt, int ssub)
val = dyncat(val, "-unique");
if (f & PM_HIDE)
val = dyncat(val, "-hide");
+ if (f & PM_HIDE)
+ val = dyncat(val, "-hideval");
if (f & PM_SPECIAL)
val = dyncat(val, "-special");
vunset = 0;
diff --git a/Src/zsh.h b/Src/zsh.h
index cb0e0a934..49f434691 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -1117,21 +1117,22 @@ struct param {
#define PM_UNALIASED (1<<13) /* do not expand aliases when autoloading */
#define PM_HIDE (1<<14) /* Special behaviour hidden by local */
-#define PM_TIED (1<<15) /* array tied to colon-path or v.v. */
+#define PM_HIDEVAL (1<<15) /* Value not shown in `typeset' commands */
+#define PM_TIED (1<<16) /* array tied to colon-path or v.v. */
/* Remaining flags do not correspond directly to command line arguments */
-#define PM_LOCAL (1<<16) /* this parameter will be made local */
-#define PM_SPECIAL (1<<17) /* special builtin parameter */
-#define PM_DONTIMPORT (1<<18) /* do not import this variable */
-#define PM_RESTRICTED (1<<19) /* cannot be changed in restricted mode */
-#define PM_UNSET (1<<20) /* has null value */
-#define PM_REMOVABLE (1<<21) /* special can be removed from paramtab */
-#define PM_AUTOLOAD (1<<22) /* autoloaded from module */
-#define PM_NORESTORE (1<<23) /* do not restore value of local special */
-#define PM_HASHELEM (1<<24) /* is a hash-element */
+#define PM_LOCAL (1<<17) /* this parameter will be made local */
+#define PM_SPECIAL (1<<18) /* special builtin parameter */
+#define PM_DONTIMPORT (1<<19) /* do not import this variable */
+#define PM_RESTRICTED (1<<20) /* cannot be changed in restricted mode */
+#define PM_UNSET (1<<21) /* has null value */
+#define PM_REMOVABLE (1<<22) /* special can be removed from paramtab */
+#define PM_AUTOLOAD (1<<23) /* autoloaded from module */
+#define PM_NORESTORE (1<<24) /* do not restore value of local special */
+#define PM_HASHELEM (1<<25) /* is a hash-element */
/* The option string corresponds to the first of the variables above */
-#define TYPESET_OPTSTR "aiEFALRZlurtxUhT"
+#define TYPESET_OPTSTR "aiEFALRZlurtxUhHT"
/* These typeset options take an optional numeric argument */
#define TYPESET_OPTNUM "LRZiEF"