Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


On 08/06/11 14:19, Noel Power wrote:
On 08/06/11 13:55, Takeshi Abe wrote:

OK, so do you mean libs-core/desktop/source/migration?, which functionality
I have not yet recognized clearly.
It would be great if anyone familiar with the code suggests a starting
point to dig into.
I *think* this ( see attached patch ) will fix it, not had a chance to test it yet
Well that patch isn't quite enough :-( it seems the migration process doesn't cater for the config directory changing so when looking for candidates to migrate when creating a new user dir it looks relative to the new config directory ( e.g. ~/.config ) and of course finds nothing.

I guess we can easily hack around this by tweaking the config directory returned ( see attached ) and this seems ok for a 3.4 release where there can only be user configurations in $HOME. However subsequent releases >= 4.0 will probably have to start making things more complicated by searching the old ( for openoffice configurations ) and new & old directories for libreoffice (3) configurations, thoughts
diff --git desktop/source/migration/migration.cxx desktop/source/migration/migration.cxx
index 8248af0..2280eb4 100644
--- desktop/source/migration/migration.cxx
+++ 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,11 @@ install_info MigrationImpl::findInstallation(const strings_v& rVersions)
         {
             ::rtl::OUString aUserInst;
             osl::Security().getConfigDir( aUserInst );
+#if defined UNX && ! defined MACOSX
+            // cater for XDG_CONFIG_HOME change
+            if ( aUserInst.endsWithAsciiL( XDG_CONFIG_PART, sizeof( XDG_CONFIG_PART ) - 1 )  )
+                aUserInst = aUserInst.copy( 0, aUserInst.getLength() - sizeof(  XDG_CONFIG_PART ) 
+ 2 );
+#endif
             if ( aUserInst.getLength() && aUserInst[ aUserInst.getLength()-1 ] != '/' )
                 aUserInst += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
 #if defined UNX && ! defined MACOSX

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.