diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-09-17 10:39:33 +1000 |
---|---|---|
committer | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2010-09-17 10:39:35 +1000 |
commit | c2c480719f91c3ccd477cf0360e78509eb8530df (patch) | |
tree | 249da1c19e158a4d0434fc5cf023ca6e2cc632d3 | |
parent | c8cd855ab70f1ee1113a4fe1a7c87e2b8fe2db9a (diff) | |
download | busybox-w32-c2c480719f91c3ccd477cf0360e78509eb8530df.tar.gz busybox-w32-c2c480719f91c3ccd477cf0360e78509eb8530df.tar.bz2 busybox-w32-c2c480719f91c3ccd477cf0360e78509eb8530df.zip |
win32: lowercase argv[0] before searching for applet name
On Windows, busybox.exe can be called BusyBox.exe, BUSYBOX.EXE...
Applet search is done using bsearch(), doing case-insensitive search
would be more difficult. So just lowercase everything down.
BUSYBOX_APPLET_NAME environment variable are supposed to be
case-sensitive though.
-rw-r--r-- | libbb/appletlib.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/libbb/appletlib.c b/libbb/appletlib.c index 6a304ded3..ab1d48c31 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c | |||
@@ -827,9 +827,13 @@ int main(int argc UNUSED_PARAM, char **argv) | |||
827 | unsetenv("BUSYBOX_APPLET_NAME"); | 827 | unsetenv("BUSYBOX_APPLET_NAME"); |
828 | } | 828 | } |
829 | else { | 829 | else { |
830 | int len = strlen(applet_name); | 830 | int i, len = strlen(applet_name); |
831 | if (len > 4 && !strcmp(applet_name+len-4, ".exe")) | 831 | if (len > 4 && !strcmp(applet_name+len-4, ".exe")) { |
832 | argv[0][applet_name-argv[0]+len-4] = '\0'; | 832 | len -= 4; |
833 | argv[0][applet_name-argv[0]+len] = '\0'; | ||
834 | } | ||
835 | for (i = 0; i < len; i++) | ||
836 | argv[0][applet_name-argv[0]+i] = tolower(applet_name[i]); | ||
833 | } | 837 | } |
834 | } | 838 | } |
835 | applet_name = bb_basename(applet_name); | 839 | applet_name = bb_basename(applet_name); |