* dcrt0.cc (do_global_dtors): Run DLL dtors.

(__main): Don't rely on atexit to run dtors.
(do_exit): Specifically call do_global_dtors here.
(cygwin_exit): Ditto.
* dll_init.cc (dll_global_dtors): Make global.  Only run dtors once.
(dll_list::init): Just set flag that dtors should be run.  Don't rely on
atexit.
* dll_init.h (dll_global_dtors): Declare.
* exceptions.cc (sigrelse): Define.
* path.h (is_fs_device): New method.
(is_lnk_special): Ditto.
* fhandler_disk_file.cc (fhandler_disk_file::link): Use "is_lnk_special" rather
than "is_lnk_symlink".
* syscalls.cc (rename): Ditto.
* hookapi.cc (ld_preload): Use colon as a separator rather than space.
This commit is contained in:
Christopher Faylor
2005-04-14 17:34:03 +00:00
parent 3178cfffc8
commit dda0657380
10 changed files with 62 additions and 18 deletions

View File

@@ -1135,7 +1135,7 @@ rename (const char *oldpath, const char *newpath)
/* Shortcut hack. */
char new_lnk_buf[CYG_MAX_PATH + 5];
if (real_old.is_lnk_symlink () && !real_new.error && !real_new.case_clash)
if (real_old.is_lnk_special () && !real_new.error && !real_new.case_clash)
{
strcpy (new_lnk_buf, newpath);
strcat (new_lnk_buf, ".lnk");
@@ -1170,7 +1170,7 @@ rename (const char *oldpath, const char *newpath)
SetFileAttributes (real_new, (DWORD) real_new & ~FILE_ATTRIBUTE_READONLY);
/* Shortcut hack No. 2, part 1 */
if (!real_old.issymlink () && !real_new.error && real_new.is_lnk_symlink ()
if (!real_old.issymlink () && !real_new.error && real_new.is_lnk_special ()
&& (lnk_suffix = strrchr (real_new.get_win32 (), '.')))
*lnk_suffix = '\0';