summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej Hunt <andrzej.hunt@collabora.com>2014-01-03 09:30:26 +0000
committerAndrzej Hunt <andrzej.hunt@collabora.com>2014-01-27 06:46:30 +0000
commit3d2fefd80082574a603895d47b73d740b7f31e7d (patch)
treed2be209e37845647cdbfdec61076c4e0e4633948
parent9bdf5e9d107a09bad5d03189e76f20cb0bbcd15c (diff)
fdo#72804 Add firebird.msg to install.
This provides saner error messages for malformed or invalid sql. Change-Id: I86664db1f1446128bb73e6749f8c00f8313dd414
-rw-r--r--connectivity/source/drivers/firebird/Driver.cxx17
-rw-r--r--connectivity/source/drivers/firebird/Driver.hxx1
-rw-r--r--external/firebird/ExternalPackage_firebird.mk2
-rw-r--r--scp2/source/firebird/file_firebird.scp16
-rw-r--r--scp2/source/firebird/module_firebird.scp2
5 files changed, 26 insertions, 12 deletions
diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx
index 16abcde2df29..4b51ed22d80c 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 0c03bac5603e..83a48565a039 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 0a14e4106469..59b938bbcc4c 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 3f89147a8f51..cbdd232f67d5 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 1e7f74412dda..8e6c7d79aaaa 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