]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
Compile fix.
[lyx.git] / src / Buffer.cpp
index 755a6166a0937d36dd29adb6f28e449372c25613..8dd228b5b90a3986ad758f49c8c35982e6523eef 100644 (file)
@@ -127,7 +127,7 @@ namespace {
 
 // Do not remove the comment below, so we get merge conflict in
 // independent branches. Instead add your own.
-int const LYX_FORMAT = 362;  // jspitzm: support applemac encoding
+int const LYX_FORMAT = 369; // vfr: add author ids to list of authors
 
 typedef map<string, bool> DepClean;
 typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
@@ -440,12 +440,29 @@ Undo & Buffer::undo()
 
 string Buffer::latexName(bool const no_path) const
 {
-       FileName latex_name = makeLatexName(d->filename);
+       FileName latex_name =
+               makeLatexName(exportFileName());
        return no_path ? latex_name.onlyFileName()
                : latex_name.absFilename();
 }
 
 
+FileName Buffer::exportFileName() const
+{
+       docstring const branch_suffix =
+               params().branchlist().getFilenameSuffix();
+       if (branch_suffix.empty())
+               return fileName();
+
+       string const name = fileName().onlyFileNameWithoutExt()
+               + to_utf8(branch_suffix);
+       FileName res(fileName().onlyPath().absFilename() + "/" + name);
+       res.changeExtension(fileName().extension());
+
+       return res;
+}
+
+
 string Buffer::logName(LogType * type) const
 {
        string const filename = latexName(false);
@@ -997,7 +1014,7 @@ bool Buffer::write(ostream & ofs) const
        AuthorList::Authors::const_iterator a_it = params().authors().begin();
        AuthorList::Authors::const_iterator a_end = params().authors().end();
        for (; a_it != a_end; ++a_it)
-               a_it->second.setUsed(false);
+               a_it->setUsed(false);
 
        ParIterator const end = const_cast<Buffer *>(this)->par_iterator_end();
        ParIterator it = const_cast<Buffer *>(this)->par_iterator_begin();
@@ -1615,9 +1632,9 @@ bool Buffer::getStatus(FuncRequest const & cmd, FuncStatus & flag)
 
                case LFUN_BRANCH_ACTIVATE: 
                case LFUN_BRANCH_DEACTIVATE: {
-               BranchList const & branchList = params().branchlist();
-               docstring const branchName = cmd.argument();
-               flag.setEnabled(!branchName.empty()
+                       BranchList const & branchList = params().branchlist();
+                       docstring const branchName = cmd.argument();
+                       flag.setEnabled(!branchName.empty()
                                && branchList.find(branchName));
                        break;
                }
@@ -2958,7 +2975,7 @@ bool Buffer::doExport(string const & format, bool put_in_tempdir,
                return true;
        }
 
-       result_file = changeExtension(absFileName(), ext);
+       result_file = changeExtension(exportFileName().absFilename(), ext);
        // We need to copy referenced files (e. g. included graphics
        // if format == "dvi") to the result dir.
        vector<ExportedFile> const files =
@@ -3323,7 +3340,7 @@ static void setLabel(Buffer const & buf, ParIterator & it)
        if (layout.margintype == MARGIN_MANUAL
            || layout.latextype == LATEX_BIB_ENVIRONMENT) {
                if (par.params().labelWidthString().empty())
-                       par.params().labelWidthString(par.translateIfPossible(layout.labelstring(), bp));
+                       par.params().labelWidthString(par.expandLabel(layout, bp));
        } else {
                par.params().labelWidthString(docstring());
        }
@@ -3389,7 +3406,8 @@ static void setLabel(Buffer const & buf, ParIterator & it)
                        counters.reset(enumcounter);
                counters.step(enumcounter);
 
-               par.params().labelString(counters.theCounter(enumcounter));
+               string const & lang = par.getParLanguage(bp)->code();
+               par.params().labelString(counters.theCounter(enumcounter, lang));
 
                break;
        }
@@ -3402,10 +3420,11 @@ static void setLabel(Buffer const & buf, ParIterator & it)
                else {
                        docstring name = buf.B_(textclass.floats().getType(type).name());
                        if (counters.hasCounter(from_utf8(type))) {
+                               string const & lang = par.getParLanguage(bp)->code();
                                counters.step(from_utf8(type));
                                full_label = bformat(from_ascii("%1$s %2$s:"), 
                                                     name, 
-                                                    counters.theCounter(from_utf8(type)));
+                                                    counters.theCounter(from_utf8(type), lang));
                        } else
                                full_label = bformat(from_ascii("%1$s #:"), name);      
                }
@@ -3422,8 +3441,7 @@ static void setLabel(Buffer const & buf, ParIterator & it)
        case LABEL_CENTERED_TOP_ENVIRONMENT:
        case LABEL_STATIC:      
        case LABEL_BIBLIO:
-               par.params().labelString(
-                       par.translateIfPossible(layout.labelstring(), bp));
+               par.params().labelString(par.expandLabel(layout, bp));
                break;
        }
 }