Kaydet (Commit) deaceba0 authored tarafından Andras Timar's avatar Andras Timar

XML tag check in help and readme translations

Change-Id: Iec88ae875e00777f499cd0044f256275d854dca8
üst 06ec1c08
......@@ -49,4 +49,8 @@ $(eval $(call gb_Executable_add_exception_objects,helpex,\
l10ntools/source/helpmerge \
))
$(eval $(call gb_Executable_use_externals,helpex,\
libxml2 \
))
# vim:set shiftwidth=4 softtabstop=4 expandtab:
......@@ -50,4 +50,8 @@ $(eval $(call gb_Executable_add_exception_objects,xrmex,\
l10ntools/source/xrmmerge \
))
$(eval $(call gb_Executable_use_externals,xrmex,\
libxml2 \
))
# vim:set shiftwidth=4 softtabstop=4 expandtab:
......@@ -35,6 +35,8 @@
#include <algorithm>
#include <cassert>
#include <libxml/parser.h>
#include "rtl/string.hxx"
#include "rtl/ustring.hxx"
#include "sal/types.h"
......@@ -100,6 +102,24 @@ inline sal_Int32 indexOfAnyAsciiL(
return -1;
}
inline bool isWellFormedXML( OString const & text )
{
xmlDocPtr doc;
OString content;
bool result = true;
content = "<root>";
content += text;
content += "</root>";
doc = xmlParseMemory(content.getStr(),(int)content.getLength());
if (doc == NULL) {
result = false;
}
xmlFreeDoc(doc);
xmlCleanupParser();
return result;
}
template< typename T > inline T abbreviate(
T const & text, sal_Int32 start, sal_Int32 length)
{
......
......@@ -341,7 +341,7 @@ void HelpParser::MakeDir(const rtl::OString& rPath)
void HelpParser::ProcessHelp( LangHashMap* aLangHM , const rtl::OString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile ){
XMLElement* pXMLElement = NULL;
PFormEntrys *pEntrys = NULL;
PFormEntrys *pEntrys = NULL;
XMLData *data = NULL;
rtl::OString sLId;
......@@ -379,9 +379,16 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const rtl::OString& sCur ,
while ( (nPreSpaces < nLen) && (*(sSourceText.getStr()+nPreSpaces) == ' ') )
nPreSpaces++;
pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur , true );
rtl::OUString sNewdata(
sSourceText.copy(0,nPreSpaces) +
rtl::OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8));
OUString sNewdata;
if (helper::isWellFormedXML(sNewText))
{
sNewdata = sSourceText.copy(0,nPreSpaces) +
rtl::OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8);
}
else
{
sNewdata = sSourceText;
}
if (!sNewdata.isEmpty())
{
if( pXMLElement != NULL )
......
......@@ -27,6 +27,7 @@
#include "export.hxx"
#include "xrmmerge.hxx"
#include "tokens.h"
#include "helper.hxx"
#include <iostream>
#include <fstream>
#include <vector>
......@@ -606,7 +607,8 @@ void XRMResMerge::WorkOnText(
if ( Export::isAllowed( sLang ) &&
( pEntrys->GetText(
sContent, STRING_TYP_TEXT, sLang )) &&
( sContent != "-" ) && !sContent.isEmpty())
( sContent != "-" ) && !sContent.isEmpty() &&
helper::isWellFormedXML( sContent ))
{
rText = sContent;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment