[Libreoffice-commits] .: 5 commits - desktop/inc desktop/source
Michael Meeks
mmeeks at kemper.freedesktop.org
Mon Nov 1 03:59:48 PDT 2010
desktop/inc/migration.hxx | 45 +++++++
desktop/source/app/app.cxx | 5
desktop/source/deployment/misc/dp_misc.cxx | 1
desktop/source/migration/makefile.mk | 8 -
desktop/source/migration/migration.cxx | 100 +++++-----------
desktop/source/migration/migration.hxx | 49 -------
desktop/source/migration/migration_impl.hxx | 14 --
desktop/source/migration/services/autocorrmigration.cxx | 8 -
desktop/source/migration/services/basicmigration.cxx | 8 -
desktop/source/migration/services/cexports.cxx | 13 +-
10 files changed, 111 insertions(+), 140 deletions(-)
New commits:
commit 9fafa136814aa4f2e33a6c84e6584e8302fc531f
Author: Michael Meeks <michael.meeks at novell.com>
Date: Mon Nov 1 10:56:37 2010 +0000
cleanup makefile
diff --git a/desktop/source/migration/makefile.mk b/desktop/source/migration/makefile.mk
index 753293f..2624fcd 100644
--- a/desktop/source/migration/makefile.mk
+++ b/desktop/source/migration/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
+#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
@@ -42,12 +42,12 @@ RSCEXTINC=..$/app
# hacky - is no define
CDEFS+=-I..$/app
+CDEFS+=-I$(PRJ)/inc
SLOFILES = \
$(SLO)$/migration.obj \
- $(SLO)$/cfgfilter.obj
-
+ $(SLO)$/cfgfilter.obj
+
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
-
commit 31b00785bc1984218b77cc806ba2b9387ba634c4
Author: Michael Meeks <michael.meeks at novell.com>
Date: Fri Oct 29 18:05:32 2010 +0100
add restart requested tracing
diff --git a/desktop/source/deployment/misc/dp_misc.cxx b/desktop/source/deployment/misc/dp_misc.cxx
index 6c52b54..f0ac23d 100644
--- a/desktop/source/deployment/misc/dp_misc.cxx
+++ b/desktop/source/deployment/misc/dp_misc.cxx
@@ -618,6 +618,7 @@ void syncRepositories(Reference<ucb::XCommandEnvironment> const & xCmdEnv)
OUSTR( "/singletons/com.sun.star.task.OfficeRestartManager") ), UNO_QUERY );
if (restarter.is())
{
+ OSL_TRACE( "Request restart for modified extensions manager" );
restarter->requestRestart(xCmdEnv.is() == sal_True ? xCmdEnv->getInteractionHandler() :
Reference<task::XInteractionHandler>());
}
commit 7d6753fe9ca27889c3ed1975b00e5cbf8f0991e5
Author: Michael Meeks <michael.meeks at novell.com>
Date: Fri Oct 29 17:25:10 2010 +0100
comment disabled extensions import
diff --git a/desktop/source/migration/migration.cxx b/desktop/source/migration/migration.cxx
index d24a174..2c1d6d6 100644
--- a/desktop/source/migration/migration.cxx
+++ b/desktop/source/migration/migration.cxx
@@ -869,7 +869,6 @@ void MigrationImpl::copyFiles()
{
while (i_file != m_vrFileList->end())
{
-
// remove installation prefix from file
localName = i_file->copy(m_aInfo.userdata.getLength());
destName = userInstall + localName;
diff --git a/desktop/source/migration/services/cexports.cxx b/desktop/source/migration/services/cexports.cxx
index 6b31188..261cf26 100644
--- a/desktop/source/migration/services/cexports.cxx
+++ b/desktop/source/migration/services/cexports.cxx
@@ -49,11 +49,14 @@ extern "C"
migration::WordbookMigration_getSupportedServiceNames, ::cppu::createSingleComponentFactory,
0, 0
},
-// {
-// migration::ExtensionMigration_create, migration::ExtensionMigration_getImplementationName,
-// migration::ExtensionMigration_getSupportedServiceNames, ::cppu::createSingleComponentFactory,
-// 0, 0
-// },
+ // Extension migration was disabled by Oracle / OpenOffice.org
+#if 0
+ {
+ migration::ExtensionMigration_create, migration::ExtensionMigration_getImplementationName,
+ migration::ExtensionMigration_getSupportedServiceNames, ::cppu::createSingleComponentFactory,
+ 0, 0
+ },
+#endif
{ 0, 0, 0, 0, 0, 0 }
};
commit 5e5d42e84fb0c1f3f06fecc91acba8209d7794d1
Author: Michael Meeks <michael.meeks at novell.com>
Date: Fri Oct 29 16:41:56 2010 +0100
Further simplify and trace migration code
diff --git a/desktop/source/migration/migration.cxx b/desktop/source/migration/migration.cxx
index be9d014..d24a174 100644
--- a/desktop/source/migration/migration.cxx
+++ b/desktop/source/migration/migration.cxx
@@ -194,32 +194,18 @@ static const ::rtl::OUString MENU_SUBMENU(RTL_CONSTASCII_USTRINGPARAM("..."));
return sIdentifier;
}
-static MigrationImpl *pImpl = 0;
-static Mutex aMutex;
-static MigrationImpl *getImpl()
-{
- MutexGuard aGuard(aMutex);
- if (pImpl == 0)
- pImpl = new MigrationImpl(comphelper::getProcessServiceFactory());
- return pImpl;
-}
-
-static void releaseImpl()
-{
- MutexGuard aGuard(aMutex);
- if (pImpl != 0)
- {
- delete pImpl;
- pImpl = 0;
- }
-}
-
-sal_Bool MigrationImpl::needsMigration()
+sal_Bool MigrationImpl::initializeMigration()
{
sal_Bool bRet = sal_False;
- if (m_aInfo.userdata.getLength() > 0 && ! checkMigrationCompleted())
- return sal_True;
+ if (!checkMigrationCompleted()) {
+ readAvailableMigrations(m_vMigrationsAvailable);
+ sal_Int32 nIndex = findPreferedMigrationProcess(m_vMigrationsAvailable);
+ if ( nIndex >= 0 )
+ m_vrMigrations = readMigrationSteps(m_vMigrationsAvailable[nIndex].name);
+
+ bRet = m_aInfo.userdata.getLength() > 0;
+ }
OSL_TRACE( "Migration %s\n", bRet ? "needed" : "not required" );
@@ -228,12 +214,14 @@ sal_Bool MigrationImpl::needsMigration()
void Migration::migrateSettingsIfNecessary()
{
- if ( !getImpl()->needsMigration() )
+ MigrationImpl aImpl( comphelper::getProcessServiceFactory() );
+
+ if (! aImpl.initializeMigration() )
return;
sal_Bool bResult = sal_False;
try {
- bResult = getImpl()->doMigration();
+ bResult = aImpl.doMigration();
} catch (Exception& e)
{
OString aMsg("doMigration() exception: ");
@@ -241,25 +229,19 @@ void Migration::migrateSettingsIfNecessary()
OSL_ENSURE(sal_False, aMsg.getStr());
}
OSL_ENSURE(bResult, "Migration has not been successfull");
- // shut down migration framework
- releaseImpl();
}
MigrationImpl::MigrationImpl(const uno::Reference< XMultiServiceFactory >& xFactory)
: m_vrVersions(new strings_v)
, m_xFactory(xFactory)
{
- readAvailableMigrations(m_vMigrationsAvailable);
- sal_Int32 nIndex = findPreferedMigrationProcess(m_vMigrationsAvailable);
- if ( nIndex >= 0 )
- m_vrMigrations = readMigrationSteps(m_vMigrationsAvailable[nIndex].name);
}
MigrationImpl::~MigrationImpl()
{
-
}
+// The main entry point for migrating settings
sal_Bool MigrationImpl::doMigration()
{
// compile file list for migration
@@ -325,7 +307,7 @@ sal_Bool MigrationImpl::doMigration()
::rtl::OUString sParent;
compareOldAndNewConfig(sParent, xOldVersionToolbarSettings, xNewVersionToolbarSettings, sToolbarResourceURL);
mergeOldToNewVersion(xCfgManager, xNewVersionToolbarSettings, sModuleIdentifier, sToolbarResourceURL);
- }
+ }
}
m_aOldVersionItemsHashMap.clear();
@@ -420,7 +402,7 @@ bool MigrationImpl::readAvailableMigrations(migrations_available& rAvailableMigr
// get supported version names
uno::Reference< XNameAccess > aMigrationAccess(getConfigAccess("org.openoffice.Setup/Migration/SupportedVersions"), uno::UNO_QUERY_THROW);
uno::Sequence< OUString > seqSupportedVersions = aMigrationAccess->getElementNames();
-
+
const OUString aVersionIdentifiers( RTL_CONSTASCII_USTRINGPARAM( "VersionIdentifiers" ));
const OUString aPriorityIdentifier( RTL_CONSTASCII_USTRINGPARAM( "Priority" ));
@@ -438,6 +420,8 @@ bool MigrationImpl::readAvailableMigrations(migrations_available& rAvailableMigr
for (sal_Int32 j=0; j<seqVersions.getLength(); j++)
aSupportedMigration.supported_versions.push_back(seqVersions[j].trim());
insertSorted( rAvailableMigrations, aSupportedMigration );
+ OSL_TRACE( " available migration '%s'\n",
+ rtl::OUStringToOString( aSupportedMigration.name, RTL_TEXTENCODING_ASCII_US ).getStr() );
}
return true;
@@ -589,7 +573,7 @@ sal_Int32 MigrationImpl::findPreferedMigrationProcess(const migrations_available
{
sal_Int32 nIndex( -1 );
sal_Int32 i( 0 );
-
+
migrations_available::const_iterator rIter = rAvailableMigrations.begin();
while ( rIter != rAvailableMigrations.end() )
{
@@ -604,6 +588,11 @@ sal_Int32 MigrationImpl::findPreferedMigrationProcess(const migrations_available
++rIter;
}
+ OSL_TRACE( " preferred migration is from product '%s'\n",
+ rtl::OUStringToOString( m_aInfo.productname, RTL_TEXTENCODING_ASCII_US ).getStr() );
+ OSL_TRACE( " and settings directory '%s'\n",
+ rtl::OUStringToOString( m_aInfo.userdata, RTL_TEXTENCODING_ASCII_US ).getStr() );
+
return nIndex;
}
@@ -933,8 +922,8 @@ void MigrationImpl::runServices()
uno::Sequence< rtl::OUString > seqExtBlackList;
sal_uInt32 nSize = i_mig->excludeExtensions.size();
if ( nSize > 0 )
- seqExtBlackList = comphelper::arrayToSequence< ::rtl::OUString >(
- &i_mig->excludeExtensions[0], nSize );
+ seqExtBlackList = comphelper::arrayToSequence< ::rtl::OUString >(
+ &i_mig->excludeExtensions[0], nSize );
seqArguments[2] = uno::makeAny(NamedValue(
OUString(RTL_CONSTASCII_USTRINGPARAM("ExtensionBlackList")),
uno::makeAny( seqExtBlackList )));
diff --git a/desktop/source/migration/migration_impl.hxx b/desktop/source/migration/migration_impl.hxx
index e0a6e5a..835194f 100644
--- a/desktop/source/migration/migration_impl.hxx
+++ b/desktop/source/migration/migration_impl.hxx
@@ -90,8 +90,8 @@ typedef std::auto_ptr< migrations_v > migrations_vr;
typedef std::vector< supported_migration > migrations_available;
//__________________________________________
-/**
- define the item, e.g.:menuitem, toolbaritem, to be migrated. we keep the information
+/**
+ define the item, e.g.:menuitem, toolbaritem, to be migrated. we keep the information
of the command URL, the previous sibling node and the parent node of a item
*/
struct MigrationItem
@@ -196,7 +196,7 @@ class MigrationImpl
private:
strings_vr m_vrVersions;
NS_UNO::Reference< NS_CSS::lang::XMultiServiceFactory > m_xFactory;
-
+
migrations_available m_vMigrationsAvailable; // list of all available migrations
migrations_vr m_vrMigrations; // list of all migration specs from config
install_info m_aInfo; // info about the version being migrated
@@ -240,8 +240,8 @@ private:
public:
MigrationImpl(const NS_UNO::Reference< NS_CSS::lang::XMultiServiceFactory >&);
~MigrationImpl();
+ sal_Bool initializeMigration();
sal_Bool doMigration();
- sal_Bool needsMigration();
rtl::OUString getOldVersionName();
};
}
diff --git a/desktop/source/migration/services/autocorrmigration.cxx b/desktop/source/migration/services/autocorrmigration.cxx
index 7fc9cf7..1f5290f 100644
--- a/desktop/source/migration/services/autocorrmigration.cxx
+++ b/desktop/source/migration/services/autocorrmigration.cxx
@@ -154,7 +154,7 @@ namespace migration
{
return aResult;
}
- }
+ }
// -----------------------------------------------------------------------------
@@ -168,7 +168,7 @@ namespace migration
TStringVectorPtr aFileList = getFiles( m_sSourceDir );
TStringVector::const_iterator aI = aFileList->begin();
while ( aI != aFileList->end() )
- {
+ {
::rtl::OUString sSourceLocalName = aI->copy( m_sSourceDir.getLength() );
sal_Int32 nStart = sBaseName.getLength();
sal_Int32 nEnd = sSourceLocalName.lastIndexOf ( sSuffix );
@@ -181,7 +181,7 @@ namespace migration
::rtl::OUString sTargetName = sTargetDir + sTargetLocalName;
INetURLObject aURL( sTargetName );
aURL.removeSegment();
- checkAndCreateDirectory( aURL );
+ checkAndCreateDirectory( aURL );
::osl::FileBase::RC aResult = ::osl::File::copy( *aI, sTargetName );
if ( aResult != ::osl::FileBase::E_None )
{
@@ -192,7 +192,7 @@ namespace migration
}
++aI;
}
- }
+ }
else
{
OSL_ENSURE( sal_False, "AutocorrectionMigration::copyFiles: no user installation!" );
diff --git a/desktop/source/migration/services/basicmigration.cxx b/desktop/source/migration/services/basicmigration.cxx
index afe8d4f..4ed093c 100644
--- a/desktop/source/migration/services/basicmigration.cxx
+++ b/desktop/source/migration/services/basicmigration.cxx
@@ -151,7 +151,7 @@ namespace migration
{
return aResult;
}
- }
+ }
// -----------------------------------------------------------------------------
@@ -165,12 +165,12 @@ namespace migration
TStringVectorPtr aFileList = getFiles( m_sSourceDir );
TStringVector::const_iterator aI = aFileList->begin();
while ( aI != aFileList->end() )
- {
+ {
::rtl::OUString sLocalName = aI->copy( m_sSourceDir.getLength() );
::rtl::OUString sTargetName = sTargetDir + sLocalName;
INetURLObject aURL( sTargetName );
aURL.removeSegment();
- checkAndCreateDirectory( aURL );
+ checkAndCreateDirectory( aURL );
::osl::FileBase::RC aResult = ::osl::File::copy( *aI, sTargetName );
if ( aResult != ::osl::FileBase::E_None )
{
@@ -181,7 +181,7 @@ namespace migration
}
++aI;
}
- }
+ }
else
{
OSL_ENSURE( sal_False, "BasicMigration::copyFiles: no user installation!" );
commit 38d1ca3c32432137e159af1f290cd71ea616ab04
Author: Michael Meeks <michael.meeks at novell.com>
Date: Fri Oct 29 15:17:55 2010 +0100
Simplify migration API, fix typos, and add trace output
diff --git a/desktop/inc/migration.hxx b/desktop/inc/migration.hxx
new file mode 100644
index 0000000..3319d8d
--- /dev/null
+++ b/desktop/inc/migration.hxx
@@ -0,0 +1,45 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _DESKTOP_MIGRATION_HXX_
+#define _DESKTOP_MIGRATION_HXX_
+
+#include <sal/types.h>
+#include <rtl/ustring.hxx>
+
+namespace desktop {
+
+class Migration
+{
+public:
+ static void migrateSettingsIfNecessary();
+};
+}
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 8ab79ca..e3ce412 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -48,7 +48,7 @@
#include "userinstall.hxx"
#include "desktopcontext.hxx"
#include "exithelper.hxx"
-#include "../migration/migration.hxx"
+#include "migration.hxx"
#include <svtools/javacontext.hxx>
#include <com/sun/star/frame/XSessionManagerListener.hpp>
@@ -1720,8 +1720,7 @@ void Desktop::Main()
if ( bAbort )
return;
- if ( Migration::checkMigration() )
- Migration::doMigration();
+ Migration::migrateSettingsIfNecessary();
// keep a language options instance...
pLanguageOptions.reset( new SvtLanguageOptions(sal_True));
diff --git a/desktop/source/migration/migration.cxx b/desktop/source/migration/migration.cxx
index 83e00d8..be9d014 100644
--- a/desktop/source/migration/migration.cxx
+++ b/desktop/source/migration/migration.cxx
@@ -214,9 +214,23 @@ static void releaseImpl()
}
}
-// static main entry point for the migration process
-void Migration::doMigration()
+sal_Bool MigrationImpl::needsMigration()
{
+ sal_Bool bRet = sal_False;
+
+ if (m_aInfo.userdata.getLength() > 0 && ! checkMigrationCompleted())
+ return sal_True;
+
+ OSL_TRACE( "Migration %s\n", bRet ? "needed" : "not required" );
+
+ return bRet;
+}
+
+void Migration::migrateSettingsIfNecessary()
+{
+ if ( !getImpl()->needsMigration() )
+ return;
+
sal_Bool bResult = sal_False;
try {
bResult = getImpl()->doMigration();
@@ -231,34 +245,6 @@ void Migration::doMigration()
releaseImpl();
}
-void Migration::cancelMigration()
-{
- releaseImpl();
-}
-
-sal_Bool Migration::checkMigration()
-{
- return getImpl()->checkMigration();
-}
-
-OUString Migration::getOldVersionName()
-{
- return getImpl()->getOldVersionName();
-}
-
-OUString MigrationImpl::getOldVersionName()
-{
- return m_aInfo.productname;
-}
-
-sal_Bool MigrationImpl::checkMigration()
-{
- if (m_aInfo.userdata.getLength() > 0 && ! checkMigrationCompleted())
- return sal_True;
- else
- return sal_False;
-}
-
MigrationImpl::MigrationImpl(const uno::Reference< XMultiServiceFactory >& xFactory)
: m_vrVersions(new strings_v)
, m_xFactory(xFactory)
@@ -278,11 +264,11 @@ sal_Bool MigrationImpl::doMigration()
{
// compile file list for migration
m_vrFileList = compileFileList();
-
+
sal_Bool result = sal_False;
try
{
- NewVersionUIInfo aNewVersionUIInfo;
+ NewVersionUIInfo aNewVersionUIInfo;
::std::vector< MigrationModuleInfo > vModulesInfo = dectectUIChangesForAllModules();
aNewVersionUIInfo.init(vModulesInfo);
@@ -708,7 +694,7 @@ strings_vr MigrationImpl::compileFileList()
{
vrInclude = applyPatterns(*vrFiles, i_migr->includeFiles);
vrExclude = applyPatterns(*vrFiles, i_migr->excludeFiles);
- substract(*vrInclude, *vrExclude);
+ subtract(*vrInclude, *vrExclude);
vrResult->insert(vrResult->end(), vrInclude->begin(), vrInclude->end());
i_migr++;
}
@@ -817,7 +803,7 @@ void MigrationImpl::copyConfig() {
}
// removes elements of vector 2 in vector 1
-void MigrationImpl::substract(strings_v& va, const strings_v& vb_c) const
+void MigrationImpl::subtract(strings_v& va, const strings_v& vb_c) const
{
strings_v vb(vb_c);
// ensure uniqueness of entries
diff --git a/desktop/source/migration/migration.hxx b/desktop/source/migration/migration.hxx
deleted file mode 100644
index dea7a37..0000000
--- a/desktop/source/migration/migration.hxx
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _DESKTOP_MIGRATION_HXX_
-#define _DESKTOP_MIGRATION_HXX_
-
-#include <sal/types.h>
-#include <rtl/ustring.hxx>
-
-namespace desktop {
-
-class Migration
-{
-public:
- // starts the migration process
- static void doMigration();
- static void cancelMigration();
- static sal_Bool checkMigration();
- static rtl::OUString getOldVersionName();
-};
-}
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/desktop/source/migration/migration_impl.hxx b/desktop/source/migration/migration_impl.hxx
index 3624edf..e0a6e5a 100644
--- a/desktop/source/migration/migration_impl.hxx
+++ b/desktop/source/migration/migration_impl.hxx
@@ -213,7 +213,7 @@ private:
strings_vr compileFileList();
// helpers
- void substract(strings_v& va, const strings_v& vb_c) const;
+ void subtract(strings_v& va, const strings_v& vb_c) const;
strings_vr getAllFiles(const rtl::OUString& baseURL) const;
strings_vr applyPatterns(const strings_v& vSet, const strings_v& vPatterns) const;
NS_UNO::Reference< NS_CSS::container::XNameAccess > getConfigAccess(const sal_Char* path, sal_Bool rw=sal_False);
@@ -236,15 +236,13 @@ private:
void setMigrationCompleted();
sal_Bool checkMigrationCompleted();
-
+
public:
MigrationImpl(const NS_UNO::Reference< NS_CSS::lang::XMultiServiceFactory >&);
~MigrationImpl();
sal_Bool doMigration();
- sal_Bool checkMigration();
+ sal_Bool needsMigration();
rtl::OUString getOldVersionName();
-
-
};
}
#undef NS_CSS
More information about the Libreoffice-commits
mailing list