Don't call gnulib's careadlinkat on Windows.
authorEli Zaretskii <eliz@gnu.org>
Wed, 6 Apr 2011 16:05:49 +0000 (19:05 +0300)
committerEli Zaretskii <eliz@gnu.org>
Wed, 6 Apr 2011 16:05:49 +0000 (19:05 +0300)
 src/w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
 lib/makefile.w32-in ($(BLD)/careadlinkat.$(O), GNULIBOBJS):
 Revert last change.

ChangeLog
lib/makefile.w32-in
src/ChangeLog
src/w32.c

index c57bcab..b7f8f77 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-04-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * lib/makefile.w32-in ($(BLD)/careadlinkat.$(O), GNULIBOBJS):
+       Revert last change.
+
 2011-04-06  Juanma Barranquero  <lekktu@gmail.com>
 
        * lib/makefile.w32-in (GNULIBOBJS): Add careadlinkat.$(O).
index 895cd0b..b2aecec 100644 (file)
@@ -29,8 +29,7 @@ GNULIBOBJS = $(BLD)/dtoastr.$(O) \
             $(BLD)/strftime.$(O) \
             $(BLD)/time_r.$(O) \
             $(BLD)/md5.$(O) \
-            $(BLD)/filemode.$(O) \
-            $(BLD)/careadlinkat.$(O)
+            $(BLD)/filemode.$(O)
 
 #
 # Build the library
@@ -119,22 +118,12 @@ $(BLD)/filemode.$(O) : \
        $(EMACS_ROOT)/src/m/intel386.h \
        $(EMACS_ROOT)/src/config.h
 
-$(BLD)/careadlinkat.$(O) : \
-       $(SRC)/careadlinkat.c \
-       $(SRC)/careadlinkat.h \
-       $(SRC)/allocator.h \
-       $(EMACS_ROOT)/nt/inc/unistd.h \
-       $(EMACS_ROOT)/nt/inc/sys/stat.h \
-       $(EMACS_ROOT)/src/s/ms-w32.h \
-       $(EMACS_ROOT)/src/m/intel386.h \
-       $(EMACS_ROOT)/src/config.h
-
 # The following dependencies are for supporting parallel builds, where
 # we must make sure $(BLD) exists before any compilation starts.
 #
 $(BLD)/dtoastr.$(O) $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O): stamp_BLD
 $(BLD)/strftime.$(O) $(BLD)/time_r.$(O) $(BLD)/md5.$(O): stamp_BLD
-$(BLD)/filemode.$(O) $(BLD)/careadlinkat.$(O): stamp_BLD
+$(BLD)/filemode.$(O): stamp_BLD
 
 #
 # Headers we would preprocess if we could.
index 4c85272..240fd8f 100644 (file)
@@ -1,3 +1,7 @@
+2011-04-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (careadlinkat, careadlinkatcwd): New always-fail stubs.
+
 2011-04-06  Paul Eggert  <eggert@cs.ucla.edu>
 
        Fix more problems found by GCC 4.6.0's static checks.
index da40367..d715c39 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -138,6 +138,9 @@ typedef struct _PROCESS_MEMORY_COUNTERS_EX {
 #include "dispextern.h"                /* for xstrcasecmp */
 #include "coding.h"            /* for Vlocale_coding_system */
 
+#include "careadlinkat.h"
+#include "allocator.h"
+
 /* For serial_configure and serial_open.  */
 #include "process.h"
 
@@ -3610,8 +3613,8 @@ utime (const char *name, struct utimbuf *times)
 }
 
 \f
-/* Symlink-related functions that always fail.  Used in fileio.c to
-   avoid #ifdef's.  */
+/* Symlink-related functions that always fail.  Used in fileio.c and in
+   sysdep.c to avoid #ifdef's.  */
 int
 symlink (char const *dummy1, char const *dummy2)
 {
@@ -3628,6 +3631,24 @@ readlink (const char *name, char *dummy1, size_t dummy2)
   return -1;
 }
 
+char *
+careadlinkat (int fd, char const *filename,
+              char *buffer, size_t buffer_size,
+              struct allocator const *alloc,
+              ssize_t (*preadlinkat) (int, char const *, char *, size_t))
+{
+  errno = ENOSYS;
+  return NULL;
+}
+
+ssize_t
+careadlinkatcwd (int fd, char const *filename, char *buffer,
+                 size_t buffer_size)
+{
+  (void) fd;
+  return readlink (filename, buffer, buffer_size);
+}
+
 \f
 /* Support for browsing other processes and their attributes.  See
    process.c for the Lisp bindings.  */