From 227b5cd72fe18864553ab0fc0688bb017f349e61 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 25 Mar 1999 15:05:57 +0000 Subject: [PATCH] AIX patches from Hans-Joachim Baader git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1977 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/defs.h | 2 +- include/wx/string.h | 2 +- src/common/string.cpp | 5 +++++ src/common/timercmn.cpp | 2 +- src/unix/utilsunx.cpp | 18 ++++++------------ 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/include/wx/defs.h b/include/wx/defs.h index d0d54f441a..f5777c1ee9 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -28,7 +28,7 @@ // OS #if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ defined(__LINUX__) || defined(__sgi ) || \ - defined(__hpux) || defined(sun) || defined(__SUN__) + defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) #ifndef __UNIX__ #define __UNIX__ diff --git a/include/wx/string.h b/include/wx/string.h index 97e65cc941..50f9fbf4a1 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -323,7 +323,7 @@ public: // under Unix it is tested with configure, assume it works on other // platforms (there might be overloading problems if size_t and int are // the same type) -#if !defined(__UNIX__) || defined(wxUSE_SIZE_T_STRING_OPERATOR) +#if !defined(__UNIX__) || wxUSE_SIZE_T_STRING_OPERATOR // operator version of GetChar char operator[](size_t n) const { ASSERT_VALID_INDEX( n ); return m_pchData[n]; } diff --git a/src/common/string.cpp b/src/common/string.cpp index 86012fadb3..54a87d7ba5 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -114,6 +114,11 @@ extern const char WXDLLEXPORT *g_szNul = &g_strEmpty.dummy; #endif //compiler #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 // ---------------------------------------------------------------------------- diff --git a/src/common/timercmn.cpp b/src/common/timercmn.cpp index 4049812a59..7c1f7ccdc3 100644 --- a/src/common/timercmn.cpp +++ b/src/common/timercmn.cpp @@ -28,7 +28,7 @@ #include "wx/timer.h" -#ifdef __SVR4__ +#if defined(__SVR4__) && !defined(__SYSV__) #define __SYSV__ #endif diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp index 340f3d547c..9121c39e87 100644 --- a/src/unix/utilsunx.cpp +++ b/src/unix/utilsunx.cpp @@ -68,23 +68,21 @@ // 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. // SunOS (and Solaris) and DG-UX are like this. -#if defined(__SOLARIS__) || defined(__osf__) +#ifdef HAVE_WAIT4 + #if defined(__SOLARIS__) || defined(__osf__) extern "C" { pid_t wait4(pid_t pid, int *statusp, int options, struct rusage *rusage); } + #endif - #define wxWait4(pid, stat, flags, rusage) wait4(pid, stat, flags, rusage) -#elif defined(__sgi) || defined(__HPUX__) + #define wxWait4(pid, stat, flags, rusage) wait4(pid, stat, flags, rusage) +#else // no wait4() at all on these systems // TODO verify whether wait3() really works in this situation #define wxWait4(pid, stat, flags, rusage) wait3(stat, flags, rusage) -#else - // 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() +#endif // HAVE_WAIT4 // ============================================================================ // implementation @@ -278,11 +276,7 @@ long wxExecute( char **argv, bool sync, wxProcess *process ) open("/dev/null", O_WRONLY); // stderr #endif -#ifdef _AIX - execvp ((const char *)*argv, (const char **)argv); -#else execvp (*argv, argv); -#endif // there is no return after successful exec() fprintf(stderr, _("Can't execute '%s'\n"), *argv); -- 2.45.2