diff options
author | Ron Yorston <rmy@pobox.com> | 2019-03-18 08:14:28 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2019-03-18 08:14:28 +0000 |
commit | d8043af0769250a480e324b51687fb2a994e3496 (patch) | |
tree | 2cab4f24dbe836c753d95e98dbc04ea0a6048b63 | |
parent | c01300361c7db148ea4c3971877c7dba5e4ba7f3 (diff) | |
download | busybox-w32-d8043af0769250a480e324b51687fb2a994e3496.tar.gz busybox-w32-d8043af0769250a480e324b51687fb2a994e3496.tar.bz2 busybox-w32-d8043af0769250a480e324b51687fb2a994e3496.zip |
ash: rewrite PATH update to save a few bytes
-rw-r--r-- | shell/ash.c | 20 |
1 files 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) | |||
2507 | struct var *vp, **vpp; | 2507 | struct var *vp, **vpp; |
2508 | 2508 | ||
2509 | #if ENABLE_PLATFORM_MINGW32 | 2509 | #if ENABLE_PLATFORM_MINGW32 |
2510 | struct pathname { | 2510 | const char *paths = "PATH=\0""CDPATH=\0""MANPATH=\0"; |
2511 | const char *name; | 2511 | const char *p; |
2512 | const int len; | 2512 | int len; |
2513 | } paths[] = { | ||
2514 | { "PATH=", sizeof("PATH=")-1 }, | ||
2515 | { "CDPATH=", sizeof("CDPATH=")-1 }, | ||
2516 | { "MANPATH=", sizeof("MANPATH=")-1 }, | ||
2517 | }; | ||
2518 | int i; | ||
2519 | 2513 | ||
2520 | for (i = 0; i < ARRAY_SIZE(paths); ++i) { | 2514 | for (p = paths; *p; p += len + 1) { |
2521 | if (strncmp(s, paths[i].name, paths[i].len) == 0) { | 2515 | len = strlen(p); |
2522 | char *newpath = fix_pathvar(s, paths[i].len); | 2516 | if (strncmp(s, p, len) == 0) { |
2517 | char *newpath = fix_pathvar(s, len); | ||
2523 | if (newpath) { | 2518 | if (newpath) { |
2524 | if ((flags & (VTEXTFIXED|VSTACK|VNOSAVE)) == VNOSAVE) | 2519 | if ((flags & (VTEXTFIXED|VSTACK|VNOSAVE)) == VNOSAVE) |
2525 | free(s); | 2520 | free(s); |
@@ -2527,6 +2522,7 @@ setvareq(char *s, int flags) | |||
2527 | flags &= ~(VTEXTFIXED|VSTACK); | 2522 | flags &= ~(VTEXTFIXED|VSTACK); |
2528 | s = newpath; | 2523 | s = newpath; |
2529 | } | 2524 | } |
2525 | break; | ||
2530 | } | 2526 | } |
2531 | } | 2527 | } |
2532 | #endif | 2528 | #endif |