diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2014-08-15 09:19:55 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2014-08-15 09:19:55 (GMT) |
commit | b272b4b5077873457a0f6b517ac799f4a5f8c951 (patch) | |
tree | bf707b24a4a6d2b2542319349dd7df06ccd58074 /src | |
parent | 392b48a25e4315528fbb11a5a1bfc9f2bca791c0 (diff) | |
download | Doxygen-b272b4b5077873457a0f6b517ac799f4a5f8c951.zip Doxygen-b272b4b5077873457a0f6b517ac799f4a5f8c951.tar.gz Doxygen-b272b4b5077873457a0f6b517ac799f4a5f8c951.tar.bz2 |
Bug 733722 - XML Output invalid: XML_PROGRAMLISTING=YES copies Unicode form feed character (U+000C) to XML files
Diffstat (limited to 'src')
-rw-r--r-- | src/util.cpp | 5 | ||||
-rw-r--r-- | src/xmlgen.cpp | 17 |
2 files changed, 16 insertions, 6 deletions
diff --git a/src/util.cpp b/src/util.cpp index 0049098..a524922 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -5605,6 +5605,11 @@ QCString convertToXML(const char *s) case '&': growBuf.addStr("&"); break; case '\'': growBuf.addStr("'"); break; case '"': growBuf.addStr("""); break; + case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: + case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: + case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: + case 27: case 28: case 29: case 30: case 31: + break; // skip invalid XML characters (see http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char) default: growBuf.addChar(c); break; } } diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index c9fe950..549ff0f 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -129,10 +129,10 @@ inline void writeXMLCodeString(FTextStream &t,const char *s, int &col) { switch(c) { - case '\t': - { + case '\t': + { static int tabSize = Config_getInt("TAB_SIZE"); - int spacesToNextTabStop = tabSize - (col%tabSize); + int spacesToNextTabStop = tabSize - (col%tabSize); col+=spacesToNextTabStop; while (spacesToNextTabStop--) t << "<sp/>"; break; @@ -141,11 +141,16 @@ inline void writeXMLCodeString(FTextStream &t,const char *s, int &col) case '<': t << "<"; col++; break; case '>': t << ">"; col++; break; case '&': t << "&"; col++; break; - case '\'': t << "'"; col++; break; + case '\'': t << "'"; col++; break; case '"': t << """; col++; break; - default: s=writeUtf8Char(t,s-1); col++; break; + case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: + case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: + case 19: case 20: case 21: case 22: case 23: case 24: case 25: case 26: + case 27: case 28: case 29: case 30: case 31: + break; // skip invalid XML characters (see http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char) + default: s=writeUtf8Char(t,s-1); col++; break; } - } + } } |