From ede828789aba55456471b137732856898135cd09 Mon Sep 17 00:00:00 2001
From: Zolnai Tamás <zolnaitamas2000@gmail.com>
Date: Wed, 18 Sep 2013 18:22:30 +0200
Subject: Use OString in xmlparse.cxx to avoid numerous srting conversion

Plus:
- Use macros instead of members.
- Use const where it is usefull.

Change-Id: I960f5dec29b5c17655055e1884bc4e7983359318
---
 l10ntools/inc/xmlparse.hxx     |  93 +++++++-------
 l10ntools/source/helpex.cxx    |   2 +-
 l10ntools/source/helpmerge.cxx |  45 +++----
 l10ntools/source/xmlparse.cxx  | 270 ++++++++++++++++++-----------------------
 4 files changed, 179 insertions(+), 231 deletions(-)

(limited to 'l10ntools')

diff --git a/l10ntools/inc/xmlparse.hxx b/l10ntools/inc/xmlparse.hxx
index 62c24b63f7ae..07b9b8758b96 100644
--- a/l10ntools/inc/xmlparse.hxx
+++ b/l10ntools/inc/xmlparse.hxx
@@ -30,8 +30,8 @@
 #include <libxml/xmlexports.h> // define XMLCALL so expat.h does not redefine it
 #include <expat.h>
 
-#include <rtl/ustring.hxx>
-#include <rtl/ustrbuf.hxx>
+#include <rtl/string.hxx>
+#include <rtl/strbuf.hxx>
 #include "boost/unordered_map.hpp"
 #include "export.hxx"
 
@@ -56,21 +56,21 @@ using namespace std;
 class XMLAttribute
 {
 private:
-    OUString sName;
-    OUString sValue;
+    OString sName;
+    OString sValue;
 
 public:
     /// creates an attribute
     XMLAttribute(
-        const OUString &rName,    // attributes name
-        const OUString &rValue    // attributes data
+        const OString &rName,    // attributes name
+        const OString &rValue    // attributes data
     )
-                : sName( rName ), sValue( rValue ) {}
+    : sName( rName ), sValue( rValue ) {}
 
-    OUString GetName() const { return sName; }
-    OUString GetValue() const { return sValue; }
+    OString GetName() const { return sName; }
+    OString GetValue() const { return sValue; }
 
-    void setValue(const OUString &rValue){sValue=rValue;}
+    void setValue(const OString &rValue){sValue=rValue;}
 
     /// returns true if two attributes are equal and have the same value
     sal_Bool IsEqual(
@@ -183,7 +183,7 @@ class XMLFile : public XMLParentNode
 {
 public:
     XMLFile(
-        const OUString &rFileName // the file name, empty if created from memory stream
+        const OString &rFileName // the file name, empty if created from memory stream
     );
     XMLFile( const XMLFile& obj ) ;
     ~XMLFile();
@@ -203,20 +203,16 @@ public:
     virtual sal_uInt16  GetNodeType();
 
     /// returns file name
-    OUString GetName() { return sFileName; }
-    void          SetName( const OUString &rFilename ) { sFileName = rFilename; }
-    const std::vector<OString> getOrder(){ return order; }
+    OString GetName() const { return sFileName; }
+    void SetName( const OString &rFilename ) { sFileName = rFilename; }
+    const std::vector<OString>& getOrder() const { return order; }
 
 protected:
-    /// writes a string as UTF8 with dos line ends to a given stream
-    void        WriteString( ofstream &rStream, const OUString &sString );
 
     void        InsertL10NElement( XMLElement* pElement);
 
     // DATA
-    OUString      sFileName;
-
-    const OString ID, OLDREF, XML_LANG;
+    OString      sFileName;
 
     TagMap      nodes_localize;
     XMLHashMap* XMLStrings;
@@ -229,10 +225,7 @@ class XMLUtil{
 
 public:
     /// Quot the XML characters
-    static OUString QuotHTML( const OUString& rString );
-
-    /// UnQuot the XML characters
-    static OUString UnQuotHTML( const OUString &rString );
+    static OString QuotHTML( const OString& rString );
 };
 
 
@@ -243,7 +236,7 @@ public:
 class XMLElement : public XMLParentNode
 {
 private:
-    OUString sElementName;
+    OString sElementName;
     XMLAttributeList *pAttributes;
     OString   project,
                  filename,
@@ -254,12 +247,12 @@ private:
     int          nPos;
 
 protected:
-    void Print(XMLNode *pCur, OUStringBuffer& buffer , bool rootelement);
+    void Print(XMLNode *pCur, OStringBuffer& buffer , bool rootelement);
 public:
     /// create an element node
     XMLElement(){}
     XMLElement(
-        const OUString &rName,    // the element name
+        const OString &rName,    // the element name
         XMLParentNode *Parent   // parent node of this element
     ):          XMLParentNode( Parent ),
                 sElementName( rName ),
@@ -281,18 +274,18 @@ public:
     virtual sal_uInt16 GetNodeType();
 
     /// returns element name
-    OUString GetName() { return sElementName; }
+    OString GetName() const { return sElementName; }
 
     /// returns list of attributes of this element
     XMLAttributeList *GetAttributeList() { return pAttributes; }
 
     /// adds a new attribute to this element, typically used by parser
-    void AddAttribute( const OUString &rAttribute, const OUString &rValue );
+    void AddAttribute( const OString &rAttribute, const OString &rValue );
 
-    void ChangeLanguageTag( const OUString &rValue );
+    void ChangeLanguageTag( const OString &rValue );
 
     /// Return a Unicode String representation of this object
-    OUString ToOUString();
+    OString ToOString();
 
     void SetProject         ( OString const & prj        ){ project = prj;        }
     void SetFileName        ( OString const & fn         ){ filename = fn;        }
@@ -302,13 +295,13 @@ public:
     void SetPos             ( int nPos_in           ){ nPos = nPos_in;       }
     void SetOldRef          ( OString const & sOldRef_in ){ sOldRef = sOldRef_in; }
 
-    virtual int        GetPos()         { return nPos;         }
-    OString GetProject()     { return project;      }
-    OString GetFileName()    { return filename;     }
-    OString GetId()          { return id;           }
-    OString GetOldref()      { return sOldRef;      }
-    OString GetResourceType(){ return resourceType; }
-    OString GetLanguageId()  { return languageId;   }
+    virtual int        GetPos()     { return nPos;         }
+    OString GetProject() const      { return project;      }
+    OString GetFileName() const     { return filename;     }
+    OString GetId() const           { return id;           }
+    OString GetOldref() const       { return sOldRef;      }
+    OString GetResourceType() const { return resourceType; }
+    OString GetLanguageId() const   { return languageId;   }
 
 
 };
@@ -320,18 +313,18 @@ public:
 class XMLData : public XMLChildNode
 {
 private:
-    OUString sData;
+    OString sData;
     bool   isNewCreated;
 
 public:
     /// create a data node
     XMLData(
-        const OUString &rData,    // the initial data
+        const OString &rData,    // the initial data
         XMLParentNode *Parent   // the parent node of this data, typically a element node
     )
                 : XMLChildNode( Parent ), sData( rData ) , isNewCreated ( false ){}
     XMLData(
-        const OUString &rData,    // the initial data
+        const OString &rData,    // the initial data
         XMLParentNode *Parent,  // the parent node of this data, typically a element node
         bool newCreated
     )
@@ -343,12 +336,12 @@ public:
     virtual sal_uInt16 GetNodeType();
 
     /// returns the data
-    OUString GetData() { return sData; }
+    OString GetData() const { return sData; }
 
     bool isNew() { return isNewCreated; }
     /// adds new character data to the existing one
     void AddData(
-        const OUString &rData // the new data
+        const OString &rData // the new data
     );
 
 
@@ -362,12 +355,12 @@ public:
 class XMLComment : public XMLChildNode
 {
 private:
-    OUString sComment;
+    OString sComment;
 
 public:
     /// create a comment node
     XMLComment(
-        const OUString &rComment, // the comment
+        const OString &rComment, // the comment
         XMLParentNode *Parent   // the parent node of this comemnt, typically a element node
     )
                 : XMLChildNode( Parent ), sComment( rComment ) {}
@@ -379,7 +372,7 @@ public:
     XMLComment& operator=(const XMLComment& obj);
 
     /// returns the comment
-    OUString GetComment()  { return sComment; }
+    OString GetComment() const  { return sComment; }
 };
 
 //-------------------------------------------------------------------------
@@ -389,12 +382,12 @@ public:
 class XMLDefault : public XMLChildNode
 {
 private:
-    OUString sDefault;
+    OString sDefault;
 
 public:
     /// create a comment node
     XMLDefault(
-        const OUString &rDefault, // the comment
+        const OString &rDefault, // the comment
         XMLParentNode *Parent   // the parent node of this comemnt, typically a element node
     )
                 : XMLChildNode( Parent ), sDefault( rDefault ) {}
@@ -407,7 +400,7 @@ public:
     virtual sal_uInt16 GetNodeType();
 
     /// returns the comment
-    OUString GetDefault()  { return sDefault; }
+    OString GetDefault() const  { return sDefault; }
 };
 
 //-------------------------------------------------------------------------
@@ -418,7 +411,7 @@ struct XMLError {
     XML_Error eCode;    ///< the error code
     std::size_t nLine; ///< error line number
     std::size_t nColumn; ///< error column number
-    OUString sMessage;    ///< readable error message
+    OString sMessage;    ///< readable error message
 };
 
 //-------------------------------------------------------------------------
@@ -457,7 +450,7 @@ public:
 
     /// parse a file, returns NULL on criticall errors
     XMLFile *Execute(
-        const OUString &rFileName,    // the file name
+        const OString &rFileName,    // the file name
         XMLFile *pXMLFileIn         // the XMLFile
     );
 
diff --git a/l10ntools/source/helpex.cxx b/l10ntools/source/helpex.cxx
index 5d0c387774f3..38b1e7952430 100644
--- a/l10ntools/source/helpex.cxx
+++ b/l10ntools/source/helpex.cxx
@@ -124,7 +124,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) {
         hasNoError =
             aParser.CreatePO(
                 aArgs.m_sOutputFile, aArgs.m_sInputFile,
-                new XMLFile( OUString('0') ), "help" );
+                new XMLFile( OString('0') ), "help" );
     }
 
     if( hasNoError )
diff --git a/l10ntools/source/helpmerge.cxx b/l10ntools/source/helpmerge.cxx
index 161362e1feab..be9b8635c6d2 100644
--- a/l10ntools/source/helpmerge.cxx
+++ b/l10ntools/source/helpmerge.cxx
@@ -79,20 +79,16 @@ bool HelpParser::CreatePO(
     const OString &rPOFile_in, const OString &sHelpFile,
     XMLFile *pXmlFile, const OString &rGsi1){
     SimpleXMLParser aParser;
-    OUString sXmlFile(
-        OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US));
     //TODO: explicit BOM handling?
 
-    std::auto_ptr <XMLFile> file ( aParser.Execute( sXmlFile, pXmlFile ) );
+    std::auto_ptr <XMLFile> file ( aParser.Execute( sHelpFile, pXmlFile ) );
 
     if(file.get() == NULL)
     {
         printf(
             "%s: %s\n",
             sHelpFile.getStr(),
-            (OUStringToOString(
-                aParser.GetError().sMessage, RTL_TEXTENCODING_ASCII_US).
-             getStr()));
+            aParser.GetError().sMessage.getStr());
         exit(-1);
     }
     file->Extract();
@@ -125,7 +121,7 @@ bool HelpParser::CreatePO(
         if( pXMLElement != NULL )
         {
             OString data(
-                OUStringToOString( pXMLElement->ToOUString(), RTL_TEXTENCODING_UTF8 ).
+                pXMLElement->ToOString().
                     replaceAll("\n",OString()).
                     replaceAll("\t",OString()).trim());
 
@@ -153,11 +149,9 @@ bool HelpParser::Merge( const OString &rPOFile, const OString &rDestinationFile,
 
     SimpleXMLParser aParser;
 
-    OUString sXmlFile(
-        OStringToOUString(sHelpFile, RTL_TEXTENCODING_ASCII_US));
     //TODO: explicit BOM handling?
 
-    XMLFile* xmlfile = ( aParser.Execute( sXmlFile, new XMLFile( OUString('0') ) ) );
+    XMLFile* xmlfile = ( aParser.Execute( sHelpFile, new XMLFile( OString('0') ) ) );
     bool hasNoError = MergeSingleFile( xmlfile , pMergeDataFile , rLanguage , rDestinationFile );
     delete xmlfile;
     return hasNoError;
@@ -207,7 +201,7 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResDa
 
     pEntrys = NULL;
 
-    if( !sCur.equalsIgnoreAsciiCaseL(RTL_CONSTASCII_STRINGPARAM("en-US")) ){
+    if( !sCur.equalsIgnoreAsciiCase("en-US") ){
         pXMLElement = (*aLangHM)[ "en-US" ];
         if( pXMLElement == NULL )
         {
@@ -219,15 +213,15 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResDa
             pResData->sId     =  sLId;
 
             OString sNewText;
-            OUString sNewdata;
-            OUString sSourceText(
-            pXMLElement->ToOUString().
+            OString sNewdata;
+            OString sSourceText(
+            pXMLElement->ToOString().
                 replaceAll(
-                    OUString("\n"),
-                    OUString()).
+                    OString("\n"),
+                    OString()).
                 replaceAll(
-                    OUString("\t"),
-                    OUString()));
+                    OString("\t"),
+                    OString()));
             // re-add spaces to the beginning of translated string,
             // important for indentation of Basic code examples
             sal_Int32 nPreSpaces = 0;
@@ -236,20 +230,18 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResDa
                 nPreSpaces++;
             if( sCur == "qtz" )
             {
-                const OString sOriginText = OUStringToOString(sSourceText, RTL_TEXTENCODING_UTF8);
-                sNewText = MergeEntrys::GetQTZText(*pResData, sOriginText);
-                sNewdata = OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8);
+                sNewText = MergeEntrys::GetQTZText(*pResData, sSourceText);
+                sNewdata = sNewText;
             }
             else if( pMergeDataFile )
             {
                 pEntrys = pMergeDataFile->GetMergeEntrys( pResData );
                 if( pEntrys != NULL)
                 {
-                    pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur , true );
-                    OUString sTemp = OStringToOUString(sNewText, RTL_TEXTENCODING_UTF8);
-                    if (helper::isWellFormedXML(OUStringToOString(XMLUtil::QuotHTML(sTemp),RTL_TEXTENCODING_UTF8)))
+                    pEntrys->GetText( sNewText, STRING_TYP_TEXT, sCur, true );
+                    if (helper::isWellFormedXML(XMLUtil::QuotHTML(sNewText)))
                     {
-                        sNewdata = sSourceText.copy(0,nPreSpaces) + sTemp;
+                        sNewdata = sSourceText.copy(0,nPreSpaces) + sNewText;
                     }
                 }
             }
@@ -270,8 +262,7 @@ void HelpParser::ProcessHelp( LangHashMap* aLangHM , const OString& sCur , ResDa
                     "Can't find GID=" << pResData->sGId.getStr() << " LID="
                         << pResData->sId.getStr() << " TYP=" << pResData->sResTyp.getStr() << "\n");
             }
-            pXMLElement->ChangeLanguageTag(
-                OStringToOUString(sCur, RTL_TEXTENCODING_ASCII_US));
+            pXMLElement->ChangeLanguageTag(sCur);
         }
 
     }
diff --git a/l10ntools/source/xmlparse.cxx b/l10ntools/source/xmlparse.cxx
index 4873c21509b2..f50325b7f11c 100644
--- a/l10ntools/source/xmlparse.cxx
+++ b/l10ntools/source/xmlparse.cxx
@@ -39,6 +39,10 @@ using namespace U_ICU_NAMESPACE;
 using namespace std;
 using namespace osl;
 
+#define XML_LANG    "xml-lang"
+#define ID          "id"
+#define OLDREF      "oldref"
+
 //
 // class XMLChildNode
 //
@@ -172,12 +176,6 @@ void XMLFile::Write( OString const &aFilename )
     s.close();
 }
 
-void XMLFile::WriteString( ofstream &rStream, const OUString &sString )
-{
-    OString sText(OUStringToOString(sString, RTL_TEXTENCODING_UTF8));
-    rStream << sText.getStr();
-}
-
 sal_Bool XMLFile::Write( ofstream &rStream , XMLNode *pCur )
 {
     if ( !pCur )
@@ -193,15 +191,15 @@ sal_Bool XMLFile::Write( ofstream &rStream , XMLNode *pCur )
             case XML_NODE_TYPE_ELEMENT: {
                 XMLElement *pElement = ( XMLElement * ) pCur;
                 rStream  << "<";
-                WriteString( rStream, pElement->GetName());
+                rStream << pElement->GetName().getStr();
                 if ( pElement->GetAttributeList())
                     for ( size_t j = 0; j < pElement->GetAttributeList()->size(); j++ ) {
                         rStream << " ";
-                        OUString sData( (*pElement->GetAttributeList())[ j ]->GetName() );
-                        WriteString( rStream , XMLUtil::QuotHTML( sData ) );
+                        OString sData( (*pElement->GetAttributeList())[ j ]->GetName() );
+                        rStream << XMLUtil::QuotHTML( sData ).getStr();
                         rStream << "=\"";
                         sData = (*pElement->GetAttributeList())[ j ]->GetValue();
-                        WriteString( rStream , XMLUtil::QuotHTML( sData )  );
+                        rStream << XMLUtil::QuotHTML( sData ).getStr();
                         rStream << "\"";
                     }
                 if ( !pElement->GetChildList())
@@ -211,27 +209,27 @@ sal_Bool XMLFile::Write( ofstream &rStream , XMLNode *pCur )
                     for ( size_t k = 0; k < pElement->GetChildList()->size(); k++ )
                         Write( rStream, (*pElement->GetChildList())[ k ] );
                     rStream << "</";
-                    WriteString( rStream, pElement->GetName());
+                    rStream << pElement->GetName().getStr();
                     rStream << ">";
                    }
             }
             break;
             case XML_NODE_TYPE_DATA: {
                 XMLData *pData = ( XMLData * ) pCur;
-                OUString sData( pData->GetData());
-                WriteString( rStream, XMLUtil::QuotHTML( sData ) );
+                OString sData( pData->GetData());
+                rStream << XMLUtil::QuotHTML( sData ).getStr();
             }
             break;
             case XML_NODE_TYPE_COMMENT: {
                 XMLComment *pComment = ( XMLComment * ) pCur;
                 rStream << "<!--";
-                WriteString( rStream, pComment->GetComment());
+                rStream <<  pComment->GetComment().getStr();
                 rStream << "-->";
             }
             break;
             case XML_NODE_TYPE_DEFAULT: {
                 XMLDefault *pDefault = ( XMLDefault * ) pCur;
-                WriteString( rStream, pDefault->GetDefault());
+                rStream <<  pDefault->GetDefault().getStr();
             }
             break;
         }
@@ -242,7 +240,6 @@ sal_Bool XMLFile::Write( ofstream &rStream , XMLNode *pCur )
 
 void XMLFile::Print( XMLNode *pCur, sal_uInt16 nLevel )
 {
-
     if ( !pCur )
         Print( this );
     else {
@@ -256,19 +253,17 @@ void XMLFile::Print( XMLNode *pCur, sal_uInt16 nLevel )
             case XML_NODE_TYPE_ELEMENT: {
                 XMLElement *pElement = ( XMLElement * ) pCur;
 
-                fprintf( stdout, "<%s", OUStringToOString(pElement->GetName(), RTL_TEXTENCODING_UTF8).getStr());
+                fprintf( stdout, "<%s", pElement->GetName().getStr());
                 if ( pElement->GetAttributeList())
                 {
                     for (size_t j = 0; j < pElement->GetAttributeList()->size(); ++j)
                     {
-                        OString aAttrName(OUStringToOString((*pElement->GetAttributeList())[j]->GetName(),
-                            RTL_TEXTENCODING_UTF8));
+                        const OString aAttrName((*pElement->GetAttributeList())[j]->GetName());
                         if (!aAttrName.equalsIgnoreAsciiCase(XML_LANG))
                         {
                             fprintf( stdout, " %s=\"%s\"",
                                 aAttrName.getStr(),
-                                OUStringToOString( (*pElement->GetAttributeList())[ j ]->GetValue(),
-                                    RTL_TEXTENCODING_UTF8).getStr());
+                                (*pElement->GetAttributeList())[ j ]->GetValue().getStr());
                         }
                     }
                 }
@@ -278,24 +273,23 @@ void XMLFile::Print( XMLNode *pCur, sal_uInt16 nLevel )
                     fprintf( stdout, ">" );
                     for ( size_t k = 0; k < pElement->GetChildList()->size(); k++ )
                         Print( (*pElement->GetChildList())[ k ], nLevel + 1 );
-                    fprintf( stdout, "</%s>", OUStringToOString(pElement->GetName(), RTL_TEXTENCODING_UTF8).getStr());
+                    fprintf( stdout, "</%s>", pElement->GetName().getStr());
                 }
             }
             break;
             case XML_NODE_TYPE_DATA: {
                 XMLData *pData = ( XMLData * ) pCur;
-                OUString sData = pData->GetData();
-                fprintf( stdout, "%s", OUStringToOString(sData, RTL_TEXTENCODING_UTF8).getStr());
+                fprintf( stdout, "%s", pData->GetData().getStr());
             }
             break;
             case XML_NODE_TYPE_COMMENT: {
                 XMLComment *pComment = ( XMLComment * ) pCur;
-                fprintf( stdout, "<!--%s-->", OUStringToOString(pComment->GetComment(), RTL_TEXTENCODING_UTF8).getStr());
+                fprintf( stdout, "<!--%s-->", pComment->GetComment().getStr());
             }
             break;
             case XML_NODE_TYPE_DEFAULT: {
                 XMLDefault *pDefault = ( XMLDefault * ) pCur;
-                fprintf( stdout, "%s", OUStringToOString(pDefault->GetDefault(), RTL_TEXTENCODING_UTF8).getStr());
+                fprintf( stdout, "%s", pDefault->GetDefault().getStr());
             }
             break;
         }
