diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2002-06-27 16:01:38 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2002-06-27 16:01:38 +0000 |
commit | eba23038af62124b3e75016f9b7294637e7022c2 (patch) | |
tree | 2be025435d65063973d3e4fa9dfea0e6f975af73 /winsup/cygwin/dcrt0.cc | |
parent | 196cdd45f6895b3901ec8925020995fbce38bd7f (diff) | |
download | cygnal-eba23038af62124b3e75016f9b7294637e7022c2.tar.gz cygnal-eba23038af62124b3e75016f9b7294637e7022c2.tar.bz2 cygnal-eba23038af62124b3e75016f9b7294637e7022c2.zip |
* dcrt0.cc (dll_crt0_1): Let __progname point to the applications
basename. Move eliminating ".exe" suffix from argv[0] so that it
always also affects __progname.
Diffstat (limited to 'winsup/cygwin/dcrt0.cc')
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index da2865112..a27e8e4eb 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -704,9 +704,6 @@ dll_crt0_1 () { char *new_argv0 = (char *) alloca (MAX_PATH); cygwin_conv_to_posix_path (__argv[0], new_argv0); - char *p = strchr (new_argv0, '\0') - 4; - if (p > new_argv0 && strcasematch (p, ".exe")) - *p = '\0'; __argv[0] = new_argv0; } } @@ -719,7 +716,16 @@ dll_crt0_1 () cygheap->fdtab.stdio_init (); /* Set up __progname for getopt error call. */ - __progname = __argv[0]; + if (__argv[0] && (__progname = strrchr (__argv[0], '/'))) + ++__progname; + else + __progname = __argv[0]; + if (__progname) + { + char *cp = strchr (__progname, '\0') - 4; + if (cp > __progname && strcasematch (cp, ".exe")) + *cp = '\0'; + } /* Set new console title if appropriate. */ |