AIX patches from Hans-Joachim Baader <hans-joachim.baader@cjt.de>
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -28,7 +28,7 @@
|
|||||||
// OS
|
// OS
|
||||||
#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \
|
#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \
|
||||||
defined(__LINUX__) || defined(__sgi ) || \
|
defined(__LINUX__) || defined(__sgi ) || \
|
||||||
defined(__hpux) || defined(sun) || defined(__SUN__)
|
defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX)
|
||||||
|
|
||||||
#ifndef __UNIX__
|
#ifndef __UNIX__
|
||||||
#define __UNIX__
|
#define __UNIX__
|
||||||
|
@@ -323,7 +323,7 @@ public:
|
|||||||
// under Unix it is tested with configure, assume it works on other
|
// under Unix it is tested with configure, assume it works on other
|
||||||
// platforms (there might be overloading problems if size_t and int are
|
// platforms (there might be overloading problems if size_t and int are
|
||||||
// the same type)
|
// the same type)
|
||||||
#if !defined(__UNIX__) || defined(wxUSE_SIZE_T_STRING_OPERATOR)
|
#if !defined(__UNIX__) || wxUSE_SIZE_T_STRING_OPERATOR
|
||||||
// operator version of GetChar
|
// operator version of GetChar
|
||||||
char operator[](size_t n) const
|
char operator[](size_t n) const
|
||||||
{ ASSERT_VALID_INDEX( n ); return m_pchData[n]; }
|
{ ASSERT_VALID_INDEX( n ); return m_pchData[n]; }
|
||||||
|
@@ -114,6 +114,11 @@ extern const char WXDLLEXPORT *g_szNul = &g_strEmpty.dummy;
|
|||||||
#endif //compiler
|
#endif //compiler
|
||||||
#endif // no vsnprintf
|
#endif // no vsnprintf
|
||||||
|
|
||||||
|
#ifdef _AIX
|
||||||
|
// AIX has vsnprintf, but there's no prototype in the system headers.
|
||||||
|
extern "C" int vsnprintf(char* str, size_t n, const char* format, va_list ap);
|
||||||
|
#endif
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// global functions
|
// global functions
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
#include "wx/timer.h"
|
#include "wx/timer.h"
|
||||||
|
|
||||||
#ifdef __SVR4__
|
#if defined(__SVR4__) && !defined(__SYSV__)
|
||||||
#define __SYSV__
|
#define __SYSV__
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -68,23 +68,21 @@
|
|||||||
// many versions of Unices have this function, but it is not defined in system
|
// many versions of Unices have this function, but it is not defined in system
|
||||||
// headers - please add your system here if it is the case for your OS.
|
// headers - please add your system here if it is the case for your OS.
|
||||||
// SunOS (and Solaris) and DG-UX are like this.
|
// SunOS (and Solaris) and DG-UX are like this.
|
||||||
#if defined(__SOLARIS__) || defined(__osf__)
|
#ifdef HAVE_WAIT4
|
||||||
|
#if defined(__SOLARIS__) || defined(__osf__)
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
pid_t wait4(pid_t pid, int *statusp, int options,
|
pid_t wait4(pid_t pid, int *statusp, int options,
|
||||||
struct rusage *rusage);
|
struct rusage *rusage);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define wxWait4(pid, stat, flags, rusage) wait4(pid, stat, flags, rusage)
|
#define wxWait4(pid, stat, flags, rusage) wait4(pid, stat, flags, rusage)
|
||||||
#elif defined(__sgi) || defined(__HPUX__)
|
#else
|
||||||
// no wait4() at all on these systems
|
// no wait4() at all on these systems
|
||||||
// TODO verify whether wait3() really works in this situation
|
// TODO verify whether wait3() really works in this situation
|
||||||
#define wxWait4(pid, stat, flags, rusage) wait3(stat, flags, rusage)
|
#define wxWait4(pid, stat, flags, rusage) wait3(stat, flags, rusage)
|
||||||
#else
|
#endif // HAVE_WAIT4
|
||||||
// other Unices: assume have wait4(), although it's not standard (but
|
|
||||||
// Linux and FreeBSD do have it)
|
|
||||||
#define wxWait4(pid, stat, flags, rusage) wait4(pid, stat, flags, rusage)
|
|
||||||
#endif // wait4()
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// implementation
|
// implementation
|
||||||
@@ -278,11 +276,7 @@ long wxExecute( char **argv, bool sync, wxProcess *process )
|
|||||||
open("/dev/null", O_WRONLY); // stderr
|
open("/dev/null", O_WRONLY); // stderr
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _AIX
|
|
||||||
execvp ((const char *)*argv, (const char **)argv);
|
|
||||||
#else
|
|
||||||
execvp (*argv, argv);
|
execvp (*argv, argv);
|
||||||
#endif
|
|
||||||
|
|
||||||
// there is no return after successful exec()
|
// there is no return after successful exec()
|
||||||
fprintf(stderr, _("Can't execute '%s'\n"), *argv);
|
fprintf(stderr, _("Can't execute '%s'\n"), *argv);
|
||||||
|
Reference in New Issue
Block a user