From d8043af0769250a480e324b51687fb2a994e3496 Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Mon, 18 Mar 2019 08:14:28 +0000 Subject: ash: rewrite PATH update to save a few bytes --- shell/ash.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/shell/ash.c b/shell/ash.c index 248f3f017..cd6196640 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -2507,19 +2507,14 @@ setvareq(char *s, int flags) struct var *vp, **vpp; #if ENABLE_PLATFORM_MINGW32 - struct pathname { - const char *name; - const int len; - } paths[] = { - { "PATH=", sizeof("PATH=")-1 }, - { "CDPATH=", sizeof("CDPATH=")-1 }, - { "MANPATH=", sizeof("MANPATH=")-1 }, - }; - int i; + const char *paths = "PATH=\0""CDPATH=\0""MANPATH=\0"; + const char *p; + int len; - for (i = 0; i < ARRAY_SIZE(paths); ++i) { - if (strncmp(s, paths[i].name, paths[i].len) == 0) { - char *newpath = fix_pathvar(s, paths[i].len); + for (p = paths; *p; p += len + 1) { + len = strlen(p); + if (strncmp(s, p, len) == 0) { + char *newpath = fix_pathvar(s, len); if (newpath) { if ((flags & (VTEXTFIXED|VSTACK|VNOSAVE)) == VNOSAVE) free(s); @@ -2527,6 +2522,7 @@ setvareq(char *s, int flags) flags &= ~(VTEXTFIXED|VSTACK); s = newpath; } + break; } } #endif -- cgit v1.2.3-55-g6feb