X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fsysdep.c;h=c307469bdba9a1a9a2b697c7dfeffd68da71fdbc;hb=bc741487551598b72717ccde638419f56cd4e16e;hp=54e1bf2b16fb41bc60a5b5ad9c93281676a83338;hpb=3062d425fac0473eb5aa2efc0bb002f6ce0cb028;p=chise%2Fxemacs-chise.git diff --git a/src/sysdep.c b/src/sysdep.c index 54e1bf2..c307469 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -33,7 +33,7 @@ Boston, MA 02111-1307, USA. */ #ifdef WIN32_NATIVE #ifdef MINGW -#include +#include <../mingw/process.h> #else /* should not conflict with "process.h", as per ANSI definition. This is not true with visual c though. The trick below works with @@ -2337,7 +2337,11 @@ init_system_name (void) 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)) @@ -3154,9 +3158,11 @@ sys_rename (const char *old, const char *new) /* 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); } @@ -3342,17 +3348,26 @@ gettimeofday (struct timeval *tp, struct timezone *tzp) 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. */ @@ -3569,7 +3584,7 @@ const char *sys_siglist[NSIG + 1] = 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 */ @@ -3608,7 +3623,7 @@ const char *sys_siglist[NSIG + 1] = 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 */