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.