25 lines
945 B
Text
25 lines
945 B
Text
$NetBSD: patch-ac,v 1.5 2010/12/21 20:54:24 asau Exp $
|
|
|
|
--- dlls/ntdll/directory.c.orig 2008-11-21 17:20:28.000000000 +0100
|
|
+++ dlls/ntdll/directory.c
|
|
@@ -130,6 +130,20 @@ static inline int getdents64( int fd, ch
|
|
#endif /* linux */
|
|
|
|
#define IS_OPTION_TRUE(ch) ((ch) == 'y' || (ch) == 'Y' || (ch) == 't' || (ch) == 'T' || (ch) == '1')
|
|
+#if defined(__NetBSD_Version__) && __NetBSD_Version__ >= 399000800
|
|
+/*
|
|
+ * workaround for obsolete getdirentries() which returns
|
|
+ * the old 32-bit inode struct dirent, while dirent.h has the
|
|
+ * new 64-bit inode struct dirent inode since 3.99.8
|
|
+ */
|
|
+int compat_netbsd_getdirentries(int fd, char *buf, int nbytes, long *basep)
|
|
+{
|
|
+ *basep = (long)lseek(fd, 0, SEEK_CUR);
|
|
+ return getdents(fd, buf, (size_t)nbytes);
|
|
+}
|
|
+#define getdirentries compat_netbsd_getdirentries
|
|
+#endif
|
|
+
|
|
#define IS_SEPARATOR(ch) ((ch) == '\\' || (ch) == '/')
|
|
|
|
#define INVALID_NT_CHARS '*','?','<','>','|','"'
|