]> git.eshelyaron.com Git - emacs.git/commitdiff
Implement stubs of `readlink' and `symlink' for MS-Windows.
authorEli Zaretskii <eliz@gnu.org>
Sun, 27 Feb 2011 19:48:31 +0000 (21:48 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sun, 27 Feb 2011 19:48:31 +0000 (21:48 +0200)
 src/w32.c (symlink, readlink): New stub functions.
 nt/inc/unistd.h (readlink, symlink): Declare prototypes.

nt/ChangeLog
nt/inc/unistd.h
src/ChangeLog
src/w32.c

index bfaba610bf230ca9e879ee0c18c7b48ff6c5b635..e55fc52a487ef7d412fc096305170bb7489c0510 100644 (file)
@@ -1,3 +1,7 @@
+2011-02-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * inc/unistd.h (readlink, symlink): Declare prototypes.
+
 2011-02-26  Eli Zaretskii  <eliz@gnu.org>
 
        * config.nt (nlink_t): Define.
index 7e77f95da4ca33e6481a203eb5a1d49be5a27c14..fb1f1c4b3bfc8077fc01810b1995c0ff74926946 100644 (file)
@@ -1,2 +1,10 @@
 /* Fake unistd.h: config.h already provides most of the relevant things. */
 
+#ifndef _UNISTD_H
+#define _UNISTD_H
+
+extern ssize_t readlink (const char *, char *, size_t);
+extern int symlink (char const *, char const *);
+
+#endif /* _UNISTD_H */
+
index 1929c3fc98a8daadcd1b5eac3dcc8e5fbf2e8f3c..f3710495c4ad10aaff38a23f09464ce0306df3b5 100644 (file)
@@ -1,3 +1,7 @@
+2011-02-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (symlink, readlink): New stub functions.
+
 2011-02-27  Paul Eggert  <eggert@cs.ucla.edu>
 
        * scroll.c (CHECK_BOUNDS): #define only if GLYPH_DEBUG.
index d4f68544c1dd4b528c1a52cba14f8aea9de2629e..ae2373be46eda34249268e567c981fc99dd0f8b2 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -3613,6 +3613,25 @@ utime (const char *name, struct utimbuf *times)
   return 0;
 }
 
+\f
+/* Symlink-related functions that always fail.  Used in fileio.c to
+   avoid #ifdef's.  */
+int
+symlink (char const *dummy1, char const *dummy2)
+{
+  errno = ENOSYS;
+  return -1;
+}
+
+ssize_t
+readlink (const char *name, char *dummy1, size_t dummy2)
+{
+  /* `access' is much faster than `stat' on MS-Windows.  */
+  if (sys_access (name, 0) == 0)
+    errno = EINVAL;
+  return -1;
+}
+
 \f
 /* Support for browsing other processes and their attributes.  See
    process.c for the Lisp bindings.  */