--- a/src/pathut.h
+++ b/src/pathut.h
@@ -87,9 +87,19 @@
 /// Returns true if last elt could be checked to exist. False may mean that
 /// the file/dir does not exist or that an error occurred.
 extern bool path_exists(const std::string& path);
+/// Same but must be readable
+extern bool path_readable(const std::string& path);
 
 /// Return separator for PATH environment variable
 extern std::string path_PATHsep();
+
+#ifdef _WIN32
+#define SYSPATH(PATH, SPATH) wchar_t PATH ## _buf[2048];      \
+    utf8towchar(PATH, PATH ## _buf, 2048);                    \
+    wchar_t *SPATH = PATH ## _buf;
+#else
+#define SYSPATH(PATH, SPATH) const char *SPATH = PATH.c_str()
+#endif
 
 /// Dump directory
 extern bool readdir(const std::string& dir, std::string& reason,