#define NPRT(x) (x)?(x):_("*None*")
#if defined(HAVE_WIN32)
+
+#define WIN32_REPARSE_POINT 1
+#define WIN32_MOUNT_POINT 2
+
void InitWinAPIWrapper();
#define OSDependentInit() InitWinAPIWrapper()
+#define tape_open win32_tape_open
+#define tape_ioctl win32_tape_ioctl
+#define tape_read win32_tape_read
+#define tape_write win32_tape_write
+#define tape_close win32_tape_close
+#define IS_TAPE(x) S_ISCHR(x)
#define sbrk(x) 0
# define CATS_IMP_EXP
#endif
-#else
+#else /* HAVE_WIN32 */
#define DLL_IMP_EXP
#define CATS_IMP_EXP
#define OSDependentInit()
-#define tape_open open
-#define tape_ioctl ioctl
-#define tape_read ::read
-#define tape_write ::write
-#define tape_close ::close
+#if defined(USE_FAKETAPE)
+# define tape_open faketape_open
+# define tape_ioctl faketape_ioctl
+# define tape_read faketape_read
+# define tape_write faketape_write
+# define tape_close faketape_close
+# define IS_TAPE(x) S_ISREG(x)
+#else /* UNIX && !FAKETAPE */
+# define tape_open ::open
+# define tape_ioctl ::ioctl
+# define tape_read ::read
+# define tape_write ::write
+# define tape_close ::close
+# define IS_TAPE(x) S_ISCHR(x)
#endif
+#endif /* HAVE_WIN32 */
+
#ifdef ENABLE_NLS
#include <libintl.h>
#define FT_INVALIDDT 20 /* Drive type not allowed for */
#define FT_REPARSE 21 /* Win NTFS reparse point */
#define FT_PLUGIN 22 /* Plugin generated filename */
+#define FT_DELETED 23 /* Deleted file entry */
/* Definitions for upper part of type word (see above). */
#define AR_DATA_STREAM (1<<16) /* Data stream id present */
inline char *first_path_separator(char *path) { return strpbrk(path, "/\\"); }
inline const char *first_path_separator(const char *path) { return strpbrk(path, "/\\"); }
+extern void pause_msg(const char *file, const char *func, int line, const char *msg);
+#define pause(msg) if (debug_level) pause_msg(__FILE__, __func__, __LINE__, (msg))
+
#else
#define PathSeparator '/'
/* Define Winsock functions if we aren't on Windows */
inline bool IsPathSeparator(int ch) { return ch == '/'; }
inline char *first_path_separator(char *path) { return strchr(path, '/'); }
inline const char *first_path_separator(const char *path) { return strchr(path, '/'); }
+#define pause(msg)
#endif