@@ -313,23 +307,20 @@ XMLFile::~XMLFile()
     }
 }
 /*****************************************************************************/
-XMLFile::XMLFile( const OUString &rFileName ) // the file name, empty if created from memory stream
+XMLFile::XMLFile( const OString &rFileName ) // the file name, empty if created from memory stream
 /*****************************************************************************/
                 : XMLParentNode( NULL ),
                   sFileName    ( rFileName ),
-                  ID           ( "id" ),
-                  OLDREF       ( "oldref" ),
-                  XML_LANG     ( "xml-lang" ),
                   XMLStrings   ( NULL )
 
 {
-    nodes_localize.insert( TagMap::value_type(OString(RTL_CONSTASCII_STRINGPARAM("bookmark")) , sal_True) );
-    nodes_localize.insert( TagMap::value_type(OString(RTL_CONSTASCII_STRINGPARAM("variable")) , sal_True) );
-    nodes_localize.insert( TagMap::value_type(OString(RTL_CONSTASCII_STRINGPARAM("paragraph")) , sal_True) );
-    nodes_localize.insert( TagMap::value_type(OString(RTL_CONSTASCII_STRINGPARAM("alt")) , sal_True) );
-    nodes_localize.insert( TagMap::value_type(OString(RTL_CONSTASCII_STRINGPARAM("caption")) , sal_True) );
-    nodes_localize.insert( TagMap::value_type(OString(RTL_CONSTASCII_STRINGPARAM("title")) , sal_True) );
-    nodes_localize.insert( TagMap::value_type(OString(RTL_CONSTASCII_STRINGPARAM("link")) , sal_True) );
+    nodes_localize.insert( TagMap::value_type(OString("bookmark") , sal_True) );
+    nodes_localize.insert( TagMap::value_type(OString("variable") , sal_True) );
+    nodes_localize.insert( TagMap::value_type(OString("paragraph") , sal_True) );
+    nodes_localize.insert( TagMap::value_type(OString("alt") , sal_True) );
+    nodes_localize.insert( TagMap::value_type(OString("caption") , sal_True) );
+    nodes_localize.insert( TagMap::value_type(OString("title") , sal_True) );
+    nodes_localize.insert( TagMap::value_type(OString("link") , sal_True) );
 }
 /*****************************************************************************/
 void XMLFile::Extract( XMLFile *pCur )
