aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-09-17 10:39:33 +1000
committerNguyễn Thái Ngọc Duy <pclouds@gmail.com>2010-09-17 10:39:35 +1000
commitc2c480719f91c3ccd477cf0360e78509eb8530df (patch)
tree249da1c19e158a4d0434fc5cf023ca6e2cc632d3
parentc8cd855ab70f1ee1113a4fe1a7c87e2b8fe2db9a (diff)
downloadbusybox-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.c10
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);