diff options
| author | Ron Yorston <rmy@pobox.com> | 2020-04-05 09:48:52 +0100 |
|---|---|---|
| committer | Ron Yorston <rmy@pobox.com> | 2020-04-05 10:04:50 +0100 |
| commit | 1365eb25a7dfd3e42229691355d910ff32b92361 (patch) | |
| tree | d57f51c5fc1ff8c4e71c243066c85564359fb380 | |
| parent | 5d6744d8635fcbd1ef4cce85a737aacfde4ddeba (diff) | |
| download | busybox-w32-1365eb25a7dfd3e42229691355d910ff32b92361.tar.gz busybox-w32-1365eb25a7dfd3e42229691355d910ff32b92361.tar.bz2 busybox-w32-1365eb25a7dfd3e42229691355d910ff32b92361.zip | |
libbb: rearrange command line processing
Process the '--busybox' flag before checking argv[0].
| -rw-r--r-- | libbb/appletlib.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/libbb/appletlib.c b/libbb/appletlib.c index 17ce463ea..6e1947228 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c | |||
| @@ -1175,6 +1175,9 @@ int lbb_main(char **argv) | |||
| 1175 | int main(int argc UNUSED_PARAM, char **argv) | 1175 | int main(int argc UNUSED_PARAM, char **argv) |
| 1176 | #endif | 1176 | #endif |
| 1177 | { | 1177 | { |
| 1178 | #if ENABLE_PLATFORM_MINGW32 | ||
| 1179 | char *s; | ||
| 1180 | #endif | ||
| 1178 | #if 0 | 1181 | #if 0 |
| 1179 | /* TODO: find a use for a block of memory between end of .bss | 1182 | /* TODO: find a use for a block of memory between end of .bss |
| 1180 | * and end of page. For example, I'm getting "_end:0x812e698 2408 bytes" | 1183 | * and end of page. For example, I'm getting "_end:0x812e698 2408 bytes" |
| @@ -1274,6 +1277,10 @@ int main(int argc UNUSED_PARAM, char **argv) | |||
| 1274 | 1277 | ||
| 1275 | #else | 1278 | #else |
| 1276 | 1279 | ||
| 1280 | # if ENABLE_PLATFORM_MINGW32 | ||
| 1281 | if (argv[1] && argv[2] && strcmp(argv[1], "--busybox") == 0) | ||
| 1282 | argv += 2; | ||
| 1283 | # endif | ||
| 1277 | lbb_prepare("busybox" IF_FEATURE_INDIVIDUAL(, argv)); | 1284 | lbb_prepare("busybox" IF_FEATURE_INDIVIDUAL(, argv)); |
| 1278 | # if !ENABLE_BUSYBOX | 1285 | # if !ENABLE_BUSYBOX |
| 1279 | if (argv[1] && is_prefixed_with(bb_basename(argv[0]), "busybox")) | 1286 | if (argv[1] && is_prefixed_with(bb_basename(argv[0]), "busybox")) |
| @@ -1283,19 +1290,10 @@ int main(int argc UNUSED_PARAM, char **argv) | |||
| 1283 | if (applet_name[0] == '-') | 1290 | if (applet_name[0] == '-') |
| 1284 | applet_name++; | 1291 | applet_name++; |
| 1285 | # if ENABLE_PLATFORM_MINGW32 | 1292 | # if ENABLE_PLATFORM_MINGW32 |
| 1286 | if ( argv[1] && argv[2] && strcmp(argv[1], "--busybox") == 0 ) { | 1293 | str_tolower(argv[0]); |
| 1287 | argv += 2; | 1294 | bs_to_slash(argv[0]); |
| 1288 | applet_name = argv[0]; | 1295 | if (has_exe_suffix_or_dot(argv[0]) && (s=strrchr(argv[0], '.'))) |
| 1289 | } | 1296 | *s = '\0'; |
| 1290 | else { | ||
| 1291 | char *s; | ||
| 1292 | |||
| 1293 | str_tolower(argv[0]); | ||
| 1294 | bs_to_slash(argv[0]); | ||
| 1295 | if (has_exe_suffix_or_dot(argv[0]) && (s=strrchr(argv[0], '.'))) { | ||
| 1296 | *s = '\0'; | ||
| 1297 | } | ||
| 1298 | } | ||
| 1299 | # endif | 1297 | # endif |
| 1300 | applet_name = bb_basename(applet_name); | 1298 | applet_name = bb_basename(applet_name); |
| 1301 | 1299 | ||
