aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJoe Hershberger2012-12-11 22:16:23 -0600
committerTom Rini2012-12-13 11:46:55 -0700
commitbe11235ab802844e12d84921a38fd8ae4ddda080 (patch)
tree3ae5bb11aec34357c28bb46ed9ed66ad94f9f63f /lib
parentec8a252cd492a7a409d6912aebeff34bb9e1e1e1 (diff)
env: Hide '.' variables in env print by default
When printing all variables with env print, don't print variables that begin with '.'. If env print is called with a '-a' switch, then include variables that begin with '.' (just like the ls command). Variables printed explicitly will be printed even without the -a. Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/hashtable.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/hashtable.c b/lib/hashtable.c
index 6861a42029c..7c6b96cac87 100644
--- a/lib/hashtable.c
+++ b/lib/hashtable.c
@@ -522,7 +522,7 @@ static int cmpkey(const void *p1, const void *p2)
return (strcmp(e1->key, e2->key));
}
-ssize_t hexport_r(struct hsearch_data *htab, const char sep,
+ssize_t hexport_r(struct hsearch_data *htab, const char sep, int flag,
char **resp, size_t size,
int argc, char * const argv[])
{
@@ -559,6 +559,9 @@ ssize_t hexport_r(struct hsearch_data *htab, const char sep,
if ((argc > 0) && (found == 0))
continue;
+ if ((flag & H_HIDE_DOT) && ep->key[0] == '.')
+ continue;
+
list[n++] = ep;
totlen += strlen(ep->key) + 2;