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,\ ...@@ -49,4 +49,8 @@ $(eval $(call gb_Executable_add_exception_objects,helpex,\
l10ntools/source/helpmerge \ l10ntools/source/helpmerge \
)) ))
$(eval $(call gb_Executable_use_externals,helpex,\
libxml2 \
))
# vim:set shiftwidth=4 softtabstop=4 expandtab: # vim:set shiftwidth=4 softtabstop=4 expandtab:
...@@ -50,4 +50,8 @@ $(eval $(call gb_Executable_add_exception_objects,xrmex,\ ...@@ -50,4 +50,8 @@ $(eval $(call gb_Executable_add_exception_objects,xrmex,\
l10ntools/source/xrmmerge \ l10ntools/source/xrmmerge \
)) ))
$(eval $(call gb_Executable_use_externals,xrmex,\
libxml2 \
))
# vim:set shiftwidth=4 softtabstop=4 expandtab: # vim:set shiftwidth=4 softtabstop=4 expandtab:
...@@ -35,6 +35,8 @@ ...@@ -35,6 +35,8 @@
#include <algorithm> #include <algorithm>
#include <cassert> #include <cassert>
#include <libxml/parser.h>
#include "rtl/string.hxx" #include "rtl/string.hxx"
#include "rtl/ustring.hxx" #include "rtl/ustring.hxx"
#include "sal/types.h" #include "sal/types.h"
...@@ -100,6 +102,24 @@ inline sal_Int32 indexOfAnyAsciiL( ...@@ -100,6 +102,24 @@ inline sal_Int32 indexOfAnyAsciiL(
return -1; 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( template< typename T > inline T abbreviate(
T const & text, sal_Int32 start, sal_Int32 length) T const & text, sal_Int32 start, sal_Int32 length)
{ {
......
...@@ -341,7 +341,7 @@ void HelpParser::MakeDir(const rtl::OString& rPath) ...@@ -341,7 +341,7 @@ void HelpParser::MakeDir(const rtl::OString& rPath)
void HelpParser::ProcessHelp( LangHashMap* aLangHM , const rtl::OString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile ){ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const rtl::OString& sCur , ResData *pResData , MergeDataFile& aMergeDataFile ){
XMLElement* pXMLElement = NULL; XMLElement* pXMLElement = NULL;
PFormEntrys *pEntrys = NULL; PFormEntrys *pEntrys = NULL;
XMLData *data = NULL; XMLData *data = NULL;
rtl::OString sLId; rtl::OString sLId;
...@@ -379,9 +379,16 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const rtl::OString& sCur , ...@@ -379,9 +379,16 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const rtl::OString& sCur ,
while ( (nPreSpaces < nLen) && (*(sSourceText.getStr()+nPreSpaces) == ' ') ) while ( (nPreSpaces < nLen) && (*(sSourceText.getStr()+nPreSpaces) == ' ') )
nPreSpaces++; nPreSpaces++;
pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur , true ); pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur , true );
rtl::OUString sNewdata( OUString sNewdata;
sSourceText.copy(0,nPreSpaces) + if (helper::isWellFormedXML(sNewText))
rtl::OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8)); {
sNewdata = sSourceText.copy(0,nPreSpaces) +
rtl::OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8);
}
else
{
sNewdata = sSourceText;
}
if (!sNewdata.isEmpty()) if (!sNewdata.isEmpty())
{ {
if( pXMLElement != NULL ) if( pXMLElement != NULL )
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include "export.hxx" #include "export.hxx"
#include "xrmmerge.hxx" #include "xrmmerge.hxx"
#include "tokens.h" #include "tokens.h"
#include "helper.hxx"
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
#include <vector> #include <vector>
...@@ -606,7 +607,8 @@ void XRMResMerge::WorkOnText( ...@@ -606,7 +607,8 @@ void XRMResMerge::WorkOnText(
if ( Export::isAllowed( sLang ) && if ( Export::isAllowed( sLang ) &&
( pEntrys->GetText( ( pEntrys->GetText(
sContent, STRING_TYP_TEXT, sLang )) && sContent, STRING_TYP_TEXT, sLang )) &&
( sContent != "-" ) && !sContent.isEmpty()) ( sContent != "-" ) && !sContent.isEmpty() &&
helper::isWellFormedXML( sContent ))
{ {
rText = 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