X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl.h;h=9b521b9d3c0bd913cb336bfd78072a376c48b541;hb=49d8d3a1123fb996c090905424ed66f675b3df17;hp=9138ba65714e54dcdcf1ddeb5cb51d6de094944b;hpb=22fae026e9f4859841088a1c5609be12b0b1d4f3;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perl.h b/perl.h index 9138ba6..9b521b9 100644 --- a/perl.h +++ b/perl.h @@ -113,7 +113,8 @@ register struct op *op asm(stringify(OP_IN_REGISTER)); # define STANDARD_C 1 #endif -#if defined(__cplusplus) || defined(WIN32) || defined(__sgi) || defined(OS2) +#if defined(__cplusplus) || defined(WIN32) || defined(__sgi) || defined(OS2) \ + || defined(__DGUX) # define DONT_DECLARE_STD 1 #endif @@ -204,6 +205,11 @@ register struct op *op asm(stringify(OP_IN_REGISTER)); #endif #include "perlio.h" +#include "perllio.h" +#include "perlsock.h" +#include "perlproc.h" +#include "perlenv.h" +#include "perldir.h" #ifdef USE_NEXT_CTYPE @@ -470,8 +476,8 @@ Free_t Perl_free _((Malloc_t where)); #ifdef USE_THREADS # define ERRSV (thr->errsv) # define ERRHV (thr->errhv) -# define DEFSV *av_fetch(thr->threadsv, find_threadsv("_"), FALSE) -# define SAVE_DEFSV save_threadsv(find_threadsv("_")) +# define DEFSV THREADSV(0) +# define SAVE_DEFSV save_threadsv(0) #else # define ERRSV GvSV(errgv) # define ERRHV GvHV(errgv) @@ -944,7 +950,7 @@ typedef union any ANY; typedef I32 (*filter_t) _((int, SV *, int)); #define FILTER_READ(idx, sv, len) filter_read(idx, sv, len) #define FILTER_DATA(idx) (AvARRAY(rsfp_filters)[idx]) -#define FILTER_ISREADER(idx) (idx >= AvFILL(rsfp_filters)) +#define FILTER_ISREADER(idx) (idx >= AvFILLp(rsfp_filters)) #ifdef DOSISH # if defined(OS2) @@ -1255,7 +1261,7 @@ Gid_t getegid _((void)); if (!(what)) { \ croak("Assertion failed: file \"%s\", line %d", \ __FILE__, __LINE__); \ - exit(1); \ + PerlProc_exit(1); \ }}) #endif @@ -1378,11 +1384,14 @@ int runops_standard _((void)); int runops_debug _((void)); #endif +/* _ (for $_) must be first in the following list (DEFSV requires it) */ #define THREADSV_NAMES "_123456789&`'+/.,\\\";^-%=|~:\001\005!@" /* VMS doesn't use environ array and NeXT has problems with crt0.o globals */ #if !defined(VMS) && !(defined(NeXT) && defined(__DYNAMIC__)) -#if !defined(DONT_DECLARE_STD) || (defined(__svr4__) && defined(__GNUC__) && defined(sun)) || defined(__sgi) +#if !defined(DONT_DECLARE_STD) \ + || (defined(__svr4__) && defined(__GNUC__) && defined(sun)) \ + || defined(__sgi) || defined(__DGUX) extern char ** environ; /* environment variables supplied via exec */ #endif #else @@ -1747,7 +1756,7 @@ EXT MGVTBL vtbl_sigelem = {magic_getsig, magic_setsig, 0, magic_clearsig, 0}; -EXT MGVTBL vtbl_pack = {0, 0, 0, magic_wipepack, +EXT MGVTBL vtbl_pack = {0, 0, magic_sizepack, magic_wipepack, 0}; EXT MGVTBL vtbl_packelem = {magic_getpack, magic_setpack, @@ -2032,12 +2041,12 @@ enum { * and queried under the protection of sv_mutex */ #define offer_nice_chunk(chunk, chunk_size) do { \ - MUTEX_LOCK(&sv_mutex); \ + LOCK_SV_MUTEX; \ if (!nice_chunk) { \ nice_chunk = (char*)(chunk); \ nice_chunk_size = (chunk_size); \ } \ - MUTEX_UNLOCK(&sv_mutex); \ + UNLOCK_SV_MUTEX; \ } while (0)