#if defined(WIN32) && !defined (_CYGWIN_)
#include "win32.h"
#include "port.h"
-#include "mkdir.h"
#include "mklink2.h"
#endif
+#include "mkdir.h"
+
+
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
-
+#if HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#include <stdexcept>
+
#include "io_stream_file.h"
#include "IOStreamProvider.h"
+
/* completely private iostream registration class */
class FileProvider : public IOStreamProvider
{
int move (String const &a,String const &b) const
{return io_stream_file::move (a, b);}
int mkdir_p (enum path_type_t isadir, String const &path) const
- {return ::mkdir_p (isadir == PATH_TO_DIR ? 1 : 0, path.cstr_oneuse());}
+ {
+ return ::mkdir_p (isadir == PATH_TO_DIR ? 1 : 0, path.cstr_oneuse());
+ }
protected:
FileProvider() // no creating this
{
MoveFile (path.cstr_oneuse(), tmp);
delete[] tmp;
}
+ SetFileAttributes (path.cstr_oneuse(), w & ~FILE_ATTRIBUTE_READONLY);
return !DeleteFileA (path.cstr_oneuse());
#else
// FIXME: try rmdir if unlink fails - remove the dir