diff options
Diffstat (limited to 'beos')
-rw-r--r-- | beos/beos.c | 16 | ||||
-rw-r--r-- | beos/beosish.h | 13 |
2 files changed, 29 insertions, 0 deletions
diff --git a/beos/beos.c b/beos/beos.c new file mode 100644 index 0000000000..f0e8147109 --- /dev/null +++ b/beos/beos.c @@ -0,0 +1,16 @@ +#undef waitpid + +#include <sys/wait.h> + +/* In BeOS 5.0 the waitpid() seems to misbehave in that the status + * is _not_ shifted left by eight (multiplied by 256), as it is in + * POSIX/UNIX. To undo the surpise effect to the rest of Perl we + * need this wrapper. (The rest of BeOS might be surprised because + * of this, though.) */ + +pid_t beos_waitpid(pid_t process_id, int *status_location, int options) { + pid_t got = waitpid(procedd_is, status_location, options); + if (status_localtion) + *status_location <<= 8; + return got; +} diff --git a/beos/beosish.h b/beos/beosish.h new file mode 100644 index 0000000000..4c999daa0d --- /dev/null +++ b/beos/beosish.h @@ -0,0 +1,13 @@ +#ifndef PERL_BEOS_BEOSISH_H +#define PERL_BEOS_BEOSISH_H + +#include "unixish.h" + +#undef waitpid +#define waitpid beos_waitpid + +/* This seems to be protoless. */ +char *gcvt(double value, int num_digits, char *buffer); + +#endif + |