[Libreoffice-commits] .: desktop/source officecfg/registry

Noel Power noelp at kemper.freedesktop.org
Mon Jun 13 02:46:15 PDT 2011


 desktop/source/migration/migration.cxx           |   19 +++++++++++++++++++
 officecfg/registry/data/org/openoffice/Setup.xcu |    4 ++--
 2 files changed, 21 insertions(+), 2 deletions(-)

New commits:
commit c52e5fa50017ffda15da58c39dd30c2591e954be
Author: Noel Power <noel.power at novell.com>
Date:   Mon Jun 13 10:38:18 2011 +0100

    default config location has changed, look in old config dir when migrating
    
    A previous patch (boostrap:25bd2eec77ed774a37d1cddd0d72312e23d5e9fd) changed the default configuration directory location ( on unix ) When evaluating user configurations for migration we need to search the old default config dir and not the new default config directory,

diff --git a/desktop/source/migration/migration.cxx b/desktop/source/migration/migration.cxx
index 8248af0..85d66e3 100644
--- a/desktop/source/migration/migration.cxx
+++ b/desktop/source/migration/migration.cxx
@@ -88,6 +88,9 @@ static const ::rtl::OUString MENU_SEPERATOR(RTL_CONSTASCII_USTRINGPARAM(" | "));
 static const ::rtl::OUString MENU_SUBMENU(RTL_CONSTASCII_USTRINGPARAM("..."));
 static const ::rtl::OUString MIGRATION_STAMP_NAME(RTL_CONSTASCII_USTRINGPARAM("/MIGRATED"));
 
+
+static const char XDG_CONFIG_PART[] = "/.config";
+
 ::rtl::OUString retrieveLabelFromCommand(const ::rtl::OUString& sCommand, const ::rtl::OUString& sModuleIdentifier)
 {
     ::rtl::OUString sLabel;
@@ -553,6 +556,22 @@ install_info MigrationImpl::findInstallation(const strings_v& rVersions)
         {
             ::rtl::OUString aUserInst;
             osl::Security().getConfigDir( aUserInst );
+#if defined UNX && ! defined MACOSX
+            const char* pXDGCfgHome = getenv("XDG_CONFIG_HOME");
+            // cater for XDG_CONFIG_HOME change
+            // If XDG_CONFIG_HOME is set then we;
+            // assume the user knows what they are doing ( room for improvement here, we could
+            // of course search the default config dir etc. also  - but this is more complex,
+            // we would need to weigh results from the current config dir against matches in
+            // the 'old' config dir etc. ) - currently we just use the returned config dir.
+            // If XDG_CONFIG_HOME is NOT set;
+            // assume then we should now using the default $HOME/,config config location for
+            // our user profiles, however *all* previous libreoffice and openoffice.org
+            // configurations will be in the 'old' config directory and that's where we need
+            // to search - we convert the returned config dir to the 'old' dir
+            if ( !pXDGCfgHome && aUserInst.endsWithAsciiL( XDG_CONFIG_PART, sizeof( XDG_CONFIG_PART ) - 1 )  )
+                aUserInst = aUserInst.copy( 0, aUserInst.getLength() - sizeof(  XDG_CONFIG_PART ) + 2 ); // remove trailing '.config' ( but leave the terminating '/' )
+#endif
             if ( aUserInst.getLength() && aUserInst[ aUserInst.getLength()-1 ] != '/' )
                 aUserInst += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
 #if defined UNX && ! defined MACOSX
diff --git a/officecfg/registry/data/org/openoffice/Setup.xcu b/officecfg/registry/data/org/openoffice/Setup.xcu
index 37e489b..6f156d1 100644
--- a/officecfg/registry/data/org/openoffice/Setup.xcu
+++ b/officecfg/registry/data/org/openoffice/Setup.xcu
@@ -783,12 +783,12 @@
     </node>
   <node oor:name="Migration">
     <node oor:name="SupportedVersions">
-      <node oor:name="OpenOffice.org3+OpenOffice.org2+StarOffice8+StarSuite8" oor:op="replace">
+      <node oor:name="OpenOffice.org3+OpenOffice.org2+StarOffice8+StarSuite8+Libreoffice3" oor:op="replace">
         <prop oor:name="Priority">
           <value>10</value>
         </prop>
         <prop oor:name="VersionIdentifiers">
-          <value oor:separator=",">Openofice.org 3=openoffice.org/3,OpenOffice.org 2=openoffice.org2,StarOffice 8=staroffice8,StarSuite 8=starsuite8</value>
+          <value oor:separator=",">Libreoffice 3=libreoffice/3,Openofice.org 3=openoffice.org/3,OpenOffice.org 2=openoffice.org2,StarOffice 8=staroffice8,StarSuite 8=starsuite8</value>
         </prop>
         <node oor:name="MigrationSteps">
           <node oor:name="Datasources" oor:op="replace">


More information about the Libreoffice-commits mailing list