[Libreoffice-commits] core.git: svx/Library_svxcore.mk svx/source

Tor Lillqvist tml at collabora.com
Wed Oct 8 09:03:38 PDT 2014


 svx/Library_svxcore.mk           |   12 ++++++++++++
 svx/source/gallery2/gallery1.cxx |   20 +++++++++++++++++++-
 2 files changed, 31 insertions(+), 1 deletion(-)

New commits:
commit 96d091d43428472c2c68054ed5dca22f79adc705
Author: Tor Lillqvist <tml at collabora.com>
Date:   Wed Oct 8 11:28:00 2014 +0300

    Don't try to create cdefghij.klm inside the app bundle on OS X when sandboxed
    
    Actually, we check HAVE_FEATURE_READONLY_INSTALLSET and not
    HAVE_FEATURE_MACOSX_SANDBOX, but in practice we set the former only
    for the latter case.
    
    We could do this test cross-platform but I didn't bother now. Nobody
    uses --enable-readonly-installset when building for Linux or Windows
    anyway, I think.
    
    (There must be more places where we could and should check
    HAVE_FEATURE_READONLY_INSTALLSET.)
    
    Change-Id: Ie54f436616a1db3119b0bc0148149784127b156d

diff --git a/svx/Library_svxcore.mk b/svx/Library_svxcore.mk
index 7efaf27..1536ee6 100644
--- a/svx/Library_svxcore.mk
+++ b/svx/Library_svxcore.mk
@@ -90,6 +90,18 @@ $(eval $(call gb_Library_use_externals,svxcore,\
 	glew \
 ))
 
+ifeq ($(OS),MACOSX)
+
+$(eval $(call gb_Library_add_cxxflags,svxcore,\
+    $(gb_OBJCXXFLAGS) \
+))
+
+$(eval $(call gb_Library_use_system_darwin_frameworks,svxcore,\
+	Foundation \
+))
+
+endif
+
 $(eval $(call gb_Library_add_exception_objects,svxcore,\
     svx/source/core/coreservices \
     svx/source/core/extedit \
diff --git a/svx/source/gallery2/gallery1.cxx b/svx/source/gallery2/gallery1.cxx
index 20fa438..e9ce8b6 100644
--- a/svx/source/gallery2/gallery1.cxx
+++ b/svx/source/gallery2/gallery1.cxx
@@ -17,6 +17,15 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <config_features.h>
+
+#if defined(MACOSX) && defined(HAVE_FEATURE_READONLY_INSTALLSET)
+#define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
+#include <premac.h>
+#include <Foundation/Foundation.h>
+#include <postmac.h>
+#endif
+
 #include "sal/config.h"
 
 #include <comphelper/processfactory.hxx>
@@ -236,6 +245,15 @@ void Gallery::ImplLoadSubDirs( const INetURLObject& rBaseURL, bool& rbDirIsReadO
 
         uno::Reference< sdbc::XResultSet > xResultSet( aCnt.createCursor( aProps, ::ucbhelper::INCLUDE_DOCUMENTS_ONLY ) );
 
+#if defined(MACOSX) && defined(HAVE_FEATURE_READONLY_INSTALLSET)
+        if( rBaseURL.GetProtocol() == INET_PROT_FILE )
+        {
+            const char *appBundle = [[[NSBundle mainBundle] bundlePath] UTF8String];
+            OUString path = rBaseURL.GetURLPath();
+            if( path.startsWith( OUString( appBundle, strlen( appBundle ), RTL_TEXTENCODING_UTF8 ) + "/" ) )
+                rbDirIsReadOnly = true;
+        }
+#else
         try
         {
             // check readonlyness the very hard way
@@ -267,7 +285,7 @@ void Gallery::ImplLoadSubDirs( const INetURLObject& rBaseURL, bool& rbDirIsReadO
         catch( const uno::Exception& )
         {
         }
-
+#endif
         if( xResultSet.is() )
         {
             uno::Reference< ucb::XContentAccess > xContentAccess( xResultSet, uno::UNO_QUERY );


More information about the Libreoffice-commits mailing list