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;
// -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);
}
}
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;
}