]> granicus.if.org Git - graphviz/commitdiff
implement a 'S_ISDIR' shim for Windows
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 16 Apr 2022 22:01:35 +0000 (15:01 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 24 Apr 2022 15:52:41 +0000 (08:52 -0700)
This will enable further migration away from lib/ast/compat_unistd.h. Note that
the `S_ISDIR` wrapper there appears incorrect, in using a platform-specific
constant for the mask. Its definition of `X_OK` also seems incorrect, as this
value has no documented meaning when calling `_access` on Windows.

Gitlab: #2204

windows/include/unistd/unistd.h

index 83e9d37feb5ce25331927f42305493f8476a051e..9d81fe83a88e37fc6e7bfb86187026690410eac7 100644 (file)
@@ -10,6 +10,7 @@
 #include <process.h> /* for getpid() and the exec..() family */
 #include <direct.h> /* for _getcwd() and _chdir() */
 #include <BaseTsd.h>
+#include <sys/stat.h>
 
 #define srandom srand
 #define random rand
@@ -21,6 +22,8 @@
 //#define   X_OK    1   /* execute permission - unsupported in windows*/
 #define F_OK    0       /* Test for existence.  */
 
+#define S_ISDIR(mode) (((mode) & _S_IFDIR) == _S_IFDIR)
+
 #define access _access
 #define dup2 _dup2
 #define execve _execve