@@ -350,18 +341,18 @@ void XMLFile::Extract( XMLFile *pCur )
 /*****************************************************************************/
 void XMLFile::InsertL10NElement( XMLElement* pElement ){
 /*****************************************************************************/
-    OString tmpStr,id,language("");
+    OString id,language("");
     LangHashMap* elem;
 
     if( pElement->GetAttributeList() != NULL ){
         for ( size_t j = 0; j < pElement->GetAttributeList()->size(); j++ )
         {
-            tmpStr=OUStringToOString((*pElement->GetAttributeList())[ j ]->GetName(), RTL_TEXTENCODING_UTF8);
+            const OString tmpStr((*pElement->GetAttributeList())[ j ]->GetName());
             if (tmpStr == ID) { // Get the "id" Attribute
-                id = OUStringToOString((*pElement->GetAttributeList())[ j ]->GetValue(),RTL_TEXTENCODING_UTF8);
+                id = (*pElement->GetAttributeList())[ j ]->GetValue();
             }
             if (tmpStr == XML_LANG) { // Get the "xml-lang" Attribute
-                language = OUStringToOString((*pElement->GetAttributeList())[j]->GetValue(),RTL_TEXTENCODING_UTF8);
+                language = (*pElement->GetAttributeList())[j]->GetValue();
             }
 
         }
@@ -382,7 +373,7 @@ void XMLFile::InsertL10NElement( XMLElement* pElement ){
         elem=pos->second;
         if ( (*elem)[ language ] )
         {
-            fprintf(stdout,"Error: Duplicated entry. ID = %s  LANG = %s in File %s\n", id.getStr(), language.getStr(), OUStringToOString(sFileName, RTL_TEXTENCODING_ASCII_US).getStr() );
+            fprintf(stdout,"Error: Duplicated entry. ID = %s  LANG = %s in File %s\n", id.getStr(), language.getStr(), sFileName.getStr() );
             exit( -1 );
         }
         (*elem)[ language ]=pElement;
@@ -393,9 +384,6 @@ XMLFile::XMLFile( const XMLFile& obj )
 /*****************************************************************************/
                 : XMLParentNode( obj ),
                   sFileName    ( obj.sFileName ),
-                  ID           ( "id" ),
-                  OLDREF       ( "oldref" ),
-                  XML_LANG     ( "xml-lang" ),
                   XMLStrings   ( NULL )
 {
     if( this!=&obj )
@@ -456,24 +444,24 @@ void XMLFile::SearchL10NElements( XMLParentNode *pCur , int pos)
             break;
             case XML_NODE_TYPE_ELEMENT: {
                 XMLElement *pElement = ( XMLElement * ) pCur;
-                OString sName(OUStringToOString(pElement->GetName(), RTL_TEXTENCODING_ASCII_US).toAsciiLowerCase());
+                const OString sName(pElement->GetName().toAsciiLowerCase());
                 OString language,tmpStrVal,oldref;
                 if ( pElement->GetAttributeList())
                 {
                     for ( size_t j = 0 , cnt = pElement->GetAttributeList()->size(); j < cnt && bInsert; ++j )
                     {
-                        const OString tmpStr = OUStringToOString((*pElement->GetAttributeList())[j]->GetName(), RTL_TEXTENCODING_UTF8);
-                        if (tmpStr == "id") {
-                            tmpStrVal=OUStringToOString( (*pElement->GetAttributeList())[ j ]->GetValue(),RTL_TEXTENCODING_UTF8 );
+                        const OString tmpStr = (*pElement->GetAttributeList())[j]->GetName();
+                        if (tmpStr == ID) {
+                            tmpStrVal=(*pElement->GetAttributeList())[ j ]->GetValue();
                         }
                         if (tmpStr == "localize") {
                             bInsert=false;
                         }
                         if (tmpStr == XML_LANG) { // Get the "xml-lang" Attribute
-                            language=OUStringToOString( (*pElement->GetAttributeList())[ j ]->GetValue(),RTL_TEXTENCODING_UTF8 );
+                            language=(*pElement->GetAttributeList())[ j ]->GetValue();
                         }
                         if (tmpStr == OLDREF) { // Get the "oldref" Attribute
-                            oldref=OUStringToOString( (*pElement->GetAttributeList())[ j ]->GetValue(),RTL_TEXTENCODING_UTF8 );
+                            oldref=(*pElement->GetAttributeList())[ j ]->GetValue();
                         }
                     }
                     pElement->SetLanguageId ( language );
@@ -526,19 +514,16 @@ bool XMLFile::CheckExportStatus( XMLParentNode *pCur )
             break;
             case XML_NODE_TYPE_ELEMENT: {
                 XMLElement *pElement = ( XMLElement * ) pCur;
-                OString sName(OUStringToOString(pElement->GetName(), RTL_TEXTENCODING_ASCII_US));
-                if (sName.equalsIgnoreAsciiCase("TOPIC"))
+                if (pElement->GetName().equalsIgnoreAsciiCase("TOPIC"))
                 {
                     if ( pElement->GetAttributeList())
                     {
                         for (size_t j = 0 , cnt = pElement->GetAttributeList()->size(); j < cnt && bInsert; ++j)
                         {
-                            const OString tmpStr(OUStringToOString((*pElement->GetAttributeList())[j]->GetName(),
-                                RTL_TEXTENCODING_UTF8));
+                            const OString tmpStr((*pElement->GetAttributeList())[j]->GetName());
                             if (tmpStr.equalsIgnoreAsciiCase("STATUS"))
                             {
-                                OString tmpStrVal(OUStringToOString( (*pElement->GetAttributeList())[j]->GetValue(),
-                                    RTL_TEXTENCODING_UTF8));
+                                const OString tmpStrVal((*pElement->GetAttributeList())[j]->GetValue());
                                 if (!tmpStrVal.equalsIgnoreAsciiCase("PUBLISH") &&
                                     !tmpStrVal.equalsIgnoreAsciiCase("DEPRECATED"))
                                 {
@@ -620,7 +605,7 @@ XMLElement& XMLElement::operator=(const XMLElement& obj){
 }
 
 /*****************************************************************************/
-void XMLElement::AddAttribute( const OUString &rAttribute, const OUString &rValue )
+void XMLElement::AddAttribute( const OString &rAttribute, const OString &rValue )
 /*****************************************************************************/
 {
     if ( !pAttributes )
@@ -629,9 +614,9 @@ void XMLElement::AddAttribute( const OUString &rAttribute, const OUString &rValu
 }
 
 /*****************************************************************************/
-void XMLElement::ChangeLanguageTag( const OUString &rValue )
+void XMLElement::ChangeLanguageTag( const OString &rValue )
 {
-    SetLanguageId(OUStringToOString(rValue, RTL_TEXTENCODING_UTF8));
+    SetLanguageId(rValue);
     if ( pAttributes )
     {
         for (size_t i = 0; i < pAttributes->size(); ++i)
@@ -653,7 +638,7 @@ void XMLElement::ChangeLanguageTag( const OUString &rValue )
             {
                 pElem = static_cast< XMLElement* >(pNode);
                 pElem->ChangeLanguageTag( rValue );
-                pElem->SetLanguageId(OUStringToOString(rValue, RTL_TEXTENCODING_UTF8));
+                pElem->SetLanguageId(rValue);
                 pElem  = NULL;
                 pNode  = NULL;
             }
@@ -676,18 +661,18 @@ XMLElement::~XMLElement()
 }
 
 /*****************************************************************************/
-OUString XMLElement::ToOUString(){
+OString XMLElement::ToOString(){
 /*****************************************************************************/
-    OUStringBuffer* buffer = new OUStringBuffer();
+    OStringBuffer* buffer = new OStringBuffer();
     Print(this,*buffer,true);
-    OUString result=buffer->makeStringAndClear();
-    OUString xy(result.getStr());
-    result=OUString(xy);
+    OString result=buffer->makeStringAndClear();
+    OString xy(result.getStr());
+    result=OString(xy);
     delete buffer;
     return result;
 }
 /*****************************************************************************/
-void XMLElement::Print(XMLNode *pCur, OUStringBuffer& buffer , bool rootelement ){
+void XMLElement::Print(XMLNode *pCur, OStringBuffer& buffer , bool rootelement ){
 /*****************************************************************************/
     if(pCur!=NULL){
         if(rootelement){
@@ -709,49 +694,48 @@ void XMLElement::Print(XMLNode *pCur, OUStringBuffer& buffer , bool rootelement
                 XMLElement *pElement = ( XMLElement * ) pCur;
 
                 if( !pElement->GetName().equalsIgnoreAsciiCase("comment") ){
-                    buffer.append( OUString("<") );
+                    buffer.append( "<" );
                     buffer.append( pElement->GetName() );
                     if ( pElement->GetAttributeList()){
                         for ( size_t j = 0; j < pElement->GetAttributeList()->size(); j++ ){
 
-                            OUString aAttrName( (*pElement->GetAttributeList())[ j ]->GetName() );
+                            const OString aAttrName( (*pElement->GetAttributeList())[ j ]->GetName() );
                             if( !aAttrName.equalsIgnoreAsciiCase( "xml-lang" ) ) {
-                                buffer.append( OUString(" ") );
+                                buffer.append( " " );
                                 buffer.append( aAttrName );
-                                buffer.append( OUString("=") );
-                                buffer.append( OUString("\"") );
+                                buffer.append( "=" );
+                                buffer.append( "\"" );
                                 buffer.append( (*pElement->GetAttributeList())[ j ]->GetValue() );
-                                buffer.append( OUString("\"") );
+                                buffer.append( "\"" );
                             }
                         }
                     }
                     if ( !pElement->GetChildList())
-                        buffer.append( OUString("/>") );
+                        buffer.append( "/>" );
                     else {
-                        buffer.append( OUString(">") );
+                        buffer.append( ">" );
                         XMLChildNode* tmp=NULL;
                         for ( size_t k = 0; k < pElement->GetChildList()->size(); k++ ){
                             tmp = (*pElement->GetChildList())[ k ];
                             Print( tmp, buffer , false);
                         }
-                        buffer.append( OUString("</") );
+                        buffer.append( "</" );
                         buffer.append( pElement->GetName() );
-                        buffer.append( OUString(">") );
+                        buffer.append( ">" );
                     }
                 }
             }
             break;
             case XML_NODE_TYPE_DATA: {
                 XMLData *pData = ( XMLData * ) pCur;
-                OUString sData = pData->GetData();
-                buffer.append( sData );
+                buffer.append( pData->GetData() );
             }
             break;
             case XML_NODE_TYPE_COMMENT: {
                 XMLComment *pComment = ( XMLComment * ) pCur;
-                buffer.append( OUString("<!--") );
+                buffer.append( "<!--" );
                 buffer.append( pComment->GetComment() );
-                buffer.append( OUString("-->") );
+                buffer.append( "-->" );
             }
             break;
             case XML_NODE_TYPE_DEFAULT: {
@@ -789,7 +773,7 @@ XMLData& XMLData::operator=(const XMLData& obj){
     return *this;
 }
 /*****************************************************************************/
-void XMLData::AddData( const OUString &rData) {
+void XMLData::AddData( const OString &rData) {
 /*****************************************************************************/
     sData += rData;
 }
@@ -858,15 +842,13 @@ XMLDefault& XMLDefault::operator=(const XMLDefault& obj){
 // class SimpleXMLParser
 //
 
-#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) {
+static OUString lcl_pathnameToAbsoluteUrl(const OString& rPathname) {
+    OUString sPath = OStringToOUString(rPathname, RTL_TEXTENCODING_UTF8 );
     OUString sUrl;
-    if (osl::FileBase::getFileURLFromSystemPath(rPathname, sUrl)
+    if (osl::FileBase::getFileURLFromSystemPath(sPath, sUrl)
         != osl::FileBase::E_None)
     {
         std::cerr << "Error: Cannot convert input pathname to URL\n";
@@ -954,29 +936,21 @@ void SimpleXMLParser::StartElement(
     const XML_Char *name, const XML_Char **atts )
 /*****************************************************************************/
 {
-    OUString sElementName = OUString( XML_CHAR_TO_OUSTRING( name ));
-    XMLElement *pElement = new XMLElement( sElementName, ( XMLParentNode * ) pCurNode );
+    XMLElement *pElement = new XMLElement( OString(name), ( XMLParentNode * ) pCurNode );
     pCurNode = pElement;
     pCurData = NULL;
 
     int i = 0;
     while( atts[i] ) {
-        pElement->AddAttribute(
-            OUString( XML_CHAR_TO_OUSTRING( atts[ i ] )),
-            OUString( XML_CHAR_TO_OUSTRING( atts[ i + 1 ] )));
+        pElement->AddAttribute( atts[ i ], atts[ i + 1 ] );
         i += 2;
     }
 }
 
 /*****************************************************************************/
-void SimpleXMLParser::EndElement( const XML_Char *name )
+void SimpleXMLParser::EndElement( const XML_Char * /*name*/ )
 /*****************************************************************************/
 {
-    // This variable is not used at all, but the sax C interface can't be changed
-    // To prevent warnings this dummy assignment is used
-    // +++
-    (void) name;
-
     pCurNode = pCurNode->GetParent();
     pCurData = NULL;
 }
@@ -987,13 +961,11 @@ void SimpleXMLParser::CharacterData(
 /*****************************************************************************/
 {
     if ( !pCurData ){
-        OUString x = XML_CHAR_N_TO_OUSTRING( s, len );
-        XMLUtil::UnQuotHTML(x);
-        pCurData = new XMLData( x , pCurNode );
+        OString x( s, len );
+        pCurData = new XMLData( helper::UnQuotHTML(x) , pCurNode );
     }else{
-        OUString x = XML_CHAR_N_TO_OUSTRING( s, len );
-        XMLUtil::UnQuotHTML(x);
-        pCurData->AddData( x );
+        OString x( s, len );
+        pCurData->AddData( helper::UnQuotHTML(x) );
 
     }
 }
@@ -1004,7 +976,7 @@ void SimpleXMLParser::Comment(
 /*****************************************************************************/
 {
     pCurData = NULL;
-    new XMLComment( OUString( XML_CHAR_TO_OUSTRING( data )), pCurNode );
+    new XMLComment( OString( data ), pCurNode );
 }
 
 /*****************************************************************************/
@@ -1013,18 +985,17 @@ void SimpleXMLParser::Default(
 /*****************************************************************************/
 {
     pCurData = NULL;
-    new XMLDefault(
-        OUString( XML_CHAR_N_TO_OUSTRING( s, len )), pCurNode );
+    new XMLDefault(OString( s, len ), pCurNode );
 }
 
 /*****************************************************************************/
-XMLFile *SimpleXMLParser::Execute( const OUString &rFileName, XMLFile* pXMLFileIn )
+XMLFile *SimpleXMLParser::Execute( const OString &rFileName, XMLFile* pXMLFileIn )
 /*****************************************************************************/
 {
     aErrorInformation.eCode = XML_ERROR_NONE;
     aErrorInformation.nLine = 0;
     aErrorInformation.nColumn = 0;
-    aErrorInformation.sMessage = OUString( "ERROR: Unable to open file ");
+    aErrorInformation.sMessage = "ERROR: Unable to open file ";
     aErrorInformation.sMessage += rFileName;
 
     OUString aFileURL(lcl_pathnameToAbsoluteUrl(rFileName));
@@ -1057,12 +1028,10 @@ XMLFile *SimpleXMLParser::Execute( const OUString &rFileName, XMLFile* pXMLFileI
     aErrorInformation.nLine = 0;
     aErrorInformation.nColumn = 0;
     if ( !pXMLFile->GetName().isEmpty()) {
-        aErrorInformation.sMessage = OUString( "File ");
-        aErrorInformation.sMessage += pXMLFile->GetName();
-        aErrorInformation.sMessage += OUString( " parsed successfully");
+        aErrorInformation.sMessage = "File " + pXMLFile->GetName() + " parsed successfully";
     }
     else
-        aErrorInformation.sMessage = OUString( "XML-File parsed successfully");
+        aErrorInformation.sMessage = "XML-File parsed successfully";
 
     if (!XML_Parse(aParser, reinterpret_cast< char * >(p), s, true))
     {
@@ -1070,84 +1039,81 @@ XMLFile *SimpleXMLParser::Execute( const OUString &rFileName, XMLFile* pXMLFileI
         aErrorInformation.nLine = XML_GetErrorLineNumber( aParser );
         aErrorInformation.nColumn = XML_GetErrorColumnNumber( aParser );
 
-        aErrorInformation.sMessage = OUString( "ERROR: ");
+        aErrorInformation.sMessage = "ERROR: ";
         if ( !pXMLFile->GetName().isEmpty())
             aErrorInformation.sMessage += pXMLFile->GetName();
         else
-            aErrorInformation.sMessage += OUString( "XML-File (");
-        aErrorInformation.sMessage += OUString::number(
-            sal::static_int_cast< sal_Int64 >(aErrorInformation.nLine));
-        aErrorInformation.sMessage += OUString( ",");
-        aErrorInformation.sMessage += OUString::number(
-            sal::static_int_cast< sal_Int64 >(aErrorInformation.nColumn));
-        aErrorInformation.sMessage += OUString( "): ");
+            aErrorInformation.sMessage += OString( "XML-File (");
+        aErrorInformation.sMessage +=
+            OString::number(sal::static_int_cast< sal_Int64 >(aErrorInformation.nLine)) + "," +
+            OString::number(sal::static_int_cast< sal_Int64 >(aErrorInformation.nColumn)) + "): ";
 
         switch (aErrorInformation.eCode) {
         case XML_ERROR_NO_MEMORY:
-            aErrorInformation.sMessage += OUString( "No memory");
+            aErrorInformation.sMessage += "No memory";
             break;
         case XML_ERROR_SYNTAX:
-            aErrorInformation.sMessage += OUString( "Syntax");
+            aErrorInformation.sMessage += "Syntax";
             break;
         case XML_ERROR_NO_ELEMENTS:
-            aErrorInformation.sMessage += OUString( "No elements");
+            aErrorInformation.sMessage += "No elements";
             break;
         case XML_ERROR_INVALID_TOKEN:
-            aErrorInformation.sMessage += OUString( "Invalid token");
+            aErrorInformation.sMessage += "Invalid token";
             break;
         case XML_ERROR_UNCLOSED_TOKEN:
-            aErrorInformation.sMessage += OUString( "Unclosed token");
+            aErrorInformation.sMessage += "Unclosed token";
             break;
         case XML_ERROR_PARTIAL_CHAR:
-            aErrorInformation.sMessage += OUString( "Partial char");
+            aErrorInformation.sMessage += "Partial char";
             break;
         case XML_ERROR_TAG_MISMATCH:
-            aErrorInformation.sMessage += OUString( "Tag mismatch");
+            aErrorInformation.sMessage += "Tag mismatch";
             break;
         case XML_ERROR_DUPLICATE_ATTRIBUTE:
-            aErrorInformation.sMessage += OUString( "Dublicat attribute");
+            aErrorInformation.sMessage += "Dublicat attribute";
             break;
         case XML_ERROR_JUNK_AFTER_DOC_ELEMENT:
-            aErrorInformation.sMessage += OUString( "Junk after doc element");
+            aErrorInformation.sMessage += "Junk after doc element";
             break;
         case XML_ERROR_PARAM_ENTITY_REF:
-            aErrorInformation.sMessage += OUString( "Param entity ref");
+            aErrorInformation.sMessage += "Param entity ref";
             break;
         case XML_ERROR_UNDEFINED_ENTITY:
-            aErrorInformation.sMessage += OUString( "Undefined entity");
+            aErrorInformation.sMessage += "Undefined entity";
             break;
         case XML_ERROR_RECURSIVE_ENTITY_REF:
-            aErrorInformation.sMessage += OUString( "Recursive entity ref");
+            aErrorInformation.sMessage += "Recursive entity ref";
             break;
         case XML_ERROR_ASYNC_ENTITY:
-            aErrorInformation.sMessage += OUString( "Async_entity");
+            aErrorInformation.sMessage += "Async_entity";
             break;
         case XML_ERROR_BAD_CHAR_REF:
-            aErrorInformation.sMessage += OUString( "Bad char ref");
+            aErrorInformation.sMessage += "Bad char ref";
             break;
         case XML_ERROR_BINARY_ENTITY_REF:
-            aErrorInformation.sMessage += OUString( "Binary entity");
+            aErrorInformation.sMessage += "Binary entity";
             break;
         case XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF:
-            aErrorInformation.sMessage += OUString( "Attribute external entity ref");
+            aErrorInformation.sMessage += "Attribute external entity ref";
             break;
         case XML_ERROR_MISPLACED_XML_PI:
-            aErrorInformation.sMessage += OUString( "Misplaced xml pi");
+            aErrorInformation.sMessage += "Misplaced xml pi";
             break;
         case XML_ERROR_UNKNOWN_ENCODING:
-            aErrorInformation.sMessage += OUString( "Unknown encoding");
+            aErrorInformation.sMessage += "Unknown encoding";
             break;
         case XML_ERROR_INCORRECT_ENCODING:
-            aErrorInformation.sMessage += OUString( "Incorrect encoding");
+            aErrorInformation.sMessage += "Incorrect encoding";
             break;
         case XML_ERROR_UNCLOSED_CDATA_SECTION:
-            aErrorInformation.sMessage += OUString( "Unclosed cdata section");
+            aErrorInformation.sMessage += "Unclosed cdata section";
             break;
         case XML_ERROR_EXTERNAL_ENTITY_HANDLING:
-            aErrorInformation.sMessage += OUString( "External entity handling");
+            aErrorInformation.sMessage += "External entity handling";
             break;
         case XML_ERROR_NOT_STANDALONE:
-            aErrorInformation.sMessage += OUString( "Not standalone");
+            aErrorInformation.sMessage += "Not standalone";
             break;
         case XML_ERROR_NONE:
             break;
@@ -1207,7 +1173,7 @@ static icu::UnicodeString lcl_QuotRange(
 
 static bool lcl_isTag( const icu::UnicodeString& rString )
 {
-    const int nSize = 12;
+    static const int nSize = 12;
     static const icu::UnicodeString vTags[nSize] = {
         "ahelp", "link", "item", "emph", "defaultinline",
         "switchinline", "caseinline", "variable",
@@ -1225,7 +1191,7 @@ static bool lcl_isTag( const icu::UnicodeString& rString )
 
 } /// anonymous namespace
 
-OUString XMLUtil::QuotHTML( const OUString &rString )
+OString XMLUtil::QuotHTML( const OString &rString )
 {
     if( rString.trim().isEmpty() )
         return rString;
@@ -1238,9 +1204,10 @@ OUString XMLUtil::QuotHTML( const OUString &rString )
         reinterpret_cast<const UChar*>(sPattern.getStr()),
         sPattern.getLength() );
 
+    const OUString sOUSource = OStringToOUString(rString, RTL_TEXTENCODING_UTF8);
     icu::UnicodeString sSource(
         reinterpret_cast<const UChar*>(
-            rString.getStr()), rString.getLength() );
+            sOUSource.getStr()), sOUSource.getLength() );
 
     RegexMatcher aRegexMatcher( sSearchPat, nSearchFlags, nIcuErr );
     aRegexMatcher.reset( sSource );
@@ -1268,13 +1235,10 @@ OUString XMLUtil::QuotHTML( const OUString &rString )
     if( nEndPos < sSource.length() )
         sReturn.append(lcl_QuotRange(sSource, nEndPos, sSource.length()));
     sReturn.append('\0');
-    return OUString(reinterpret_cast<const sal_Unicode*>(sReturn.getBuffer()));
-}
-
-OUString  XMLUtil::UnQuotHTML( const OUString& rString )
-{
-    const OString sString(OUStringToOString(rString, RTL_TEXTENCODING_UTF8));
-    return OStringToOUString(helper::UnQuotHTML(sString), RTL_TEXTENCODING_UTF8);
+    return
+        OUStringToOString(
+            OUString(reinterpret_cast<const sal_Unicode*>(sReturn.getBuffer())),
+            RTL_TEXTENCODING_UTF8);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-- 
cgit 

te/mmeeks/foo</option>
<option value='private/mmeeks/formula-iterator'>private/mmeeks/formula-iterator</option>
<option value='private/mmeeks/gldebug'>private/mmeeks/gldebug</option>
<option value='private/mmeeks/hidpi-bits'>private/mmeeks/hidpi-bits</option>
<option value='private/mmeeks/icontest'>private/mmeeks/icontest</option>
<option value='private/mmeeks/opengl-backbuffer'>private/mmeeks/opengl-backbuffer</option>
<option value='private/mmeeks/opengl-backbuffer2'>private/mmeeks/opengl-backbuffer2</option>
<option value='private/mmeeks/sandbox'>private/mmeeks/sandbox</option>
<option value='private/mmeeks/swapdatacontainer'>private/mmeeks/swapdatacontainer</option>
<option value='private/mmeeks/vcl-opengl3'>private/mmeeks/vcl-opengl3</option>
<option value='private/moggi/fix-opengl-context-problems'>private/moggi/fix-opengl-context-problems</option>
<option value='private/moggi/improved-dxf-xls-export'>private/moggi/improved-dxf-xls-export</option>
<option value='private/moggi/opengl-4-4-build-test'>private/moggi/opengl-4-4-build-test</option>
<option value='private/moggi/opengl-preparation'>private/moggi/opengl-preparation</option>
<option value='private/moggi/opengl-vcl-win'>private/moggi/opengl-vcl-win</option>
<option value='private/moggi/orcus-improvements'>private/moggi/orcus-improvements</option>
<option value='private/moggi/track-win-dc'>private/moggi/track-win-dc</option>
<option value='private/moggi/ui-test'>private/moggi/ui-test</option>
<option value='private/moggi/vcl-opengl3'>private/moggi/vcl-opengl3</option>
<option value='private/mst/sw_fieldmarkhide'>private/mst/sw_fieldmarkhide</option>
<option value='private/mst/sw_redlinehide'>private/mst/sw_redlinehide</option>
<option value='private/mst/sw_redlinehide_2'>private/mst/sw_redlinehide_2</option>
<option value='private/mst/sw_redlinehide_3'>private/mst/sw_redlinehide_3</option>
<option value='private/mst/sw_redlinehide_4a'>private/mst/sw_redlinehide_4a</option>
<option value='private/mst/sw_redlinehide_4b'>private/mst/sw_redlinehide_4b</option>
<option value='private/pranavk/modernize_gtktiledviewer'>private/pranavk/modernize_gtktiledviewer</option>
<option value='private/quwex/gsoc-box2d-experimental'>private/quwex/gsoc-box2d-experimental</option>
<option value='private/quwex/notespane-search'>private/quwex/notespane-search</option>
<option value='private/quwex/notespaneflat'>private/quwex/notespaneflat</option>
<option value='private/quwex/notespanesquashed'>private/quwex/notespanesquashed</option>
<option value='private/quwex/tdf59323'>private/quwex/tdf59323</option>
<option value='private/s.mehrbrodt/colorpicker-backport'>private/s.mehrbrodt/colorpicker-backport</option>
<option value='private/sweetshark/swdepend'>private/sweetshark/swdepend</option>
<option value='private/tbsdy/clipping'>private/tbsdy/clipping</option>
<option value='private/tbsdy/drawserverfontlayout'>private/tbsdy/drawserverfontlayout</option>
<option value='private/tbsdy/emf'>private/tbsdy/emf</option>
<option value='private/tbsdy/osl_getAllEnvironment'>private/tbsdy/osl_getAllEnvironment</option>
<option value='private/tbsdy/outdev'>private/tbsdy/outdev</option>
<option value='private/tbsdy/printinfomgr'>private/tbsdy/printinfomgr</option>
<option value='private/tbsdy/workbench'>private/tbsdy/workbench</option>
<option value='private/thb/libo-6-1+backports'>private/thb/libo-6-1+backports</option>
<option value='private/thb/libreoffice-5-2+backports'>private/thb/libreoffice-5-2+backports</option>
<option value='private/thb/sw_redlinehide-6-1'>private/thb/sw_redlinehide-6-1</option>
<option value='private/thb/tdf149754'>private/thb/tdf149754</option>
<option value='private/thb/wasm-upstreaming'>private/thb/wasm-upstreaming</option>
<option value='private/timar/cp-6.2-centos7'>private/timar/cp-6.2-centos7</option>
<option value='private/timar/fontconfigcrash'>private/timar/fontconfigcrash</option>
<option value='private/timar/pythonupgrademsp'>private/timar/pythonupgrademsp</option>
<option value='private/tml/Use-the-iOS-French-and-Italian-dictionaries-for-othe'>private/tml/Use-the-iOS-French-and-Italian-dictionaries-for-othe</option>
<option value='private/tml/android-use-bionic-linker-copy'>private/tml/android-use-bionic-linker-copy</option>
<option value='private/tml/android-use-faulty.lib'>private/tml/android-use-faulty.lib</option>
<option value='private/tml/cp-6-4-28-1'>private/tml/cp-6-4-28-1</option>
<option value='private/tml/fixwintext'>private/tml/fixwintext</option>
<option value='private/tml/iculess'>private/tml/iculess</option>
<option value='private/tml/lov-6.1.5.2'>private/tml/lov-6.1.5.2</option>
<option value='private/tml/lov-6.2.1'>private/tml/lov-6.2.1</option>
<option value='private/tml/lov-7.0.3.3'>private/tml/lov-7.0.3.3</option>
<option value='private/tml/lov-7.0.4'>private/tml/lov-7.0.4</option>
<option value='private/tml/lov-7.1.2'>private/tml/lov-7.1.2</option>
<option value='private/tml/opencl-default-1'>private/tml/opencl-default-1</option>
<option value='private/tvajngerl/staging'>private/tvajngerl/staging</option>
<option value='ref/for/distro/collabora/cp-6.2'>ref/for/distro/collabora/cp-6.2</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>LibreOffice 核心代码仓库</td><td class='sub right'>文档基金会</td></tr></table>
<table class='tabs'><tr><td>
<a href='/cgit/lo/core/'>summary</a><a href='/cgit/lo/core/refs/'>refs</a><a class='active' href='/cgit/lo/core/log/oovbaapi/ooo/vba/excel/XlBackground.idl'>log</a><a href='/cgit/lo/core/tree/oovbaapi/ooo/vba/excel/XlBackground.idl'>tree</a><a href='/cgit/lo/core/commit/oovbaapi/ooo/vba/excel/XlBackground.idl'>commit</a><a href='/cgit/lo/core/diff/oovbaapi/ooo/vba/excel/XlBackground.idl'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit/lo/core/log/oovbaapi/ooo/vba/excel/XlBackground.idl'>
<select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit/lo/core/log/'>root</a>/<a href='/cgit/lo/core/log/oovbaapi'>oovbaapi</a>/<a href='/cgit/lo/core/log/oovbaapi/ooo'>ooo</a>/<a href='/cgit/lo/core/log/oovbaapi/ooo/vba'>vba</a>/<a href='/cgit/lo/core/log/oovbaapi/ooo/vba/excel'>excel</a>/<a href='/cgit/lo/core/log/oovbaapi/ooo/vba/excel/XlBackground.idl'>XlBackground.idl</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit/lo/core/log/oovbaapi/ooo/vba/excel/XlBackground.idl?showmsg=1'>Expand</a>)</th><th class='left'>Author</th></tr>