From 483fa1da3db3d149ac5ca622abdb2e758e91d389 Mon Sep 17 00:00:00 2001 From: Stathis Kamperis Date: Fri, 24 Jul 2009 13:13:23 +0300 Subject: [PATCH] printenv(1): Rework how env vars are looked up. Before: ~% env foo=bar=lala printenv foo bar=lala ~% env foo=bar=lala printenv foo=bar lala ~% After: ~% env foo=bar=lala printenv foo bar=lala ~% env foo=bar=lala printenv foo=bar ~% Dragonfly-bug: --- usr.bin/printenv/printenv.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/usr.bin/printenv/printenv.c b/usr.bin/printenv/printenv.c index bd5f778763..f61f3b332f 100644 --- a/usr.bin/printenv/printenv.c +++ b/usr.bin/printenv/printenv.c @@ -77,14 +77,12 @@ main(int argc, char **argv) } len = strlen(*argv); for (ep = environ; *ep != NULL; ep++) { - if (memcmp(*ep, *argv, len) == 0) { - cp = *ep + len; - if (*cp == '=') { + cp = strchr(*ep, '='); + if (cp == *ep + len) { + if (memcmp(*ep, *argv, len) == 0) { printf("%s\n", cp + 1); exit(0); } - if (*cp == '\0') - exit(0); } } exit(1); -- 2.41.0