#include "lyx_gui_misc.h"
#include "FileInfo.h"
#include "support/path.h" // I know it's OS/2 specific (SMiyata)
-#include "support/syscall.h"
#include "gettext.h"
#include "lyxlib.h"
using std::ifstream;
using std::vector;
-#if 0
-using std::getenv;
-using std::isalpha;
-using std::isalnum;
-using std::popen;
-#endif
-
extern string system_lyxdir;
extern string build_lyxdir;
extern string user_lyxdir;
bool IsLyXFilename(string const & filename)
{
- return contains(filename, ".lyx");
+ return suffixIs(filename, ".lyx");
}
bool IsSGMLFilename(string const & filename)
{
- return contains(filename, ".sgml");
+ return suffixIs(filename, ".sgml");
}
// -1: error- couldn't find out
int IsDirWriteable (string const & path)
{
- string const tmpfl(lyx::tempName(path)); //TmpFileName(path));
-
+ string const tmpfl(lyx::tempName(path, "lyxwritetest"));
+ // We must unlink the tmpfl.
+ lyx::unlink(tmpfl);
+
if (tmpfl.empty()) {
WriteFSAlert(_("LyX Internal Error!"),
_("Could not test if directory is writeable"));
{
// This is a non-error checking C/system implementation
string extension(ext);
- if (extension[0] != '.')
+ if (!extension.empty() && extension[0] != '.')
extension.insert(0, ".");
vector<string> dirlist;
DIR * dirp = ::opendir(dir.c_str());
dirent * dire;
while ((dire = ::readdir(dirp))) {
string const fil = dire->d_name;
- if (prefixIs(fil, extension)) {
+ if (suffixIs(fil, extension)) {
dirlist.push_back(fil);
}
}
}
-static
+namespace {
+
int DeleteAllFilesInDir (string const & path)
{
// I have decided that we will be using parts from the boost
}
-static
string const CreateTmpDir(string const & tempdir, string const & mask)
{
lyxerr[Debug::FILES]
// safe because of the gap between unlink and mkdir. (Lgb)
lyx::unlink(tmpfl.c_str());
- if (tmpfl.empty() || lyx::mkdir(tmpfl, 0777)) {
+ if (tmpfl.empty() || lyx::mkdir(tmpfl, 0700)) {
WriteFSAlert(_("Error! Couldn't create temporary directory:"),
tempdir);
return string();
}
-static
int DestroyTmpDir(string const & tmpdir, bool Allfiles)
{
#ifdef __EMX__
return -1;
}
return 0;
-}
+}
+
+} // namespace anon
string const CreateBufferTmpDir(string const & pathfor)
}
-// Strips filename from path
-string const BasePath(string const & fname)
-{
- if (fname.empty())
- return fname;
-
- string::size_type j = fname.rfind('/');
- if (j == string::npos) // no '/' in fname
- return string();
-
- // Strip to basename
- return fname.substr(0,j + 1);
-}
-
-
// Is a filename/path absolute?
bool AbsolutePath(string const & path)
{
buf += '/';
}
- if (!path2.empty()) {
- string::size_type const p2start = path2.find_first_not_of('/');
- string::size_type const p2end = path2.find_last_not_of('/');
- string const tmp = path2.substr(p2start, p2end - p2start + 1);
- buf += tmp + '/';
- }
+ if (!path2.empty())
+ buf += frontStrip(strip(path2, '/'), '/') + '/';
+
return buf;
}
}
+namespace {
+
typedef pair<int, string> cmdret;
-static
+
cmdret const do_popen(string const & cmd)
{
// One question is if we should use popen or
return make_pair(pret, ret);
}
+} // namespace anon
+
string const
findtexfile(string const & fil, string const & /*format*/)