aboutsummaryrefslogtreecommitdiff
path: root/debianutils
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2018-12-06 15:16:49 +0000
committerRon Yorston <rmy@pobox.com>2018-12-06 15:16:49 +0000
commit9906faf2dff6fd9033cb711619528501cae11721 (patch)
treea85bb3ee78f5d58378f23842e0e762e879db23bc /debianutils
parentd257c7f2b6c44662c793d00d0b9286d6246b84a3 (diff)
downloadbusybox-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.c3
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