diff options
author | Ron Yorston <rmy@pobox.com> | 2018-12-06 15:16:49 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2018-12-06 15:16:49 +0000 |
commit | 9906faf2dff6fd9033cb711619528501cae11721 (patch) | |
tree | a85bb3ee78f5d58378f23842e0e762e879db23bc /debianutils | |
parent | d257c7f2b6c44662c793d00d0b9286d6246b84a3 (diff) | |
download | busybox-w32-9906faf2dff6fd9033cb711619528501cae11721.tar.gz busybox-w32-9906faf2dff6fd9033cb711619528501cae11721.tar.bz2 busybox-w32-9906faf2dff6fd9033cb711619528501cae11721.zip |
win32: rework adding of extensions to filenames
Previously there was one function to handle adding extensions to
executable filenames, add_win32_extension(). Refactor this into
three functions:
add_win32_extension() appends the suffix to the argument string
in-place. The argument must be long enough to cope with this,
as is the case in ash where path_advance() adds 4 bytes to each
filename for just this reason.
alloc_win32_extension() is equivalent to the old add_win32_extension().
It allocates a string to hold the new filename then calls the new
add_win32_extension() function. The caller is responsible for
managing the returned string.
auto_win32_extension() calls alloc_win32_extension() and saves the
resulting string using auto_string(). It's used where the new
filename is consumed immediately or the actual value isn't needed.
Rewrite code to use the most appropriate function. Also reorder
some code in find_executable() and find_command().
Diffstat (limited to 'debianutils')
-rw-r--r-- | debianutils/which.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/debianutils/which.c b/debianutils/which.c index 0b0a6a645..9b10b62f9 100644 --- a/debianutils/which.c +++ b/debianutils/which.c | |||
@@ -67,10 +67,9 @@ int which_main(int argc UNUSED_PARAM, char **argv) | |||
67 | /* If file contains a slash don't use PATH */ | 67 | /* If file contains a slash don't use PATH */ |
68 | if (strchr(*argv, '/') || (ENABLE_PLATFORM_MINGW32 && strchr(*argv, '\\'))) { | 68 | if (strchr(*argv, '/') || (ENABLE_PLATFORM_MINGW32 && strchr(*argv, '\\'))) { |
69 | #if ENABLE_PLATFORM_MINGW32 | 69 | #if ENABLE_PLATFORM_MINGW32 |
70 | if ((p=add_win32_extension(*argv)) != NULL) { | 70 | if ((p=auto_win32_extension(*argv)) != NULL) { |
71 | missing = 0; | 71 | missing = 0; |
72 | puts(p); | 72 | puts(p); |
73 | free(p); | ||
74 | } | 73 | } |
75 | else | 74 | else |
76 | #endif | 75 | #endif |