diff options
author | Andrzej Hunt <andrzej.hunt@collabora.com> | 2014-01-03 09:30:26 +0000 |
---|---|---|
committer | Andrzej Hunt <andrzej.hunt@collabora.com> | 2014-01-27 06:46:30 +0000 |
commit | 3d2fefd80082574a603895d47b73d740b7f31e7d (patch) | |
tree | d2be209e37845647cdbfdec61076c4e0e4633948 /connectivity | |
parent | 9bdf5e9d107a09bad5d03189e76f20cb0bbcd15c (diff) |
fdo#72804 Add firebird.msg to install.
This provides saner error messages for malformed
or invalid sql.
Change-Id: I86664db1f1446128bb73e6749f8c00f8313dd414
Diffstat (limited to 'connectivity')
-rw-r--r-- | connectivity/source/drivers/firebird/Driver.cxx | 17 | ||||
-rw-r--r-- | connectivity/source/drivers/firebird/Driver.hxx | 1 |
2 files changed, 18 insertions, 0 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; |