summaryrefslogtreecommitdiff
path: root/connectivity
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 /connectivity
parent9bdf5e9d107a09bad5d03189e76f20cb0bbcd15c (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.cxx17
-rw-r--r--connectivity/source/drivers/firebird/Driver.hxx1
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;