mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 21:21:32 +00:00
* FileName:
- removeFile(): replace unlink - copyTo(): add 'overwrite' parameter. * getcwd.cpp: simplify. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21843 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
163d6f3a11
commit
f07105d0e5
@ -853,7 +853,7 @@ bool Buffer::save() const
|
|||||||
backupName = FileName(addName(lyxrc.backupdir_path,
|
backupName = FileName(addName(lyxrc.backupdir_path,
|
||||||
mangledName));
|
mangledName));
|
||||||
}
|
}
|
||||||
if (fileName().copyTo(backupName)) {
|
if (fileName().copyTo(backupName, true)) {
|
||||||
madeBackup = true;
|
madeBackup = true;
|
||||||
} else {
|
} else {
|
||||||
Alert::error(_("Backup failure"),
|
Alert::error(_("Backup failure"),
|
||||||
@ -2071,7 +2071,7 @@ int AutoSaveBuffer::generateChild()
|
|||||||
// filesystems unless write of tmp_ret
|
// filesystems unless write of tmp_ret
|
||||||
// failed so remove tmp file (if it
|
// failed so remove tmp file (if it
|
||||||
// exists)
|
// exists)
|
||||||
unlink(tmp_ret);
|
tmp_ret.removeFile();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
failed = true;
|
failed = true;
|
||||||
@ -2492,7 +2492,7 @@ bool Buffer::readFileHelper(FileName const & s)
|
|||||||
return readFile(a);
|
return readFile(a);
|
||||||
case 1:
|
case 1:
|
||||||
// Here we delete the autosave
|
// Here we delete the autosave
|
||||||
unlink(a);
|
a.removeFile();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
@ -135,7 +135,7 @@ void ConverterCache::Impl::readIndex()
|
|||||||
if (!orig_from_name.exists()) {
|
if (!orig_from_name.exists()) {
|
||||||
LYXERR(Debug::FILES, "Not caching file `"
|
LYXERR(Debug::FILES, "Not caching file `"
|
||||||
<< orig_from << "' (does not exist anymore).");
|
<< orig_from << "' (does not exist anymore).");
|
||||||
support::unlink(item.cache_name);
|
item.cache_name.removeFile();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ void ConverterCache::Impl::readIndex()
|
|||||||
> lyxrc.converter_cache_maxage) {
|
> lyxrc.converter_cache_maxage) {
|
||||||
LYXERR(Debug::FILES, "Not caching file `"
|
LYXERR(Debug::FILES, "Not caching file `"
|
||||||
<< orig_from << "' (too old).");
|
<< orig_from << "' (too old).");
|
||||||
support::unlink(item.cache_name);
|
item.cache_name.removeFile();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -352,7 +352,7 @@ void ConverterCache::remove_all(string const & from_format,
|
|||||||
if (it2->first == to_format) {
|
if (it2->first == to_format) {
|
||||||
LYXERR(Debug::FILES, "Removing file cache item "
|
LYXERR(Debug::FILES, "Removing file cache item "
|
||||||
<< it1->first << ' ' << to_format);
|
<< it1->first << ' ' << to_format);
|
||||||
support::unlink(it2->second.cache_name);
|
it2->second.cache_name.removeFile();
|
||||||
format_cache.erase(it2);
|
format_cache.erase(it2);
|
||||||
// Have to start over again since items in a
|
// Have to start over again since items in a
|
||||||
// map are not ordered
|
// map are not ordered
|
||||||
|
@ -68,7 +68,6 @@ using support::split;
|
|||||||
using support::subst;
|
using support::subst;
|
||||||
using support::suffixIs;
|
using support::suffixIs;
|
||||||
using support::Systemcall;
|
using support::Systemcall;
|
||||||
using support::unlink;
|
|
||||||
using support::trim;
|
using support::trim;
|
||||||
|
|
||||||
namespace os = support::os;
|
namespace os = support::os;
|
||||||
@ -148,29 +147,29 @@ void LaTeX::deleteFilesOnError() const
|
|||||||
// What files do we have to delete?
|
// What files do we have to delete?
|
||||||
|
|
||||||
// This will at least make latex do all the runs
|
// This will at least make latex do all the runs
|
||||||
unlink(depfile);
|
depfile.removeFile();
|
||||||
|
|
||||||
// but the reason for the error might be in a generated file...
|
// but the reason for the error might be in a generated file...
|
||||||
|
|
||||||
// bibtex file
|
// bibtex file
|
||||||
FileName const bbl(changeExtension(file.absFilename(), ".bbl"));
|
FileName const bbl(changeExtension(file.absFilename(), ".bbl"));
|
||||||
unlink(bbl);
|
bbl.removeFile();
|
||||||
|
|
||||||
// makeindex file
|
// makeindex file
|
||||||
FileName const ind(changeExtension(file.absFilename(), ".ind"));
|
FileName const ind(changeExtension(file.absFilename(), ".ind"));
|
||||||
unlink(ind);
|
ind.removeFile();
|
||||||
|
|
||||||
// nomencl file
|
// nomencl file
|
||||||
FileName const nls(changeExtension(file.absFilename(), ".nls"));
|
FileName const nls(changeExtension(file.absFilename(), ".nls"));
|
||||||
unlink(nls);
|
nls.removeFile();
|
||||||
|
|
||||||
// nomencl file (old version of the package)
|
// nomencl file (old version of the package)
|
||||||
FileName const gls(changeExtension(file.absFilename(), ".gls"));
|
FileName const gls(changeExtension(file.absFilename(), ".gls"));
|
||||||
unlink(gls);
|
gls.removeFile();
|
||||||
|
|
||||||
// Also remove the aux file
|
// Also remove the aux file
|
||||||
FileName const aux(changeExtension(file.absFilename(), ".aux"));
|
FileName const aux(changeExtension(file.absFilename(), ".aux"));
|
||||||
unlink(aux);
|
aux.removeFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate a log file and return the filename.
|
* Generate a log file and return the filename.
|
||||||
* It is the caller's responsibility to unlink the
|
* It is the caller's responsibility to remove the
|
||||||
* file after use.
|
* file after use.
|
||||||
*/
|
*/
|
||||||
const std::string getLogFile() const;
|
const std::string getLogFile() const;
|
||||||
|
@ -88,7 +88,7 @@ bool SpecialisedMover::do_rename(support::FileName const & from, support::FileNa
|
|||||||
|
|
||||||
if (!do_copy(from, to, latex, (unsigned long int)-1))
|
if (!do_copy(from, to, latex, (unsigned long int)-1))
|
||||||
return false;
|
return false;
|
||||||
return support::unlink(from) == 0;
|
return from.removeFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,7 +65,6 @@ using support::compare;
|
|||||||
using support::FileName;
|
using support::FileName;
|
||||||
using support::rtrim;
|
using support::rtrim;
|
||||||
using support::split;
|
using support::split;
|
||||||
using support::unlink;
|
|
||||||
|
|
||||||
using std::endl;
|
using std::endl;
|
||||||
using std::string;
|
using std::string;
|
||||||
@ -206,7 +205,7 @@ int LyXComm::startPipe(string const & file, bool write)
|
|||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
lyxerr << "LyXComm: Could not open pipe " << filename << '\n'
|
lyxerr << "LyXComm: Could not open pipe " << filename << '\n'
|
||||||
<< strerror(errno) << endl;
|
<< strerror(errno) << endl;
|
||||||
unlink(filename);
|
filename.removeFile();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,7 +231,7 @@ void LyXComm::endPipe(int & fd, string const & filename, bool write)
|
|||||||
<< '\n' << strerror(errno) << endl;
|
<< '\n' << strerror(errno) << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlink(FileName(filename)) < 0) {
|
if (FileName(filename).removeFile() < 0) {
|
||||||
lyxerr << "LyXComm: Could not remove pipe " << filename
|
lyxerr << "LyXComm: Could not remove pipe " << filename
|
||||||
<< '\n' << strerror(errno) << endl;
|
<< '\n' << strerror(errno) << endl;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ ServerSocket::~ServerSocket()
|
|||||||
lyxerr << "lyx: Server socket " << fd_
|
lyxerr << "lyx: Server socket " << fd_
|
||||||
<< " IO error on closing: " << strerror(errno);
|
<< " IO error on closing: " << strerror(errno);
|
||||||
}
|
}
|
||||||
support::unlink(address_);
|
address_.removeFile();
|
||||||
LYXERR(Debug::LYXSERVER, "lyx: Server socket quitting");
|
LYXERR(Debug::LYXSERVER, "lyx: Server socket quitting");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -450,7 +450,7 @@ bool TextClass::read(FileName const & filename, ReadType rt)
|
|||||||
error = !layout2layout(filename, tempfile);
|
error = !layout2layout(filename, tempfile);
|
||||||
if (!error)
|
if (!error)
|
||||||
error = read(tempfile, rt);
|
error = read(tempfile, rt);
|
||||||
support::unlink(tempfile);
|
tempfile.removeFile();
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,7 +62,6 @@ using support::makeAbsPath;
|
|||||||
using support::makeDisplayPath;
|
using support::makeDisplayPath;
|
||||||
using support::onlyFilename;
|
using support::onlyFilename;
|
||||||
using support::onlyPath;
|
using support::onlyPath;
|
||||||
using support::unlink;
|
|
||||||
|
|
||||||
namespace Alert = frontend::Alert;
|
namespace Alert = frontend::Alert;
|
||||||
|
|
||||||
|
@ -34,7 +34,6 @@ using support::FileName;
|
|||||||
using support::makeDisplayPath;
|
using support::makeDisplayPath;
|
||||||
using support::onlyFilename;
|
using support::onlyFilename;
|
||||||
using support::tempName;
|
using support::tempName;
|
||||||
using support::unlink;
|
|
||||||
using support::unzipFile;
|
using support::unzipFile;
|
||||||
|
|
||||||
using std::endl;
|
using std::endl;
|
||||||
@ -224,11 +223,11 @@ void CacheItem::Impl::reset()
|
|||||||
{
|
{
|
||||||
zipped_ = false;
|
zipped_ = false;
|
||||||
if (!unzipped_filename_.empty())
|
if (!unzipped_filename_.empty())
|
||||||
unlink(unzipped_filename_);
|
unzipped_filename_.removeFile();
|
||||||
unzipped_filename_.erase();
|
unzipped_filename_.erase();
|
||||||
|
|
||||||
if (remove_loaded_file_ && !file_to_load_.empty())
|
if (remove_loaded_file_ && !file_to_load_.empty())
|
||||||
unlink(file_to_load_);
|
file_to_load_.removeFile();
|
||||||
remove_loaded_file_ = false;
|
remove_loaded_file_ = false;
|
||||||
file_to_load_.erase();
|
file_to_load_.erase();
|
||||||
to_.erase();
|
to_.erase();
|
||||||
@ -276,7 +275,7 @@ void CacheItem::Impl::imageConverted(bool success)
|
|||||||
setStatus(ErrorConverting);
|
setStatus(ErrorConverting);
|
||||||
|
|
||||||
if (zipped_)
|
if (zipped_)
|
||||||
unlink(unzipped_filename_);
|
unzipped_filename_.removeFile();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -311,10 +310,10 @@ void CacheItem::Impl::imageLoaded(bool success)
|
|||||||
|
|
||||||
// Clean up after loading.
|
// Clean up after loading.
|
||||||
if (zipped_)
|
if (zipped_)
|
||||||
unlink(unzipped_filename_);
|
unzipped_filename_.removeFile();
|
||||||
|
|
||||||
if (remove_loaded_file_ && unzipped_filename_ != file_to_load_)
|
if (remove_loaded_file_ && unzipped_filename_ != file_to_load_)
|
||||||
unlink(file_to_load_);
|
file_to_load_.removeFile();
|
||||||
|
|
||||||
cl_.disconnect();
|
cl_.disconnect();
|
||||||
|
|
||||||
@ -430,7 +429,7 @@ void CacheItem::Impl::convertToDisplayFormat()
|
|||||||
|
|
||||||
// Remove the temp file, we only want the name...
|
// Remove the temp file, we only want the name...
|
||||||
// FIXME: This is unsafe!
|
// FIXME: This is unsafe!
|
||||||
unlink(to_file_base);
|
to_file_base.removeFile();
|
||||||
|
|
||||||
// Connect a signal to this->imageConverted and pass this signal to
|
// Connect a signal to this->imageConverted and pass this signal to
|
||||||
// the graphics converter so that we can load the modified file
|
// the graphics converter so that we can load the modified file
|
||||||
|
@ -43,7 +43,6 @@ using support::quoteName;
|
|||||||
using support::quote_python;
|
using support::quote_python;
|
||||||
using support::subst;
|
using support::subst;
|
||||||
using support::tempName;
|
using support::tempName;
|
||||||
using support::unlink;
|
|
||||||
|
|
||||||
using std::endl;
|
using std::endl;
|
||||||
using std::ostream;
|
using std::ostream;
|
||||||
@ -209,10 +208,10 @@ void Converter::Impl::converted(pid_t /* pid */, int retval)
|
|||||||
|
|
||||||
finished_ = true;
|
finished_ = true;
|
||||||
// Clean-up behind ourselves
|
// Clean-up behind ourselves
|
||||||
unlink(script_file_);
|
script_file_.removeFile();
|
||||||
|
|
||||||
if (retval > 0) {
|
if (retval > 0) {
|
||||||
unlink(to_file_);
|
to_file_.removeFile();
|
||||||
to_file_.erase();
|
to_file_.erase();
|
||||||
finishedConversion(false);
|
finishedConversion(false);
|
||||||
} else {
|
} else {
|
||||||
@ -314,7 +313,7 @@ static void build_script(FileName const & from_file,
|
|||||||
static int counter = 0;
|
static int counter = 0;
|
||||||
string const tmp = "gconvert" + convert<string>(counter++);
|
string const tmp = "gconvert" + convert<string>(counter++);
|
||||||
FileName const to_base(tempName(FileName(), tmp));
|
FileName const to_base(tempName(FileName(), tmp));
|
||||||
unlink(to_base);
|
to_base.removeFile();
|
||||||
|
|
||||||
// Create a copy of the file in case the original name contains
|
// Create a copy of the file in case the original name contains
|
||||||
// problematic characters like ' or ". We can work around that problem
|
// problematic characters like ' or ". We can work around that problem
|
||||||
|
@ -107,7 +107,7 @@ PreviewImage::Impl::Impl(PreviewImage & p, PreviewLoader & l,
|
|||||||
|
|
||||||
PreviewImage::Impl::~Impl()
|
PreviewImage::Impl::~Impl()
|
||||||
{
|
{
|
||||||
support::unlink(iloader_.filename());
|
iloader_.filename().removeFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -135,12 +135,12 @@ void PreviewImage::Impl::statusChanged()
|
|||||||
case ErrorLoading:
|
case ErrorLoading:
|
||||||
case ErrorGeneratingPixmap:
|
case ErrorGeneratingPixmap:
|
||||||
case ErrorUnknown:
|
case ErrorUnknown:
|
||||||
//lyx::unlink(iloader_.filename());
|
//iloader_.filename().removeFile();
|
||||||
ploader_.remove(snippet_);
|
ploader_.remove(snippet_);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Ready:
|
case Ready:
|
||||||
support::unlink(iloader_.filename());
|
iloader_.filename().removeFile();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ploader_.emitSignal(parent_);
|
ploader_.emitSignal(parent_);
|
||||||
|
@ -393,13 +393,13 @@ void InProgress::stop() const
|
|||||||
lyx::support::ForkedcallsController::get().kill(pid, 0);
|
lyx::support::ForkedcallsController::get().kill(pid, 0);
|
||||||
|
|
||||||
if (!metrics_file.empty())
|
if (!metrics_file.empty())
|
||||||
lyx::support::unlink(metrics_file);
|
metrics_file.removeFile();
|
||||||
|
|
||||||
BitmapFile::const_iterator vit = snippets.begin();
|
BitmapFile::const_iterator vit = snippets.begin();
|
||||||
BitmapFile::const_iterator vend = snippets.end();
|
BitmapFile::const_iterator vend = snippets.end();
|
||||||
for (; vit != vend; ++vit) {
|
for (; vit != vend; ++vit) {
|
||||||
if (!vit->second.empty())
|
if (!vit->second.empty())
|
||||||
lyx::support::unlink(vit->second);
|
vit->second.removeFile();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ TempName::TempName()
|
|||||||
{
|
{
|
||||||
support::FileName const tempname(support::tempName(support::FileName(), "lyxext"));
|
support::FileName const tempname(support::tempName(support::FileName(), "lyxext"));
|
||||||
// FIXME: This is unsafe
|
// FIXME: This is unsafe
|
||||||
support::unlink(tempname);
|
tempname.removeFile();
|
||||||
// must have an extension for the converter code to work correctly.
|
// must have an extension for the converter code to work correctly.
|
||||||
tempname_ = support::FileName(tempname.absFilename() + ".tmp");
|
tempname_ = support::FileName(tempname.absFilename() + ".tmp");
|
||||||
}
|
}
|
||||||
@ -86,7 +86,7 @@ TempName::TempName(TempName const &)
|
|||||||
|
|
||||||
TempName::~TempName()
|
TempName::~TempName()
|
||||||
{
|
{
|
||||||
support::unlink(tempname_);
|
tempname_.removeFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,7 +54,6 @@ using support::runCommand;
|
|||||||
using support::FileName;
|
using support::FileName;
|
||||||
using support::quoteName;
|
using support::quoteName;
|
||||||
using support::tempName;
|
using support::tempName;
|
||||||
using support::unlink;
|
|
||||||
using support::subst;
|
using support::subst;
|
||||||
|
|
||||||
using std::auto_ptr;
|
using std::auto_ptr;
|
||||||
@ -1051,7 +1050,7 @@ namespace {
|
|||||||
lyxerr << "calling: " << cmd
|
lyxerr << "calling: " << cmd
|
||||||
<< "\ninput: '" << data << "'" << endl;
|
<< "\ninput: '" << data << "'" << endl;
|
||||||
cmd_ret const ret = runCommand(command);
|
cmd_ret const ret = runCommand(command);
|
||||||
unlink(cas_tmpfile);
|
cas_tmpfile.removeFile();
|
||||||
return ret.second;
|
return ret.second;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,9 +130,15 @@ void FileName::erase()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool FileName::copyTo(FileName const & name) const
|
bool FileName::copyTo(FileName const & name, bool overwrite) const
|
||||||
{
|
{
|
||||||
return QFile::copy(d->fi.absoluteFilePath(), name.d->fi.absoluteFilePath());
|
if (overwrite)
|
||||||
|
QFile::remove(name.d->fi.absoluteFilePath());
|
||||||
|
bool success = QFile::copy(d->fi.absoluteFilePath(), name.d->fi.absoluteFilePath());
|
||||||
|
if (!success)
|
||||||
|
lyxerr << "FileName::copyTo(): Could not copy file "
|
||||||
|
<< *this << " to " << name << endl;
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -219,7 +225,7 @@ bool FileName::isDirWritable() const
|
|||||||
if (tmpfl.empty())
|
if (tmpfl.empty())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
unlink(tmpfl);
|
tmpfl.removeFile();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -236,6 +242,16 @@ std::time_t FileName::lastModified() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool FileName::removeFile() const
|
||||||
|
{
|
||||||
|
bool const success = QFile::remove(d->fi.absoluteFilePath());
|
||||||
|
if (!success)
|
||||||
|
lyxerr << "FileName::removeFile(): Could not delete file "
|
||||||
|
<< *this << "." << endl;
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static bool rmdir(QFileInfo const & fi)
|
static bool rmdir(QFileInfo const & fi)
|
||||||
{
|
{
|
||||||
QDir dir(fi.absoluteFilePath());
|
QDir dir(fi.absoluteFilePath());
|
||||||
|
@ -84,8 +84,15 @@ public:
|
|||||||
/// return true when file/directory is writable (write test file)
|
/// return true when file/directory is writable (write test file)
|
||||||
bool isDirWritable() const;
|
bool isDirWritable() const;
|
||||||
|
|
||||||
/// return true when file/directory is writable (write test file)
|
/// copy a file
|
||||||
bool copyTo(FileName const & target) const;
|
/// \return true when file/directory is writable (write test file)
|
||||||
|
/// \param overwrite: set to true if we should erase the \c target
|
||||||
|
/// file if it exists,
|
||||||
|
bool copyTo(FileName const & target, bool overwrite = false) const;
|
||||||
|
|
||||||
|
/// remove pointed file.
|
||||||
|
/// \retrun true on success.
|
||||||
|
bool removeFile() const;
|
||||||
|
|
||||||
/// remove directory and all contents, returns true on success
|
/// remove directory and all contents, returns true on success
|
||||||
bool destroyDirectory() const;
|
bool destroyDirectory() const;
|
||||||
|
@ -89,7 +89,6 @@ liblyxsupport_la_SOURCES = \
|
|||||||
userinfo.h \
|
userinfo.h \
|
||||||
unicode.cpp \
|
unicode.cpp \
|
||||||
unicode.h \
|
unicode.h \
|
||||||
unlink.cpp \
|
|
||||||
minizip/crypt.h \
|
minizip/crypt.h \
|
||||||
minizip/ioapi.c \
|
minizip/ioapi.c \
|
||||||
minizip/ioapi.h \
|
minizip/ioapi.h \
|
||||||
|
@ -328,7 +328,7 @@ static FileName createTmpDir(FileName const & tempdir, string const & mask)
|
|||||||
// stays unique. So we have to delete it before we can create
|
// stays unique. So we have to delete it before we can create
|
||||||
// a dir with the same name. Note also that we are not thread
|
// a dir with the same name. Note also that we are not thread
|
||||||
// safe because of the gap between unlink and mkdir. (Lgb)
|
// safe because of the gap between unlink and mkdir. (Lgb)
|
||||||
unlink(tmpfl);
|
tmpfl.removeFile();
|
||||||
|
|
||||||
if (tmpfl.empty() || mkdir(tmpfl, 0700)) {
|
if (tmpfl.empty() || mkdir(tmpfl, 0700)) {
|
||||||
lyxerr << "LyX could not create the temporary directory '"
|
lyxerr << "LyX could not create the temporary directory '"
|
||||||
@ -855,7 +855,7 @@ void removeAutosaveFile(string const & filename)
|
|||||||
a += '#';
|
a += '#';
|
||||||
FileName const autosave(a);
|
FileName const autosave(a);
|
||||||
if (autosave.exists())
|
if (autosave.exists())
|
||||||
unlink(autosave);
|
autosave.removeFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -865,7 +865,7 @@ void readBB_lyxerrMessage(FileName const & file, bool & zipped,
|
|||||||
LYXERR(Debug::GRAPHICS, "[readBB_from_PSFile] " << message);
|
LYXERR(Debug::GRAPHICS, "[readBB_from_PSFile] " << message);
|
||||||
// FIXME: Why is this func deleting a file? (Lgb)
|
// FIXME: Why is this func deleting a file? (Lgb)
|
||||||
if (zipped)
|
if (zipped)
|
||||||
unlink(file);
|
file.removeFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,63 +11,14 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "support/lyxlib.h"
|
#include "support/lyxlib.h"
|
||||||
#include "support/docstring.h"
|
|
||||||
#include "support/os.h"
|
|
||||||
|
|
||||||
#include <boost/scoped_array.hpp>
|
|
||||||
|
|
||||||
#include <cerrno>
|
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
|
||||||
# include <unistd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
# include <windows.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using boost::scoped_array;
|
|
||||||
|
|
||||||
using std::string;
|
|
||||||
|
|
||||||
|
|
||||||
namespace lyx {
|
namespace lyx {
|
||||||
namespace support {
|
namespace support {
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
inline
|
|
||||||
char * l_getcwd(char * buffer, size_t size)
|
|
||||||
{
|
|
||||||
#ifdef _WIN32
|
|
||||||
GetCurrentDirectory(size, buffer);
|
|
||||||
return buffer;
|
|
||||||
#else
|
|
||||||
return ::getcwd(buffer, size);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace anon
|
|
||||||
|
|
||||||
|
|
||||||
// Returns current working directory
|
// Returns current working directory
|
||||||
FileName const getcwd()
|
FileName const getcwd()
|
||||||
{
|
{
|
||||||
int n = 256; // Assume path is less than 256 chars
|
return FileName(".");
|
||||||
char * err;
|
|
||||||
scoped_array<char> tbuf(new char[n]);
|
|
||||||
|
|
||||||
// Safe. Hopefully all getcwds behave this way!
|
|
||||||
while (((err = l_getcwd(tbuf.get(), n)) == 0) && (errno == ERANGE)) {
|
|
||||||
// Buffer too small, double the buffersize and try again
|
|
||||||
n *= 2;
|
|
||||||
tbuf.reset(new char[n]);
|
|
||||||
}
|
|
||||||
|
|
||||||
string result;
|
|
||||||
if (err)
|
|
||||||
result = tbuf.get();
|
|
||||||
return FileName(os::internal_path(to_utf8(from_filesystem8bit(result))));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace support
|
} // namespace support
|
||||||
|
@ -50,8 +50,6 @@ int mkdir(FileName const & pathname, unsigned long int mode);
|
|||||||
/// intermediate directories if necessary
|
/// intermediate directories if necessary
|
||||||
/// \ret return 0 if the directory is successfully created
|
/// \ret return 0 if the directory is successfully created
|
||||||
int makedir(char * pathname, unsigned long int mode=0755);
|
int makedir(char * pathname, unsigned long int mode=0755);
|
||||||
/// unlink the given file
|
|
||||||
int unlink(FileName const & file);
|
|
||||||
/// (securely) create a temporary file in the given dir with the given mask
|
/// (securely) create a temporary file in the given dir with the given mask
|
||||||
/// \p mask must be in filesystem encoding
|
/// \p mask must be in filesystem encoding
|
||||||
FileName const tempName(FileName const & dir = FileName(),
|
FileName const tempName(FileName const & dir = FileName(),
|
||||||
|
@ -27,7 +27,7 @@ bool rename(FileName const & from, FileName const & to)
|
|||||||
{
|
{
|
||||||
if (::rename(from.toFilesystemEncoding().c_str(), to.toFilesystemEncoding().c_str()) == -1) {
|
if (::rename(from.toFilesystemEncoding().c_str(), to.toFilesystemEncoding().c_str()) == -1) {
|
||||||
if (copy(from, to)) {
|
if (copy(from, to)) {
|
||||||
unlink(from);
|
from.removeFile();
|
||||||
return true;
|
return true;
|
||||||
} else
|
} else
|
||||||
return false;
|
return false;
|
||||||
|
@ -114,7 +114,7 @@ int listen(FileName const & name, int queue)
|
|||||||
LYXERR(Debug::ANY, "lyx: Could not bind address '" << name.absFilename()
|
LYXERR(Debug::ANY, "lyx: Could not bind address '" << name.absFilename()
|
||||||
<< "' to socket descriptor: " << strerror(errno));
|
<< "' to socket descriptor: " << strerror(errno));
|
||||||
::close(fd);
|
::close(fd);
|
||||||
unlink(name);
|
name.removeFile();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ int listen(FileName const & name, int queue)
|
|||||||
LYXERR(Debug::ANY, "lyx: Could not put socket in 'listen' state: "
|
LYXERR(Debug::ANY, "lyx: Could not put socket in 'listen' state: "
|
||||||
<< strerror(errno));
|
<< strerror(errno));
|
||||||
::close(fd);
|
::close(fd);
|
||||||
unlink(name);
|
name.removeFile();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
/**
|
|
||||||
* \file unlink.cpp
|
|
||||||
* 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 <config.h>
|
|
||||||
|
|
||||||
#include "support/lyxlib.h"
|
|
||||||
#include "support/FileName.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
|
||||||
# include <unistd.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace lyx {
|
|
||||||
namespace support {
|
|
||||||
|
|
||||||
int unlink(FileName const & pathname)
|
|
||||||
{
|
|
||||||
return ::unlink(pathname.toFilesystemEncoding().c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace support
|
|
||||||
} // namespace lyx
|
|
Loading…
Reference in New Issue
Block a user