[Libreoffice-commits] core.git: ucb/source

Stephan Bergmann sbergman at redhat.com
Thu Mar 14 09:10:38 PDT 2013


 ucb/source/ucp/gvfs/gvfs_content.cxx |   22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

New commits:
commit 112d3287a9424e0baaa8d956e6aff8932d48658e
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Mar 14 17:01:07 2013 +0100

    fdo#54275: Fix GVFS UCP, so saving docs works again
    
    Similar to 8722f0e7ef690205d042c8a6b1fdf342a34ecbe1 "rhbz#895690: Make GIO UCP
    less brittle, so saving docs works again" the alternative, older GVFS UCP
    (--enable-gnome-vfs --disable-gio, as used e.g. in
    distro-configs/LibreOfficeLinux.conf) no longer works well in LO 3.6 and later:
    
    * For one, "getPropertyValues" did not work for non-existing files, just like in
      the GIO UCP case.
    
    * For another, creating the .~XXX# lock file uses "insert" with
      !bReplaceExisting, which apparently never worked for the GVFS UCP.
    
    Change-Id: Ie4dc032225697ff7b866a75327891c796d559392

diff --git a/ucb/source/ucp/gvfs/gvfs_content.cxx b/ucb/source/ucp/gvfs/gvfs_content.cxx
index 760715a..29e328f 100644
--- a/ucb/source/ucp/gvfs/gvfs_content.cxx
+++ b/ucb/source/ucp/gvfs/gvfs_content.cxx
@@ -569,11 +569,9 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
                 const uno::Reference< ucb::XCommandEnvironment >& xEnv )
 {
     int nProps;
-    GnomeVFSResult result;
     uno::Sequence< beans::Property > allProperties;
 
-    if( ( result = getInfo( xEnv ) ) != GNOME_VFS_OK )
-        cancelCommandExecution( result, xEnv, sal_False );
+    getInfo( xEnv );
 
     const beans::Property* pProps;
 
@@ -594,10 +592,13 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
         const beans::Property& rProp = pProps[ n ];
 
         if ( rProp.Name == "Title" ) {
-            if (m_info.name && m_info.name[0] == '/')
-                g_warning ("Odd NFS title on item '%s' == '%s'",
-                       getURI(), m_info.name);
-            xRow->appendString( rProp, GnomeToOUString( m_info.name ) );
+            if ( m_info.name ) {
+                if (m_info.name[0] == '/')
+                    g_warning ("Odd NFS title on item '%s' == '%s'",
+                               getURI(), m_info.name);
+                xRow->appendString( rProp, GnomeToOUString( m_info.name ) );
+            } else
+                xRow->appendVoid( rProp );
         }
 
         else if ( rProp.Name == "ContentType" )
@@ -643,7 +644,10 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues(
                 xRow->appendVoid( rProp );
         }
         else if ( rProp.Name == "IsHidden" )
-            xRow->appendBoolean( rProp, ( m_info.name && m_info.name[0] == '.' ) );
+            if ( m_info.name )
+                xRow->appendBoolean( rProp, m_info.name[0] == '.' );
+            else
+                xRow->appendVoid( rProp );
 
         else if (rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "IsVolume" ) ) ||
              rProp.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "IsCompactDisk" ) ) )
@@ -965,7 +969,7 @@ void Content::insert(
     GnomeVFSHandle *handle = NULL;
     ::rtl::OString aURI = getOURI();
 
-    result = GNOME_VFS_OK;
+    result = GNOME_VFS_ERROR_GENERIC;
     if ( bReplaceExisting ) {
         Authentication aAuth( xEnv );
         result = gnome_vfs_open( &handle, aURI.getStr(), GNOME_VFS_OPEN_WRITE );


More information about the Libreoffice-commits mailing list