diff options
author | Nicholas Clark <nick@ccl4.org> | 2012-08-14 11:54:48 +0200 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2012-08-17 16:35:30 +0200 |
commit | cc3315ba158429a67e76ae0034535e9783abe8cf (patch) | |
tree | a7526bbd15bd4456e2fe54051204ce11af9ef45a | |
parent | d91f1bc9c333968f803a403e4aaf2bd8c7ff1fa3 (diff) | |
download | perl-cc3315ba158429a67e76ae0034535e9783abe8cf.tar.gz |
Remove the UTS port.
UTS was a mainframe version of System V created by Amdahl, subsequently sold
to UTS Global. The port has not been touched since before 5.8.0, and UTS
Global is now defunct.
-rw-r--r-- | MANIFEST | 5 | ||||
-rwxr-xr-x | Porting/perlhist_calculate.pl | 2 | ||||
-rw-r--r-- | README.uts | 107 | ||||
-rw-r--r-- | ext/POSIX/hints/uts.pl | 9 | ||||
-rw-r--r-- | handy.h | 2 | ||||
-rw-r--r-- | hints/uts.sh | 32 | ||||
-rw-r--r-- | perl.h | 23 | ||||
-rw-r--r-- | plan9/mkfile | 2 | ||||
-rw-r--r-- | pod/perl.pod | 1 | ||||
-rw-r--r-- | pod/perl58delta.pod | 4 | ||||
-rw-r--r-- | pod/perldelta.pod | 8 | ||||
-rw-r--r-- | util.c | 3 | ||||
-rw-r--r-- | uts/sprintf_wrap.c | 196 | ||||
-rw-r--r-- | uts/strtol_wrap.c | 174 | ||||
-rw-r--r-- | win32/Makefile | 5 | ||||
-rw-r--r-- | win32/makefile.mk | 5 | ||||
-rw-r--r-- | x2p/a2p.h | 8 |
17 files changed, 17 insertions, 569 deletions
@@ -3874,7 +3874,6 @@ ext/POSIX/hints/next_3.pl Hint for POSIX for named architecture ext/POSIX/hints/openbsd.pl Hint for POSIX for named architecture ext/POSIX/hints/sunos_4.pl Hint for POSIX for named architecture ext/POSIX/hints/svr4.pl Hint for POSIX for named architecture -ext/POSIX/hints/uts.pl Hint for POSIX for named architecture ext/POSIX/lib/POSIX.pm POSIX extension Perl module ext/POSIX/lib/POSIX.pod POSIX extension documentation ext/POSIX/Makefile.PL POSIX extension makefile writer @@ -4181,7 +4180,6 @@ hints/unicosmk.sh Hints for named architecture hints/unicos.sh Hints for named architecture hints/unisysdynix.sh Hints for named architecture hints/utekv.sh Hints for named architecture -hints/uts.sh Hints for named architecture hints/uwin.sh Hints for named architecture hints/vmesa.sh Hints for named architecture hints/vos.sh Hints for named architecture @@ -4879,7 +4877,6 @@ README.solaris Perl notes for Solaris README.symbian Perl notes for Symbian README.tru64 Perl notes for Tru64 README.tw Perl for Traditional Chinese (in Big5) -README.uts Perl notes for UTS README.vmesa Perl notes for VM/ESA README.vms Notes about installing the VMS port README.vos Perl notes for Stratus VOS @@ -5576,8 +5573,6 @@ utils/shasum.PL filter for computing SHA digests (analogous to md5sum) utils/splain.PL Stand-alone version of diagnostics.pm utils/xsubpp.PL External subroutine preprocessor utils/zipdetails.PL display the internal structure of zip files -uts/sprintf_wrap.c sprintf wrapper for UTS -uts/strtol_wrap.c strtol wrapper for UTS vmesa/Makefile VM/ESA Makefile vmesa/vmesa.c VM/ESA-specific C code for Perl core vmesa/vmesaish.h VM/ESA-specific C header for Perl core diff --git a/Porting/perlhist_calculate.pl b/Porting/perlhist_calculate.pl index b03fef480d..2bb3104859 100755 --- a/Porting/perlhist_calculate.pl +++ b/Porting/perlhist_calculate.pl @@ -141,7 +141,7 @@ sub calc_longtable { say "Configure: $configure_size 1"; - foreach my $dir (qw(Cross djgpp emacs epoc h2pl hints mad mint mpeix NetWare os2 plan9 Porting qnx symbian utils uts vmesa vms vos win32 x2p)) { + foreach my $dir (qw(Cross djgpp emacs epoc h2pl hints mad mint mpeix NetWare os2 plan9 Porting qnx symbian utils vmesa vms vos win32 x2p)) { calc_dir($dir); } } diff --git a/README.uts b/README.uts deleted file mode 100644 index 2025e37ef7..0000000000 --- a/README.uts +++ /dev/null @@ -1,107 +0,0 @@ -If you read this file _as_is_, just ignore the funny characters you -see. It is written in the POD format (see perlpod manpage) which is -specially designed to be readable as is. - -=head1 NAME - -perluts - Perl under UTS - -=head1 SYNOPSIS - -This document can be read I<as is>: as F<README.uts>, or you -can read it after you build your package using "man perluts". - -The purpose is to help you build Perl for UTS, which, if you -follow these instructions, should be easy, and result in -a solidly working installation. - -=head1 DESCRIPTION - -Perl 5.7.2 (Developmental) or Perl 5.8.x (forthcoming) for UTS - -=head1 BUILDING PERL ON UTS - -NOTE: Some sites have redefined the way uname works, and if yours -does this, special steps must be taken so that Configure can -recognize your system as a UTS system. To see if you are in -this category, issue the command "uname -a". It should look -something like: - - uts juno 4 4.4 9672 370 - -At any rate, the first field should be "uts". If this is not -the case; supposing it is, say telcoUTS, create a script, uts/uname -(i.e. uname, in the subdirectory "uts" of the main Perl source dir): - # uname - /usr/bin/uname "$@" | sed -e 's/^telcoUTS/uts/' - -and when you execute Configure, do it as below, except for adding -PATH=uts:$PATH as a prefix. I.e. do: - - PATH=uts:$PATH ./Configure ... - -There is no need to do an interactive configure, just type - - ./Configure -de [-Dusedevel] [-Doptimize=-g ] 2>&1 | tee Conf.out - -"-Dusedevel" may be required to configure Perl 5.7.2 non-interactively. -Use -Doptimize=-g if you want to run Perl under sdb or gdb, OR -if you want to be able to use the -D command line flags to perl, -which are occasionally useful in debugging perl scripts. - -In this and the following steps, the "2>&1 | tee XXX.out" records all -output from the process, which will be useful if anything unexpected -goes wrong. - -Then do the compilation with - - make 2>&1 | tee make.out - -Finally, test using - - make test 2>&1 | tee make-test.out - -In the output, the only failures you should see should look like: - - lib/Math/BigInt/t/bigfltpm.........Use of uninitialized value ... - FAILED at test 57 - lib/Math/BigInt/t/bigintc..........ok - lib/Math/BigInt/t/bigintpm.........FAILED at test 204 - lib/Math/BigInt/t/mbimbf...........Use of uninitialized value ... - Illegal division by zero at ../lib/Math/BigInt/Calc.pm line 314. - FAILED at test 71 - lib/Math/Complex...................exp: OVERFLOW - FAILED at test 250 - lib/Math/Trig......................exp: OVERFLOW - ok - lib/Memoize/t/array................ok - ... - lib/Net/protoent...................ok - lib/Net/servent....................FAILED at test 0 - -This means that everything passes except for some problems in the -packages "Math::BigInt", "Math::Complex", and "Math::Trig". -The lib/Net/servent failure seems to be a bug in the test -program. To confirm this, from the main Perl source dir, do: - - LD_LIBRARY_PATH=`pwd` ./perl -Ilib lib/Net/servent.t - -and it should output - - 1..3 - ok 1 - ok 2 - ok 3 - -=head1 Installing the built perl on UTS - -Run the command "make install" - -=head1 AUTHOR - - Hal Morris - UTS Global LLC - email: hom00@utsglobal.com - -=cut - diff --git a/ext/POSIX/hints/uts.pl b/ext/POSIX/hints/uts.pl deleted file mode 100644 index 7a18b4a91e..0000000000 --- a/ext/POSIX/hints/uts.pl +++ /dev/null @@ -1,9 +0,0 @@ -# UTS - Leaving -lm in there results in death of make with the message: -# LD_RUN_PATH="/usr/ccs/lib" ld -G -z text POSIX.o \ -# -o ../../lib/auto/POS IX/POSIX.so -lm -# relocations referenced -# from file(s) -# /usr/ccs/lib/libm.a(acos.o) -# ... - -$self->{LIBS} = ['']; @@ -101,7 +101,7 @@ Null SV pointer. (No longer available when C<PERL_CORE> is defined.) #endif /* NeXT || __NeXT__ */ #ifndef HAS_BOOL -# if defined(UTS) || defined(VMS) +# if defined(VMS) # define bool int # else # define bool char diff --git a/hints/uts.sh b/hints/uts.sh deleted file mode 100644 index 2ac5221ca6..0000000000 --- a/hints/uts.sh +++ /dev/null @@ -1,32 +0,0 @@ -archname='s390' -archobjs='uts/strtol_wrap.o uts/sprintf_wrap.o' -cc='cc -Xa' -ccflags='-XTSTRINGS=1500000 -DStrtol=strtol_wrap32 -DStrtoul=strtoul_wrap32 -DSPRINTF_E_BUG' -cccdlflags='-pic' -d_bincompat3='undef' -d_csh='undef' -d_lstat='define' -d_suidsafe='define' -dlsrc='dl_dlopen.xs' -i_ieeefp='undef' -ld='ld' -lddlflags='-G -z text' -libperl='libperl.so' -libpth='/lib /usr/lib /usr/ccs/lib' -libs='-lsocket -lnsl -ldl -lm' -libswanted='m' -prefix='/usr/local' -toke_cflags='optimize=""' -useshrplib='true' - -################################# -# Some less routine stuff: -################################# -cc -g -Xa -c -pic -O uts/strtol_wrap.c -o uts/strtol_wrap.o -cc -g -Xa -c -pic -O uts/sprintf_wrap.c -o uts/sprintf_wrap.o -# Make POSIX a static extension. -cat <<'EOSH' > config.over -static_ext='POSIX B' -dynamic_ext=`echo " $dynamic_ext " | - sed -e 's/ POSIX / /' -e 's/ B / /'` -EOSH @@ -1172,7 +1172,7 @@ EXTERN_C int usleep(unsigned int); # define S_IFIFO _S_IFIFO #endif -/* The stat macros for Amdahl UTS, Unisoft System V/88 (and derivatives +/* The stat macros for Unisoft System V/88 (and derivatives like UTekV) are broken, sometimes giving false positives. Undefine them here and let the code below set them to proper values. @@ -1181,7 +1181,7 @@ EXTERN_C int usleep(unsigned int); This header file bug is corrected in gcc-2.5.8 and later versions. --Kaveh Ghazi (ghazi@noc.rutgers.edu) 10/3/94. */ -#if defined(uts) || (defined(m88k) && defined(ghs)) +#if defined(m88k) && defined(ghs) # undef S_ISDIR # undef S_ISCHR # undef S_ISBLK @@ -1624,10 +1624,6 @@ EXTERN_C char *crypt(const char *, const char *); #undef UV #endif -#ifdef SPRINTF_E_BUG -# define sprintf UTS_sprintf_wrap -#endif - /* For the times when you want the return value of sprintf, and you want it to be the length. Can't have a thread variable passed in, because C89 has no varargs macros. @@ -1690,13 +1686,6 @@ EXTERN_C char *crypt(const char *, const char *); # define my_strlcpy Perl_my_strlcpy #endif -/* Configure gets this right but the UTS compiler gets it wrong. - -- Hal Morris <hom00@utsglobal.com> */ -#ifdef UTS -# undef UVTYPE -# define UVTYPE unsigned -#endif - /* The IV type is supposed to be long enough to hold any integral value or a pointer. @@ -1762,11 +1751,6 @@ typedef UVTYPE UV; # undef PERL_NEED_MY_BETOH64 #endif -#if defined(uts) || defined(UTS) -# undef UV_MAX -# define UV_MAX (4294967295u) -#endif - #define IV_DIG (BIT_DIGITS(IVSIZE * 8)) #define UV_DIG (BIT_DIGITS(UVSIZE * 8)) @@ -2421,9 +2405,8 @@ typedef struct custom_op XOP; typedef struct interpreter PerlInterpreter; -/* Amdahl's <ksync.h> has struct sv */ /* SGI's <sys/sema.h> has struct sv */ -#if defined(UTS) || defined(__sgi) +#if defined(__sgi) # define STRUCT_SV perl_sv #else # define STRUCT_SV sv diff --git a/plan9/mkfile b/plan9/mkfile index 8f086b0440..0c59a99774 100644 --- a/plan9/mkfile +++ b/plan9/mkfile @@ -23,7 +23,7 @@ installman3dir = /sys/man/2 podnames = perl perlbook perldata perldebtut perldiag perldsc perlform perlfunc perlipc perllexwarn perllol perlmod perlmodlib perlmodinstall perlnewmod perlop perlootut perlopentut perlpacktut perlpod perlport perlrequick perlretut perlref perlreftut perlrequick perlrun perlsec perlstyle perlsub perlsyn perltie perltrap perlutil perlunifaq perluniintro perlvar faqpodnames = perlfaq perlfaq1 perlfaq2 perlfaq3 perlfaq4 perlfaq5 perlfaq6 perlfaq7 perlfaq8 perlfaq9 advpodnames = perlapi perlapio perlcall perlclib perlcompile perldebguts perldbmfilter perldebug perldelta perldiag perlebcdic perlembed perlfilter perlfork perlguts perlhack perlintern perliol perllocale perlnumber perlobj perlpodspec perlre perlthrtut perltodo perlunicode perlxs perlxs perlxstut -archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perlmacos perlmpeix perlnetware perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris perltru64 perluts perlvmesa perlvms perlvos perlwin32 +archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perlmacos perlmpeix perlnetware perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris perltru64 perlvmesa perlvms perlvos perlwin32 histpods = perl5004delta perl5005delta perl561delta perl56delta perl570delta perl571delta perl572delta perl573delta perl58delta perlhist libpods = ${podnames:%=pod/%.pod} diff --git a/pod/perl.pod b/pod/perl.pod index 2220a6b144..2956a8a24d 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -252,7 +252,6 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp perlsolaris Perl notes for Solaris perlsymbian Perl notes for Symbian perltru64 Perl notes for Tru64 - perluts Perl notes for UTS perlvmesa Perl notes for VM/ESA perlvms Perl notes for VMS perlvos Perl notes for Stratus VOS diff --git a/pod/perl58delta.pod b/pod/perl58delta.pod index 0612ca6bae..9777b55f9f 100644 --- a/pod/perl58delta.pod +++ b/pod/perl58delta.pod @@ -3631,7 +3631,9 @@ return only three values, not four. =head2 UTS -There are a few known test failures, see L<perluts> (README.uts). +There are a few known test failures. (B<Note:> the relevant information was +available in F<README.uts> until support for UTS was removed in Perl +v5.18.0) =head2 VOS (Stratus) diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 375a52ebbb..f0ae626204 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -450,13 +450,13 @@ XXX =head2 Discontinued Platforms -XXX List any platforms that this version of perl no longer compiles on. - =over 4 -=item XXX-some-platform +=item UTS Global -XXX +Support code relating to UTS global has been removed. UTS was a mainframe +version of System V created by Amdahl, subsequently sold to UTS Global. The +port has not been touched since before 5.8.0, and UTS Global is now defunct. =back @@ -3087,9 +3087,6 @@ Perl_my_pclose(pTHX_ PerlIO *ptr) #endif close_failed = (PerlIO_close(ptr) == EOF); SAVE_ERRNO; -#ifdef UTS - if(PerlProc_kill(pid, 0) < 0) { return(pid); } /* HOM 12/23/91 */ -#endif #ifndef PERL_MICRO rsignal_save(SIGHUP, (Sighandler_t) SIG_IGN, &hstat); rsignal_save(SIGINT, (Sighandler_t) SIG_IGN, &istat); diff --git a/uts/sprintf_wrap.c b/uts/sprintf_wrap.c deleted file mode 100644 index e86eae084b..0000000000 --- a/uts/sprintf_wrap.c +++ /dev/null @@ -1,196 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <assert.h> -#include <string.h> - -char *UTS_sprintf_wrap(); -char *do_efmt(); -char *do_gfmt(); -char *Fill(); - -/* main(argc, argv) - * char **argv; - * { - * double d; - * char *Fmt, *Ret; - * char obuf[200]; - * - * assert(argc > 2); - * Fmt = argv[1]; - * d = strtod(argv[2], (char **)0); - * - * putchar('{'); - * printf(Fmt, d); - * printf("}\n"); - * - * Ret = UTS_sprintf_wrap(obuf, Fmt, d); - * assert(Ret == obuf); - * - * printf("{%s}\n", obuf); - * } - */ - -char * -UTS_sprintf_wrap(obuf, fmt, d, - a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) -char *obuf, *fmt; -double d; -{ - int fmtlen, Width=0, Precision=6, Alt=0, Plus=0, Minus=0, - Zero = 0; - int FmtChar, BaseFmt = 0; - char *f = fmt, *AfterWidth = 0, *AfterPrecision = 0; - char *Dot; - - if(*f++ != '%') { - return -sprintf(obuf, fmt, d, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15); - } - fmtlen = strlen(fmt); - FmtChar = fmt[fmtlen - 1]; - switch(FmtChar) { - case 'f': - case 'F': - return -sprintf(obuf, fmt, d, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15); - case 'e': - case 'E': - BaseFmt = 'e'; - goto BaseFmt_IsSet; - case 'g': - case 'G': - BaseFmt = 'g'; -BaseFmt_IsSet: - if(*f == '#') { Alt = 1; ++f; } /* Always has '.' */ - if(*f == '+') { Plus = 1; ++f; } /* Force explicit sign */ - if(*f == '-') { Minus = 1; ++f; } /* Left justify */ - if(*f == '0') { Zero = 1; ++f;} /* Fill using 0s*/ - if(Dot = strchr(f, '.')) { - Precision = strtol(Dot+1, &AfterPrecision, 0); - } - if(!Dot || (Dot && Dot > f)) { /* Next char=='.' => no width*/ - Width = strtol(f, &AfterWidth, 0); - } - if(Dot) { f = AfterPrecision; } - else if(AfterWidth) { f = AfterWidth; } - if(*f != FmtChar) goto regular_sprintf; - /* It doesn't look like a f.p. sprintf call */ - /* from Perl_sv_vcatpvfn */ - - if(BaseFmt == 'e') { - return do_efmt(d, obuf, Width, Precision, Alt, - Plus, Minus, Zero, FmtChar == 'E'); - } else { - return do_gfmt(d, obuf, Width, Precision, Alt, - Plus, Minus, Zero, FmtChar == 'G'); - } - default: -regular_sprintf: - return -sprintf(obuf, fmt, d, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15); - } -} - -char * -do_efmt(d, obuf, Width, Precision, Alt, Plus, Minus, Zero, UpperCase) -char *obuf; -double d; -{ - char *Ecvt; - char *ob; - int decpt, sign, E; - int len; - int AllZeroes = 0; - - Ecvt = ecvt( d , Precision+1, &decpt, &sign); - - /* fprintf(stderr, "decpt=%d, sign=%d\n", decpt, sign); */ - - len = strlen(Ecvt); - if(strspn(Ecvt, "0") == len) AllZeroes = 1; - - ob = obuf; - if(sign) *ob++ = '-'; - else if(Plus) *ob++ = '+'; - - *ob++ = Ecvt[0]; - - if(Precision > 0 || Alt) *ob++ = '.'; - strcpy(ob, &Ecvt[1]); - - ob += strlen(ob); /* ADVANCE TO END OF WHAT WE JUST ADDED */ - *ob++ = UpperCase ? 'E' : 'e'; - - if(AllZeroes) E = 0; - else E = decpt - 1; - - if(E < 0) { *ob++ = '-'; E = -E; } - else { *ob++ = '+'; } - - sprintf(ob, "%.2d", E); /* Too much horsepower used here */ - - if(Width > strlen(obuf)) return Fill(obuf, Width, Minus, Zero); - else return obuf; -} - -char * -do_gfmt(d, obuf, Width, Precision, Alt, Plus, Minus, Zero, UpperCase) -char *obuf; -double d; -{ - char *Ecvt = gcvt(d, Precision ? Precision : 1, obuf); - int len = strlen(obuf); - - /* gcvt fails (maybe give a warning? For now return empty string): */ - if(!Ecvt) { *obuf = '\0'; return obuf; } - - /* printf("Ecvt='%s'\n", Ecvt); */ - if(Plus && (Ecvt[0] != '-')) { - memmove(obuf+1, obuf, len+1); /* "+1" to get '\0' at end */ - obuf[0] = '+'; - ++len; - } - if(Alt && !strchr(Ecvt, '.')) { - int LenUpTo_E = strcspn(obuf, "eE"); - int E_etc_len = strlen(&obuf[LenUpTo_E]); - /* ABOVE: Will be 0 if there's no E/e because */ - /* strcspn will return length of whole string */ - - if(E_etc_len) - memmove(obuf+LenUpTo_E+1, obuf+LenUpTo_E, E_etc_len); - obuf[LenUpTo_E] = '.'; - obuf[LenUpTo_E + 1 + E_etc_len ] = '\0'; - } - { char *E_loc; - if(UpperCase && (E_loc = strchr(obuf, 'e'))) { *E_loc = 'E'; } - } - if(Width > len) - return Fill(obuf, Width, Minus, Zero); - else - return obuf; -} - -char * -Fill(obuf, Width, LeftJustify, Zero) -char *obuf; -{ - int W = strlen(obuf); - int diff = Width - W; - /* LeftJustify means there was a '-' flag, and in that case, */ - /* printf man page (UTS4.4) says ignore '0' */ - char FillChar = (Zero && !LeftJustify) ? '0' : ' '; - int i; - int LeftFill = ! LeftJustify; - - if(Width <= W) return obuf; - - if(LeftFill) { - memmove(obuf+diff, obuf, W+1); /* "+1" to get '\0' at end */ - for(i=0 ; i < diff ; ++i) { obuf[i] = FillChar; } - } else { - for(i=W ; i < Width ; ++i) - obuf[i] = FillChar; - obuf[Width] = '\0'; - } - return obuf; -} diff --git a/uts/strtol_wrap.c b/uts/strtol_wrap.c deleted file mode 100644 index 24bb05542f..0000000000 --- a/uts/strtol_wrap.c +++ /dev/null @@ -1,174 +0,0 @@ -/* A wrapper around strtol() and strtoul() to correct some - * "out of bounds" cases that don't work well on at least UTS. - * If a value is Larger than the max, strto[u]l should return - * the max value, and set errno to ERANGE - * The same if a value is smaller than the min value (only - * relevant for strtol(); not strtoul()), except the minimum - * value is returned (and errno == ERANGE). - */ - -#include <ctype.h> -#include <string.h> -#include <sys/errno.h> -#include <stdlib.h> - -extern int errno; - -#undef I32 -#undef U32 - -#define I32 int -#define U32 unsigned int - -struct base_info { - char *ValidChars; - - char *Ulong_max_str; - char *Long_max_str; - char *Long_min_str; /* Absolute value */ - - int Ulong_max_str_len; - int Long_max_str_len; - int Long_min_str_len; /* Absolute value */ - - U32 Ulong_max; - I32 Long_max; - I32 Long_min; /* NOT Absolute value */ -}; -static struct base_info Base_info[37]; - -static struct base_info Base_info_16 = { - "0123456789abcdefABCDEF", - "4294967295", "2147483648" /* <== ABS VAL */ , "2147483647", - 10, 10, 10, - 4294967295, 2147483647, - 2147483648, -}; - -static struct base_info Base_info_10 = { - "0123456789", - "4294967295", "2147483648" /* <== ABS VAL */ , "2147483647", - 10, 10, 10, - 4294967295, 2147483647, - 2147483648, -}; - - /* Used eventually (if this is fully developed) to hold info - * for processing bases 2-36. So that we can just plug the - * base in as a selector for its info, we sacrifice - * Base_info[0] and Base_info[1] (unless they are used - * at some point for special information). - */ - -/* This may be replaced later by something more universal */ -static void -init_Base_info() -{ - if(Base_info[10].ValidChars) return; - Base_info[10] = Base_info_10; - Base_info[16] = Base_info_16; -} - -unsigned int -strtoul_wrap32(char *s, char **pEnd, int base) -{ - int Len; - int isNegated = 0; - char *sOrig = s; - - init_Base_info(); - - while(*s && isspace(*s)) ++s; - - if(*s == '-') { - ++isNegated; - ++s; - while(*s && isspace(*s)) ++s; - } - if(base == 0) { - if(*s == '0') { - if(s[1] == 'x' || s[1] == 'X') { - s += 2; - base = 16; - } else { - ++s; - base = 8; - } - } else if(isdigit(*s)) { - base = 10; - } - } - if(base != 10) { - return strtoul(sOrig, pEnd, base); - } - - Len = strspn(s, Base_info[base].ValidChars); - - if(Len > Base_info[base].Ulong_max_str_len - || - (Len == Base_info[base].Ulong_max_str_len - && - strncmp(Base_info[base].Ulong_max_str, s, Len) < 0) - ) { - /* In case isNegated is set - what to do?? */ - /* Mightn't we say a negative number is ERANGE for strtoul? */ - errno = ERANGE; - return Base_info[base].Ulong_max; - } - - return strtoul(sOrig, pEnd, base); -} - -int -strtol_wrap32(char *s, char **pEnd, int base) -{ - int Len; - int isNegated = 0; - char *sOrig = s; - - init_Base_info(); - - while(*s && isspace(*s)) ++s; - - if(*s == '-') { - ++isNegated; - ++s; - while(*s && isspace(*s)) ++s; - } - if(base == 0) { - if(*s == '0') { - if(s[1] == 'x' || s[1] == 'X') { - s += 2; - base = 16; - } else { - ++s; - base = 8; - } - } else if(isdigit(*s)) { - base = 10; - } - } - if(base != 10) { - return strtol(sOrig, pEnd, base); - } - - Len = strspn(s, Base_info[base].ValidChars); - - if(Len > Base_info[base].Long_max_str_len - || - (!isNegated && Len == Base_info[base].Long_max_str_len - && - strncmp(Base_info[base].Long_max_str, s, Len) < 0) - || - (isNegated && Len == Base_info[base].Long_min_str_len - && - strncmp(Base_info[base].Long_min_str, s, Len) < 0) - ) { - /* In case isNegated is set - what to do?? */ - /* Mightn't we say a negative number is ERANGE for strtol? */ - errno = ERANGE; - return(isNegated ? Base_info[base].Long_min - : - Base_info[base].Long_min); - } - - return strtol(sOrig, pEnd, base); -} diff --git a/win32/Makefile b/win32/Makefile index e2fde8151d..038b99310d 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1155,7 +1155,6 @@ utils: $(PERLEXE) $(X2P) copy ..\README.symbian ..\pod\perlsymbian.pod copy ..\README.tru64 ..\pod\perltru64.pod copy ..\README.tw ..\pod\perltw.pod - copy ..\README.uts ..\pod\perluts.pod copy ..\README.vmesa ..\pod\perlvmesa.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod @@ -1261,8 +1260,8 @@ distclean: realclean perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \ perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \ perlsolaris.pod perlsymbian.pod perltoc.pod perltru64.pod \ - perltw.pod perluniprops.pod perluts.pod perlvmesa.pod \ - perlvos.pod perlwin32.pod + perltw.pod perluniprops.pod perlvmesa.pod perlvos.pod \ + perlwin32.pod -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \ perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \ xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep cpanp-run-perl cpanp cpan2dist shasum corelist config_data zipdetails diff --git a/win32/makefile.mk b/win32/makefile.mk index 20aa972cd8..381f98618c 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1335,7 +1335,6 @@ utils: $(PERLEXE) $(X2P) copy ..\README.symbian ..\pod\perlsymbian.pod copy ..\README.tru64 ..\pod\perltru64.pod copy ..\README.tw ..\pod\perltw.pod - copy ..\README.uts ..\pod\perluts.pod copy ..\README.vmesa ..\pod\perlvmesa.pod copy ..\README.vos ..\pod\perlvos.pod copy ..\README.win32 ..\pod\perlwin32.pod @@ -1440,8 +1439,8 @@ distclean: realclean perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \ perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \ perlsolaris.pod perlsymbian.pod perltoc.pod perltru64.pod \ - perltw.pod perluniprops.pod perluts.pod perlvmesa.pod \ - perlvos.pod perlwin32.pod + perltw.pod perluniprops.pod perlvmesa.pod perlvos.pod \ + perlwin32.pod -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \ perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \ xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep cpanp-run-perl cpanp cpan2dist shasum corelist config_data zipdetails @@ -61,14 +61,6 @@ #define MEM_SIZE Size_t #ifdef PERL_MEM_LOG -/* Blindly copied from ../perl.h. -- AD 2/2006. */ -/* Configure gets this right but the UTS compiler gets it wrong. - -- Hal Morris <hom00@utsglobal.com> */ -# ifdef UTS -# undef UVTYPE -# define UVTYPE unsigned -# endif - typedef IVTYPE IV; typedef UVTYPE UV; #endif |