In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/cc3315ba158429a67e76ae0034535e9783abe8cf?hp=d91f1bc9c333968f803a403e4aaf2bd8c7ff1fa3>
- Log ----------------------------------------------------------------- commit cc3315ba158429a67e76ae0034535e9783abe8cf Author: Nicholas Clark <[email protected]> Date: Tue Aug 14 11:54:48 2012 +0200 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. ----------------------------------------------------------------------- Summary of changes: MANIFEST | 5 - Porting/perlhist_calculate.pl | 2 +- README.uts | 107 ---------------------- ext/POSIX/hints/uts.pl | 9 -- handy.h | 2 +- hints/uts.sh | 32 ------- perl.h | 23 +---- plan9/mkfile | 2 +- pod/perl.pod | 1 - pod/perl58delta.pod | 4 +- pod/perldelta.pod | 8 +- util.c | 3 - uts/sprintf_wrap.c | 196 ----------------------------------------- uts/strtol_wrap.c | 174 ------------------------------------ win32/Makefile | 5 +- win32/makefile.mk | 5 +- x2p/a2p.h | 8 -- 17 files changed, 17 insertions(+), 569 deletions(-) delete mode 100644 README.uts delete mode 100644 ext/POSIX/hints/uts.pl delete mode 100644 hints/uts.sh delete mode 100644 uts/sprintf_wrap.c delete mode 100644 uts/strtol_wrap.c diff --git a/MANIFEST b/MANIFEST index 6834d86..25f2546 100644 --- a/MANIFEST +++ b/MANIFEST @@ -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 b03fef4..2bb3104 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 2025e37..0000000 --- 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: [email protected] - -=cut - diff --git a/ext/POSIX/hints/uts.pl b/ext/POSIX/hints/uts.pl deleted file mode 100644 index 7a18b4a..0000000 --- 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} = ['']; diff --git a/handy.h b/handy.h index d4df8bd..f83bce5 100644 --- a/handy.h +++ b/handy.h @@ -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 2ac5221..0000000 --- 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 diff --git a/perl.h b/perl.h index ab6807b..47f642f 100644 --- a/perl.h +++ b/perl.h @@ -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 ([email protected]) 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 <[email protected]> */ -#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 8f086b0..0c59a99 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 perlp ... [164 chars truncated] 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 perll ... [99 chars truncated] -archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perlmacos perlmpeix perlnetware perlos2 perlos390 perlos400 per ... [80 chars truncated] +archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perlmacos perlmpeix perlnetware perlos2 perlos390 perlos400 per ... [72 chars truncated] 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 2220a6b..2956a8a 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 0612ca6..9777b55 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 375a52e..f0ae626 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 diff --git a/util.c b/util.c index e267bbf..c12624d 100644 --- a/util.c +++ b/util.c @@ -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 e86eae0..0000000 --- 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 24bb055..0000000 --- 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 e2fde81..038b993 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 20aa972..381f986 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 diff --git a/x2p/a2p.h b/x2p/a2p.h index bf31b3a..a69b94a 100644 --- a/x2p/a2p.h +++ b/x2p/a2p.h @@ -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 <[email protected]> */ -# ifdef UTS -# undef UVTYPE -# define UVTYPE unsigned -# endif - typedef IVTYPE IV; typedef UVTYPE UV; #endif -- Perl5 Master Repository
