X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FDepTable.C;h=0c745f0950c15a6652f19968eacc544db80b789d;hb=b01a9dc187d9cd396a57463ad27511379dcdc9cd;hp=3de886dcda8a81ef070cc85f9d7212d5de34dd77;hpb=6c300f72a217722652dc27db9108e1050028979c;p=lyx.git diff --git a/src/DepTable.C b/src/DepTable.C index 3de886dcda..0c745f0950 100644 --- a/src/DepTable.C +++ b/src/DepTable.C @@ -32,8 +32,8 @@ namespace lyx { using std::time; #endif +using support::FileName; using support::ltrim; -using support::makeAbsPath; using support::onlyFilename; using support::suffixIs; using support::sum; @@ -52,10 +52,8 @@ bool DepTable::dep_info::changed() const } -void DepTable::insert(string const & fi, bool upd) +void DepTable::insert(FileName const & f, bool upd) { - // not quite sure if this is the correct place for MakeAbsPath - string const f = makeAbsPath(fi); if (deplist.find(f) == deplist.end()) { dep_info di; di.crc_prev = 0; @@ -64,7 +62,7 @@ void DepTable::insert(string const & fi, bool upd) di.crc_cur = sum(f); lyxerr[Debug::DEPEND] << "done." << endl; struct stat f_info; - stat(fi.c_str(), &f_info); + stat(f.toFilesystemEncoding().c_str(), &f_info); di.mtime_cur = f_info.st_mtime; } else { di.crc_cur = 0; @@ -87,7 +85,7 @@ void DepTable::update() dep_info &di = itr->second; struct stat f_info; - if (stat(itr->first.c_str(), &f_info) == 0) { + if (stat(itr->first.toFilesystemEncoding().c_str(), &f_info) == 0) { if (di.mtime_cur == f_info.st_mtime) { di.crc_prev = di.crc_cur; lyxerr[Debug::DEPEND] << itr->first << " same mtime" << endl; @@ -132,10 +130,8 @@ bool DepTable::sumchange() const } -bool DepTable::haschanged(string const & f) const +bool DepTable::haschanged(FileName const & fil) const { - // not quite sure if this is the correct place for MakeAbsPath - string const fil = makeAbsPath(f); DepList::const_iterator cit = deplist.find(fil); if (cit != deplist.end()) { if (cit->second.changed()) @@ -150,7 +146,7 @@ bool DepTable::extchanged(string const & ext) const DepList::const_iterator cit = deplist.begin(); DepList::const_iterator end = deplist.end(); for (; cit != end; ++cit) { - if (suffixIs(cit->first, ext)) { + if (suffixIs(cit->first.absFilename(), ext)) { if (cit->second.changed()) return true; } @@ -164,7 +160,7 @@ bool DepTable::ext_exist(string const & ext) const DepList::const_iterator cit = deplist.begin(); DepList::const_iterator end = deplist.end(); for (; cit != end; ++cit) { - if (suffixIs(cit->first, ext)) { + if (suffixIs(cit->first.absFilename(), ext)) { return true; } } @@ -172,7 +168,7 @@ bool DepTable::ext_exist(string const & ext) const } -bool DepTable::exist(string const & fil) const +bool DepTable::exist(FileName const & fil) const { return deplist.find(fil) != deplist.end(); } @@ -183,7 +179,7 @@ void DepTable::remove_files_with_extension(string const & suf) DepList::iterator cit = deplist.begin(); DepList::iterator end = deplist.end(); while (cit != end) { - if (suffixIs(cit->first, suf)) { + if (suffixIs(cit->first.absFilename(), suf)) { // Can't erase the current iterator, but we // can increment and then erase. // Deplist is a map so only the erased @@ -197,12 +193,12 @@ void DepTable::remove_files_with_extension(string const & suf) } -void DepTable::remove_file(string const & filename) +void DepTable::remove_file(FileName const & filename) { DepList::iterator cit = deplist.begin(); DepList::iterator end = deplist.end(); while (cit != end) { - if (onlyFilename(cit->first) == filename) { + if (cit->first == filename) { // Can't erase the current iterator, but we // can increment and then erase. // deplist is a map so only the erased @@ -216,9 +212,9 @@ void DepTable::remove_file(string const & filename) } -void DepTable::write(string const & f) const +void DepTable::write(FileName const & f) const { - ofstream ofs(f.c_str()); + ofstream ofs(f.toFilesystemEncoding().c_str()); DepList::const_iterator cit = deplist.begin(); DepList::const_iterator end = deplist.end(); for (; cit != end; ++cit) { @@ -238,9 +234,9 @@ void DepTable::write(string const & f) const } -bool DepTable::read(string const & f) +bool DepTable::read(FileName const & f) { - ifstream ifs(f.c_str()); + ifstream ifs(f.toFilesystemEncoding().c_str()); string nome; dep_info di; // This doesn't change through the loop. @@ -254,7 +250,7 @@ bool DepTable::read(string const & f) << di.mtime_cur << ' ' << nome << endl; } - deplist[nome] = di; + deplist[FileName(nome)] = di; } return deplist.size(); }