summaryrefslogtreecommitdiff
path: root/l10ntools/source/xmlparse.cxx
diff options
context:
space:
mode:
authorZolnai Tamás <zolnaitamas2000@gmail.com>2013-03-27 20:08:50 +0100
committerZolnai Tamás <zolnaitamas2000@gmail.com>2013-03-27 20:09:31 +0100
commit8e26b4783f1f47ff5d489e7df5869240eefd1071 (patch)
tree80c4c9899fb3b05fcadc845444b06e1e3221e1c2 /l10ntools/source/xmlparse.cxx
parent239fb4cb41cb0d1ed42bf5cf8ecdabdca4a28a68 (diff)
Refactor l10ntools
Delete unused functions. Make Export class more encapsulated. Move to local that functions which are used only in one file. Common contans method which are used by all executables. Helper contains methods belong to xml parsing. Change-Id: I28773a2c7eea90da7df7f32720fd38de2cb661ac
Diffstat (limited to 'l10ntools/source/xmlparse.cxx')
-rw-r--r--l10ntools/source/xmlparse.cxx78
1 files changed, 33 insertions, 45 deletions
diff --git a/l10ntools/source/xmlparse.cxx b/l10ntools/source/xmlparse.cxx
index f91cc1eb7c26..8ba715d48f62 100644
--- a/l10ntools/source/xmlparse.cxx
+++ b/l10ntools/source/xmlparse.cxx
@@ -16,7 +16,6 @@
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-
#include "sal/config.h"
#include <iterator> /* std::iterator*/
@@ -24,12 +23,14 @@
#include <stdio.h>
#include <sal/alloca.h>
+#include "helper.hxx"
#include "common.hxx"
#include "xmlparse.hxx"
#include <fstream>
#include <iostream>
#include <osl/mutex.hxx>
#include <osl/thread.hxx>
+#include <osl/process.h>
#include <rtl/strbuf.hxx>
using namespace std;
@@ -868,6 +869,32 @@ XMLDefault& XMLDefault::operator=(const XMLDefault& obj){
#define XML_CHAR_TO_OUSTRING(x) OStringToOUString(OString(x), RTL_TEXTENCODING_UTF8)
#define XML_CHAR_N_TO_OUSTRING(x,n) OStringToOUString(OString(x,n), RTL_TEXTENCODING_UTF8 )
+namespace
+{
+
+static OUString lcl_pathnameToAbsoluteUrl(const OUString& rPathname) {
+ OUString sUrl;
+ if (osl::FileBase::getFileURLFromSystemPath(rPathname, sUrl)
+ != osl::FileBase::E_None)
+ {
+ std::cerr << "Error: Cannot convert input pathname to URL\n";
+ std::exit(EXIT_FAILURE);
+ }
+ OUString sCwd;
+ if (osl_getProcessWorkingDir(&sCwd.pData) != osl_Process_E_None) {
+ std::cerr << "Error: Cannot determine cwd\n";
+ std::exit(EXIT_FAILURE);
+ }
+ if (osl::FileBase::getAbsoluteFileURL(sCwd, sUrl, sUrl)
+ != osl::FileBase::E_None)
+ {
+ std::cerr << "Error: Cannot convert input URL to absolute URL\n";
+ std::exit(EXIT_FAILURE);
+ }
+ return sUrl;
+}
+}
+
/*****************************************************************************/
SimpleXMLParser::SimpleXMLParser()
@@ -1008,7 +1035,7 @@ XMLFile *SimpleXMLParser::Execute( const rtl::OUString &rFileName, XMLFile* pXML
aErrorInformation.sMessage = rtl::OUString( "ERROR: Unable to open file ");
aErrorInformation.sMessage += rFileName;
- rtl::OUString aFileURL(common::pathnameToAbsoluteUrl(rFileName));
+ rtl::OUString aFileURL(lcl_pathnameToAbsoluteUrl(rFileName));
oslFileHandle h;
if (osl_openFile(aFileURL.pData, &h, osl_File_OpenFlag_Read)
@@ -1145,50 +1172,11 @@ XMLFile *SimpleXMLParser::Execute( const rtl::OUString &rFileName, XMLFile* pXML
return pXMLFile;
}
-/*****************************************************************************/
-void XMLUtil::QuotHTML( rtl::OUString &rString )
-/*****************************************************************************/
-{
- OUStringBuffer sReturn;
- for (sal_Int32 i = 0; i < rString.getLength(); ++i) {
- switch (rString[i]) {
- case '\\':
- if (i < rString.getLength()) {
- switch (rString[i + 1]) {
- case '"':
- case '<':
- case '>':
- case '\\':
- ++i;
- break;
- }
- }
- // fall through
- default:
- sReturn.append(rString[i]);
- break;
-
- case '<':
- sReturn.appendAscii(RTL_CONSTASCII_STRINGPARAM("&lt;"));
- break;
- case '>':
- sReturn.appendAscii(RTL_CONSTASCII_STRINGPARAM("&gt;"));
- break;
-
- case '"':
- sReturn.appendAscii(RTL_CONSTASCII_STRINGPARAM("&quot;"));
- break;
-
- case '&':
- if (rString.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("&amp;"), i))
- sReturn.append('&');
- else
- sReturn.appendAscii(RTL_CONSTASCII_STRINGPARAM("&amp;"));
- break;
- }
- }
- rString = sReturn.makeStringAndClear();
+void XMLUtil::QuotHTML( OUString &rString )
+{
+ const OString sString(OUStringToOString(rString, RTL_TEXTENCODING_UTF8));
+ rString = OStringToOUString(helper::QuotHTML( sString ), RTL_TEXTENCODING_UTF8);
}
void XMLUtil::UnQuotHTML( rtl::OUString &rString ){