#ifdef WIN32_NATIVE
#ifdef MINGW
-#include <mingw/process.h>
+#include <../mingw/process.h>
#else
/* <process.h> should not conflict with "process.h", as per ANSI definition.
This is not true with visual c though. The trick below works with
xzero (hints);
hints.ai_flags = AI_CANONNAME;
+#ifdef IPV6_CANONICALIZE
hints.ai_family = AF_UNSPEC;
+#else
+ hints.ai_family = PF_INET;
+#endif
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = 0;
if (!getaddrinfo (hostname, NULL, &hints, &res))
/* Windows rename fails if NEW exists */
if (rename (old, new) == 0)
return 0;
- if (errno != EEXIST)
+ /* In some cases errno is EACCES if NEW exists */
+ if (errno != EEXIST && errno != EACCES)
+ return -1;
+ if (unlink (new) != 0)
return -1;
- unlink (new);
#endif /* WIN32_NATIVE */
return rename (old, new);
}
access to those functions goes through the following. */
int
-set_file_times (char *filename, EMACS_TIME atime, EMACS_TIME mtime)
+set_file_times (Lisp_Object path, EMACS_TIME atime, EMACS_TIME mtime)
{
-#if defined (HAVE_UTIME)
+#if defined (WIN32_NATIVE)
+ struct utimbuf utb;
+ utb.actime = EMACS_SECS (atime);
+ utb.modtime = EMACS_SECS (mtime);
+ return mswindows_utime (path, &utb);
+#elif defined (HAVE_UTIME)
struct utimbuf utb;
+ Extbyte *filename;
utb.actime = EMACS_SECS (atime);
utb.modtime = EMACS_SECS (mtime);
+ LISP_STRING_TO_EXTERNAL (path, filename, Qfile_name);
return utime (filename, &utb);
#elif defined (HAVE_UTIMES)
struct timeval tv[2];
+ Extbyte *filename;
tv[0] = atime;
tv[1] = mtime;
+ LISP_STRING_TO_EXTERNAL (path, filename, Qfile_name);
return utimes (filename, tv);
#else
/* No file times setting function available. */
DEFER_GETTEXT ("bad argument to system call"), /* 12 SIGSYS */
DEFER_GETTEXT ("write on a pipe with no one to read it"), /* 13 SIGPIPE */
DEFER_GETTEXT ("alarm clock"), /* 14 SIGALRM */
- DEFER_GETTEXT ("software termination signum"), /* 15 SIGTERM */
+ DEFER_GETTEXT ("software termination signal"), /* 15 SIGTERM */
DEFER_GETTEXT ("user defined signal 1"), /* 16 SIGUSR1 */
DEFER_GETTEXT ("user defined signal 2"), /* 17 SIGUSR2 */
DEFER_GETTEXT ("death of a child"), /* 18 SIGCLD */
DEFER_GETTEXT ("bad argument to system call"), /* 12 SIGSYS */
DEFER_GETTEXT ("write on a pipe with no one to read it"), /* 13 SIGPIPE */
DEFER_GETTEXT ("alarm clock"), /* 14 SIGALRM */
- DEFER_GETTEXT ("software termination signum"), /* 15 SIGTERM */
+ DEFER_GETTEXT ("software termination signal"), /* 15 SIGTERM */
DEFER_GETTEXT ("user defined signal 1"), /* 16 SIGUSR1 */
DEFER_GETTEXT ("user defined signal 2"), /* 17 SIGUSR2 */
DEFER_GETTEXT ("death of a child"), /* 18 SIGCLD */