/* unexec for GNU Emacs on Windows NT.
- Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2001-2013 Free Software Foundation, Inc.
This file is part of GNU Emacs.
HANDLE file_mapping;
void *file_base;
+ /* We delete any existing FILENAME because loadup.el will create a
+ hard link to it under the name emacs-XX.YY.ZZ.nn.exe. Evidently,
+ overwriting a file on Unix breaks any hard links to it, but that
+ doesn't happen on Windows. If we don't delete the file before
+ creating it, all the emacs-XX.YY.ZZ.nn.exe end up being hard
+ links to the same file, which defeats the purpose of these hard
+ links: being able to run previous builds. */
+ DeleteFile (filename);
file = CreateFile (filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if (file == INVALID_HANDLE_VALUE)
/* Ignore old_name, and get our actual location from the OS. */
if (!GetModuleFileName (NULL, in_filename, MAX_PATH))
abort ();
- dostounix_filename (in_filename);
+ dostounix_filename (in_filename, 0);
strcpy (out_filename, in_filename);
/* Change the base of the output filename to match the requested name. */