X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fmkdir.C;h=4a068b42bb6aec8e9a576b1f1366f9fceef329da;hb=aabd481ab63fd50606dd0d984c0b407e4b27e6a7;hp=e3a5102ecb0b09a511627f792844705cc6aa8157;hpb=d6665cba427b04ae37f42c846398cad518d2be0f;p=lyx.git diff --git a/src/support/mkdir.C b/src/support/mkdir.C index e3a5102ecb..4a068b42bb 100644 --- a/src/support/mkdir.C +++ b/src/support/mkdir.C @@ -1,15 +1,48 @@ -#include +/** + * \file mkdir.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * + * 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) { - return ::mkdir(pathname.c_str(), 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 }