]> git.lyx.org Git - lyx.git/blobdiff - src/VCBackend.cpp
Fix typo.
[lyx.git] / src / VCBackend.cpp
index 0e10aaafca0a7ba72698c0c5459dda2893a3e8de..e0d9b4cce48138ce8d7b62fecb5c81d357a33be8 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "VCBackend.h"
 #include "Buffer.h"
+#include "DispatchResult.h"
 #include "LyX.h"
 #include "FuncRequest.h"
 
@@ -43,7 +44,7 @@ int VCS::doVCCommandCall(string const & cmd, FileName const & path)
        LYXERR(Debug::LYXVC, "doVCCommandCall: " << cmd);
        Systemcall one;
        support::PathChanger p(path);
-       return one.startscript(Systemcall::Wait, cmd, string(), false);
+       return one.startscript(Systemcall::Wait, cmd, string(), string(), false);
 }
 
 
@@ -58,7 +59,7 @@ int VCS::doVCCommand(string const & cmd, FileName const & path, bool reportError
                owner_->setBusy(false);
        if (ret && reportError)
                frontend::Alert::error(_("Revision control error."),
-                       bformat(_("Some problem occured while running the command:\n"
+                       bformat(_("Some problem occurred while running the command:\n"
                                  "'%1$s'."),
                        from_utf8(cmd)));
        return ret;
@@ -74,8 +75,8 @@ bool VCS::makeRCSRevision(string const &version, string &revis) const
                // if positive use as the last number in the whole revision string
                if (back > 0) {
                        string base;
-                       rsplit(version, base , '.' );
-                       rev = base + "." + rev;
+                       rsplit(version, base , '.');
+                       rev = base + '.' + rev;
                }
                if (back == 0)
                        rev = version;
@@ -83,14 +84,14 @@ bool VCS::makeRCSRevision(string const &version, string &revis) const
                // in case of backward indexing
                if (back < 0) {
                        string cur, base;
-                       cur = rsplit(version, base , '.' );
+                       cur = rsplit(version, base , '.');
                        if (!isStrInt(cur))
                                return false;
                        int want = convert<int>(cur) + back;
                        if (want <= 0)
                                return false;
-                       
-                       rev = base + "." + convert<string>(want);
+
+                       rev = base + '.' + convert<string>(want);
                }
        }
 
@@ -359,7 +360,7 @@ bool RCS::lockingToggleEnabled()
 
 bool RCS::revert()
 {
-       if (doVCCommand("co -f -u" + version_ + " "
+       if (doVCCommand("co -f -u" + version_ + ' '
                    + quoteName(onlyFileName(owner_->absFileName())),
                    FileName(owner_->filePath())))
                return false;
@@ -379,7 +380,7 @@ bool RCS::isRevertWithConfirmation()
 void RCS::undoLast()
 {
        LYXERR(Debug::LYXVC, "LyXVC: undoLast");
-       doVCCommand("rcs -o" + version_ + " "
+       doVCCommand("rcs -o" + version_ + ' '
                    + quoteName(onlyFileName(owner_->absFileName())),
                    FileName(owner_->filePath()));
 }
@@ -482,7 +483,7 @@ bool RCS::prepareFileRevision(string const &revis, string & f)
        if (!VCS::makeRCSRevision(version_, rev))
                return false;
 
-       TempFile tempfile("lyxvcrev_" + rev + "_");
+       TempFile tempfile("lyxvcrev_" + rev + '_');
        tempfile.setAutoRemove(false);
        FileName tmpf = tempfile.name();
        if (tmpf.empty()) {
@@ -490,10 +491,11 @@ bool RCS::prepareFileRevision(string const &revis, string & f)
                return false;
        }
 
-       doVCCommand("co -p" + rev + " "
+       doVCCommand("co -p" + rev + ' '
                      + quoteName(onlyFileName(owner_->absFileName()))
                      + " > " + quoteName(tmpf.toFilesystemEncoding()),
                FileName(owner_->filePath()));
+       tmpf.refresh();
        if (tmpf.isFileEmpty())
                return false;
 
@@ -638,7 +640,7 @@ docstring CVS::toString(CvsStatus status) const
        case StatusError:
                return _("Cannot retrieve CVS status");
        }
-       return 0;
+       return docstring();
 }
 
 
@@ -679,7 +681,7 @@ CVS::CvsStatus CVS::getStatus()
        while (ifs) {
                string line;
                getline(ifs, line);
-               LYXERR(Debug::LYXVC, line << "\n");
+               LYXERR(Debug::LYXVC, line << '\n');
                if (prefixIs(line, "File:")) {
                        if (contains(line, "Up-to-date"))
                                status = UpToDate;
@@ -707,22 +709,22 @@ void CVS::getRevisionInfo()
                LYXERR(Debug::LYXVC, "Could not generate logfile " << tmpf);
                return;
        }
-       
-       int rc = doVCCommandCallWithOutput("cvs log -r" + version_ 
-               + " " + getTarget(File),
+
+       int rc = doVCCommandCallWithOutput("cvs log -r" + version_
+               + ' ' + getTarget(File),
                FileName(owner_->filePath()), tmpf);
        if (rc) {
                LYXERR(Debug::LYXVC, "cvs log failed with exit code " << rc);
                return;
        }
-       
+
        ifstream ifs(tmpf.toFilesystemEncoding().c_str());
        static regex const reg("date: (.*) (.*) (.*);  author: (.*);  state: (.*);(.*)");
 
        while (ifs) {
                string line;
                getline(ifs, line);
-               LYXERR(Debug::LYXVC, line << "\n");
+               LYXERR(Debug::LYXVC, line << '\n');
                if (prefixIs(line, "date:")) {
                        smatch sm;
                        regex_match(line, sm, reg);
@@ -826,7 +828,7 @@ string CVS::scanLogFile(FileName const & f, string & status)
        while (ifs) {
                string line;
                getline(ifs, line);
-               LYXERR(Debug::LYXVC, line << "\n");
+               LYXERR(Debug::LYXVC, line << '\n');
                if (!line.empty())
                        status += line + "; ";
                if (prefixIs(line, "C ")) {
@@ -910,7 +912,7 @@ string CVS::checkOut()
                LYXERR(Debug::LYXVC, "Could not generate logfile " << tmpf);
                return string();
        }
-       
+
        int rc = update(File, tmpf);
        string log;
        string const res = scanLogFile(tmpf, log);
@@ -922,7 +924,7 @@ string CVS::checkOut()
                                from_local8bit(res)));
                rc = 0;
        }
-       
+
        return rc ? string() : log.empty() ? "CVS: Proceeded" : "CVS: " + log;
 }
 
@@ -944,7 +946,7 @@ string CVS::repoUpdate()
                LYXERR(Debug::LYXVC, "Could not generate logfile " << tmpf);
                return string();
        }
-       
+
        getDiff(Directory, tmpf);
        docstring res = tmpf.fileContents("UTF-8");
        if (!res.empty()) {
@@ -956,13 +958,13 @@ string CVS::repoUpdate()
                                "or you will need to revert back to the repository version."), file);
                int ret = frontend::Alert::prompt(_("Changes detected"),
                                text, 0, 1, _("&Continue"), _("&Abort"), _("View &Log ..."));
-               if (ret == 2 ) {
+               if (ret == 2) {
                        dispatch(FuncRequest(LFUN_DIALOG_SHOW, "file " + tmpf.absFileName()));
                        ret = frontend::Alert::prompt(_("Changes detected"),
                                text, 0, 1, _("&Continue"), _("&Abort"));
                        hideDialogs("file", 0);
                }
-               if (ret == 1 )
+               if (ret == 1)
                        return string();
        }
 
@@ -1107,7 +1109,7 @@ bool CVS::prepareFileRevision(string const & revis, string & f)
        if (!VCS::makeRCSRevision(version_, rev))
                return false;
 
-       TempFile tempfile("lyxvcrev_" + rev + "_");
+       TempFile tempfile("lyxvcrev_" + rev + '_');
        tempfile.setAutoRemove(false);
        FileName tmpf = tempfile.name();
        if (tmpf.empty()) {
@@ -1115,9 +1117,10 @@ bool CVS::prepareFileRevision(string const & revis, string & f)
                return false;
        }
 
-       doVCCommandWithOutput("cvs update -p -r" + rev + " "
+       doVCCommandWithOutput("cvs update -p -r" + rev + ' '
                + getTarget(File),
                FileName(owner_->filePath()), tmpf);
+       tmpf.refresh();
        if (tmpf.isFileEmpty())
                return false;
 
@@ -1401,8 +1404,8 @@ string SVN::scanLogFile(FileName const & f, string & status)
 
        while (ifs) {
                getline(ifs, line);
-               LYXERR(Debug::LYXVC, line << "\n");
-               if (!line.empty()) 
+               LYXERR(Debug::LYXVC, line << '\n');
+               if (!line.empty())
                        status += line + "; ";
                if (prefixIs(line, "C ") || prefixIs(line, "CU ")
                                         || contains(line, "Commit failed")) {
@@ -1515,13 +1518,13 @@ string SVN::repoUpdate()
                                "\n\nContinue?"), file);
                int ret = frontend::Alert::prompt(_("Changes detected"),
                                text, 0, 1, _("&Yes"), _("&No"), _("View &Log ..."));
-               if (ret == 2 ) {
+               if (ret == 2) {
                        dispatch(FuncRequest(LFUN_DIALOG_SHOW, "file " + tmpf.absFileName()));
                        ret = frontend::Alert::prompt(_("Changes detected"),
                                text, 0, 1, _("&Yes"), _("&No"));
                        hideDialogs("file", 0);
                }
-               if (ret == 1 )
+               if (ret == 1)
                        return string();
        }
 
@@ -1578,7 +1581,7 @@ string SVN::lockingToggle()
                return string();
 
        frontend::Alert::warning(_("SVN File Locking"),
-               (locking ? _("Locking property unset.") : _("Locking property set.")) + "\n"
+               (locking ? _("Locking property unset.") : _("Locking property set.")) + '\n'
                + _("Do not forget to commit the locking property into the repository."),
                true);
 
@@ -1771,7 +1774,7 @@ bool SVN::prepareFileRevision(string const & revis, string & f)
        }
 
        string revname = convert<string>(rev);
-       TempFile tempfile("lyxvcrev_" + revname + "_");
+       TempFile tempfile("lyxvcrev_" + revname + '_');
        tempfile.setAutoRemove(false);
        FileName tmpf = tempfile.name();
        if (tmpf.empty()) {
@@ -1779,10 +1782,11 @@ bool SVN::prepareFileRevision(string const & revis, string & f)
                return false;
        }
 
-       doVCCommand("svn cat -r " + revname + " "
+       doVCCommand("svn cat -r " + revname + ' '
                      + quoteName(onlyFileName(owner_->absFileName()))
                      + " > " + quoteName(tmpf.toFilesystemEncoding()),
                FileName(owner_->filePath()));
+       tmpf.refresh();
        if (tmpf.isFileEmpty())
                return false;
 
@@ -1842,6 +1846,7 @@ FileName const GIT::findFile(FileName const & file)
                        quoteName(fname) + " > " +
                        quoteName(tmpf.toFilesystemEncoding()),
                        file.onlyPath());
+       tmpf.refresh();
        bool found = !tmpf.isFileEmpty();
        LYXERR(Debug::LYXVC, "GIT control: " << (found ? "enabled" : "disabled"));
        return found ? file : FileName();
@@ -2011,7 +2016,7 @@ string GIT::scanLogFile(FileName const & f, string & status)
        while (ifs) {
                getline(ifs, line);
                LYXERR(Debug::LYXVC, line << "\n");
-               if (!line.empty()) 
+               if (!line.empty())
                        status += line + "; ";
                if (prefixIs(line, "C ") || prefixIs(line, "CU ")
                                         || contains(line, "Commit failed")) {
@@ -2218,9 +2223,9 @@ bool GIT::prepareFileRevision(string const & revis, string & f)
        else
                pointer = revis;
 
-       pointer += ":";
+       pointer += ':';
 
-       TempFile tempfile("lyxvcrev_" + revis + "_");
+       TempFile tempfile("lyxvcrev_" + revis + '_');
        tempfile.setAutoRemove(false);
        FileName tmpf = tempfile.name();
        if (tmpf.empty()) {
@@ -2232,6 +2237,7 @@ bool GIT::prepareFileRevision(string const & revis, string & f)
                      + quoteName(onlyFileName(owner_->absFileName()))
                      + " > " + quoteName(tmpf.toFilesystemEncoding()),
                FileName(owner_->filePath()));
+       tmpf.refresh();
        if (tmpf.isFileEmpty())
                return false;
 
@@ -2248,7 +2254,7 @@ bool GIT::prepareFileRevisionEnabled()
 
 bool GIT::toggleReadOnlyEnabled()
 {
-       return false;
+       return true;
 }