]> git.lyx.org Git - lyx.git/blobdiff - src/Changes.cpp
GuiTabular.cpp: don't hardcode decimal align combobox item
[lyx.git] / src / Changes.cpp
index b2fec78d4096561360fb14605fa8d3d255d00e6b..ea7c5c998ee63da630e8e838dedee1a78fb4cebc 100644 (file)
@@ -354,35 +354,26 @@ docstring getLaTeXMarkup(docstring const & macro, docstring const & author,
        ods << macro;
        // convert utf8 author name to something representable
        // in the current encoding
-       docstring author_latexed;
-       for (size_t n = 0; n < author.size(); ++n) {
-               try {
-                       author_latexed += runparams.encoding->latexChar(author[n]);
-               } catch (EncodingException & /* e */) {
-                       if (runparams.dryrun) {
-                               ods << "<" << _("LyX Warning: ")
-                                   << _("uncodable character") << " '";
-                               ods.put(author[n]);
-                               ods << "'>";
-                       } else {
-                               LYXERR0("Omitting uncodable character '"
-                                       << docstring(1, author[n])
-                                       << "' in change author name!");
-                               uncodable_author = author;
-                       }
-               }
+       pair<docstring, docstring> author_latexed =
+               runparams.encoding->latexString(author, runparams.dryrun);
+       if (!author_latexed.second.empty()) {
+               LYXERR0("Omitting uncodable characters '"
+                       << author_latexed.second
+                       << "' in change author name!");
+               uncodable_author = author;
        }
-       ods << author_latexed << "}{" << chgTime << "}{";
+       ods << author_latexed.first << "}{" << chgTime << "}{";
 
        // warn user (once) if we found uncodable glyphs.
        if (uncodable_author != warned_author) {
                frontend::Alert::warning(_("Uncodable character in author name"),
                                support::bformat(_("The author name '%1$s',\n"
-                                 "used for change tracking, contains glyphs that cannot be\n"
-                                 "represented in the current encoding. The respective glyphs\n"
-                                 "will be omitted in the exported LaTeX file.\n\n"
+                                 "used for change tracking, contains the following glyphs that\n"
+                                 "cannot be represented in the current encoding: %2$s.\n"
+                                 "These glyphs will be omitted in the exported LaTeX file.\n\n"
                                  "Choose an appropriate document encoding (such as utf8)\n"
-                                 "or change the spelling of the author name."), uncodable_author));
+                                 "or change the spelling of the author name."),
+                               uncodable_author, author_latexed.second));
                warned_author = uncodable_author;
        }
 
@@ -391,7 +382,7 @@ docstring getLaTeXMarkup(docstring const & macro, docstring const & author,
 } //namespace anon
 
 
-int Changes::latexMarkChange(odocstream & os, BufferParams const & bparams,
+int Changes::latexMarkChange(otexstream & os, BufferParams const & bparams,
                             Change const & oldChange, Change const & change,
                             OutputParams const & runparams)
 {
@@ -436,24 +427,22 @@ void Changes::lyxMarkChange(ostream & os, BufferParams const & bparams, int & co
 
        column = 0;
 
-       int const buffer_id = bparams.authors().get(change.author).buffer_id();
+       int const buffer_id = bparams.authors().get(change.author).bufferId();
 
        switch (change.type) {
                case Change::UNCHANGED:
                        os << "\n\\change_unchanged\n";
                        break;
 
-               case Change::DELETED: {
+               case Change::DELETED:
                        os << "\n\\change_deleted " << buffer_id
                                << " " << change.changetime << "\n";
                        break;
-               }
 
-               case Change::INSERTED: {
+               case Change::INSERTED:
                        os << "\n\\change_inserted " << buffer_id
                                << " " << change.changetime << "\n";
                        break;
-               }
        }
 }