//
// aegis - project change supervisor
// Copyright (C) 1999, 2002-2006, 2008, 2011, 2012 Peter Miller
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or (at
// your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, see .
//
#include
#include
#include
#include
void
os_mkdir_between(const nstring &top, const nstring &extn, int mode)
{
trace(("os_mkdir_between(top = %p, extn = %p, mode = 0%o)\n{\n",
&top, &extn, mode));
trace_string(top.c_str());
trace_string(extn.c_str());
assert(extn[0] != '/');
assert(extn[extn.size() - 1] != '/');
assert(!extn.empty());
for (const char *cp = extn.c_str(); *cp; ++cp)
{
if (*cp != '/')
continue;
nstring s1(extn.c_str(), cp - extn.c_str());
nstring s2(os_path_cat(top, s1));
trace(("mkdir %s\n", s2.c_str()));
if (!os_exists(s2))
{
os_mkdir(s2, mode);
undo_rmdir_errok(s2);
}
}
trace(("}\n"));
}
void
os_mkdir_between(string_ty *top, string_ty *extn, int mode)
{
os_mkdir_between(nstring(top), nstring(extn), mode);
}
// vim: set ts=8 sw=4 et :