[Libreoffice-commits] core.git: connectivity/source external/firebird scp2/source

Andrzej Hunt andrzej.hunt at collabora.com
Sun Jan 26 22:50:21 PST 2014


 connectivity/source/drivers/firebird/Driver.cxx |   17 +++++++++++++++++
 connectivity/source/drivers/firebird/Driver.hxx |    1 +
 external/firebird/ExternalPackage_firebird.mk   |    2 ++
 scp2/source/firebird/file_firebird.scp          |   16 +++++-----------
 scp2/source/firebird/module_firebird.scp        |    2 +-
 5 files changed, 26 insertions(+), 12 deletions(-)

New commits:
commit 3d2fefd80082574a603895d47b73d740b7f31e7d
Author: Andrzej Hunt <andrzej.hunt at collabora.com>
Date:   Fri Jan 3 09:30:26 2014 +0000

    fdo#72804 Add firebird.msg to install.
    
    This provides saner error messages for malformed
    or invalid sql.
    
    Change-Id: I86664db1f1446128bb73e6749f8c00f8313dd414

diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx
index 16abcde..4b51ed2 100644
--- a/connectivity/source/drivers/firebird/Driver.cxx
+++ b/connectivity/source/drivers/firebird/Driver.cxx
@@ -27,7 +27,9 @@
 
 #include <comphelper/processfactory.hxx>
 #include <cppuhelper/supportsservice.hxx>
+#include <osl/file.hxx>
 #include <osl/process.h>
+#include <rtl/bootstrap.hxx>
 #include <svtools/miscopt.hxx>
 
 using namespace com::sun::star;
@@ -57,6 +59,7 @@ namespace connectivity
 // Static const member variables
 const OUString FirebirdDriver::our_sFirebirdTmpVar("FIREBIRD_TMP");
 const OUString FirebirdDriver::our_sFirebirdLockVar("FIREBIRD_LOCK");
+const OUString FirebirdDriver::our_sFirebirdMsgVar("FIREBIRD_MSG");
 
 FirebirdDriver::FirebirdDriver(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext)
     : ODriver_BASE(m_aMutex)
@@ -76,6 +79,16 @@ FirebirdDriver::FirebirdDriver(const ::com::sun::star::uno::Reference< ::com::su
 
     // Overrides firebird's default of /tmp/firebird or c:\temp\firebird
     osl_setEnvironment(our_sFirebirdLockVar.pData, m_firebirdLockDirectory.GetFileName().pData);
+
+#ifndef SYSTEM_FIREBIRD
+    // Overrides firebird's hardcoded default of /usr/local/firebird on *nix,
+    // however on Windows it seems to use the current directory as a default.
+    OUString sMsgURL("$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/firebird");
+    ::rtl::Bootstrap::expandMacros(sMsgURL);
+    OUString sMsgPath;
+    ::osl::FileBase::getSystemPathFromFileURL(sMsgURL, sMsgPath);
+    osl_setEnvironment(our_sFirebirdMsgVar.pData, sMsgPath.pData);
+#endif
 }
 
 void FirebirdDriver::disposing()
@@ -93,6 +106,10 @@ void FirebirdDriver::disposing()
     osl_clearEnvironment(our_sFirebirdTmpVar.pData);
     osl_clearEnvironment(our_sFirebirdLockVar.pData);
 
+#ifndef SYSTEM_FIREBIRD
+    osl_clearEnvironment(our_sFirebirdMsgVar.pData);
+#endif
+
     ODriver_BASE::disposing();
 }
 
diff --git a/connectivity/source/drivers/firebird/Driver.hxx b/connectivity/source/drivers/firebird/Driver.hxx
index 0c03bac..83a4856 100644
--- a/connectivity/source/drivers/firebird/Driver.hxx
+++ b/connectivity/source/drivers/firebird/Driver.hxx
@@ -48,6 +48,7 @@ namespace connectivity
         private:
             static const ::rtl::OUString our_sFirebirdTmpVar;
             static const ::rtl::OUString our_sFirebirdLockVar;
+            static const ::rtl::OUString our_sFirebirdMsgVar;
 
             css::uno::Reference<css::uno::XComponentContext> m_aContext;
             ::utl::TempFile m_firebirdTMPDirectory;
diff --git a/external/firebird/ExternalPackage_firebird.mk b/external/firebird/ExternalPackage_firebird.mk
index 0a14e41..59b938b 100644
--- a/external/firebird/ExternalPackage_firebird.mk
+++ b/external/firebird/ExternalPackage_firebird.mk
@@ -19,4 +19,6 @@ else
 $(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_LIB_FOLDER)/libfbembed.so.2.5,gen/firebird/lib/libfbembed.so.2.5.2))
 endif
 
+$(eval $(call gb_ExternalPackage_add_file,firebird,$(LIBO_SHARE_FOLDER)/firebird/firebird.msg,gen/firebird/firebird.msg))
+
 # vim: set noet sw=4 ts=4:
diff --git a/scp2/source/firebird/file_firebird.scp b/scp2/source/firebird/file_firebird.scp
index 3f89147..cbdd232 100644
--- a/scp2/source/firebird/file_firebird.scp
+++ b/scp2/source/firebird/file_firebird.scp
@@ -20,17 +20,11 @@
 
 #ifndef SYSTEM_FIREBIRD
 
-File gid_File_Firebird_Lib
-    LIB_FILE_BODY;
-    Styles = (PACKED);
-    Dir = SCP2_OOO_LIB_DIR;
-  #if defined MACOSX
-    Name = "libfbembed.dylib";
-  #elif defined UNX
-    Name = STRING(CONCAT3(libfbembed,UNXSUFFIX,.2.5));
-  #else
-    Name = "ifbembed.dll";
-  #endif
+File gid_File_Firebird
+    TXT_FILE_BODY;
+    Styles = (FILELIST, PACKED);
+    Dir = FILELIST_DIR;
+    Name = "firebird.filelist";
 End
 
 #endif
diff --git a/scp2/source/firebird/module_firebird.scp b/scp2/source/firebird/module_firebird.scp
index 1e7f744..8e6c7d7 100644
--- a/scp2/source/firebird/module_firebird.scp
+++ b/scp2/source/firebird/module_firebird.scp
@@ -26,7 +26,7 @@ Module gid_Module_Firebird
     PackageInfo = "packinfo_office.txt";
     ParentID = gid_Module_Root_Brand;
     Files = (
-        File gid_File_Firebird_Lib
+        File gid_File_Firebird
     );
     Styles = (HIDDEN_ROOT);
 End


More information about the Libreoffice-commits mailing list