diff options
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/executable.c | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/libbb/executable.c b/libbb/executable.c index aec829945..835341ed9 100644 --- a/libbb/executable.c +++ b/libbb/executable.c | |||
@@ -28,10 +28,6 @@ int FAST_FUNC file_is_executable(const char *name) | |||
28 | * in all cases (*PATHp) contents are temporarily modified | 28 | * in all cases (*PATHp) contents are temporarily modified |
29 | * but are restored on return (s/:/NUL/ and back). | 29 | * but are restored on return (s/:/NUL/ and back). |
30 | */ | 30 | */ |
31 | #if !ENABLE_PLATFORM_MINGW32 | ||
32 | #define next_path_sep(s) strchr(s, ':') | ||
33 | #endif | ||
34 | |||
35 | char* FAST_FUNC find_executable(const char *filename, char **PATHp) | 31 | char* FAST_FUNC find_executable(const char *filename, char **PATHp) |
36 | { | 32 | { |
37 | /* About empty components in $PATH: | 33 | /* About empty components in $PATH: |
@@ -44,38 +40,32 @@ char* FAST_FUNC find_executable(const char *filename, char **PATHp) | |||
44 | */ | 40 | */ |
45 | char *p, *n; | 41 | char *p, *n; |
46 | #if ENABLE_PLATFORM_MINGW32 | 42 | #if ENABLE_PLATFORM_MINGW32 |
47 | char *w; | 43 | char sep, *w; |
48 | #endif | 44 | #endif |
49 | 45 | ||
50 | p = *PATHp; | 46 | p = *PATHp; |
51 | while (p) { | 47 | while (p) { |
52 | int ex; | 48 | int ex; |
53 | #if ENABLE_PLATFORM_MINGW32 | ||
54 | char sep; | ||
55 | 49 | ||
56 | n = (char*)next_path_sep(p); | 50 | #if !ENABLE_PLATFORM_MINGW32 |
57 | if (n) { | ||
58 | sep = *n; | ||
59 | *n = '\0'; | ||
60 | } | ||
61 | #else | ||
62 | n = strchr(p, ':'); | 51 | n = strchr(p, ':'); |
63 | if (n) *n = '\0'; | 52 | if (n) *n = '\0'; |
53 | #else | ||
54 | n = (char*)next_path_sep(p); | ||
55 | if (n) { sep = *n; *n = '\0'; } | ||
64 | #endif | 56 | #endif |
65 | p = concat_path_file( | 57 | p = concat_path_file( |
66 | p[0] ? p : ".", /* handle "::" case */ | 58 | p[0] ? p : ".", /* handle "::" case */ |
67 | filename | 59 | filename |
68 | ); | 60 | ); |
69 | #if ENABLE_PLATFORM_MINGW32 | 61 | #if !ENABLE_PLATFORM_MINGW32 |
70 | if (n) *n++ = sep; | ||
71 | #else | ||
72 | if (n) *n++ = ':'; | 62 | if (n) *n++ = ':'; |
73 | #endif | 63 | #else |
74 | #if ENABLE_PLATFORM_MINGW32 | 64 | if (n) *n++ = sep; |
75 | if ((w=add_win32_extension(p))) { | 65 | if ((w=alloc_win32_extension(p))) { |
76 | *PATHp = n; | ||
77 | free(p); | 66 | free(p); |
78 | return w; | 67 | p = w; |
68 | /* following test will succeed */ | ||
79 | } | 69 | } |
80 | #endif | 70 | #endif |
81 | ex = file_is_executable(p); | 71 | ex = file_is_executable(p); |