This patch describes the changes made in ActivePerl build 624 over the official Perl v5.6.1-TRIAL2 sources from CPAN. Summary of changes in build 624: * Make "perl -V" output reflect ActiveState build. * Add Win32::BuildNumber() for compatibility. * Add resources to perl.exe and perl56.dll. The ActivePerl Release Notes contain an informal summary of these changes. These can be viewed at: http://www.ActiveState.com/ActivePerl/docs/CHANGES.html The included patch may be applied to Perl v5.6.1-TRIAL2 sources using the GNU patch utility. e.g: % cd perl-5.6.1-TRIAL2 % patch -lNp1 < this_file --------------------------------------------------------------------------- diff -ruN perl-5.6.1-TRIAL2/BuildInfo.h AP624_source/BuildInfo.h --- perl-5.6.1-TRIAL2/BuildInfo.h Wed Dec 31 16:00:00 1969 +++ AP624_source/BuildInfo.h Tue Feb 06 15:22:56 2001 @@ -0,0 +1,25 @@ +/* BuildInfo.h + * + * (c) 1998 ActiveState Tool Corp. All rights reserved. + * + */ + +#ifndef ___BuildInfo__h___ +#define ___BuildInfo__h___ + +#define PRODUCT_BUILD_NUMBER "624" +#define PERLFILEVERSION "5,6,1,624\0" +#define PERLRC_VERSION 5,6,1,624 +#define ACTIVEPERL_CHANGELIST "" +#define PERLPRODUCTVERSION "Build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST "\0" +#define PERLPRODUCTNAME "ActivePerl\0" + +#define PERL_VENDORLIB_NAME "ActiveState" + +#define ACTIVEPERL_VERSION "Built "##__TIME__##" "##__DATE__##"\n" +#define ACTIVEPERL_LOCAL_PATCHES_ENTRY "ActivePerl Build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST +#define BINARY_BUILD_NOTICE printf("\n\ +Binary build " PRODUCT_BUILD_NUMBER ACTIVEPERL_CHANGELIST " provided by ActiveState Tool Corp. http://www.ActiveState.com\n\ +" ACTIVEPERL_VERSION "\n"); + +#endif /* ___BuildInfo__h___ */ diff -ruN perl-5.6.1-TRIAL2/ext/Errno/Errno_pm.PL AP624_source/ext/Errno/Errno_pm.PL --- perl-5.6.1-TRIAL2/ext/Errno/Errno_pm.PL Tue Feb 06 15:40:14 2001 +++ AP624_source/ext/Errno/Errno_pm.PL Tue Feb 06 15:23:01 2001 @@ -85,6 +85,9 @@ } elsif ($^O eq 'vmesa') { # OS/390 C compiler doesn't generate #file or #line directives $file{'../../vmesa/errno.h'} = 1; + } elsif ($Config{archname} eq 'epoc') { + # Watch out for cross compiling for EPOC (usually done on linux) + $file{'/usr/local/epoc/include/libc/sys/errno.h'} = 1; } elsif ($^O eq 'linux') { # Some Linuxes have weird errno.hs which generate # no #file or #line directives diff -ruN perl-5.6.1-TRIAL2/ext/POSIX/POSIX.xs AP624_source/ext/POSIX/POSIX.xs --- perl-5.6.1-TRIAL2/ext/POSIX/POSIX.xs Tue Feb 06 15:40:14 2001 +++ AP624_source/ext/POSIX/POSIX.xs Tue Feb 06 15:23:02 2001 @@ -3419,9 +3419,8 @@ /* Set up any desired mask. */ svp = hv_fetch(action, "MASK", 4, FALSE); if (svp && sv_isa(*svp, "POSIX::SigSet")) { - unsigned long tmp; - tmp = (unsigned long)SvNV((SV*)SvRV(*svp)); - sigset = (sigset_t*) tmp; + IV tmp = SvIV((SV*)SvRV(*svp)); + sigset = INT2PTR(sigset_t*, tmp); act.sa_mask = *sigset; } else diff -ruN perl-5.6.1-TRIAL2/lib/CGI.pm AP624_source/lib/CGI.pm --- perl-5.6.1-TRIAL2/lib/CGI.pm Tue Feb 06 15:40:14 2001 +++ AP624_source/lib/CGI.pm Tue Feb 06 15:23:06 2001 @@ -2316,7 +2316,7 @@ push(@param,'-expires'=>$expires) if $expires; push(@param,'-secure'=>$secure) if $secure; - return new CGI::Cookie(@param); + return CGI::Cookie->new(@param); } END_OF_FUNC diff -ruN perl-5.6.1-TRIAL2/patchlevel.h AP624_source/patchlevel.h --- perl-5.6.1-TRIAL2/patchlevel.h Tue Feb 06 15:40:26 2001 +++ AP624_source/patchlevel.h Tue Feb 06 15:23:13 2001 @@ -1,5 +1,7 @@ #ifndef __PATCHLEVEL_H_INCLUDED__ +#include "BuildInfo.h" + /* do not adjust the whitespace! Configure expects the numbers to be * exactly on the third column */ @@ -71,6 +73,7 @@ static char *local_patches[] = { NULL , "v5.6.1-TRIAL2" + ,ACTIVEPERL_LOCAL_PATCHES_ENTRY ,NULL }; diff -ruN perl-5.6.1-TRIAL2/pp_ctl.c AP624_source/pp_ctl.c --- perl-5.6.1-TRIAL2/pp_ctl.c Tue Feb 06 15:40:27 2001 +++ AP624_source/pp_ctl.c Tue Feb 06 15:23:16 2001 @@ -176,8 +176,9 @@ : (REXEC_COPY_STR|REXEC_IGNOREPOS|REXEC_NOT_FIRST)))) { SV *targ = cx->sb_targ; - sv_catpvn(dstr, s, cx->sb_strend - s); + bool isutf8; + sv_catpvn(dstr, s, cx->sb_strend - s); cx->sb_rxtainted |= RX_MATCH_TAINTED(rx); (void)SvOOK_off(targ); @@ -185,6 +186,7 @@ SvPVX(targ) = SvPVX(dstr); SvCUR_set(targ, SvCUR(dstr)); SvLEN_set(targ, SvLEN(dstr)); + isutf8 = DO_UTF8(dstr); SvPVX(dstr) = 0; sv_free(dstr); @@ -192,6 +194,8 @@ PUSHs(sv_2mortal(newSViv((I32)cx->sb_iters - 1))); (void)SvPOK_only(targ); + if (isutf8) + SvUTF8_on(targ); TAINT_IF(cx->sb_rxtainted); SvSETMAGIC(targ); SvTAINT(targ); diff -ruN perl-5.6.1-TRIAL2/pp_hot.c AP624_source/pp_hot.c --- perl-5.6.1-TRIAL2/pp_hot.c Tue Feb 06 15:40:27 2001 +++ AP624_source/pp_hot.c Tue Feb 06 15:23:16 2001 @@ -1766,7 +1766,7 @@ djSP; dTARG; register PMOP *pm = cPMOP; PMOP *rpm = pm; - register SV *dstr; + register SV *dstr, *rstr; register char *s; char *strend; register char *m; @@ -1788,7 +1788,7 @@ STRLEN slen; /* known replacement string? */ - dstr = (pm->op_pmflags & PMf_CONST) ? POPs : Nullsv; + rstr = (pm->op_pmflags & PMf_CONST) ? POPs : Nullsv; if (PL_op->op_flags & OPf_STACKED) TARG = POPs; else { @@ -1855,10 +1855,11 @@ once = !(rpm->op_pmflags & PMf_GLOBAL); /* known replacement string? */ - c = dstr ? SvPV(dstr, clen) : Nullch; + c = rstr ? SvPV(rstr, clen) : Nullch; /* can do inplace substitution? */ if (c && clen <= rx->minlen && (once || !(r_flags & REXEC_COPY_STR)) + && do_utf8 == DO_UTF8(rstr) && !(rx->reganch & ROPT_LOOKBEHIND_SEEN)) { if (!CALLREGEXEC(aTHX_ rx, s, strend, orig, 0, TARG, NULL, r_flags | REXEC_CHECKED)) @@ -1972,6 +1973,8 @@ rxtainted |= RX_MATCH_TAINTED(rx); dstr = NEWSV(25, len); sv_setpvn(dstr, m, s-m); + if (do_utf8) + SvUTF8_on(dstr); PL_curpm = pm; if (!c) { register PERL_CONTEXT *cx; @@ -1995,7 +1998,7 @@ sv_catpvn(dstr, s, m-s); s = rx->endp[0] + orig; if (clen) - sv_catpvn(dstr, c, clen); + sv_catsv(dstr, rstr); if (once) break; } while (CALLREGEXEC(aTHX_ rx, s, strend, orig, s == m, TARG, NULL, r_flags)); diff -ruN perl-5.6.1-TRIAL2/sv.c AP624_source/sv.c --- perl-5.6.1-TRIAL2/sv.c Tue Feb 06 15:40:27 2001 +++ AP624_source/sv.c Tue Feb 06 15:23:18 2001 @@ -1907,7 +1907,9 @@ I32 numtype = 0; I32 sawinf = 0; STRLEN len; +#ifdef USE_LOCALE_NUMERIC bool specialradix = FALSE; +#endif if (SvPOK(sv)) { sbegin = SvPVX(sv); @@ -1952,9 +1954,11 @@ || (specialradix = IS_NUMERIC_RADIX(s)) #endif ) { +#ifdef USE_LOCALE_NUMERIC if (specialradix) s += SvCUR(PL_numeric_radix_sv); else +#endif s++; numtype |= IS_NUMBER_NOT_IV; while (isDIGIT(*s)) /* optional digits after the radix */ @@ -1966,9 +1970,11 @@ || (specialradix = IS_NUMERIC_RADIX(s)) #endif ) { +#ifdef USE_LOCALE_NUMERIC if (specialradix) s += SvCUR(PL_numeric_radix_sv); else +#endif s++; numtype |= IS_NUMBER_TO_INT_BY_ATOL | IS_NUMBER_NOT_IV; /* no digits before the radix means we need digits after it */ @@ -8021,7 +8027,7 @@ PL_numeric_name = SAVEPV(proto_perl->Inumeric_name); PL_numeric_standard = proto_perl->Inumeric_standard; PL_numeric_local = proto_perl->Inumeric_local; - PL_numeric_radix_sv = proto_perl->Inumeric_radix_sv; + PL_numeric_radix_sv = sv_dup_inc(proto_perl->Inumeric_radix_sv); #endif /* !USE_LOCALE_NUMERIC */ /* utf8 character classes */ diff -ruN perl-5.6.1-TRIAL2/t/lib/bigfloat.t AP624_source/t/lib/bigfloat.t --- perl-5.6.1-TRIAL2/t/lib/bigfloat.t Tue Feb 06 15:40:27 2001 +++ AP624_source/t/lib/bigfloat.t Tue Feb 06 15:23:20 2001 @@ -1,6 +1,6 @@ #!./perl -BEGIN { @INC = '../lib' } +BEGIN { unshift @INC, '../lib' if -d '../lib'; } require "bigfloat.pl"; $test = 0; diff -ruN perl-5.6.1-TRIAL2/t/lib/bigfltpm.t AP624_source/t/lib/bigfltpm.t --- perl-5.6.1-TRIAL2/t/lib/bigfltpm.t Tue Feb 06 15:40:27 2001 +++ AP624_source/t/lib/bigfltpm.t Tue Feb 06 15:23:20 2001 @@ -2,7 +2,7 @@ BEGIN { chdir 't' if -d 't'; - @INC = '../lib'; + unshift @INC, '../lib' if -d '../lib'; } use Math::BigFloat; diff -ruN perl-5.6.1-TRIAL2/t/op/numconvert.t AP624_source/t/op/numconvert.t --- perl-5.6.1-TRIAL2/t/op/numconvert.t Tue Feb 06 15:40:29 2001 +++ AP624_source/t/op/numconvert.t Tue Feb 06 15:23:21 2001 @@ -37,7 +37,7 @@ BEGIN { chdir 't' if -d 't'; - @INC = '../lib'; + unshift @INC, '../lib' if -d '../lib'; } use strict 'vars'; diff -ruN perl-5.6.1-TRIAL2/thread.h AP624_source/thread.h --- perl-5.6.1-TRIAL2/thread.h Tue Feb 06 15:40:29 2001 +++ AP624_source/thread.h Tue Feb 06 15:23:23 2001 @@ -35,6 +35,7 @@ # if defined(__hpux) && defined(__ux_version) && __ux_version <= 1020 # define pthread_attr_init(a) pthread_attr_create(a) /* XXX pthread_setdetach_np() missing in DCE threads on HP-UX 10.20 */ +# define PTHREAD_ATTR_SETDETACHSTATE(a,s) (0) # define PTHREAD_CREATE(t,a,s,d) pthread_create(t,a,s,d) # define pthread_key_create(k,d) pthread_keycreate(k,(pthread_destructor_t)(d)) # define pthread_mutexattr_init(a) pthread_mutexattr_create(a) diff -ruN perl-5.6.1-TRIAL2/utf8.c AP624_source/utf8.c --- perl-5.6.1-TRIAL2/utf8.c Tue Feb 06 15:40:29 2001 +++ AP624_source/utf8.c Tue Feb 06 15:23:23 2001 @@ -615,7 +615,7 @@ U8 c = *s++; if (!UTF8_IS_ASCII(c)) { if (UTF8_IS_CONTINUATION(c) || s >= send || - !UTF8_IS_CONTINUATION(*s) || (c & 0xfc) != 0xc0) + !UTF8_IS_CONTINUATION(*s) || UTF8_IS_DOWNGRADEABLE_START(c)) return start; s++, count++; } diff -ruN perl-5.6.1-TRIAL2/utf8.h AP624_source/utf8.h --- perl-5.6.1-TRIAL2/utf8.h Tue Feb 06 15:40:29 2001 +++ AP624_source/utf8.h Tue Feb 06 15:23:23 2001 @@ -68,6 +68,7 @@ #define UTF8_IS_START(c) (((U8)c) >= 0xc0 && (((U8)c) <= 0xfd)) #define UTF8_IS_CONTINUATION(c) (((U8)c) >= 0x80 && (((U8)c) <= 0xbf)) #define UTF8_IS_CONTINUED(c) (((U8)c) & 0x80) +#define UTF8_IS_DOWNGRADEABLE_START(c) (((U8)c & 0xfc) != 0xc0) #define UTF8_CONTINUATION_MASK ((U8)0x3f) #define UTF8_ACCUMULATION_SHIFT 6 diff -ruN perl-5.6.1-TRIAL2/utils/perldoc.PL AP624_source/utils/perldoc.PL --- perl-5.6.1-TRIAL2/utils/perldoc.PL Tue Feb 06 15:40:29 2001 +++ AP624_source/utils/perldoc.PL Tue Feb 06 15:23:24 2001 @@ -38,7 +38,7 @@ my \@pagers = (); push \@pagers, "$Config{'pager'}" if -x "$Config{'pager'}"; -my \$bindir = "$Config{installscript}"; +my \$bindir = '$Config{installscript}'; !GROK!THIS! diff -ruN perl-5.6.1-TRIAL2/win32/Makefile AP624_source/win32/Makefile --- perl-5.6.1-TRIAL2/win32/Makefile Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/Makefile Tue Feb 06 15:23:25 2001 @@ -17,8 +17,8 @@ # Set these to wherever you want "nmake install" to put your newly # built perl. Setting it to a path with spaces is NOT recommended. # -INST_DRV = c: -INST_TOP = $(INST_DRV)\perl +INST_DRV = p: +INST_TOP = $(INST_DRV)\Apps\temp # # uncomment one of the following lines if you are using either @@ -57,7 +57,7 @@ # If you don't enable one of these, the crypt() builtin will fail to work. # (Generally not critical.) # -#CRYPT_SRC = fcrypt.c +CRYPT_SRC = fcrypt.c #CRYPT_LIB = fcrypt.lib # @@ -71,7 +71,7 @@ # the ActivePerl configuration will get you fork() emulation at the # cost of some added bloat. # -#BUILD_FLAVOR = ActivePerl +BUILD_FLAVOR = ActivePerl # # uncomment next line if you want debug version of perl (big and slow). @@ -208,7 +208,7 @@ # set this to your email address (perl will guess a value from # from your loginname and your hostname, which may not be right) # -#EMAIL = +EMAIL = support@ActiveState.com ## ## Build configuration ends. @@ -373,8 +373,8 @@ LIBC = PerlCRT.lib !ENDIF -PERLEXE_RES = -PERLDLL_RES = +PERLEXE_RES = perlexe.res +PERLDLL_RES = perldll.res !IF "$(CFG)" == "Debug" ! IF "$(CCTYPE)" == "MSVC20" @@ -1016,26 +1016,29 @@ -del /f *.def *.map -del /f $(EXTENSION_DLL) $(EXTENSION_PM) -del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm - -del /f $(EXTDIR)\DynaLoader\dl_win32.xs + -del /f $(EXTDIR)\DynaLoader\dl_win32.xs $(EXTDIR)\DynaLoader\DynaLoader.pm -del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm - -del /f $(LIBDIR)\XSLoader.pm + -del /f $(LIBDIR)\XSLoader.pm $(EXTDIR)\DynaLoader\XSLoader.pm + -del /f $(LIBDIR)\Devel\.exists $(LIBDIR)\File\.exists $(LIBDIR)\Sys\.exists -del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm -del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm $(LIBDIR)\Thread.pm -del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm - -del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm + -del /f $(LIBDIR)\B.pm $(EXTDIR)\B\defsubs.h $(LIBDIR)\O.pm $(LIBDIR)\re.pm -del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm -del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm -del /f $(LIBDIR)\File\Glob.pm - -del /f $(LIBDIR)\Storable.pm -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO || rmdir /s $(LIBDIR)\IO -if exist $(LIBDIR)\Thread rmdir /s /q $(LIBDIR)\Thread || rmdir /s $(LIBDIR)\Thread -if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B || rmdir /s $(LIBDIR)\B -if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data - -del /f $(PODDIR)\*.html - -del /f $(PODDIR)\*.bat + cd $(PODDIR) + -del /f *.html *.bat checkpods perlamiga.pod perlcygwin.pod \ + perldos.pod perlhpux.pod perlmachten.pod perlos2.pod perlvms.pod \ + perlwin32.pod pod2html pod2latex pod2man pod2text pod2usage \ + podchecker podselect cd ..\utils - -del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc dprofpp - -del /f *.bat + -del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc dprofpp \ + *.bat perlcc pstruct cd ..\win32 cd ..\x2p -del /f find2perl s2p diff -ruN perl-5.6.1-TRIAL2/win32/config.bc AP624_source/win32/config.bc --- perl-5.6.1-TRIAL2/win32/config.bc Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/config.bc Tue Feb 06 15:23:25 2001 @@ -44,7 +44,10 @@ cccdlflags=' ' ccdlflags='-tWD' ccflags='-DWIN32' +ccflags_uselargefiles='' +ccname='~CC~' ccsymbols='' +ccversion='' cf_by='nobody' cf_email='nobody@no.where.net' cf_time='' @@ -70,6 +73,7 @@ crosscompile='undef' cryptlib='' csh='undef' +d_SCNfldbl='undef' d__fwalk='undef' d_Gconvert='gcvt((x),(n),(b))' d_PRIEUldbl='undef' @@ -294,6 +298,7 @@ d_setpgrp2='undef' d_setpgrp='undef' d_setprior='undef' +d_setproctitle='undef' d_setpwent='undef' d_setregid='undef' d_setresgid='undef' @@ -405,6 +410,7 @@ full_ar='' full_csh='' full_sed='' +gccosandvers='' gccversion='' gidformat='"d"' gidsign='-1' @@ -441,6 +447,7 @@ i_iconv='undef' i_ieeefp='undef' i_inttypes='undef' +i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' @@ -537,6 +544,7 @@ ld='~LINK32~' lddlflags='-Tpd ~LINK_FLAGS~' ldflags='~LINK_FLAGS~' +ldflags_uselargefiles='' ldlibpthname='' less='less' lib_ext='.lib' @@ -549,6 +557,7 @@ libsfound='' libspath='' libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x' +libswanted_uselargefiles='' line='line' lint='' lkflags='' @@ -571,27 +580,12 @@ mallocobj='malloc.o' mallocsrc='malloc.c' malloctype='void *' -man1='man1' man1dir='~INST_TOP~~INST_VER~\man\man1' man1direxp='~INST_TOP~~INST_VER~\man\man1' man1ext='1' -man2='man2' -man2ext='2' -man3='man3' man3dir='~INST_TOP~~INST_VER~\man\man3' man3direxp='~INST_TOP~~INST_VER~\man\man3' man3ext='3' -man4='man4' -man4ext='4' -man5='man5' -man5ext='5' -man6='man6' -man6ext='6' -man7='man7' -man7ext='7' -man8='man8' -man8ext='8' -mandirstyle='bsd' mips_type='' mkdir='mkdir' mmaptype='void *' @@ -613,6 +607,9 @@ nm_so_opt='' nonxs_ext='Errno' nroff='' +nvEUformat='"E"' +nvFUformat='"F"' +nvGUformat='"G"' nveformat='"e"' nvfformat='"f"' nvgformat='"g"' @@ -629,11 +626,12 @@ package='perl5' pager='more /e' passcat='' -patchlevel='~PATCHLEVEL~' +patchlevel='~PERL_VERSION~' path_sep=';' perl5='' perl='perl' perladmin='' +perllibs='~libs~' perlpath='~INST_TOP~~INST_VER~\bin~INST_ARCH~\perl.exe' pg='' phostname='hostname' @@ -671,6 +669,7 @@ sPRIo64='"lo"' sPRIu64='"lu"' sPRIx64='"lx"' +sSCNfldbl='"f"' sched_yield='' scriptdir='~INST_TOP~~INST_VER~\bin' scriptdirexp='~INST_TOP~~INST_VER~\bin' @@ -726,7 +725,7 @@ stdio_stream_array='' strings='/usr/include/string.h' submit='' -subversion='~SUBVERSION~' +subversion='~PERL_SUBVERSION~' sysman='/usr/man/man1' tail='' tar='' @@ -776,6 +775,7 @@ usevfork='false' usrinc='/usr/include' uuname='' +uvXUformat='"lX"' uvoformat='"lo"' uvsize='4' uvtype='unsigned long' @@ -804,5 +804,3 @@ PERL_API_REVISION='~PERL_API_REVISION~' PERL_API_SUBVERSION='~PERL_API_SUBVERSION~' PERL_API_VERSION='~PERL_API_VERSION~' -PATCHLEVEL='~PERL_VERSION~' -SUBVERSION='~PERL_SUBVERSION~' diff -ruN perl-5.6.1-TRIAL2/win32/config.gc AP624_source/win32/config.gc --- perl-5.6.1-TRIAL2/win32/config.gc Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/config.gc Tue Feb 06 15:23:25 2001 @@ -44,7 +44,10 @@ cccdlflags=' ' ccdlflags=' ' ccflags='-MD -DWIN32' +ccflags_uselargefiles='' +ccname='~CC~' ccsymbols='' +ccversion='' cf_by='nobody' cf_email='nobody@no.where.net' cf_time='' @@ -70,6 +73,7 @@ crosscompile='undef' cryptlib='' csh='undef' +d_SCNfldbl='undef' d__fwalk='undef' d_Gconvert='sprintf((b),"%.*g",(n),(x))' d_PRIEUldbl='undef' @@ -294,6 +298,7 @@ d_setpgrp2='undef' d_setpgrp='undef' d_setprior='undef' +d_setproctitle='undef' d_setpwent='undef' d_setregid='undef' d_setresgid='undef' @@ -405,6 +410,7 @@ full_ar='' full_csh='' full_sed='' +gccosandvers='' gccversion='' gidformat='"ld"' gidsign='-1' @@ -441,6 +447,7 @@ i_iconv='undef' i_ieeefp='undef' i_inttypes='undef' +i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' @@ -537,6 +544,7 @@ ld='gcc' lddlflags='-mdll ~LINK_FLAGS~' ldflags='~LINK_FLAGS~' +ldflags_uselargefiles='' ldlibpthname='' less='less' lib_ext='.a' @@ -549,6 +557,7 @@ libsfound='' libspath='' libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x' +libswanted_uselargefiles='' line='line' lint='' lkflags='' @@ -571,27 +580,12 @@ mallocobj='malloc.o' mallocsrc='malloc.c' malloctype='void *' -man1='man1' man1dir='~INST_TOP~~INST_VER~\man\man1' man1direxp='~INST_TOP~~INST_VER~\man\man1' man1ext='1' -man2='man2' -man2ext='2' -man3='man3' man3dir='~INST_TOP~~INST_VER~\man\man3' man3direxp='~INST_TOP~~INST_VER~\man\man3' man3ext='3' -man4='man4' -man4ext='4' -man5='man5' -man5ext='5' -man6='man6' -man6ext='6' -man7='man7' -man7ext='7' -man8='man8' -man8ext='8' -mandirstyle='bsd' mips_type='' mkdir='mkdir' mmaptype='void *' @@ -613,6 +607,9 @@ nm_so_opt='' nonxs_ext='Errno' nroff='' +nvEUformat='"E"' +nvFUformat='"F"' +nvGUformat='"G"' nveformat='"e"' nvfformat='"f"' nvgformat='"g"' @@ -629,11 +626,12 @@ package='perl5' pager='more /e' passcat='' -patchlevel='~PATCHLEVEL~' +patchlevel='~PERL_VERSION~' path_sep=';' perl5='' perl='perl' perladmin='' +perllibs='~libs~' perlpath='~INST_TOP~~INST_VER~\bin~INST_ARCH~\perl.exe' pg='' phostname='hostname' @@ -671,6 +669,7 @@ sPRIo64='"lo"' sPRIu64='"lu"' sPRIx64='"lx"' +sSCNfldbl='"f"' sched_yield='' scriptdir='~INST_TOP~~INST_VER~\bin' scriptdirexp='~INST_TOP~~INST_VER~\bin' @@ -726,7 +725,7 @@ stdio_stream_array='' strings='/usr/include/string.h' submit='' -subversion='~SUBVERSION~' +subversion='~PERL_SUBVERSION~' sysman='/usr/man/man1' tail='' tar='' @@ -776,6 +775,7 @@ usevfork='false' usrinc='/usr/include' uuname='' +uvXUformat='"lX"' uvoformat='"lo"' uvsize='4' uvtype='unsigned long' @@ -804,5 +804,3 @@ PERL_API_REVISION='~PERL_API_REVISION~' PERL_API_SUBVERSION='~PERL_API_SUBVERSION~' PERL_API_VERSION='~PERL_API_VERSION~' -PATCHLEVEL='~PERL_VERSION~' -SUBVERSION='~PERL_SUBVERSION~' diff -ruN perl-5.6.1-TRIAL2/win32/config.vc AP624_source/win32/config.vc --- perl-5.6.1-TRIAL2/win32/config.vc Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/config.vc Tue Feb 06 15:23:25 2001 @@ -44,7 +44,10 @@ cccdlflags=' ' ccdlflags=' ' ccflags='-MD -DWIN32' +ccflags_uselargefiles='' +ccname='~CC~' ccsymbols='' +ccversion='' cf_by='nobody' cf_email='nobody@no.where.net' cf_time='' @@ -70,6 +73,7 @@ crosscompile='undef' cryptlib='' csh='undef' +d_SCNfldbl='undef' d__fwalk='undef' d_Gconvert='sprintf((b),"%.*g",(n),(x))' d_PRIEUldbl='undef' @@ -294,6 +298,7 @@ d_setpgrp2='undef' d_setpgrp='undef' d_setprior='undef' +d_setproctitle='undef' d_setpwent='undef' d_setregid='undef' d_setresgid='undef' @@ -405,6 +410,7 @@ full_ar='' full_csh='' full_sed='' +gccosandvers='' gccversion='' gidformat='"ld"' gidsign='-1' @@ -441,6 +447,7 @@ i_iconv='undef' i_ieeefp='undef' i_inttypes='undef' +i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' @@ -537,6 +544,7 @@ ld='~LINK32~' lddlflags='-dll ~LINK_FLAGS~' ldflags='~LINK_FLAGS~' +ldflags_uselargefiles='' ldlibpthname='' less='less' lib_ext='.lib' @@ -549,6 +557,7 @@ libsfound='' libspath='' libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl dld ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x' +libswanted_uselargefiles='' line='line' lint='' lkflags='' @@ -571,27 +580,12 @@ mallocobj='malloc.o' mallocsrc='malloc.c' malloctype='void *' -man1='man1' man1dir='~INST_TOP~~INST_VER~\man\man1' man1direxp='~INST_TOP~~INST_VER~\man\man1' man1ext='1' -man2='man2' -man2ext='2' -man3='man3' man3dir='~INST_TOP~~INST_VER~\man\man3' man3direxp='~INST_TOP~~INST_VER~\man\man3' man3ext='3' -man4='man4' -man4ext='4' -man5='man5' -man5ext='5' -man6='man6' -man6ext='6' -man7='man7' -man7ext='7' -man8='man8' -man8ext='8' -mandirstyle='bsd' mips_type='' mkdir='mkdir' mmaptype='void *' @@ -613,6 +607,9 @@ nm_so_opt='' nonxs_ext='Errno' nroff='' +nvEUformat='"E"' +nvFUformat='"F"' +nvGUformat='"G"' nveformat='"e"' nvfformat='"f"' nvgformat='"g"' @@ -629,11 +626,12 @@ package='perl5' pager='more /e' passcat='' -patchlevel='~PATCHLEVEL~' +patchlevel='~PERL_VERSION~' path_sep=';' perl5='' perl='perl' perladmin='' +perllibs='~libs~' perlpath='~INST_TOP~~INST_VER~\bin~INST_ARCH~\perl.exe' pg='' phostname='hostname' @@ -671,6 +669,7 @@ sPRIo64='"lo"' sPRIu64='"lu"' sPRIx64='"lx"' +sSCNfldbl='"f"' sched_yield='' scriptdir='~INST_TOP~~INST_VER~\bin' scriptdirexp='~INST_TOP~~INST_VER~\bin' @@ -726,7 +725,7 @@ stdio_stream_array='' strings='/usr/include/string.h' submit='' -subversion='~SUBVERSION~' +subversion='~PERL_SUBVERSION~' sysman='/usr/man/man1' tail='' tar='' @@ -776,6 +775,7 @@ usevfork='false' usrinc='/usr/include' uuname='' +uvXUformat='"lX"' uvoformat='"lo"' uvsize='4' uvtype='unsigned long' @@ -804,5 +804,3 @@ PERL_API_REVISION='~PERL_API_REVISION~' PERL_API_SUBVERSION='~PERL_API_SUBVERSION~' PERL_API_VERSION='~PERL_API_VERSION~' -PATCHLEVEL='~PERL_VERSION~' -SUBVERSION='~PERL_SUBVERSION~' diff -ruN perl-5.6.1-TRIAL2/win32/config_H.bc AP624_source/win32/config_H.bc --- perl-5.6.1-TRIAL2/win32/config_H.bc Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/config_H.bc Tue Feb 06 15:23:25 2001 @@ -13,7 +13,7 @@ /* * Package name : perl5 * Source directory : - * Configuration time: Wed Jan 31 06:29:28 2001 + * Configuration time: Thu Feb 1 08:29:38 2001 * Configured by : gsar * Target system : */ @@ -957,12 +957,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* STDCHAR: - * This symbol is defined to be the type of char used in stdio.h. - * It has the values "unsigned char" or "char". - */ -#define STDCHAR unsigned char /**/ - /* CROSSCOMPILE: * This symbol, if defined, signifies that we our * build process is a cross-compilation. @@ -1065,7 +1059,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.6.0\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -1096,8 +1090,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ /* PERL_BINCOMPAT_5005: * This symbol, if defined, indicates that this version of Perl should be @@ -2530,7 +2524,7 @@ /*#define PERL_PRIfldbl "f" /**/ /*#define PERL_PRIgldbl "g" /**/ /*#define PERL_PRIeldbl "e" /**/ -/*#define PERL_SCNfldbl undef /**/ +/*#define PERL_SCNfldbl "f" /**/ /* Off_t: * This symbol holds the type used to declare offsets in the kernel. @@ -2784,8 +2778,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.6.0\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.6.0")) /**/ +#define PRIVLIB "c:\\perl\\5.6.1\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.6.1")) /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -2883,7 +2877,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2906,8 +2900,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "c:\\perl\\site\\5.6.0\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.6.0")) /**/ +#define SITELIB "c:\\perl\\site\\5.6.1\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.6.1")) /**/ #define SITELIB_STEM "" /**/ /* Size_t_size: @@ -3132,7 +3126,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86 for older + * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86 for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -3151,7 +3145,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.6.0\\lib for older directories across major versions + * search in c:\\perl\\site\\5.6.1\\lib for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's @@ -3186,6 +3180,12 @@ */ /*#define HAS_SETPGRP /**/ /*#define USE_BSD_SETPGRP /**/ + +/* STDCHAR: + * This symbol is defined to be the type of char used in stdio.h. + * It has the values "unsigned char" or "char". + */ +#define STDCHAR unsigned char /**/ /* HAS__FWALK: * This symbol, if defined, indicates that the _fwalk system call is diff -ruN perl-5.6.1-TRIAL2/win32/config_H.gc AP624_source/win32/config_H.gc --- perl-5.6.1-TRIAL2/win32/config_H.gc Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/config_H.gc Tue Feb 06 15:23:25 2001 @@ -13,7 +13,7 @@ /* * Package name : perl5 * Source directory : - * Configuration time: Wed Jan 31 06:29:54 2001 + * Configuration time: Thu Feb 1 08:30:01 2001 * Configured by : gsar * Target system : */ @@ -957,12 +957,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* STDCHAR: - * This symbol is defined to be the type of char used in stdio.h. - * It has the values "unsigned char" or "char". - */ -#define STDCHAR char /**/ - /* CROSSCOMPILE: * This symbol, if defined, signifies that we our * build process is a cross-compilation. @@ -1065,7 +1059,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.6.0\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -1096,8 +1090,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ /* PERL_BINCOMPAT_5005: * This symbol, if defined, indicates that this version of Perl should be @@ -2530,7 +2524,7 @@ /*#define PERL_PRIfldbl "f" /**/ /*#define PERL_PRIgldbl "g" /**/ /*#define PERL_PRIeldbl "e" /**/ -/*#define PERL_SCNfldbl undef /**/ +/*#define PERL_SCNfldbl "f" /**/ /* Off_t: * This symbol holds the type used to declare offsets in the kernel. @@ -2784,8 +2778,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.6.0\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.6.0")) /**/ +#define PRIVLIB "c:\\perl\\5.6.1\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.6.1")) /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -2883,7 +2877,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2906,8 +2900,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "c:\\perl\\site\\5.6.0\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.6.0")) /**/ +#define SITELIB "c:\\perl\\site\\5.6.1\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.6.1")) /**/ #define SITELIB_STEM "" /**/ /* Size_t_size: @@ -3132,7 +3126,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86 for older + * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86 for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -3151,7 +3145,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.6.0\\lib for older directories across major versions + * search in c:\\perl\\site\\5.6.1\\lib for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's @@ -3186,6 +3180,12 @@ */ /*#define HAS_SETPGRP /**/ /*#define USE_BSD_SETPGRP /**/ + +/* STDCHAR: + * This symbol is defined to be the type of char used in stdio.h. + * It has the values "unsigned char" or "char". + */ +#define STDCHAR char /**/ /* HAS__FWALK: * This symbol, if defined, indicates that the _fwalk system call is diff -ruN perl-5.6.1-TRIAL2/win32/config_H.vc AP624_source/win32/config_H.vc --- perl-5.6.1-TRIAL2/win32/config_H.vc Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/config_H.vc Tue Feb 06 15:23:25 2001 @@ -13,7 +13,7 @@ /* * Package name : perl5 * Source directory : - * Configuration time: Wed Jan 31 06:28:54 2001 + * Configuration time: Thu Feb 1 08:30:12 2001 * Configured by : gsar * Target system : */ @@ -957,12 +957,6 @@ */ #define SH_PATH "cmd /x /c" /**/ -/* STDCHAR: - * This symbol is defined to be the type of char used in stdio.h. - * It has the values "unsigned char" or "char". - */ -#define STDCHAR char /**/ - /* CROSSCOMPILE: * This symbol, if defined, signifies that we our * build process is a cross-compilation. @@ -1065,7 +1059,7 @@ * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define ARCHLIB "c:\\perl\\5.6.0\\lib\\MSWin32-x86" /**/ +#define ARCHLIB "c:\\perl\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define ARCHLIB_EXP "" /**/ /* ARCHNAME: @@ -1096,8 +1090,8 @@ * This symbol is the filename expanded version of the BIN symbol, for * programs that do not want to deal with that at run-time. */ -#define BIN "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ -#define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86" /**/ +#define BIN "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ +#define BIN_EXP "c:\\perl\\5.6.1\\bin\\MSWin32-x86" /**/ /* PERL_BINCOMPAT_5005: * This symbol, if defined, indicates that this version of Perl should be @@ -2530,7 +2524,7 @@ /*#define PERL_PRIfldbl "f" /**/ /*#define PERL_PRIgldbl "g" /**/ /*#define PERL_PRIeldbl "e" /**/ -/*#define PERL_SCNfldbl undef /**/ +/*#define PERL_SCNfldbl "f" /**/ /* Off_t: * This symbol holds the type used to declare offsets in the kernel. @@ -2784,8 +2778,8 @@ * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define PRIVLIB "c:\\perl\\5.6.0\\lib" /**/ -#define PRIVLIB_EXP (win32_get_privlib("5.6.0")) /**/ +#define PRIVLIB "c:\\perl\\5.6.1\\lib" /**/ +#define PRIVLIB_EXP (win32_get_privlib("5.6.1")) /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor @@ -2883,7 +2877,7 @@ * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ -#define SITEARCH "c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86" /**/ +#define SITEARCH "c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86" /**/ /*#define SITEARCH_EXP "" /**/ /* SITELIB: @@ -2906,8 +2900,8 @@ * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ -#define SITELIB "c:\\perl\\site\\5.6.0\\lib" /**/ -#define SITELIB_EXP (win32_get_sitelib("5.6.0")) /**/ +#define SITELIB "c:\\perl\\site\\5.6.1\\lib" /**/ +#define SITELIB_EXP (win32_get_sitelib("5.6.1")) /**/ #define SITELIB_STEM "" /**/ /* Size_t_size: @@ -3132,7 +3126,7 @@ /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and - * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.0\\lib\\MSWin32-x86 for older + * lib/lib.pm will automatically search in c:\\perl\\site\\5.6.1\\lib\\MSWin32-x86 for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. @@ -3151,7 +3145,7 @@ * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically - * search in c:\\perl\\site\\5.6.0\\lib for older directories across major versions + * search in c:\\perl\\site\\5.6.1\\lib for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's @@ -3186,6 +3180,12 @@ */ /*#define HAS_SETPGRP /**/ /*#define USE_BSD_SETPGRP /**/ + +/* STDCHAR: + * This symbol is defined to be the type of char used in stdio.h. + * It has the values "unsigned char" or "char". + */ +#define STDCHAR char /**/ /* HAS__FWALK: * This symbol, if defined, indicates that the _fwalk system call is diff -ruN perl-5.6.1-TRIAL2/win32/fcrypt.c AP624_source/win32/fcrypt.c --- perl-5.6.1-TRIAL2/win32/fcrypt.c Wed Dec 31 16:00:00 1969 +++ AP624_source/win32/fcrypt.c Tue Feb 06 15:23:25 2001 @@ -0,0 +1,578 @@ +/* fcrypt.c */ +/* Copyright (C) 1993 Eric Young - see README for more details */ +#include + +/* Eric Young. + * This version of crypt has been developed from my MIT compatable + * DES library. + * The library is available at pub/DES at ftp.psy.uq.oz.au + * eay@psych.psy.uq.oz.au + */ + +typedef unsigned char des_cblock[8]; + +typedef struct des_ks_struct + { + union { + des_cblock _; + /* make sure things are correct size on machines with + * 8 byte longs */ + unsigned long pad[2]; + } ks; +#define _ ks._ + } des_key_schedule[16]; + +#define DES_KEY_SZ (sizeof(des_cblock)) +#define DES_ENCRYPT 1 +#define DES_DECRYPT 0 + +#define ITERATIONS 16 +#define HALF_ITERATIONS 8 + +#define c2l(c,l) (l =((unsigned long)(*((c)++))) , \ + l|=((unsigned long)(*((c)++)))<< 8, \ + l|=((unsigned long)(*((c)++)))<<16, \ + l|=((unsigned long)(*((c)++)))<<24) + +#define l2c(l,c) (*((c)++)=(unsigned char)(((l) )&0xff), \ + *((c)++)=(unsigned char)(((l)>> 8)&0xff), \ + *((c)++)=(unsigned char)(((l)>>16)&0xff), \ + *((c)++)=(unsigned char)(((l)>>24)&0xff)) + +static unsigned long SPtrans[8][64]={ +/* nibble 0 */ +0x00820200, 0x00020000, 0x80800000, 0x80820200, +0x00800000, 0x80020200, 0x80020000, 0x80800000, +0x80020200, 0x00820200, 0x00820000, 0x80000200, +0x80800200, 0x00800000, 0x00000000, 0x80020000, +0x00020000, 0x80000000, 0x00800200, 0x00020200, +0x80820200, 0x00820000, 0x80000200, 0x00800200, +0x80000000, 0x00000200, 0x00020200, 0x80820000, +0x00000200, 0x80800200, 0x80820000, 0x00000000, +0x00000000, 0x80820200, 0x00800200, 0x80020000, +0x00820200, 0x00020000, 0x80000200, 0x00800200, +0x80820000, 0x00000200, 0x00020200, 0x80800000, +0x80020200, 0x80000000, 0x80800000, 0x00820000, +0x80820200, 0x00020200, 0x00820000, 0x80800200, +0x00800000, 0x80000200, 0x80020000, 0x00000000, +0x00020000, 0x00800000, 0x80800200, 0x00820200, +0x80000000, 0x80820000, 0x00000200, 0x80020200, +/* nibble 1 */ +0x10042004, 0x00000000, 0x00042000, 0x10040000, +0x10000004, 0x00002004, 0x10002000, 0x00042000, +0x00002000, 0x10040004, 0x00000004, 0x10002000, +0x00040004, 0x10042000, 0x10040000, 0x00000004, +0x00040000, 0x10002004, 0x10040004, 0x00002000, +0x00042004, 0x10000000, 0x00000000, 0x00040004, +0x10002004, 0x00042004, 0x10042000, 0x10000004, +0x10000000, 0x00040000, 0x00002004, 0x10042004, +0x00040004, 0x10042000, 0x10002000, 0x00042004, +0x10042004, 0x00040004, 0x10000004, 0x00000000, +0x10000000, 0x00002004, 0x00040000, 0x10040004, +0x00002000, 0x10000000, 0x00042004, 0x10002004, +0x10042000, 0x00002000, 0x00000000, 0x10000004, +0x00000004, 0x10042004, 0x00042000, 0x10040000, +0x10040004, 0x00040000, 0x00002004, 0x10002000, +0x10002004, 0x00000004, 0x10040000, 0x00042000, +/* nibble 2 */ +0x41000000, 0x01010040, 0x00000040, 0x41000040, +0x40010000, 0x01000000, 0x41000040, 0x00010040, +0x01000040, 0x00010000, 0x01010000, 0x40000000, +0x41010040, 0x40000040, 0x40000000, 0x41010000, +0x00000000, 0x40010000, 0x01010040, 0x00000040, +0x40000040, 0x41010040, 0x00010000, 0x41000000, +0x41010000, 0x01000040, 0x40010040, 0x01010000, +0x00010040, 0x00000000, 0x01000000, 0x40010040, +0x01010040, 0x00000040, 0x40000000, 0x00010000, +0x40000040, 0x40010000, 0x01010000, 0x41000040, +0x00000000, 0x01010040, 0x00010040, 0x41010000, +0x40010000, 0x01000000, 0x41010040, 0x40000000, +0x40010040, 0x41000000, 0x01000000, 0x41010040, +0x00010000, 0x01000040, 0x41000040, 0x00010040, +0x01000040, 0x00000000, 0x41010000, 0x40000040, +0x41000000, 0x40010040, 0x00000040, 0x01010000, +/* nibble 3 */ +0x00100402, 0x04000400, 0x00000002, 0x04100402, +0x00000000, 0x04100000, 0x04000402, 0x00100002, +0x04100400, 0x04000002, 0x04000000, 0x00000402, +0x04000002, 0x00100402, 0x00100000, 0x04000000, +0x04100002, 0x00100400, 0x00000400, 0x00000002, +0x00100400, 0x04000402, 0x04100000, 0x00000400, +0x00000402, 0x00000000, 0x00100002, 0x04100400, +0x04000400, 0x04100002, 0x04100402, 0x00100000, +0x04100002, 0x00000402, 0x00100000, 0x04000002, +0x00100400, 0x04000400, 0x00000002, 0x04100000, +0x04000402, 0x00000000, 0x00000400, 0x00100002, +0x00000000, 0x04100002, 0x04100400, 0x00000400, +0x04000000, 0x04100402, 0x00100402, 0x00100000, +0x04100402, 0x00000002, 0x04000400, 0x00100402, +0x00100002, 0x00100400, 0x04100000, 0x04000402, +0x00000402, 0x04000000, 0x04000002, 0x04100400, +/* nibble 4 */ +0x02000000, 0x00004000, 0x00000100, 0x02004108, +0x02004008, 0x02000100, 0x00004108, 0x02004000, +0x00004000, 0x00000008, 0x02000008, 0x00004100, +0x02000108, 0x02004008, 0x02004100, 0x00000000, +0x00004100, 0x02000000, 0x00004008, 0x00000108, +0x02000100, 0x00004108, 0x00000000, 0x02000008, +0x00000008, 0x02000108, 0x02004108, 0x00004008, +0x02004000, 0x00000100, 0x00000108, 0x02004100, +0x02004100, 0x02000108, 0x00004008, 0x02004000, +0x00004000, 0x00000008, 0x02000008, 0x02000100, +0x02000000, 0x00004100, 0x02004108, 0x00000000, +0x00004108, 0x02000000, 0x00000100, 0x00004008, +0x02000108, 0x00000100, 0x00000000, 0x02004108, +0x02004008, 0x02004100, 0x00000108, 0x00004000, +0x00004100, 0x02004008, 0x02000100, 0x00000108, +0x00000008, 0x00004108, 0x02004000, 0x02000008, +/* nibble 5 */ +0x20000010, 0x00080010, 0x00000000, 0x20080800, +0x00080010, 0x00000800, 0x20000810, 0x00080000, +0x00000810, 0x20080810, 0x00080800, 0x20000000, +0x20000800, 0x20000010, 0x20080000, 0x00080810, +0x00080000, 0x20000810, 0x20080010, 0x00000000, +0x00000800, 0x00000010, 0x20080800, 0x20080010, +0x20080810, 0x20080000, 0x20000000, 0x00000810, +0x00000010, 0x00080800, 0x00080810, 0x20000800, +0x00000810, 0x20000000, 0x20000800, 0x00080810, +0x20080800, 0x00080010, 0x00000000, 0x20000800, +0x20000000, 0x00000800, 0x20080010, 0x00080000, +0x00080010, 0x20080810, 0x00080800, 0x00000010, +0x20080810, 0x00080800, 0x00080000, 0x20000810, +0x20000010, 0x20080000, 0x00080810, 0x00000000, +0x00000800, 0x20000010, 0x20000810, 0x20080800, +0x20080000, 0x00000810, 0x00000010, 0x20080010, +/* nibble 6 */ +0x00001000, 0x00000080, 0x00400080, 0x00400001, +0x00401081, 0x00001001, 0x00001080, 0x00000000, +0x00400000, 0x00400081, 0x00000081, 0x00401000, +0x00000001, 0x00401080, 0x00401000, 0x00000081, +0x00400081, 0x00001000, 0x00001001, 0x00401081, +0x00000000, 0x00400080, 0x00400001, 0x00001080, +0x00401001, 0x00001081, 0x00401080, 0x00000001, +0x00001081, 0x00401001, 0x00000080, 0x00400000, +0x00001081, 0x00401000, 0x00401001, 0x00000081, +0x00001000, 0x00000080, 0x00400000, 0x00401001, +0x00400081, 0x00001081, 0x00001080, 0x00000000, +0x00000080, 0x00400001, 0x00000001, 0x00400080, +0x00000000, 0x00400081, 0x00400080, 0x00001080, +0x00000081, 0x00001000, 0x00401081, 0x00400000, +0x00401080, 0x00000001, 0x00001001, 0x00401081, +0x00400001, 0x00401080, 0x00401000, 0x00001001, +/* nibble 7 */ +0x08200020, 0x08208000, 0x00008020, 0x00000000, +0x08008000, 0x00200020, 0x08200000, 0x08208020, +0x00000020, 0x08000000, 0x00208000, 0x00008020, +0x00208020, 0x08008020, 0x08000020, 0x08200000, +0x00008000, 0x00208020, 0x00200020, 0x08008000, +0x08208020, 0x08000020, 0x00000000, 0x00208000, +0x08000000, 0x00200000, 0x08008020, 0x08200020, +0x00200000, 0x00008000, 0x08208000, 0x00000020, +0x00200000, 0x00008000, 0x08000020, 0x08208020, +0x00008020, 0x08000000, 0x00000000, 0x00208000, +0x08200020, 0x08008020, 0x08008000, 0x00200020, +0x08208000, 0x00000020, 0x00200020, 0x08008000, +0x08208020, 0x00200000, 0x08200000, 0x08000020, +0x00208000, 0x00008020, 0x08008020, 0x08200000, +0x00000020, 0x08208000, 0x00208020, 0x00000000, +0x08000000, 0x08200020, 0x00008000, 0x00208020}; +static unsigned long skb[8][64]={ +/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */ +0x00000000,0x00000010,0x20000000,0x20000010, +0x00010000,0x00010010,0x20010000,0x20010010, +0x00000800,0x00000810,0x20000800,0x20000810, +0x00010800,0x00010810,0x20010800,0x20010810, +0x00000020,0x00000030,0x20000020,0x20000030, +0x00010020,0x00010030,0x20010020,0x20010030, +0x00000820,0x00000830,0x20000820,0x20000830, +0x00010820,0x00010830,0x20010820,0x20010830, +0x00080000,0x00080010,0x20080000,0x20080010, +0x00090000,0x00090010,0x20090000,0x20090010, +0x00080800,0x00080810,0x20080800,0x20080810, +0x00090800,0x00090810,0x20090800,0x20090810, +0x00080020,0x00080030,0x20080020,0x20080030, +0x00090020,0x00090030,0x20090020,0x20090030, +0x00080820,0x00080830,0x20080820,0x20080830, +0x00090820,0x00090830,0x20090820,0x20090830, +/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */ +0x00000000,0x02000000,0x00002000,0x02002000, +0x00200000,0x02200000,0x00202000,0x02202000, +0x00000004,0x02000004,0x00002004,0x02002004, +0x00200004,0x02200004,0x00202004,0x02202004, +0x00000400,0x02000400,0x00002400,0x02002400, +0x00200400,0x02200400,0x00202400,0x02202400, +0x00000404,0x02000404,0x00002404,0x02002404, +0x00200404,0x02200404,0x00202404,0x02202404, +0x10000000,0x12000000,0x10002000,0x12002000, +0x10200000,0x12200000,0x10202000,0x12202000, +0x10000004,0x12000004,0x10002004,0x12002004, +0x10200004,0x12200004,0x10202004,0x12202004, +0x10000400,0x12000400,0x10002400,0x12002400, +0x10200400,0x12200400,0x10202400,0x12202400, +0x10000404,0x12000404,0x10002404,0x12002404, +0x10200404,0x12200404,0x10202404,0x12202404, +/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */ +0x00000000,0x00000001,0x00040000,0x00040001, +0x01000000,0x01000001,0x01040000,0x01040001, +0x00000002,0x00000003,0x00040002,0x00040003, +0x01000002,0x01000003,0x01040002,0x01040003, +0x00000200,0x00000201,0x00040200,0x00040201, +0x01000200,0x01000201,0x01040200,0x01040201, +0x00000202,0x00000203,0x00040202,0x00040203, +0x01000202,0x01000203,0x01040202,0x01040203, +0x08000000,0x08000001,0x08040000,0x08040001, +0x09000000,0x09000001,0x09040000,0x09040001, +0x08000002,0x08000003,0x08040002,0x08040003, +0x09000002,0x09000003,0x09040002,0x09040003, +0x08000200,0x08000201,0x08040200,0x08040201, +0x09000200,0x09000201,0x09040200,0x09040201, +0x08000202,0x08000203,0x08040202,0x08040203, +0x09000202,0x09000203,0x09040202,0x09040203, +/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */ +0x00000000,0x00100000,0x00000100,0x00100100, +0x00000008,0x00100008,0x00000108,0x00100108, +0x00001000,0x00101000,0x00001100,0x00101100, +0x00001008,0x00101008,0x00001108,0x00101108, +0x04000000,0x04100000,0x04000100,0x04100100, +0x04000008,0x04100008,0x04000108,0x04100108, +0x04001000,0x04101000,0x04001100,0x04101100, +0x04001008,0x04101008,0x04001108,0x04101108, +0x00020000,0x00120000,0x00020100,0x00120100, +0x00020008,0x00120008,0x00020108,0x00120108, +0x00021000,0x00121000,0x00021100,0x00121100, +0x00021008,0x00121008,0x00021108,0x00121108, +0x04020000,0x04120000,0x04020100,0x04120100, +0x04020008,0x04120008,0x04020108,0x04120108, +0x04021000,0x04121000,0x04021100,0x04121100, +0x04021008,0x04121008,0x04021108,0x04121108, +/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */ +0x00000000,0x10000000,0x00010000,0x10010000, +0x00000004,0x10000004,0x00010004,0x10010004, +0x20000000,0x30000000,0x20010000,0x30010000, +0x20000004,0x30000004,0x20010004,0x30010004, +0x00100000,0x10100000,0x00110000,0x10110000, +0x00100004,0x10100004,0x00110004,0x10110004, +0x20100000,0x30100000,0x20110000,0x30110000, +0x20100004,0x30100004,0x20110004,0x30110004, +0x00001000,0x10001000,0x00011000,0x10011000, +0x00001004,0x10001004,0x00011004,0x10011004, +0x20001000,0x30001000,0x20011000,0x30011000, +0x20001004,0x30001004,0x20011004,0x30011004, +0x00101000,0x10101000,0x00111000,0x10111000, +0x00101004,0x10101004,0x00111004,0x10111004, +0x20101000,0x30101000,0x20111000,0x30111000, +0x20101004,0x30101004,0x20111004,0x30111004, +/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */ +0x00000000,0x08000000,0x00000008,0x08000008, +0x00000400,0x08000400,0x00000408,0x08000408, +0x00020000,0x08020000,0x00020008,0x08020008, +0x00020400,0x08020400,0x00020408,0x08020408, +0x00000001,0x08000001,0x00000009,0x08000009, +0x00000401,0x08000401,0x00000409,0x08000409, +0x00020001,0x08020001,0x00020009,0x08020009, +0x00020401,0x08020401,0x00020409,0x08020409, +0x02000000,0x0A000000,0x02000008,0x0A000008, +0x02000400,0x0A000400,0x02000408,0x0A000408, +0x02020000,0x0A020000,0x02020008,0x0A020008, +0x02020400,0x0A020400,0x02020408,0x0A020408, +0x02000001,0x0A000001,0x02000009,0x0A000009, +0x02000401,0x0A000401,0x02000409,0x0A000409, +0x02020001,0x0A020001,0x02020009,0x0A020009, +0x02020401,0x0A020401,0x02020409,0x0A020409, +/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */ +0x00000000,0x00000100,0x00080000,0x00080100, +0x01000000,0x01000100,0x01080000,0x01080100, +0x00000010,0x00000110,0x00080010,0x00080110, +0x01000010,0x01000110,0x01080010,0x01080110, +0x00200000,0x00200100,0x00280000,0x00280100, +0x01200000,0x01200100,0x01280000,0x01280100, +0x00200010,0x00200110,0x00280010,0x00280110, +0x01200010,0x01200110,0x01280010,0x01280110, +0x00000200,0x00000300,0x00080200,0x00080300, +0x01000200,0x01000300,0x01080200,0x01080300, +0x00000210,0x00000310,0x00080210,0x00080310, +0x01000210,0x01000310,0x01080210,0x01080310, +0x00200200,0x00200300,0x00280200,0x00280300, +0x01200200,0x01200300,0x01280200,0x01280300, +0x00200210,0x00200310,0x00280210,0x00280310, +0x01200210,0x01200310,0x01280210,0x01280310, +/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */ +0x00000000,0x04000000,0x00040000,0x04040000, +0x00000002,0x04000002,0x00040002,0x04040002, +0x00002000,0x04002000,0x00042000,0x04042000, +0x00002002,0x04002002,0x00042002,0x04042002, +0x00000020,0x04000020,0x00040020,0x04040020, +0x00000022,0x04000022,0x00040022,0x04040022, +0x00002020,0x04002020,0x00042020,0x04042020, +0x00002022,0x04002022,0x00042022,0x04042022, +0x00000800,0x04000800,0x00040800,0x04040800, +0x00000802,0x04000802,0x00040802,0x04040802, +0x00002800,0x04002800,0x00042800,0x04042800, +0x00002802,0x04002802,0x00042802,0x04042802, +0x00000820,0x04000820,0x00040820,0x04040820, +0x00000822,0x04000822,0x00040822,0x04040822, +0x00002820,0x04002820,0x00042820,0x04042820, +0x00002822,0x04002822,0x00042822,0x04042822, +}; + +/* See ecb_encrypt.c for a pseudo description of these macros. */ +#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\ + (b)^=(t),\ + (a)^=((t)<<(n))) + +#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\ + (a)=(a)^(t)^(t>>(16-(n))))\ + +static char shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0}; + +static int body( + unsigned long *out0, + unsigned long *out1, + des_key_schedule ks, + unsigned long Eswap0, + unsigned long Eswap1); + +static int +des_set_key(des_cblock *key, des_key_schedule schedule) + { + register unsigned long c,d,t,s; + register unsigned char *in; + register unsigned long *k; + register int i; + + k=(unsigned long *)schedule; + in=(unsigned char *)key; + + c2l(in,c); + c2l(in,d); + + /* I now do it in 47 simple operations :-) + * Thanks to John Fletcher (john_fletcher@lccmail.ocf.llnl.gov) + * for the inspiration. :-) */ + PERM_OP (d,c,t,4,0x0f0f0f0f); + HPERM_OP(c,t,-2,0xcccc0000); + HPERM_OP(d,t,-2,0xcccc0000); + PERM_OP (d,c,t,1,0x55555555); + PERM_OP (c,d,t,8,0x00ff00ff); + PERM_OP (d,c,t,1,0x55555555); + d= (((d&0x000000ff)<<16)| (d&0x0000ff00) | + ((d&0x00ff0000)>>16)|((c&0xf0000000)>>4)); + c&=0x0fffffff; + + for (i=0; i>2)|(c<<26)); d=((d>>2)|(d<<26)); } + else + { c=((c>>1)|(c<<27)); d=((d>>1)|(d<<27)); } + c&=0x0fffffff; + d&=0x0fffffff; + /* could be a few less shifts but I am to lazy at this + * point in time to investigate */ + s= skb[0][ (c )&0x3f ]| + skb[1][((c>> 6)&0x03)|((c>> 7)&0x3c)]| + skb[2][((c>>13)&0x0f)|((c>>14)&0x30)]| + skb[3][((c>>20)&0x01)|((c>>21)&0x06) | + ((c>>22)&0x38)]; + t= skb[4][ (d )&0x3f ]| + skb[5][((d>> 7)&0x03)|((d>> 8)&0x3c)]| + skb[6][ (d>>15)&0x3f ]| + skb[7][((d>>21)&0x0f)|((d>>22)&0x30)]; + + /* table contained 0213 4657 */ + *(k++)=((t<<16)|(s&0x0000ffff))&0xffffffff; + s= ((s>>16)|(t&0xffff0000)); + + s=(s<<4)|(s>>28); + *(k++)=s&0xffffffff; + } + return(0); + } + +/****************************************************************** + * modified stuff for crypt. + ******************************************************************/ + +/* The changes to this macro may help or hinder, depending on the + * compiler and the achitecture. gcc2 always seems to do well :-). + * Inspired by Dana How + * DO NOT use the alternative version on machines with 8 byte longs. + */ +#ifdef ALT_ECB +#define D_ENCRYPT(L,R,S) \ + v=(R^(R>>16)); \ + u=(v&E0); \ + v=(v&E1); \ + u=((u^(u<<16))^R^s[S ])<<2; \ + t=(v^(v<<16))^R^s[S+1]; \ + t=(t>>2)|(t<<30); \ + L^= \ + *(unsigned long *)(des_SP+0x0100+((t )&0xfc))+ \ + *(unsigned long *)(des_SP+0x0300+((t>> 8)&0xfc))+ \ + *(unsigned long *)(des_SP+0x0500+((t>>16)&0xfc))+ \ + *(unsigned long *)(des_SP+0x0700+((t>>24)&0xfc))+ \ + *(unsigned long *)(des_SP+ ((u )&0xfc))+ \ + *(unsigned long *)(des_SP+0x0200+((u>> 8)&0xfc))+ \ + *(unsigned long *)(des_SP+0x0400+((u>>16)&0xfc))+ \ + *(unsigned long *)(des_SP+0x0600+((u>>24)&0xfc)); +#else /* original version */ +#define D_ENCRYPT(L,R,S) \ + v=(R^(R>>16)); \ + u=(v&E0); \ + v=(v&E1); \ + u=(u^(u<<16))^R^s[S ]; \ + t=(v^(v<<16))^R^s[S+1]; \ + t=(t>>4)|(t<<28); \ + L^= SPtrans[1][(t )&0x3f]| \ + SPtrans[3][(t>> 8)&0x3f]| \ + SPtrans[5][(t>>16)&0x3f]| \ + SPtrans[7][(t>>24)&0x3f]| \ + SPtrans[0][(u )&0x3f]| \ + SPtrans[2][(u>> 8)&0x3f]| \ + SPtrans[4][(u>>16)&0x3f]| \ + SPtrans[6][(u>>24)&0x3f]; +#endif + +unsigned char con_salt[128]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, +0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, +0x0A,0x0B,0x05,0x06,0x07,0x08,0x09,0x0A, +0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12, +0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A, +0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22, +0x23,0x24,0x25,0x20,0x21,0x22,0x23,0x24, +0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C, +0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34, +0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C, +0x3D,0x3E,0x3F,0x00,0x00,0x00,0x00,0x00, +}; + +unsigned char cov_2char[64]={ +0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,0x35, +0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44, +0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C, +0x4D,0x4E,0x4F,0x50,0x51,0x52,0x53,0x54, +0x55,0x56,0x57,0x58,0x59,0x5A,0x61,0x62, +0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A, +0x6B,0x6C,0x6D,0x6E,0x6F,0x70,0x71,0x72, +0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A +}; + +char * +des_fcrypt(const char *buf, const char *salt, char *buff) + { + unsigned int i,j,x,y; + unsigned long Eswap0=0,Eswap1=0; + unsigned long out[2],ll; + des_cblock key; + des_key_schedule ks; + unsigned char bb[9]; + unsigned char *b=bb; + unsigned char c,u; + + /* eay 25/08/92 + * If you call crypt("pwd","*") as often happens when you + * have * as the pwd field in /etc/passwd, the function + * returns *\0XXXXXXXXX + * The \0 makes the string look like * so the pwd "*" would + * crypt to "*". This was found when replacing the crypt in + * our shared libraries. People found that the disbled + * accounts effectivly had no passwd :-(. */ + x=buff[0]=((salt[0] == '\0')?'A':salt[0]); + Eswap0=con_salt[x]; + x=buff[1]=((salt[1] == '\0')?'A':salt[1]); + Eswap1=con_salt[x]<<4; + + for (i=0; i<8; i++) + { + c= *(buf++); + if (!c) break; + key[i]=(c<<1); + } + for (; i<8; i++) + key[i]=0; + + des_set_key((des_cblock *)(key),ks); + body(&out[0],&out[1],ks,Eswap0,Eswap1); + + ll=out[0]; l2c(ll,b); + ll=out[1]; l2c(ll,b); + y=0; + u=0x80; + bb[8]=0; + for (i=2; i<13; i++) + { + c=0; + for (j=0; j<6; j++) + { + c<<=1; + if (bb[y] & u) c|=1; + u>>=1; + if (!u) + { + y++; + u=0x80; + } + } + buff[i]=cov_2char[c]; + } + buff[13]='\0'; + return buff; + } + +static int +body( unsigned long *out0, + unsigned long *out1, + des_key_schedule ks, + unsigned long Eswap0, + unsigned long Eswap1) + { + register unsigned long l,r,t,u,v; +#ifdef ALT_ECB + register unsigned char *des_SP=(unsigned char *)SPtrans; +#endif + register unsigned long *s; + register int i,j; + register unsigned long E0,E1; + + l=0; + r=0; + + s=(unsigned long *)ks; + E0=Eswap0; + E1=Eswap1; + + for (j=0; j<25; j++) + { + for (i=0; i<(ITERATIONS*2); i+=4) + { + D_ENCRYPT(l,r, i); /* 1 */ + D_ENCRYPT(r,l, i+2); /* 2 */ + } + t=l; + l=r; + r=t; + } + t=r; + r=(l>>1)|(l<<31); + l=(t>>1)|(t<<31); + /* clear the top bits on machines with 8byte longs */ + l&=0xffffffff; + r&=0xffffffff; + + PERM_OP(r,l,t, 1,0x55555555); + PERM_OP(l,r,t, 8,0x00ff00ff); + PERM_OP(r,l,t, 2,0x33333333); + PERM_OP(l,r,t,16,0x0000ffff); + PERM_OP(r,l,t, 4,0x0f0f0f0f); + + *out0=l; + *out1=r; + return(0); + } + diff -ruN perl-5.6.1-TRIAL2/win32/makefile.mk AP624_source/win32/makefile.mk --- perl-5.6.1-TRIAL2/win32/makefile.mk Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/makefile.mk Tue Feb 06 15:23:25 2001 @@ -21,8 +21,8 @@ # Set these to wherever you want "dmake install" to put your newly # built perl. Setting it to a path with spaces is NOT recommended. # -INST_DRV *= c: -INST_TOP *= $(INST_DRV)\perl +INST_DRV *= p: +INST_TOP *= $(INST_DRV)\Apps\temp # # uncomment exactly one of the following @@ -32,11 +32,11 @@ # Visual C++ > 2.x and < 5.x SP3 #CCTYPE *= MSVC_PRE_50SP3 # Visual C++ >= 5.x SP3 -#CCTYPE *= MSVC60 +CCTYPE *= MSVC60 # Borland 5.02 or later #CCTYPE *= BORLAND # mingw32+gcc-2.95.2 or better -CCTYPE *= GCC +#CCTYPE *= GCC # # set the install locations of the compiler include/libraries. Running @@ -46,8 +46,8 @@ # the path name should not be quoted. # #CCHOME *= c:\bc5 -#CCHOME *= $(MSVCDIR) -CCHOME *= c:\gcc-2.95.2-msvcrt +CCHOME *= $(MSVCDIR) +#CCHOME *= c:\gcc-2.95.2-msvcrt CCINCDIR *= $(CCHOME)\include CCLIBDIR *= $(CCHOME)\lib @@ -68,7 +68,7 @@ # If you don't enable one of these, the crypt() builtin will fail to work. # (Generally not critical.) # -#CRYPT_SRC *= fcrypt.c +CRYPT_SRC *= fcrypt.c #CRYPT_LIB *= fcrypt.lib # @@ -82,7 +82,7 @@ # the ActivePerl configuration will get you fork() emulation at the # cost of some added bloat. # -#BUILD_FLAVOR *= ActivePerl +BUILD_FLAVOR *= ActivePerl # # uncomment next line if you want debug version of perl (big and slow). @@ -225,7 +225,7 @@ # set this to your email address (perl will guess a value from # from your loginname and your hostname, which may not be right) # -#EMAIL *= +EMAIL *= support@ActiveState.com ## ## Build configuration ends. @@ -455,8 +455,8 @@ LIBC = PerlCRT.lib .ENDIF -PERLEXE_RES = -PERLDLL_RES = +PERLEXE_RES = perlexe.res +PERLDLL_RES = perldll.res .IF "$(CFG)" == "Debug" .IF "$(CCTYPE)" == "MSVC20" @@ -1228,25 +1228,27 @@ -del /f *.def *.map -del /f $(EXTENSION_DLL) $(EXTENSION_PM) -del /f $(EXTENSION_C) $(DYNALOADER).c $(ERRNO).pm - -del /f $(EXTDIR)\DynaLoader\dl_win32.xs + -del /f $(EXTDIR)\DynaLoader\dl_win32.xs $(EXTDIR)\DynaLoader\DynaLoader.pm -del /f $(LIBDIR)\.exists $(LIBDIR)\attrs.pm $(LIBDIR)\DynaLoader.pm - -del /f $(LIBDIR)\XSLoader.pm + -del /f $(LIBDIR)\XSLoader.pm $(EXTDIR)\DynaLoader\XSLoader.pm + -del /f $(LIBDIR)\Devel\.exists $(LIBDIR)\File\.exists $(LIBDIR)\Sys\.exists -del /f $(LIBDIR)\Fcntl.pm $(LIBDIR)\IO.pm $(LIBDIR)\Opcode.pm -del /f $(LIBDIR)\ops.pm $(LIBDIR)\Safe.pm $(LIBDIR)\Thread.pm -del /f $(LIBDIR)\SDBM_File.pm $(LIBDIR)\Socket.pm $(LIBDIR)\POSIX.pm - -del /f $(LIBDIR)\B.pm $(LIBDIR)\O.pm $(LIBDIR)\re.pm + -del /f $(LIBDIR)\B.pm $(EXTDIR)\B\defsubs.h $(LIBDIR)\O.pm $(LIBDIR)\re.pm -del /f $(LIBDIR)\Data\Dumper.pm $(LIBDIR)\ByteLoader.pm -del /f $(LIBDIR)\Devel\Peek.pm $(LIBDIR)\Devel\DProf.pm -del /f $(LIBDIR)\File\Glob.pm - -del /f $(LIBDIR)\Storable.pm -if exist $(LIBDIR)\IO rmdir /s /q $(LIBDIR)\IO || rmdir /s $(LIBDIR)\IO -if exist $(LIBDIR)\Thread rmdir /s /q $(LIBDIR)\Thread || rmdir /s $(LIBDIR)\Thread -if exist $(LIBDIR)\B rmdir /s /q $(LIBDIR)\B || rmdir /s $(LIBDIR)\B -if exist $(LIBDIR)\Data rmdir /s /q $(LIBDIR)\Data || rmdir /s $(LIBDIR)\Data - -del /f $(PODDIR)\*.html - -del /f $(PODDIR)\*.bat + -cd $(PODDIR) && del /f *.html *.bat checkpods perlamiga.pod \ + perlcygwin.pod perldos.pod perlhpux.pod perlmachten.pod \ + perlos2.pod perlvms.pod perlwin32.pod pod2html pod2latex \ + pod2man pod2text pod2usage podchecker podselect -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph h2xs perldoc \ - dprofpp *.bat + dprofpp *.bat perlcc pstruct -cd ..\x2p && del /f find2perl s2p *.bat -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new -del /f $(CONFIGPM) Binary files perl-5.6.1-TRIAL2/win32/perldll.ico and AP624_source/win32/perldll.ico differ diff -ruN perl-5.6.1-TRIAL2/win32/perldll.rc AP624_source/win32/perldll.rc --- perl-5.6.1-TRIAL2/win32/perldll.rc Wed Dec 31 16:00:00 1969 +++ AP624_source/win32/perldll.rc Tue Feb 06 15:23:25 2001 @@ -0,0 +1,52 @@ +// PerlDll.rc + +// (c) 1995-1998 Microsoft Corporation. All rights reserved. +// Developed by ActiveState Tool Corp., http://www.ActiveState.com + +// You may distribute under the terms of either the GNU General Public +// License or the Artistic License, as specified in the README file. + +#include +#include "BuildInfo.h" + +PERLDLL ICON PerlDll.ico + +#ifndef _DEBUG +#define VER_DEBUG 0 +#else +#define VER_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION PERLRC_VERSION + PRODUCTVERSION PERLRC_VERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS VER_DEBUG + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN + +BEGIN +BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ActiveState Tool Corp.\0", + VALUE "FileDescription", "Perl Interpreter\0", + VALUE "FileVersion", PERLFILEVERSION, + VALUE "InternalName", "Perl56.dll\0", + VALUE "LegalCopyright", "Copyright 1987-2000, Larry Wall, Binary build by ActiveState Tool Corp., http://www.ActiveState.com\0", + VALUE "LegalTrademarks", "\0", + VALUE "OriginalFilename", "Perl56.dll\0", + VALUE "ProductName", "ActivePerl\0", + VALUE "ProductVersion", PERLPRODUCTVERSION, + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 0x04E4 + // English language (0x409) and the Windows ANSI codepage (0x04E4) + END +END + Binary files perl-5.6.1-TRIAL2/win32/perlexe.ico and AP624_source/win32/perlexe.ico differ diff -ruN perl-5.6.1-TRIAL2/win32/perlexe.rc AP624_source/win32/perlexe.rc --- perl-5.6.1-TRIAL2/win32/perlexe.rc Wed Dec 31 16:00:00 1969 +++ AP624_source/win32/perlexe.rc Tue Feb 06 15:23:25 2001 @@ -0,0 +1,52 @@ +// PerlExe.rc + +// (c) 1995-1999 Microsoft Corporation. All rights reserved. +// Developed by ActiveState Tool Corp., http://www.ActiveState.com + +// You may distribute under the terms of either the GNU General Public +// License or the Artistic License, as specified in the README file. + +#include +#include "BuildInfo.h" + +PERLEXE ICON PerlExe.ico + +#ifndef _DEBUG +#define VER_DEBUG 0 +#else +#define VER_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION PERLRC_VERSION + PRODUCTVERSION PERLRC_VERSION + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS VER_DEBUG + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE VFT2_UNKNOWN + +BEGIN +BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "ActiveState Tool Corp.\0", + VALUE "FileDescription", "Perl Command Line Interpreter\0", + VALUE "FileVersion", PERLFILEVERSION, + VALUE "InternalName", "Perl.exe\0", + VALUE "LegalCopyright", "Copyright 1987-2000, Larry Wall, Binary build by ActiveState Tool Corp., http://www.ActiveState.com\0", + VALUE "LegalTrademarks", "\0", + VALUE "OriginalFilename", "Perl.exe\0", + VALUE "ProductName", "ActivePerl\0", + VALUE "ProductVersion", PERLPRODUCTVERSION, + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 0x04E4 + // English language (0x409) and the Windows ANSI codepage (0x04E4) + END +END + diff -ruN perl-5.6.1-TRIAL2/win32/win32.c AP624_source/win32/win32.c --- perl-5.6.1-TRIAL2/win32/win32.c Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/win32.c Tue Feb 06 15:23:25 2001 @@ -3563,6 +3563,13 @@ */ static +XS(w32_BuildNumber) +{ + dXSARGS; + XSRETURN_PV(PRODUCT_BUILD_NUMBER); +} + +static XS(w32_GetCwd) { dXSARGS; @@ -4037,6 +4044,7 @@ newXS("Win32::GetLongPathName", w32_GetLongPathName, file); newXS("Win32::CopyFile", w32_CopyFile, file); newXS("Win32::Sleep", w32_Sleep, file); + newXS("Win32::BuildNumber", w32_BuildNumber, file); /* XXX Bloat Alert! The following Activeware preloads really * ought to be part of Win32::Sys::*, so they're not included diff -ruN perl-5.6.1-TRIAL2/win32/win32.h AP624_source/win32/win32.h --- perl-5.6.1-TRIAL2/win32/win32.h Tue Feb 06 15:40:30 2001 +++ AP624_source/win32/win32.h Tue Feb 06 15:23:26 2001 @@ -9,6 +9,8 @@ #ifndef _INC_WIN32_PERL5 #define _INC_WIN32_PERL5 +#include "BuildInfo.h" + #ifndef _WIN32_WINNT # define _WIN32_WINNT 0x0400 /* needed for TryEnterCriticalSection() etc. */ #endif End of Patch. Detailed change log entries follow. ____________________________________________________________________________ [ 8703] By: gsar on 2001/02/06 02:29:37 Log: $(MAKE) distclean doesn't clean up properly on windows Branch: maint-5.6/perl ! win32/Makefile win32/makefile.mk ____________________________________________________________________________ [ 8702] By: gsar on 2001/02/06 01:00:46 Log: tweak change#8659 to keep it simple Branch: maint-5.6/perl ! utils/perldoc.PL ____________________________________________________________________________ [ 8695] By: gsar on 2001/02/05 03:27:34 Log: thread.h tweak to enable 5005threads on HP-UX 10.20 with DCE threads Branch: maint-5.6/perl ! thread.h ____________________________________________________________________________ [ 8672] By: jhi on 2001/02/02 03:07:08 Log: UTF-8 s/// patch from Inaba Hiroto. Branch: maint-5.6/perl ! pp_ctl.c pp_hot.c ____________________________________________________________________________ [ 8666] By: gsar on 2001/02/01 16:34:51 Log: add missing entries to win32/config.?c Branch: maint-5.6/perl ! win32/config.bc win32/config.gc win32/config.vc ! win32/config_H.bc win32/config_H.gc win32/config_H.vc ____________________________________________________________________________ [ 8664] By: gsar on 2001/02/01 14:52:37 Log: need to use INT2PTR instead of a straight cast or ia64 fails posix.t (from Brendan O'Dea ) Branch: maint-5.6/perl ! ext/POSIX/POSIX.xs ____________________________________________________________________________ [ 8659] By: jhi on 2001/02/01 05:35:32 Log: Subject: [PATCH 5.6.1-TRIAL? and 5.7.?] perldoc uses unescaped backslashes in filenames From: Jan Dubois Date: Wed, 31 Jan 2001 21:17:03 -0800 Message-ID: <8qrh7t069jt32m98sap53l9dfoge0vjrle@4ax.com> Branch: maint-5.6/perl ! utils/perldoc.PL ____________________________________________________________________________ [ 8651] By: jhi on 2001/02/01 04:00:25 Log: Integrate changes #8647,8648,8650 from mainline. Macrofy a magic UTF-8 test. Protect PL_numeric_radix_sv with USE_NUMERIC_LOCALE. Watch out for cross compiling for EPOC (usually done on linux). Branch: maint-5.6/perl !> ext/Errno/Errno_pm.PL sv.c utf8.c utf8.h ____________________________________________________________________________ [ 8649] By: gsar on 2001/02/01 00:46:00 Log: perl_clone() wants to clone PL_numeric_radix_sv (fix for change#8626) Branch: maint-5.6/perl ! sv.c