git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1977
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
// OS
#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \
defined(__LINUX__) || defined(__sgi ) || \
// 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__
#ifndef __UNIX__
#define __UNIX__
// 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)
// 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]; }
// operator version of GetChar
char operator[](size_t n) const
{ ASSERT_VALID_INDEX( n ); return m_pchData[n]; }
#endif //compiler
#endif // no vsnprintf
#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
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// global functions
// ----------------------------------------------------------------------------
+#if defined(__SVR4__) && !defined(__SYSV__)
// 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.
// 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);
}
extern "C"
{
pid_t wait4(pid_t pid, int *statusp, int options,
struct rusage *rusage);
}
- #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)
// 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()
// ============================================================================
// implementation
// ============================================================================
// implementation
open("/dev/null", O_WRONLY); // stderr
#endif
open("/dev/null", O_WRONLY); // stderr
#endif
-#ifdef _AIX
- execvp ((const char *)*argv, (const char **)argv);
-#else
// there is no return after successful exec()
fprintf(stderr, _("Can't execute '%s'\n"), *argv);
// there is no return after successful exec()
fprintf(stderr, _("Can't execute '%s'\n"), *argv);