Fix bug #8078: Assertions in xhtml output on Windows

(cherry picked from commit 3c0e3c16c8)
This commit is contained in:
Vincent van Ravesteijn 2012-04-26 16:31:42 +02:00
parent 124bc762a7
commit 0665673d03
6 changed files with 12 additions and 8 deletions

View File

@ -16,6 +16,7 @@
#include "support/debug.h" #include "support/debug.h"
#include "support/lstrings.h" #include "support/lstrings.h"
#include "support/textutils.h"
using namespace std; using namespace std;
@ -67,9 +68,9 @@ string Floating::defaultCSSClass() const
string::const_iterator it = n.begin(); string::const_iterator it = n.begin();
string::const_iterator en = n.end(); string::const_iterator en = n.end();
for (; it != en; ++it) { for (; it != en; ++it) {
if (!isalpha(*it)) if (!isAlphaASCII(*it))
d += "_"; d += "_";
else if (islower(*it)) else if (isLower(*it))
d += *it; d += *it;
else else
d += support::lowercase(*it); d += support::lowercase(*it);

View File

@ -1009,7 +1009,7 @@ string Layout::defaultCSSClass() const
d = from_ascii("lyx_"); d = from_ascii("lyx_");
else else
d += '_'; d += '_';
} else if (islower(c)) } else if (isLower(c))
d += c; d += c;
else else
// this is slow, so do it only if necessary // this is slow, so do it only if necessary

View File

@ -20,6 +20,7 @@
#include "support/debug.h" #include "support/debug.h"
#include "support/lstrings.h" #include "support/lstrings.h"
#include "support/textutils.h"
#include <vector> #include <vector>
@ -426,9 +427,9 @@ string InsetLayout::defaultCSSClass() const
string::const_iterator it = n.begin(); string::const_iterator it = n.begin();
string::const_iterator en = n.end(); string::const_iterator en = n.end();
for (; it != en; ++it) { for (; it != en; ++it) {
if (!isalpha(*it)) if (!isAlphaASCII(*it))
d += "_"; d += "_";
else if (islower(*it)) else if (isLower(*it))
d += *it; d += *it;
else else
d += support::lowercase(*it); d += support::lowercase(*it);

View File

@ -193,7 +193,7 @@ void InsetMathChar::mathmlize(MathStream & ms) const
} }
char const * type = char const * type =
(isalpha(char_) || Encodings::isMathAlpha(char_)) (isAlphaASCII(char_) || Encodings::isMathAlpha(char_))
? "mi" : "mo"; ? "mi" : "mo";
// we don't use MTag and ETag because we do not want the spacing // we don't use MTag and ETag because we do not want the spacing
ms << "<" << type << ">" << char_type(char_) << "</" << type << ">"; ms << "<" << type << ">" << char_type(char_) << "</" << type << ">";
@ -227,7 +227,7 @@ void InsetMathChar::htmlize(HtmlStream & ms) const
return; return;
} }
if (isalpha(char_) || Encodings::isMathAlpha(char_)) if (isAlphaASCII(char_) || Encodings::isMathAlpha(char_))
// we don't use MTag and ETag because we do not want the spacing // we don't use MTag and ETag because we do not want the spacing
ms << MTag("i") << char_type(char_) << ETag("i"); ms << MTag("i") << char_type(char_) << ETag("i");
else else

View File

@ -125,7 +125,7 @@ string cleanAttr(string const & str)
string::const_iterator it = str.begin(); string::const_iterator it = str.begin();
string::const_iterator en = str.end(); string::const_iterator en = str.end();
for (; it != en; ++it) for (; it != en; ++it)
newname += isalnum(*it) ? *it : '_'; newname += isAlnumASCII(*it) ? *it : '_';
return newname; return newname;
} }

View File

@ -75,6 +75,8 @@ What's new
* DOCUMENT INPUT/OUTPUT * DOCUMENT INPUT/OUTPUT
- Fixed assertions on Windows for XHTML output (bug 8078).
- Fix reconfiguration on Windows when the user directory is a UNC path - Fix reconfiguration on Windows when the user directory is a UNC path
(bug 8098). (bug 8098).