///////////////////////////////////////////////////////////////////////////////
-// Name: unix/stdpaths.cpp
+// Name: src/unix/stdpaths.cpp
// Purpose: wxStandardPaths implementation for Unix & OpenVMS systems
// Author: Vadim Zeitlin
// Modified by:
// Created: 2004-10-19
// RCS-ID: $Id$
// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org>
-// License: wxWindows license
+// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
#include "wx/stdpaths.h"
#ifndef WX_PRECOMP
+ #include "wx/app.h"
#include "wx/wxcrt.h"
#include "wx/utils.h"
#endif //WX_PRECOMP
wxString exeStr;
char buf[4096];
- int result = readlink("/proc/self/exe", buf, WXSIZEOF(buf) - sizeof(char));
+ int result = readlink("/proc/self/exe", buf, WXSIZEOF(buf) - 1);
if ( result != -1 )
{
buf[result] = '\0'; // readlink() doesn't NUL-terminate the buffer
wxString wxStandardPaths::GetDataDir() const
{
+ // allow to override the location of the data directory by setting
+ // WX_APPNAME_DATA_DIR environment variable: this is very useful in
+ // practice for running well-written (and so using wxStandardPaths to find
+ // their files) wx applications without installing them
+ static const wxString
+ envOverride(
+ getenv(
+ ("WX_" + wxTheApp->GetAppName().Upper() + "_DATA_DIR").c_str()
+ )
+ );
+
+ if ( !envOverride.empty() )
+ return envOverride;
+
return AppendAppInfo(GetInstallPrefix() + wxT("/share"));
}