Wolfgang Engelmann wrote:
> What might be the reason for this:
> LyX was not able to make backup copy. Beware.
>
> It is shown on the command console from which I start lyx& after
> saving or finishing lyx.
> I had never this problem before
Looking at the code (below), LyX is complaining that it
was unable to open either the input file stream or the
output file stream. (if (ifs && ofs))
string s;
if (lyxrc.make_backup) {
s = fileName() + '~';
if (!lyxrc.backupdir_path.empty())
s = AddName(lyxrc.backupdir_path,
subst(os::slashify_path(s),'/','!'));
// Should probably have some more error checking here.
// Doing it this way, also makes the inodes stay the same.
// This is still not a very good solution, in particular we
// might loose the owner of the backup.
FileInfo finfo(fileName());
if (finfo.exist()) {
mode_t fmode = finfo.getMode();
struct utimbuf times = {
finfo.getAccessTime(),
finfo.getModificationTime() };
ifstream ifs(fileName().c_str());
ofstream ofs(s.c_str(), ios::out|ios::trunc);
if (ifs && ofs) {
ofs << ifs.rdbuf();
ifs.close();
ofs.close();
::chmod(s.c_str(), fmode);
if (::utime(s.c_str(), ×)) {
lyxerr << "utime error." << endl;
}
} else {
lyxerr << "LyX was not able to make "
"backup copy. Beware." << endl;
}
}
}
--