X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fmkdir.C;h=4a068b42bb6aec8e9a576b1f1366f9fceef329da;hb=aabd481ab63fd50606dd0d984c0b407e4b27e6a7;hp=577b3a0613eed9f6864b2d32ea3bba061f9cbfa8;hpb=9fe2fd47ea5e09eb70069fd6efd943ae843a3025;p=lyx.git diff --git a/src/support/mkdir.C b/src/support/mkdir.C index 577b3a0613..4a068b42bb 100644 --- a/src/support/mkdir.C +++ b/src/support/mkdir.C @@ -3,24 +3,46 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ #include -#include -#include -#include -#include - -#include "LString.h" +#include "support/lyxlib.h" -#include "lyxlib.h" +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#include +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef _WIN32 +# include +#endif -int lyx::mkdir(string const & pathname, unsigned long int mode) +int lyx::support::mkdir(std::string const & pathname, unsigned long int mode) { // FIXME: why don't we have mode_t in lyx::mkdir prototype ?? +#if HAVE_MKDIR +# if MKDIR_TAKES_ONE_ARG + // MinGW32 + return ::mkdir(pathname.c_str()); +# else + // POSIX return ::mkdir(pathname.c_str(), mode_t(mode)); +# endif +#elif defined(_WIN32) + // plain Windows 32 + return CreateDirectory(pathname.c_str(), 0) != 0 ? 0 : -1; +#elif HAVE__MKDIR + return ::_mkdir(pathname.c_str()); +#else +# error "Don't know how to create a directory on this system." +#endif }