X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsgml.C;h=a5aa601c8f208c59207ea96d09368692598672b9;hb=e7f4618bcce770369cf46335c2c7f0164b4b8857;hp=526b51e64b421c5958e425ccb047ca4a0849a424;hpb=354fb450c2c0e63dc96c1764bbbc5233ecae21d9;p=lyx.git diff --git a/src/sgml.C b/src/sgml.C index 526b51e64b..a5aa601c8f 100644 --- a/src/sgml.C +++ b/src/sgml.C @@ -105,14 +105,15 @@ docstring sgml::escapeString(docstring const & raw) } -docstring const sgml::uniqueID(string const label) +docstring const sgml::uniqueID(docstring const label) { static unsigned int seed = 1000; - return from_ascii(label + convert(++seed)); + return label + convert(++seed); } -string sgml::cleanID(Buffer const & buf, OutputParams const & runparams, std::string const & orig) +docstring sgml::cleanID(Buffer const & buf, OutputParams const & runparams, + docstring const & orig) { // The standard DocBook SGML declaration only allows letters, // digits, '-' and '.' in a name. @@ -123,17 +124,18 @@ string sgml::cleanID(Buffer const & buf, OutputParams const & runparams, std::st // If you know what you are doing, you can set allowed=="" // to disable this mangling. LyXTextClass const & tclass = buf.params().getLyXTextClass(); - string const allowed = runparams.flavor == OutputParams::XML? ".-_:":tclass.options(); + string const allowed = + runparams.flavor == OutputParams::XML? ".-_:":tclass.options(); if (allowed.empty()) return orig; - string::const_iterator it = orig.begin(); - string::const_iterator end = orig.end(); + docstring::const_iterator it = orig.begin(); + docstring::const_iterator end = orig.end(); - string content; + docstring content; - typedef map MangledMap; + typedef map MangledMap; static MangledMap mangledNames; static int mangleID = 1; @@ -148,7 +150,8 @@ string sgml::cleanID(Buffer const & buf, OutputParams const & runparams, std::st bool mangle = false; for (; it != end; ++it) { char c = *it; - if (isalpha(c) || isdigit(c) || c == '-' || c == '.' || allowed.find(c) < allowed.size()) + if (isalpha(c) || isdigit(c) || c == '-' || c == '.' + || allowed.find(c) < allowed.size()) content += c; else if (c == '_' || c == ' ') { mangle = true; @@ -163,7 +166,7 @@ string sgml::cleanID(Buffer const & buf, OutputParams const & runparams, std::st } } if (mangle) { - content += "-" + convert(mangleID++); + content += "-" + convert(mangleID++); } else if (isdigit(content[content.size() - 1])) { content += "."; @@ -183,9 +186,9 @@ void sgml::openTag(odocstream & os, string const & name, string const & attribut param = subst(param, ">", "\""); if (!name.empty() && name != "!-- --") { - os << '<' << from_ascii(name); + os << '<' << from_ascii(name); if (!param.empty()) - os << ' ' << from_ascii(param); + os << ' ' << from_ascii(param); os << '>'; } } @@ -193,13 +196,13 @@ void sgml::openTag(odocstream & os, string const & name, string const & attribut void sgml::closeTag(odocstream & os, string const & name) { - // FIXME UNICODE if (!name.empty() && name != "!-- --") - os << "'; + os << "'; } -void sgml::openTag(Buffer const & buf, odocstream & os, OutputParams const & runparams, Paragraph const & par) +void sgml::openTag(Buffer const & buf, odocstream & os, + OutputParams const & runparams, Paragraph const & par) { LyXLayout_ptr const & style = par.layout(); string const & name = style->latexname();