Converted '#warning ...' into FIXME-comments

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19397 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Christian Ridderström 2007-08-10 11:47:12 +00:00
parent 35fa399edd
commit 1050cc4471
27 changed files with 43 additions and 121 deletions

View File

@ -1613,9 +1613,7 @@ bool Buffer::isUnnamed() const
} }
#ifdef WITH_WARNINGS // FIXME: this function should be moved to buffer_pimpl.C
#warning this function should be moved to buffer_pimpl.C
#endif
void Buffer::markDirty() void Buffer::markDirty()
{ {
if (pimpl_->lyx_clean) { if (pimpl_->lyx_clean) {

View File

@ -349,9 +349,8 @@ docstring Counters::counterLabel(docstring const & format)
{ {
docstring label = format; docstring label = format;
while (true) { while (true) {
#ifdef WITH_WARNINGS // FIXME: Using boost::regex or boost::spirit would make
#warning Using boost::regex or boost::spirit would make this code a lot simpler... (Lgb) // FIXME: this code a lot simpler... (Lgb)
#endif
size_t const i = label.find('\\', 0); size_t const i = label.find('\\', 0);
if (i == docstring::npos) if (i == docstring::npos)

View File

@ -512,9 +512,7 @@ void Cursor::setSelection()
{ {
selection() = true; selection() = true;
// A selection with no contents is not a selection // A selection with no contents is not a selection
#ifdef WITH_WARNINGS // FIXME: doesnt look ok
#warning doesnt look ok
#endif
if (pit() == anchor().pit() && pos() == anchor().pos()) if (pit() == anchor().pit() && pos() == anchor().pos())
selection() = false; selection() = false;
} }
@ -1012,9 +1010,7 @@ InsetMathUnknown * Cursor::activeMacro()
void Cursor::pullArg() void Cursor::pullArg()
{ {
#ifdef WITH_WARNINGS // FIXME: Look here
#warning Look here
#endif
MathData ar = cell(); MathData ar = cell();
if (popLeft() && inMathed()) { if (popLeft() && inMathed()) {
plainErase(); plainErase();
@ -1028,9 +1024,7 @@ void Cursor::pullArg()
void Cursor::touch() void Cursor::touch()
{ {
#ifdef WITH_WARNINGS // FIXME: look here
#warning look here
#endif
#if 0 #if 0
DocIterator::const_iterator it = begin(); DocIterator::const_iterator it = begin();
DocIterator::const_iterator et = end(); DocIterator::const_iterator et = end();

View File

@ -1598,9 +1598,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
theApp()->updateColor(lcolor.getFromLyXName(lyx_name)); theApp()->updateColor(lcolor.getFromLyXName(lyx_name));
if (graphicsbg_changed) { if (graphicsbg_changed) {
#ifdef WITH_WARNINGS // FIXME: The graphics cache no longer has a changeDisplay method.
#warning FIXME!! The graphics cache no longer has a changeDisplay method.
#endif
#if 0 #if 0
graphics::GCache::get().changeDisplay(true); graphics::GCache::get().changeDisplay(true);
#endif #endif

View File

@ -67,9 +67,7 @@ ParIterator ParIterator::operator++(int)
// should not be compiled/used. (Lgb) // should not be compiled/used. (Lgb)
ParIterator & ParIterator::operator--() ParIterator & ParIterator::operator--()
{ {
#ifdef WITH_WARNINGS // FIXME: look here
#warning look here
#endif
// DocIterator::backwardPar(); // DocIterator::backwardPar();
return *this; return *this;
} }
@ -179,9 +177,7 @@ bool operator!=(ParConstIterator const & iter1, ParConstIterator const & iter2)
} }
#ifdef WITH_WARNINGS // FIXME: const correctness!
#warning const correctness!
#endif
ParConstIterator par_const_iterator_begin(Inset const & inset) ParConstIterator par_const_iterator_begin(Inset const & inset)
{ {

View File

@ -751,12 +751,10 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf,
close = true; close = true;
} }
#ifdef WITH_WARNINGS // FIXME: Bug: we can have an empty font change here!
#warning Bug: we can have an empty font change here!
// if there has just been a font change, we are going to close it // if there has just been a font change, we are going to close it
// right now, which means stupid latex code like \textsf{}. AFAIK, // right now, which means stupid latex code like \textsf{}. AFAIK,
// this does not harm dvi output. A minor bug, thus (JMarc) // this does not harm dvi output. A minor bug, thus (JMarc)
#endif
// Some insets cannot be inside a font change command. // Some insets cannot be inside a font change command.
// However, even such insets *can* be placed in \L or \R // However, even such insets *can* be placed in \L or \R
// or their equivalents (for RTL language switches), so we don't // or their equivalents (for RTL language switches), so we don't
@ -2168,11 +2166,9 @@ bool Paragraph::simpleTeXOnePar(Buffer const & buf,
runparams, basefont, basefont); runparams, basefont, basefont);
} }
#else #else
#ifdef WITH_WARNINGS //FIXME: For now we ALWAYS have to close the foreign font settings if they are
//#warning For now we ALWAYS have to close the foreign font settings if they are //FIXME: there as we start another \selectlanguage with the next paragraph if
//#warning there as we start another \selectlanguage with the next paragraph if //FIXME: we are in need of this. This should be fixed sometime (Jug)
//#warning we are in need of this. This should be fixed sometime (Jug)
#endif
running_font.latexWriteEndChanges(os, bparams, runparams, running_font.latexWriteEndChanges(os, bparams, runparams,
basefont, basefont); basefont, basefont);
#endif #endif
@ -2404,9 +2400,7 @@ Paragraph::getParLanguage(BufferParams const & bparams) const
{ {
if (!empty()) if (!empty())
return getFirstFontSettings(bparams).language(); return getFirstFontSettings(bparams).language();
#ifdef WITH_WARNINGS // FIXME: we should check the prev par as well (Lgb)
#warning FIXME we should check the prev par as well (Lgb)
#endif
return bparams.language; return bparams.language;
} }

View File

@ -523,9 +523,7 @@ int Text::leftMargin(Buffer const & buffer, int max_width,
// row in this paragraph. // row in this paragraph.
RowList::iterator rit = par.rows().begin(); RowList::iterator rit = par.rows().begin();
RowList::iterator end = par.rows().end(); RowList::iterator end = par.rows().end();
#ifdef WITH_WARNINGS // FIXME: This is wrong.
#warning This is wrong.
#endif
int minfill = max_width; int minfill = max_width;
for ( ; rit != end; ++rit) for ( ; rit != end; ++rit)
if (rit->fill() < minfill) if (rit->fill() < minfill)

View File

@ -150,9 +150,7 @@ Font Text::getFont(Buffer const & buffer, Paragraph const & par,
BOOST_ASSERT(pos >= 0); BOOST_ASSERT(pos >= 0);
Layout_ptr const & layout = par.layout(); Layout_ptr const & layout = par.layout();
#ifdef WITH_WARNINGS // FIXME: broken?
#warning broken?
#endif
BufferParams const & params = buffer.params(); BufferParams const & params = buffer.params();
pos_type const body_pos = par.beginOfBody(); pos_type const body_pos = par.beginOfBody();
@ -1147,12 +1145,10 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
&& oldpar.isLineSeparator(old.pos() - 1) && oldpar.isLineSeparator(old.pos() - 1)
&& !oldpar.isDeleted(old.pos() - 1)) { && !oldpar.isDeleted(old.pos() - 1)) {
oldpar.eraseChar(old.pos() - 1, cur.buffer().params().trackChanges); oldpar.eraseChar(old.pos() - 1, cur.buffer().params().trackChanges);
#ifdef WITH_WARNINGS // FIXME: This will not work anymore when we have multiple views of the same buffer
#warning This will not work anymore when we have multiple views of the same buffer
// In this case, we will have to correct also the cursors held by // In this case, we will have to correct also the cursors held by
// other bufferviews. It will probably be easier to do that in a more // other bufferviews. It will probably be easier to do that in a more
// automated way in CursorSlice code. (JMarc 26/09/2001) // automated way in CursorSlice code. (JMarc 26/09/2001)
#endif
// correct all cursor parts // correct all cursor parts
if (same_par) { if (same_par) {
fixCursorAfterDelete(cur.top(), old.top()); fixCursorAfterDelete(cur.top(), old.top());
@ -1182,7 +1178,7 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
ParagraphList & plist = old.text()->paragraphs(); ParagraphList & plist = old.text()->paragraphs();
plist.erase(boost::next(plist.begin(), old.pit())); plist.erase(boost::next(plist.begin(), old.pit()));
// see #warning above // see #warning (FIXME?) above
if (cur.depth() >= old.depth()) { if (cur.depth() >= old.depth()) {
CursorSlice & curslice = cur[old.depth() - 1]; CursorSlice & curslice = cur[old.depth() - 1];
if (&curslice.inset() == &old.inset() if (&curslice.inset() == &old.inset()

View File

@ -396,10 +396,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
Paragraph & par = cur.paragraph(); Paragraph & par = cur.paragraph();
bool start = !par.params().startOfAppendix(); bool start = !par.params().startOfAppendix();
#ifdef WITH_WARNINGS // FIXME: The code below only makes sense at top level.
#warning The code below only makes sense at top level.
// Should LFUN_APPENDIX be restricted to top-level paragraphs? // Should LFUN_APPENDIX be restricted to top-level paragraphs?
#endif
// ensure that we have only one start_of_appendix in this document // ensure that we have only one start_of_appendix in this document
// FIXME: this don't work for multipart document! // FIXME: this don't work for multipart document!
for (pit_type tmp = 0, end = pars_.size(); tmp != end; ++tmp) { for (pit_type tmp = 0, end = pars_.size(); tmp != end; ++tmp) {
@ -655,9 +653,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
case LFUN_DELETE_BACKWARD_SKIP: case LFUN_DELETE_BACKWARD_SKIP:
// Reverse the effect of LFUN_BREAK_PARAGRAPH_SKIP. // Reverse the effect of LFUN_BREAK_PARAGRAPH_SKIP.
if (!cur.selection()) { if (!cur.selection()) {
#ifdef WITH_WARNINGS // FIXME: look here
#warning look here
#endif
//CursorSlice cur = cursor(); //CursorSlice cur = cursor();
backspace(cur); backspace(cur);
//anchor() = cur; //anchor() = cur;

View File

@ -244,7 +244,7 @@ int Trans::load(Lexer & lex)
return -1; return -1;
#if 1 #if 1
//#warning This code should be removed... // FIXME: This code should be removed...
// But we need to fix up all the kmap files first // But we need to fix up all the kmap files first
// so that this field is not present anymore. // so that this field is not present anymore.
if (lex.next(true)) { if (lex.next(true)) {

View File

@ -538,9 +538,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf)
inset->read(buf, lex); inset->read(buf, lex);
#ifdef WITH_WARNINGS // FIXME: hack..
#warning hack..
#endif
if (inset->lyxCode() == Inset::MATHMACRO_CODE) { if (inset->lyxCode() == Inset::MATHMACRO_CODE) {
MathMacroTemplate const * tmpl = MathMacroTemplate const * tmpl =
static_cast<MathMacroTemplate*>(inset.get()); static_cast<MathMacroTemplate*>(inset.get());

View File

@ -666,9 +666,7 @@ void PrefDisplay::apply(LyXRC & rc) const
} }
rc.display_graphics = dtype; rc.display_graphics = dtype;
#ifdef WITH_WARNINGS // FIXME!! The graphics cache no longer has a changeDisplay method.
#warning FIXME!! The graphics cache no longer has a changeDisplay method.
#endif
#if 0 #if 0
if (old_value != rc.display_graphics) { if (old_value != rc.display_graphics) {
lyx::graphics::GCache & gc = lyx::graphics::GCache::get(); lyx::graphics::GCache & gc = lyx::graphics::GCache::get();

View File

@ -131,9 +131,7 @@ void QWrap::apply()
static string const numtostr(double val) static string const numtostr(double val)
{ {
string a = convert<string>(val); string a = convert<string>(val);
#ifdef WITH_WARNINGS // FIXME: Will this test ever trigger? (Lgb)
#warning Will this test ever trigger? (Lgb)
#endif
if (a == "0") if (a == "0")
a.erase(); a.erase();
return a; return a;

View File

@ -284,9 +284,7 @@ graphics::Params InsetGraphicsParams::as_grfxParams() const
string const tmp = readBB_from_PSFile(filename); string const tmp = readBB_from_PSFile(filename);
LYXERR(Debug::GRAPHICS) << "BB_from_File: " << tmp << std::endl; LYXERR(Debug::GRAPHICS) << "BB_from_File: " << tmp << std::endl;
if (!tmp.empty()) { if (!tmp.empty()) {
#ifdef WITH_WARNINGS // FIXME: why not convert to unsigned int? (Lgb)
# warning why not convert to unsigned int? (Lgb)
#endif
unsigned int const bb_orig_xl = convert<int>(token(tmp, ' ', 0)); unsigned int const bb_orig_xl = convert<int>(token(tmp, ' ', 0));
unsigned int const bb_orig_yb = convert<int>(token(tmp, ' ', 1)); unsigned int const bb_orig_yb = convert<int>(token(tmp, ' ', 1));

View File

@ -506,13 +506,11 @@ int InsetInclude::latex(Buffer const & buffer, odocstream & os,
tmp->markDepClean(m_buffer->temppath()); tmp->markDepClean(m_buffer->temppath());
#ifdef WITH_WARNINGS // FIXME: handle non existing files
#warning handle non existing files // FIXME: Second argument is irrelevant!
#warning Second argument is irrelevant!
// since only_body is true, makeLaTeXFile will not look at second // since only_body is true, makeLaTeXFile will not look at second
// argument. Should we set it to string(), or should makeLaTeXFile // argument. Should we set it to string(), or should makeLaTeXFile
// make use of it somehow? (JMarc 20031002) // make use of it somehow? (JMarc 20031002)
#endif
// The included file might be written in a different encoding // The included file might be written in a different encoding
Encoding const * const oldEnc = runparams.encoding; Encoding const * const oldEnc = runparams.encoding;
runparams.encoding = &tmp->params().encoding(); runparams.encoding = &tmp->params().encoding();

View File

@ -3797,9 +3797,7 @@ int InsetTabular::docbook(Buffer const & buf, odocstream & os,
int ret = 0; int ret = 0;
Inset * master = 0; Inset * master = 0;
#ifdef WITH_WARNINGS // FIXME: Why not pass a proper DocIterator here?
#warning Why not pass a proper DocIterator here?
#endif
#if 0 #if 0
// if the table is inside a float it doesn't need the informaltable // if the table is inside a float it doesn't need the informaltable
// wrapper. Search for it. // wrapper. Search for it.
@ -4290,9 +4288,7 @@ void InsetTabular::tabularFeatures(Cursor & cur,
case Tabular::MULTICOLUMN: { case Tabular::MULTICOLUMN: {
if (sel_row_start != sel_row_end) { if (sel_row_start != sel_row_end) {
#ifdef WITH_WARNINGS // FIXME: Need I say it ? This is horrible.
#warning Need I say it ? This is horrible.
#endif
// FIXME UNICODE // FIXME UNICODE
Alert::error(_("Error setting multicolumn"), Alert::error(_("Error setting multicolumn"),
_("You cannot set multicolumn vertically.")); _("You cannot set multicolumn vertically."));

View File

@ -60,9 +60,7 @@ void Inset.heorem::write(Buffer const * buf, ostream & os) const
auto_ptr<Inset> Inset.heorem::doClone() const auto_ptr<Inset> Inset.heorem::doClone() const
{ {
#ifdef WITH_WARNINGS // FIXME: Is this inset used? If YES this is WRONG!!! (Jug)
#warning Is this inset used? If YES this is WRONG!!! (Jug)
#endif
auto_ptr<Inset.heorem> result(new InsetTheorem); auto_ptr<Inset.heorem> result(new InsetTheorem);
result->setCollapsed(!isOpen()); result->setCollapsed(!isOpen());

View File

@ -156,9 +156,7 @@ void InsetFormulaMacro::draw(PainterInfo & p, int x, int y) const
pi.pain.fillRectangle(x, a, w, h, Color::mathmacrobg); pi.pain.fillRectangle(x, a, w, h, Color::mathmacrobg);
pi.pain.rectangle(x, a, w, h, Color::mathframe); pi.pain.rectangle(x, a, w, h, Color::mathframe);
#ifdef WITH_WARNINGS // FIXME
#warning FIXME
#endif
#if 0 #if 0
Cursor & cur = p.base.bv->cursor(); Cursor & cur = p.base.bv->cursor();
if (cur.isInside(this)) if (cur.isInside(this))

View File

@ -57,21 +57,16 @@ void InsetMath::dump() const
void InsetMath::metricsT(TextMetricsInfo const &, Dimension &) const void InsetMath::metricsT(TextMetricsInfo const &, Dimension &) const
{ {
#ifdef WITH_WARNINGS
lyxerr << "InsetMath::metricsT(Text) called directly!" << endl; lyxerr << "InsetMath::metricsT(Text) called directly!" << endl;
#endif
} }
void InsetMath::drawT(TextPainter &, int, int) const void InsetMath::drawT(TextPainter &, int, int) const
{ {
#ifdef WITH_WARNINGS
lyxerr << "InsetMath::drawT(Text) called directly!" << endl; lyxerr << "InsetMath::drawT(Text) called directly!" << endl;
#endif
} }
void InsetMath::write(WriteStream & os) const void InsetMath::write(WriteStream & os) const
{ {
docstring const s = name(); docstring const s = name();

View File

@ -972,8 +972,7 @@ void InsetMathHull::doExtern(Cursor & cur, FuncRequest & func)
extra = from_ascii("noextra"); extra = from_ascii("noextra");
std::string const lang = to_ascii(dlang); std::string const lang = to_ascii(dlang);
#ifdef WITH_WARNINGS // FIXME: temporarily disabled
#warning temporarily disabled
//if (cur.selection()) { //if (cur.selection()) {
// MathData ar; // MathData ar;
// selGet(cur.ar); // selGet(cur.ar);
@ -981,7 +980,6 @@ void InsetMathHull::doExtern(Cursor & cur, FuncRequest & func)
// insert(pipeThroughExtern(lang, extra, ar)); // insert(pipeThroughExtern(lang, extra, ar));
// return; // return;
//} //}
#endif
MathData eq; MathData eq;
eq.push_back(MathAtom(new InsetMathChar('='))); eq.push_back(MathAtom(new InsetMathChar('=')));
@ -1028,9 +1026,7 @@ void InsetMathHull::doExtern(Cursor & cur, FuncRequest & func)
cur.pos() = 0; cur.pos() = 0;
MathData ar = cur.cell(); MathData ar = cur.cell();
lyxerr << "use cell: " << ar << endl; lyxerr << "use cell: " << ar << endl;
#ifdef WITH_WARNINGS // FIXME: temporarily disabled
#warning temporarily disabled
#endif
addRow(cur.row()); addRow(cur.row());
++cur.idx(); ++cur.idx();
++cur.idx(); ++cur.idx();
@ -1386,9 +1382,7 @@ Inset::Code InsetMathHull::lyxCode() const
bool InsetMathHull::searchForward(BufferView * bv, string const & str, bool InsetMathHull::searchForward(BufferView * bv, string const & str,
bool, bool) bool, bool)
{ {
#ifdef WITH_WARNINGS // FIXME: completely broken
#warning completely broken
#endif
static InsetMathHull * lastformula = 0; static InsetMathHull * lastformula = 0;
static CursorBase current = DocIterator(ibegin(nucleus())); static CursorBase current = DocIterator(ibegin(nucleus()));
static MathData ar; static MathData ar;

View File

@ -369,9 +369,7 @@ bool InsetMathNest::setMouseHover(bool mouse_hover)
bool InsetMathNest::notifyCursorLeaves(Cursor & /*cur*/) bool InsetMathNest::notifyCursorLeaves(Cursor & /*cur*/)
{ {
#ifdef WITH_WARNINGS // FIXME: look here
#warning look here
#endif
#if 0 #if 0
MathData & ar = cur.cell(); MathData & ar = cur.cell();
// remove base-only "scripts" // remove base-only "scripts"

View File

@ -160,11 +160,9 @@ void MathData::replace(ReplaceData & rep)
} }
} }
#ifdef WITH_WARNINGS // FIXME: temporarily disabled
#warning temporarily disabled
// for (const_iterator it = begin(); it != end(); ++it) // for (const_iterator it = begin(); it != end(); ++it)
// it->nucleus()->replace(rep); // it->nucleus()->replace(rep);
#endif
} }

View File

@ -159,9 +159,7 @@ void MathMacroTemplate::draw(PainterInfo & p, int x, int y) const
//pi.pain.fillRectangle(x, a, w, h, Color::mathmacrobg); //pi.pain.fillRectangle(x, a, w, h, Color::mathmacrobg);
pi.pain.rectangle(x, a, w, h, Color::mathframe); pi.pain.rectangle(x, a, w, h, Color::mathframe);
#ifdef WITH_WARNINGS // FIXME:
#warning FIXME
#endif
#if 0 #if 0
Cursor & cur = p.base.bv->cursor(); Cursor & cur = p.base.bv->cursor();
if (cur.isInside(this)) if (cur.isInside(this))

View File

@ -1254,9 +1254,7 @@ void Parser::parse1(InsetMathGrid & grid, unsigned flags,
} }
else if (t.cs() == "kern") { else if (t.cs() == "kern") {
#ifdef WITH_WARNINGS // FIXME: A hack...
#warning A hack...
#endif
docstring s; docstring s;
while (true) { while (true) {
Token const & t = getToken(); Token const & t = getToken();

View File

@ -38,9 +38,7 @@ bool lyx::support::chmod(FileName const & file, unsigned long int mode)
if (::chmod(file.toFilesystemEncoding().c_str(), mode_t(mode)) != 0) if (::chmod(file.toFilesystemEncoding().c_str(), mode_t(mode)) != 0)
return false; return false;
#else #else
# ifdef WITH_WARNINGS // FIXME: "File permissions are ignored on this system."
# warning "File permissions are ignored on this system."
# endif
#endif #endif
return true; return true;
} }

View File

@ -1178,9 +1178,7 @@ void readBB_lyxerrMessage(FileName const & file, bool & zipped,
{ {
LYXERR(Debug::GRAPHICS) << "[readBB_from_PSFile] " LYXERR(Debug::GRAPHICS) << "[readBB_from_PSFile] "
<< message << std::endl; << message << std::endl;
#ifdef WITH_WARNINGS // FIXME: Why is this func deleting a file? (Lgb)
#warning Why is this func deleting a file? (Lgb)
#endif
if (zipped) if (zipped)
unlink(file); unlink(file);
} }

View File

@ -41,9 +41,7 @@ int mkdir(FileName const & pathname, unsigned long int mode)
# if MKDIR_TAKES_ONE_ARG # if MKDIR_TAKES_ONE_ARG
// MinGW32 // MinGW32
return ::mkdir(pathname.toFilesystemEncoding().c_str()); return ::mkdir(pathname.toFilesystemEncoding().c_str());
# ifdef WITH_WARNINGS // FIXME: "Permissions of created directories are ignored on this system."
# warning "Permissions of created directories are ignored on this system."
# endif
# else # else
// POSIX // POSIX
return ::mkdir(pathname.toFilesystemEncoding().c_str(), mode_t(mode)); return ::mkdir(pathname.toFilesystemEncoding().c_str(), mode_t(mode));
@ -51,14 +49,10 @@ int mkdir(FileName const & pathname, unsigned long int mode)
#elif defined(_WIN32) #elif defined(_WIN32)
// plain Windows 32 // plain Windows 32
return CreateDirectory(pathname.toFilesystemEncoding().c_str(), 0) != 0 ? 0 : -1; return CreateDirectory(pathname.toFilesystemEncoding().c_str(), 0) != 0 ? 0 : -1;
# ifdef WITH_WARNINGS // FIXME: "Permissions of created directories are ignored on this system."
# warning "Permissions of created directories are ignored on this system."
# endif
#elif HAVE__MKDIR #elif HAVE__MKDIR
return ::_mkdir(pathname.toFilesystemEncoding().c_str()); return ::_mkdir(pathname.toFilesystemEncoding().c_str());
# ifdef WITH_WARNINGS // FIXME: "Permissions of created directories are ignored on this system."
# warning "Permissions of created directories are ignored on this system."
# endif
#else #else
# error "Don't know how to create a directory on this system." # error "Don't know how to create a directory on this system."
#endif #endif