This patch describes the changes made in ActivePerl build 625 over the official Perl v5.6.1-TRIAL3 sources from CPAN. Summary of changes in build 625: * Make "perl -V" output reflect ActiveState build. * Add Win32::BuildNumber() for compatibility. * Add resources to perl.exe and perl56.dll. The included patch may be applied to Perl v5.6.1-TRIAL3 sources using the GNU patch utility. e.g: % cd perl-5.6.1-TRIAL3 % patch -lNp1 < this_file --------------------------------------------------------------------------- diff -ruN perl-5.6.1-TRIAL3/BuildInfo.h AP625_source/BuildInfo.h --- perl-5.6.1-TRIAL3/BuildInfo.h Wed Dec 31 16:00:00 1969 +++ AP625_source/BuildInfo.h Thu Mar 22 17:41:13 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 "625" +#define PERLFILEVERSION "5,6,1,625\0" +#define PERLRC_VERSION 5,6,1,625 +#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-TRIAL3/EXTERN.h AP625_source/EXTERN.h --- perl-5.6.1-TRIAL3/EXTERN.h Thu Feb 22 18:57:52 2001 +++ AP625_source/EXTERN.h Thu Mar 22 17:41:14 2001 @@ -1,6 +1,6 @@ /* EXTERN.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/INTERN.h AP625_source/INTERN.h --- perl-5.6.1-TRIAL3/INTERN.h Thu Feb 22 18:57:52 2001 +++ AP625_source/INTERN.h Thu Mar 22 17:41:14 2001 @@ -1,6 +1,6 @@ /* INTERN.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/README AP625_source/README --- perl-5.6.1-TRIAL3/README Thu Feb 22 18:57:52 2001 +++ AP625_source/README Thu Mar 22 17:41:14 2001 @@ -1,7 +1,7 @@ Perl Kit, Version 5.0 - Copyright 1989-2000, Larry Wall + Copyright 1989-2001, Larry Wall All rights reserved. This program is free software; you can redistribute it and/or modify diff -ruN perl-5.6.1-TRIAL3/README.vmesa AP625_source/README.vmesa --- perl-5.6.1-TRIAL3/README.vmesa Thu Feb 22 18:57:53 2001 +++ AP625_source/README.vmesa Thu Mar 22 17:41:15 2001 @@ -56,16 +56,18 @@ this port does support dynamic loading but it's not had much testing =item * - - Don't turn on the compiler optimization flag "-O". There's - a bug in the compiler (APAR PQ18812) that generates some bad code - the optimizer is on. + +Don't turn on the compiler optimization flag "-O". There's +a bug in the compiler (APAR PQ18812) that generates some bad code +the optimizer is on. =item * - - As VM/ESA doesn't fully support the fork() API programs relying on - this call will not work. I've replaced fork()/exec() with spawn() - and the standalone exec() with spawn(). This has a side effect when - opening unnamed pipes in a shell script: there is no child process - generated under. + +As VM/ESA doesn't fully support the fork() API programs relying on +this call will not work. I've replaced fork()/exec() with spawn() +and the standalone exec() with spawn(). This has a side effect when +opening unnamed pipes in a shell script: there is no child process +generated under. =item * diff -ruN perl-5.6.1-TRIAL3/Todo-5.6 AP625_source/Todo-5.6 --- perl-5.6.1-TRIAL3/Todo-5.6 Thu Feb 22 18:57:53 2001 +++ AP625_source/Todo-5.6 Thu Mar 22 17:41:15 2001 @@ -1,6 +1,5 @@ Unicode support finish byte <-> utf8 and localencoding <-> utf8 conversions - make substr($bytestr,0,0,$charstr) do the right conversion add Unicode::Map equivivalent to core add support for I/O disciplines - a way to specify disciplines when opening things: diff -ruN perl-5.6.1-TRIAL3/av.c AP625_source/av.c --- perl-5.6.1-TRIAL3/av.c Thu Feb 22 18:57:53 2001 +++ AP625_source/av.c Thu Mar 22 17:41:15 2001 @@ -1,6 +1,6 @@ /* av.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/av.h AP625_source/av.h --- perl-5.6.1-TRIAL3/av.h Thu Feb 22 18:57:53 2001 +++ AP625_source/av.h Thu Mar 22 17:41:15 2001 @@ -1,6 +1,6 @@ /* av.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/cop.h AP625_source/cop.h --- perl-5.6.1-TRIAL3/cop.h Sun Mar 18 23:37:34 2001 +++ AP625_source/cop.h Thu Mar 22 17:41:15 2001 @@ -1,6 +1,6 @@ /* cop.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/cv.h AP625_source/cv.h --- perl-5.6.1-TRIAL3/cv.h Thu Feb 22 18:57:53 2001 +++ AP625_source/cv.h Thu Mar 22 17:41:15 2001 @@ -1,6 +1,6 @@ /* cv.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/deb.c AP625_source/deb.c --- perl-5.6.1-TRIAL3/deb.c Thu Feb 22 18:57:53 2001 +++ AP625_source/deb.c Thu Mar 22 17:41:15 2001 @@ -1,6 +1,6 @@ /* deb.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/doio.c AP625_source/doio.c --- perl-5.6.1-TRIAL3/doio.c Sun Mar 18 23:37:34 2001 +++ AP625_source/doio.c Thu Mar 22 17:41:15 2001 @@ -1,6 +1,6 @@ /* doio.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/doop.c AP625_source/doop.c --- perl-5.6.1-TRIAL3/doop.c Sun Mar 18 23:37:34 2001 +++ AP625_source/doop.c Thu Mar 22 17:41:15 2001 @@ -1,6 +1,6 @@ /* doop.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/dump.c AP625_source/dump.c --- perl-5.6.1-TRIAL3/dump.c Sun Mar 18 23:37:34 2001 +++ AP625_source/dump.c Thu Mar 22 17:41:15 2001 @@ -1,6 +1,6 @@ /* dump.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/embed.h AP625_source/embed.h --- perl-5.6.1-TRIAL3/embed.h Sun Mar 18 23:37:34 2001 +++ AP625_source/embed.h Thu Mar 22 17:41:15 2001 @@ -750,10 +750,8 @@ #define yyerror Perl_yyerror #ifdef USE_PURE_BISON #define yylex_r Perl_yylex_r -#define yylex Perl_yylex -#else -#define yylex Perl_yylex #endif +#define yylex Perl_yylex #define yyparse Perl_yyparse #define yywarn Perl_yywarn #if defined(MYMALLOC) @@ -2215,10 +2213,8 @@ #define yyerror(a) Perl_yyerror(aTHX_ a) #ifdef USE_PURE_BISON #define yylex_r(a,b) Perl_yylex_r(aTHX_ a,b) -#define yylex(a,b) Perl_yylex(aTHX_ a,b) -#else -#define yylex() Perl_yylex(aTHX) #endif +#define yylex() Perl_yylex(aTHX) #define yyparse() Perl_yyparse(aTHX) #define yywarn(a) Perl_yywarn(aTHX_ a) #if defined(MYMALLOC) @@ -4346,12 +4342,9 @@ #ifdef USE_PURE_BISON #define Perl_yylex_r CPerlObj::Perl_yylex_r #define yylex_r Perl_yylex_r +#endif #define Perl_yylex CPerlObj::Perl_yylex #define yylex Perl_yylex -#else -#define Perl_yylex CPerlObj::Perl_yylex -#define yylex Perl_yylex -#endif #define Perl_yyparse CPerlObj::Perl_yyparse #define yyparse Perl_yyparse #define Perl_yywarn CPerlObj::Perl_yywarn diff -ruN perl-5.6.1-TRIAL3/embed.pl AP625_source/embed.pl --- perl-5.6.1-TRIAL3/embed.pl Sun Mar 18 23:37:34 2001 +++ AP625_source/embed.pl Thu Mar 22 17:41:15 2001 @@ -1410,7 +1410,7 @@ Apd |AV* |av_make |I32 size|SV** svp Apd |SV* |av_pop |AV* ar Apd |void |av_push |AV* ar|SV* val -p |void |av_reify |AV* ar +ApM |void |av_reify |AV* ar Apd |SV* |av_shift |AV* ar Apd |SV** |av_store |AV* ar|I32 key|SV* val Apd |void |av_undef |AV* ar @@ -2107,10 +2107,8 @@ p |int |yyerror |char* s #ifdef USE_PURE_BISON p |int |yylex_r |YYSTYPE *lvalp|int *lcharp -p |int |yylex |YYSTYPE *lvalp|int *lcharp -#else -p |int |yylex #endif +p |int |yylex p |int |yyparse p |int |yywarn |char* s #if defined(MYMALLOC) diff -ruN perl-5.6.1-TRIAL3/ext/DynaLoader/dl_aix.xs AP625_source/ext/DynaLoader/dl_aix.xs --- perl-5.6.1-TRIAL3/ext/DynaLoader/dl_aix.xs Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/DynaLoader/dl_aix.xs Thu Mar 22 17:41:16 2001 @@ -62,13 +62,18 @@ /* Older AIX C compilers cannot deal with C++ double-slash comments in the ibmcxx and/or xlC includes. Since we only need a single file, be more fine-grained about what's included */ + #ifdef USE_libC /* The define comes, when it comes, from hints/aix.pl. */ # define LOAD loadAndInit # define UNLOAD terminateAndUnload -# if defined(USE_xlC_load_h) -# include "/usr/lpp/xlC/include/load.h" +# if defined(USE_vacpp_load_h) +# include "/usr/vacpp/include/load.h" # elif defined(USE_ibmcxx_load_h) # include "/usr/ibmcxx/include/load.h" +# elif defined(USE_xlC_load_h) +# include "/usr/lpp/xlC/include/load.h" +# else +# include "/usr/include/load.h" # endif #else # define LOAD load diff -ruN perl-5.6.1-TRIAL3/ext/DynaLoader/hints/aix.pl AP625_source/ext/DynaLoader/hints/aix.pl --- perl-5.6.1-TRIAL3/ext/DynaLoader/hints/aix.pl Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/DynaLoader/hints/aix.pl Thu Mar 22 17:41:16 2001 @@ -2,7 +2,9 @@ use Config; if ($Config{libs} =~ /-lC/ && -f '/lib/libC.a') { $self->{CCFLAGS} = $Config{ccflags} . ' -DUSE_libC'; - if (-f '/usr/ibmcxx/include/load.h') { + if (-f '/usr/vacpp/include/load.h') { + $self->{CCFLAGS} .= ' -DUSE_vacpp_load_h'; + } elsif (-f '/usr/ibmcxx/include/load.h') { $self->{CCFLAGS} .= ' -DUSE_ibmcxx_load_h'; } elsif (-f '/usr/lpp/xlC/include/load.h') { $self->{CCFLAGS} .= ' -DUSE_xlC_load_h'; diff -ruN perl-5.6.1-TRIAL3/ext/File/Glob/Changes AP625_source/ext/File/Glob/Changes --- perl-5.6.1-TRIAL3/ext/File/Glob/Changes Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/File/Glob/Changes Thu Mar 22 17:41:16 2001 @@ -45,3 +45,5 @@ - Add support for either \ or / as separators on DOSISH systems - Limit effect of \ as a quoting operator on DOSISH systems to when it precedes one of []{}-~\ (to minimise backslashitis). +0.992 Tue Mar 20 09:25:48 2001 + - Add alphabetic sorting for csh compatibility (GLOB_ALPHASORT) diff -ruN perl-5.6.1-TRIAL3/ext/File/Glob/Glob.pm AP625_source/ext/File/Glob/Glob.pm --- perl-5.6.1-TRIAL3/ext/File/Glob/Glob.pm Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/File/Glob/Glob.pm Thu Mar 22 17:41:16 2001 @@ -19,6 +19,7 @@ bsd_glob glob GLOB_ABEND + GLOB_ALPHASORT GLOB_ALTDIRFUNC GLOB_BRACE GLOB_CSH @@ -37,6 +38,7 @@ %EXPORT_TAGS = ( 'glob' => [ qw( GLOB_ABEND + GLOB_ALPHASORT GLOB_ALTDIRFUNC GLOB_BRACE GLOB_CSH @@ -104,7 +106,13 @@ return constant('GLOB_ERROR', 0); } -sub GLOB_CSH () { GLOB_BRACE() | GLOB_NOMAGIC() | GLOB_QUOTE() | GLOB_TILDE() } +sub GLOB_CSH () { + GLOB_BRACE() + | GLOB_NOMAGIC() + | GLOB_QUOTE() + | GLOB_TILDE() + | GLOB_ALPHASORT() +} $DEFAULT_FLAGS = GLOB_CSH(); if ($^O =~ /^(?:MSWin32|VMS|os2|dos|riscos|MacOS)$/) { @@ -288,7 +296,7 @@ =item C For convenience, C is a synonym for -C. +C. =back @@ -296,6 +304,18 @@ extensions C, and C flags have not been implemented in the Perl version because they involve more complex interaction with the underlying C structures. + +The following flag has been added in the Perl implementation for +compatibility with common flavors of csh: + +=over 4 + +=item C + +If C is not in effect, sort filenames is alphabetical +order (case does not matter) rather than in ASCII order. + +=back =head1 DIAGNOSTICS diff -ruN perl-5.6.1-TRIAL3/ext/File/Glob/Glob.xs AP625_source/ext/File/Glob/Glob.xs --- perl-5.6.1-TRIAL3/ext/File/Glob/Glob.xs Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/File/Glob/Glob.xs Thu Mar 22 17:41:16 2001 @@ -28,6 +28,12 @@ #else goto not_there; #endif + if (strEQ(name, "GLOB_ALPHASORT")) +#ifdef GLOB_ALPHASORT + return GLOB_ALPHASORT; +#else + goto not_there; +#endif if (strEQ(name, "GLOB_ALTDIRFUNC")) #ifdef GLOB_ALTDIRFUNC return GLOB_ALTDIRFUNC; diff -ruN perl-5.6.1-TRIAL3/ext/File/Glob/bsd_glob.c AP625_source/ext/File/Glob/bsd_glob.c --- perl-5.6.1-TRIAL3/ext/File/Glob/bsd_glob.c Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/File/Glob/bsd_glob.c Thu Mar 22 17:41:16 2001 @@ -57,6 +57,9 @@ * expand {1,2}{a,b} to 1a 1b 2a 2b * gl_matchc: * Number of matches in the current invocation of glob. + * GLOB_ALPHASORT: + * sort alphabetically like csh (case doesn't matter) instead of in ASCII + * order */ #include @@ -531,7 +534,8 @@ else if (!(pglob->gl_flags & GLOB_NOSORT)) qsort(pglob->gl_pathv + pglob->gl_offs + oldpathc, pglob->gl_pathc - oldpathc, sizeof(char *), - (pglob->gl_flags & GLOB_NOCASE) ? ci_compare : compare); + (pglob->gl_flags & (GLOB_ALPHASORT|GLOB_NOCASE)) + ? ci_compare : compare); pglob->gl_flags = oldflags; return(0); } diff -ruN perl-5.6.1-TRIAL3/ext/File/Glob/bsd_glob.h AP625_source/ext/File/Glob/bsd_glob.h --- perl-5.6.1-TRIAL3/ext/File/Glob/bsd_glob.h Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/File/Glob/bsd_glob.h Thu Mar 22 17:41:16 2001 @@ -72,6 +72,7 @@ #define GLOB_QUOTE 0x0400 /* Quote special chars with \. */ #define GLOB_TILDE 0x0800 /* Expand tilde names from the passwd file. */ #define GLOB_NOCASE 0x1000 /* Treat filenames without regard for case. */ +#define GLOB_ALPHASORT 0x2000 /* Alphabetic, not ASCII sort, like csh. */ #define GLOB_NOSPACE (-1) /* Malloc call failed. */ #define GLOB_ABEND (-2) /* Unignored error. */ diff -ruN perl-5.6.1-TRIAL3/ext/POSIX/POSIX.pm AP625_source/ext/POSIX/POSIX.pm --- perl-5.6.1-TRIAL3/ext/POSIX/POSIX.pm Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/POSIX/POSIX.pm Thu Mar 22 17:41:16 2001 @@ -734,6 +734,16 @@ redef "IO::Handle::setbuf()"; } +sub setgid { + usage "setgid(gid)" if @_ != 1; + $( = $_[0]; +} + +sub setuid { + usage "setuid(uid)" if @_ != 1; + $< = $_[0]; +} + sub setvbuf { redef "IO::Handle::setvbuf()"; } diff -ruN perl-5.6.1-TRIAL3/ext/POSIX/POSIX.pod AP625_source/ext/POSIX/POSIX.pod --- perl-5.6.1-TRIAL3/ext/POSIX/POSIX.pod Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/POSIX/POSIX.pod Thu Mar 22 17:41:16 2001 @@ -1008,12 +1008,9 @@ =item setgid -Sets the real group identifier and the effective group identifier for -this process. Similar to assigning a value to the Perl's builtin -C<$)> variable, see L, except that the latter -will change only the real user identifier, and that the setgid() -uses only a single numeric argument, as opposed to a space-separated -list of numbers. +Sets the real group identifier for this process. +Identical to assigning a value to the Perl's builtin C<$)> variable, +see L. =item setjmp @@ -1066,10 +1063,9 @@ =item setuid -Sets the real user identifier and the effective user identifier for -this process. Similar to assigning a value to the Perl's builtin -C<$E> variable, see L, except that the latter -will change only the real user identifier. +Sets the real user identifier for this process. +Identical to assigning a value to the Perl's builtin C<$E> variable, +see L. =item sigaction diff -ruN perl-5.6.1-TRIAL3/ext/POSIX/POSIX.xs AP625_source/ext/POSIX/POSIX.xs --- perl-5.6.1-TRIAL3/ext/POSIX/POSIX.xs Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/POSIX/POSIX.xs Thu Mar 22 17:41:16 2001 @@ -157,8 +157,6 @@ # endif /* !HAS_MKFIFO */ # ifdef MACOS_TRADITIONAL - struct tms { time_t tms_utime, tms_stime, tms_cutime, tms_cstime; }; -# define times(a) not_here("times") # define ttyname(a) (char*)not_here("ttyname") # define tzset() not_here("tzset") # else @@ -3940,14 +3938,6 @@ SysRet pause() -SysRet -setgid(gid) - Gid_t gid - -SysRet -setuid(uid) - Uid_t uid - SysRetLong sysconf(name) int name @@ -3955,4 +3945,3 @@ char * ttyname(fd) int fd - diff -ruN perl-5.6.1-TRIAL3/ext/POSIX/typemap AP625_source/ext/POSIX/typemap --- perl-5.6.1-TRIAL3/ext/POSIX/typemap Thu Feb 22 18:57:54 2001 +++ AP625_source/ext/POSIX/typemap Thu Mar 22 17:41:16 2001 @@ -3,7 +3,6 @@ Uid_t T_NV Time_t T_NV Gid_t T_NV -Uid_t T_NV Off_t T_NV Dev_t T_NV NV T_NV diff -ruN perl-5.6.1-TRIAL3/form.h AP625_source/form.h --- perl-5.6.1-TRIAL3/form.h Thu Feb 22 18:57:54 2001 +++ AP625_source/form.h Thu Mar 22 17:41:16 2001 @@ -1,6 +1,6 @@ /* form.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/global.sym AP625_source/global.sym --- perl-5.6.1-TRIAL3/global.sym Sun Mar 18 23:37:34 2001 +++ AP625_source/global.sym Thu Mar 22 17:41:16 2001 @@ -39,6 +39,7 @@ Perl_av_make Perl_av_pop Perl_av_push +Perl_av_reify Perl_av_shift Perl_av_store Perl_av_undef diff -ruN perl-5.6.1-TRIAL3/gv.c AP625_source/gv.c --- perl-5.6.1-TRIAL3/gv.c Thu Feb 22 18:57:54 2001 +++ AP625_source/gv.c Thu Mar 22 17:41:16 2001 @@ -1,6 +1,6 @@ /* gv.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/gv.h AP625_source/gv.h --- perl-5.6.1-TRIAL3/gv.h Thu Feb 22 18:57:54 2001 +++ AP625_source/gv.h Thu Mar 22 17:41:16 2001 @@ -1,6 +1,6 @@ /* gv.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/handy.h AP625_source/handy.h --- perl-5.6.1-TRIAL3/handy.h Thu Feb 22 18:57:55 2001 +++ AP625_source/handy.h Thu Mar 22 17:41:16 2001 @@ -1,6 +1,6 @@ /* handy.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/hints/aix.sh AP625_source/hints/aix.sh --- perl-5.6.1-TRIAL3/hints/aix.sh Thu Feb 22 18:57:55 2001 +++ AP625_source/hints/aix.sh Thu Mar 22 17:41:16 2001 @@ -360,13 +360,13 @@ ar="ar -X64" nm_opt="-X64 $nm_opt" # Note: Placing the 'qacflags' variable into the 'ldflags' string - # is NOT a typo. ldqalags is passed to the C compiler for final + # is NOT a typo. ldflags is passed to the C compiler for final # linking, and it wants -q64 (-b64 is for ld only!). case "$qacflags$qaldflags$qalibs" in '');; *) ccflags="$ccflags $qacflags" ldflags="$ldflags $qacflags" - lddqalags="$qaldflags $lddqalags" + lddlflags="$qaldflags $lddlflags" libswanted="$libswanted $qalibs" ;; esac diff -ruN perl-5.6.1-TRIAL3/hv.c AP625_source/hv.c --- perl-5.6.1-TRIAL3/hv.c Sun Mar 18 23:33:17 2001 +++ AP625_source/hv.c Thu Mar 22 17:41:16 2001 @@ -1,6 +1,6 @@ /* hv.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/hv.h AP625_source/hv.h --- perl-5.6.1-TRIAL3/hv.h Thu Feb 22 18:57:55 2001 +++ AP625_source/hv.h Thu Mar 22 17:41:16 2001 @@ -1,6 +1,6 @@ /* hv.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/installperl AP625_source/installperl --- perl-5.6.1-TRIAL3/installperl Thu Feb 22 18:57:55 2001 +++ AP625_source/installperl Thu Mar 22 17:41:16 2001 @@ -142,7 +142,7 @@ my $pwd; chomp($pwd=`pwd`); my $archlibexp = $Config{archlibexp}; - `./$^X -pibak -e 's{$pwd\/libperl.x}{$archlibexp/CORE/libperl.x}' lib/Config.pm`; + `./$^X -p -e 's{$pwd\/libperl.x}{$archlibexp/CORE/libperl.x}' lib/Config.pm`; } } diff -ruN perl-5.6.1-TRIAL3/lib/CGI.pm AP625_source/lib/CGI.pm --- perl-5.6.1-TRIAL3/lib/CGI.pm Sat Mar 3 11:53:20 2001 +++ AP625_source/lib/CGI.pm Thu Mar 22 17:41:16 2001 @@ -2350,7 +2350,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-TRIAL3/lib/Cwd.pm AP625_source/lib/Cwd.pm --- perl-5.6.1-TRIAL3/lib/Cwd.pm Thu Feb 22 18:57:55 2001 +++ AP625_source/lib/Cwd.pm Thu Mar 22 17:41:17 2001 @@ -3,7 +3,7 @@ =head1 NAME -getcwd - get pathname of current working directory +Cwd - get pathname of current working directory =head1 SYNOPSIS @@ -14,6 +14,9 @@ $dir = getcwd; use Cwd; + $dir = fastcwd; + + use Cwd; $dir = fastgetcwd; use Cwd 'chdir'; @@ -28,16 +31,21 @@ =head1 DESCRIPTION +This module provides functions for determining the pathname of the +current working directory. By default, it exports the functions +cwd(), getcwd(), fastcwd(), and fastgetcwd() into the caller's +namespace. Each of these functions are called without arguments and +return the absolute path of the current working directory. It is +recommended that cwd (or another *cwd() function) be used in I +code to ensure portability. + +The cwd() is the most natural and safe form for the current +architecture. For most systems it is identical to `pwd` (but without +the trailing line terminator). + The getcwd() function re-implements the getcwd(3) (or getwd(3)) functions in Perl. -The abs_path() function takes a single argument and returns the -absolute pathname for that argument. It uses the same algorithm -as getcwd(). (Actually, getcwd() is abs_path(".")) Symbolic links -and relative-path components ("." and "..") are resolved to return -the canonical pathname, just like realpath(3). Also callable as -realpath(). - The fastcwd() function looks the same as getcwd(), but runs faster. It's also more dangerous because it might conceivably chdir() you out of a directory that it can't chdir() you back into. If fastcwd @@ -48,16 +56,17 @@ changed it will C with the message "Unstable directory path, current directory changed unexpectedly". That should never happen. -The fast_abs_path() function looks the same as abs_path(), but runs faster. -And like fastcwd() is more dangerous. +The fastgetcwd() function is provided as a synonym for cwd(). -The cwd() function looks the same as getcwd and fastgetcwd but is -implemented using the most natural and safe form for the current -architecture. For most systems it is identical to `pwd` (but without -the trailing line terminator). +The abs_path() function takes a single argument and returns the +absolute pathname for that argument. It uses the same algorithm as +getcwd(). (Actually, getcwd() is abs_path(".")) Symbolic links and +relative-path components ("." and "..") are resolved to return the +canonical pathname, just like realpath(3). This function is also +callable as realpath(). -It is recommended that cwd (or another *cwd() function) is used in -I code to ensure portability. +The fast_abs_path() function looks the same as abs_path() but runs +faster and, like fastcwd(), is more dangerous. If you ask to override your chdir() built-in function, then your PWD environment variable will be kept up to date. (See diff -ruN perl-5.6.1-TRIAL3/lib/File/Path.pm AP625_source/lib/File/Path.pm --- perl-5.6.1-TRIAL3/lib/File/Path.pm Thu Feb 22 18:57:55 2001 +++ AP625_source/lib/File/Path.pm Thu Mar 22 17:41:17 2001 @@ -97,11 +97,12 @@ use Exporter (); use strict; -our $VERSION = "1.0403"; +our $VERSION = "1.0404"; our @ISA = qw( Exporter ); our @EXPORT = qw( mkpath rmtree ); my $Is_VMS = $^O eq 'VMS'; +my $Is_MacOS = $^O eq 'MacOS'; # These OSes complain if you want to remove a file that you have no # write permission to: @@ -113,7 +114,7 @@ # $paths -- either a path string or ref to list of paths # $verbose -- optional print "mkdir $path" for each directory created # $mode -- optional permissions, defaults to 0777 - local($")="/"; + local($")=$Is_MacOS ? ":" : "/"; $mode = 0777 unless defined($mode); $paths = [$paths] unless ref $paths; my(@created,$path); @@ -160,7 +161,12 @@ my($root); foreach $root (@{$roots}) { - $root =~ s#/\z##; + if ($Is_MacOS) { + $root = ":$root" if $root !~ /:/; + $root =~ s#([^:])\z#$1:#; + } else { + $root =~ s#/\z##; + } (undef, undef, my $rp) = lstat $root or next; $rp &= 07777; # don't forget setuid, setgid, sticky bits if ( -d _ ) { @@ -185,7 +191,11 @@ # is faster if done in reverse ASCIIbetical order @files = reverse @files if $Is_VMS; ($root = VMS::Filespec::unixify($root)) =~ s#\.dir\z## if $Is_VMS; - @files = map("$root/$_", grep $_!~/^\.{1,2}\z/s,@files); + if ($Is_MacOS) { + @files = map("$root$_", @files); + } else { + @files = map("$root/$_", grep $_!~/^\.{1,2}\z/s,@files); + } $count += rmtree(\@files,$verbose,$safe); if ($safe && ($Is_VMS ? !&VMS::Filespec::candelete($root) : !-w $root)) { diff -ruN perl-5.6.1-TRIAL3/mg.c AP625_source/mg.c --- perl-5.6.1-TRIAL3/mg.c Thu Feb 22 18:57:56 2001 +++ AP625_source/mg.c Thu Mar 22 17:41:18 2001 @@ -1,6 +1,6 @@ /* mg.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/mg.h AP625_source/mg.h --- perl-5.6.1-TRIAL3/mg.h Thu Feb 22 18:57:56 2001 +++ AP625_source/mg.h Thu Mar 22 17:41:18 2001 @@ -1,6 +1,6 @@ /* mg.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/objXSUB.h AP625_source/objXSUB.h --- perl-5.6.1-TRIAL3/objXSUB.h Sun Mar 18 23:37:34 2001 +++ AP625_source/objXSUB.h Thu Mar 22 17:41:18 2001 @@ -107,6 +107,10 @@ #define Perl_av_push pPerl->Perl_av_push #undef av_push #define av_push Perl_av_push +#undef Perl_av_reify +#define Perl_av_reify pPerl->Perl_av_reify +#undef av_reify +#define av_reify Perl_av_reify #undef Perl_av_shift #define Perl_av_shift pPerl->Perl_av_shift #undef av_shift @@ -1914,7 +1918,6 @@ #undef whichsig #define whichsig Perl_whichsig #ifdef USE_PURE_BISON -#else #endif #if defined(MYMALLOC) #undef Perl_dump_mstats diff -ruN perl-5.6.1-TRIAL3/op.c AP625_source/op.c --- perl-5.6.1-TRIAL3/op.c Thu Mar 15 07:25:20 2001 +++ AP625_source/op.c Thu Mar 22 17:41:18 2001 @@ -1,6 +1,6 @@ /* op.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/op.h AP625_source/op.h --- perl-5.6.1-TRIAL3/op.h Mon Mar 12 02:21:50 2001 +++ AP625_source/op.h Thu Mar 22 17:41:18 2001 @@ -1,6 +1,6 @@ /* op.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/patchlevel.h AP625_source/patchlevel.h --- perl-5.6.1-TRIAL3/patchlevel.h Mon Mar 19 00:20:24 2001 +++ AP625_source/patchlevel.h Thu Mar 22 17:41:18 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-TRIAL3" + ,ACTIVEPERL_LOCAL_PATCHES_ENTRY ,NULL }; diff -ruN perl-5.6.1-TRIAL3/perl.c AP625_source/perl.c --- perl-5.6.1-TRIAL3/perl.c Sun Mar 18 23:37:35 2001 +++ AP625_source/perl.c Thu Mar 22 17:41:18 2001 @@ -1,6 +1,6 @@ /* perl.c * - * Copyright (c) 1987-2000 Larry Wall + * Copyright (c) 1987-2001 Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -2273,7 +2273,7 @@ #endif PerlIO_printf(PerlIO_stdout(), - "\n\nCopyright 1987-2000, Larry Wall\n"); + "\n\nCopyright 1987-2001, Larry Wall\n"); #ifdef MACOS_TRADITIONAL PerlIO_printf(PerlIO_stdout(), "\nMac OS port Copyright (c) 1991-2001, Matthias Neeracher\n"); diff -ruN perl-5.6.1-TRIAL3/perl.h AP625_source/perl.h --- perl-5.6.1-TRIAL3/perl.h Sun Mar 18 23:33:17 2001 +++ AP625_source/perl.h Thu Mar 22 17:41:18 2001 @@ -1,6 +1,6 @@ /* perl.h * - * Copyright (c) 1987-2000, Larry Wall + * Copyright (c) 1987-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/perlapi.c AP625_source/perlapi.c --- perl-5.6.1-TRIAL3/perlapi.c Sun Mar 18 23:37:35 2001 +++ AP625_source/perlapi.c Thu Mar 22 17:41:18 2001 @@ -211,6 +211,13 @@ ((CPerlObj*)pPerl)->Perl_av_push(ar, val); } +#undef Perl_av_reify +void +Perl_av_reify(pTHXo_ AV* ar) +{ + ((CPerlObj*)pPerl)->Perl_av_reify(ar); +} + #undef Perl_av_shift SV* Perl_av_shift(pTHXo_ AV* ar) @@ -3456,7 +3463,6 @@ return ((CPerlObj*)pPerl)->Perl_whichsig(sig); } #ifdef USE_PURE_BISON -#else #endif #if defined(MYMALLOC) diff -ruN perl-5.6.1-TRIAL3/perlio.c AP625_source/perlio.c --- perl-5.6.1-TRIAL3/perlio.c Thu Feb 22 18:57:56 2001 +++ AP625_source/perlio.c Thu Mar 22 17:41:18 2001 @@ -1,6 +1,6 @@ /* perlio.c * - * Copyright (c) 1996-2000, Nick Ing-Simmons + * Copyright (c) 1996-2001, Nick Ing-Simmons * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/perly.y AP625_source/perly.y --- perl-5.6.1-TRIAL3/perly.y Thu Feb 22 18:57:56 2001 +++ AP625_source/perly.y Thu Mar 22 17:41:18 2001 @@ -1,6 +1,6 @@ /* perly.y * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -61,6 +61,7 @@ #ifdef USE_PURE_BISON #define YYLEX_PARAM (&yychar) +#define yylex yylex_r #endif %} diff -ruN perl-5.6.1-TRIAL3/pod/perlport.pod AP625_source/pod/perlport.pod --- perl-5.6.1-TRIAL3/pod/perlport.pod Sun Mar 18 19:03:34 2001 +++ AP625_source/pod/perlport.pod Thu Mar 22 17:41:19 2001 @@ -1885,9 +1885,9 @@ =head1 Supported Platforms -As of early February 2001 (the Perl release 5.6.1), the following -platforms are able to build Perl from the standard source code -distribution available at http://www.perl.com/CPAN/src/index.html +As of early 2001 (the Perl release 5.6.1), the following platforms are +able to build Perl from the standard source code distribution +available at http://www.perl.com/CPAN/src/index.html AIX AmigaOS @@ -1901,6 +1901,7 @@ IRIX Linux MachTen + MacOS Classic 2) NonStop-UX ReliantUNIX (SINIX) OpenBSD @@ -1913,10 +1914,14 @@ UNICOS UNICOS/mk VOS - Win32/NT/2K 2) + Win32/NT/2K 3) 1) in DOS mode either the DOS or OS/2 ports can be used - 2) compilers: Borland, Cygwin, Mingw32 EGCS/GCC, VC++ + 2) Mac OS Classic (pre-X) is almost 5.6.1-ready; building from + the source does work with 5.6.1, but additional MacOS specific + source code is needed for a complete build. Contact the mailing + list macperl-porters@macperl.org for more information. + 3) compilers: Borland, Cygwin, Mingw32 EGCS/GCC, VC++ The following platforms worked for the previous release (5.6.0), but we did not manage to test these in time for the 5.6.1 release. @@ -1938,12 +1943,13 @@ Windows 98 Windows Me -The following platform worked for the 5.005_03 major release but not 5.6.0. -Standardization on UTF-8 as the internal string representation -in 5.6.0 and 5.6.1 has introduced incompatibilities in this EBCDIC platform. -While Perl 5.6.1 will build on this platform some regression tests may fail -and the C pragma typically introduces text handling errors. -UTF-8 support for this platform may be enabled in a future release: +The following platform worked for the 5.005_03 major release but not +5.6.0. Standardization on UTF-8 as the internal string representation +in 5.6.0 and 5.6.1 has introduced incompatibilities in this EBCDIC +platform. While Perl 5.6.1 will build on this platform some +regression tests may fail and the C pragma typically +introduces text handling errors. UTF-8 support for this platform may +be enabled in a future release: OS/390 1) @@ -1958,11 +1964,6 @@ These are also expected to work, albeit with no UTF-8 support, under 5.6.1 for the same reasons as OS/390. Contact the mailing list perl-mvs@perl.org for more details. - -Mac OS (Classic, pre-X) is almost 5.6.1-ready; building from the source -does work with 5.6.1, but additional MacOS specific source code is needed -for a complete port. Contact the mailing list macperl-porters@macperl.org -for more information. The following platforms have been known to build Perl from source in the past (5.005_03 and earlier), but we haven't been able to verify diff -ruN perl-5.6.1-TRIAL3/pod/perlvar.pod AP625_source/pod/perlvar.pod --- perl-5.6.1-TRIAL3/pod/perlvar.pod Thu Feb 22 18:57:57 2001 +++ AP625_source/pod/perlvar.pod Thu Mar 22 17:41:19 2001 @@ -624,8 +624,7 @@ =item $< The real uid of this process. (Mnemonic: it's the uid you came I, -if you're running setuid.) You can change both the real uid and -the effective uid at the same time by using POSIX::setuid(). +if you're running setuid.) =item $EFFECTIVE_USER_ID @@ -638,9 +637,6 @@ $< = $>; # set real to effective uid ($<,$>) = ($>,$<); # swap real and effective uid -You can change both the effective uid and the real uid at the same -time by using POSIX::setuid(). - (Mnemonic: it's the uid you went I, if you're running setuid.) C<< $< >> and C<< $> >> can be swapped only on machines supporting setreuid(). @@ -661,9 +657,6 @@ set the real gid. So the value given by C<$(> should I be assigned back to C<$(> without being forced numeric, such as by adding zero. -You can change both the real gid and the effective gid at the same -time by using POSIX::setgid(). - (Mnemonic: parentheses are used to I things. The real gid is the group you I, if you're running setgid.) @@ -685,9 +678,6 @@ empty list for setgroups(), just repeat the new effective gid; that is, to force an effective gid of 5 and an effectively empty setgroups() list, say C< $) = "5 5" >. - -You can change both the effective gid and the real gid at the same -time by using POSIX::setgid() (use only a single numeric argument). (Mnemonic: parentheses are used to I things. The effective gid is the group that's I for you, if you're running setgid.) diff -ruN perl-5.6.1-TRIAL3/pp.c AP625_source/pp.c --- perl-5.6.1-TRIAL3/pp.c Sun Mar 18 23:42:52 2001 +++ AP625_source/pp.c Thu Mar 22 17:41:19 2001 @@ -1,6 +1,6 @@ /* pp.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -2020,39 +2020,51 @@ SV *sv; I32 len; STRLEN curlen; - STRLEN utfcurlen; + STRLEN utf8_curlen; I32 pos; I32 rem; I32 fail; I32 lvalue = PL_op->op_flags & OPf_MOD || LVRET; char *tmps; I32 arybase = PL_curcop->cop_arybase; + SV *repl_sv = NULL; char *repl = 0; STRLEN repl_len; int num_args = PL_op->op_private & 7; + bool repl_need_utf8_upgrade = FALSE; + bool repl_is_utf8 = FALSE; SvTAINTED_off(TARG); /* decontaminate */ SvUTF8_off(TARG); /* decontaminate */ if (num_args > 2) { if (num_args > 3) { - sv = POPs; - repl = SvPV(sv, repl_len); + repl_sv = POPs; + repl = SvPV(repl_sv, repl_len); + repl_is_utf8 = DO_UTF8(repl_sv) && SvCUR(repl_sv); } len = POPi; } pos = POPi; sv = POPs; PUTBACK; + if (repl_sv) { + if (repl_is_utf8) { + if (!DO_UTF8(sv)) + sv_utf8_upgrade(sv); + } + else if (DO_UTF8(sv)) + repl_need_utf8_upgrade = TRUE; + } tmps = SvPV(sv, curlen); if (DO_UTF8(sv)) { - utfcurlen = sv_len_utf8(sv); - if (utfcurlen == curlen) - utfcurlen = 0; + utf8_curlen = sv_len_utf8(sv); + if (utf8_curlen == curlen) + utf8_curlen = 0; else - curlen = utfcurlen; + curlen = utf8_curlen; } else - utfcurlen = 0; + utf8_curlen = 0; if (pos >= arybase) { pos -= arybase; @@ -2097,14 +2109,27 @@ else { I32 upos = pos; I32 urem = rem; - if (utfcurlen) + if (utf8_curlen) sv_pos_u2b(sv, &pos, &rem); tmps += pos; sv_setpvn(TARG, tmps, rem); - if (utfcurlen) + if (utf8_curlen) SvUTF8_on(TARG); - if (repl) + if (repl) { + SV* repl_sv_copy = NULL; + + if (repl_need_utf8_upgrade) { + repl_sv_copy = newSVsv(repl_sv); + sv_utf8_upgrade(repl_sv_copy); + repl = SvPV(repl_sv_copy, repl_len); + repl_is_utf8 = DO_UTF8(repl_sv_copy) && SvCUR(sv); + } sv_insert(sv, pos, rem, repl, repl_len); + if (repl_is_utf8) + SvUTF8_on(sv); + if (repl_sv_copy) + SvREFCNT_dec(repl_sv_copy); + } else if (lvalue) { /* it's an lvalue! */ if (!SvGMAGICAL(sv)) { if (SvROK(sv)) { diff -ruN perl-5.6.1-TRIAL3/pp.h AP625_source/pp.h --- perl-5.6.1-TRIAL3/pp.h Sun Mar 18 23:37:35 2001 +++ AP625_source/pp.h Thu Mar 22 17:41:19 2001 @@ -1,6 +1,6 @@ /* pp.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/pp_ctl.c AP625_source/pp_ctl.c --- perl-5.6.1-TRIAL3/pp_ctl.c Sun Mar 18 23:37:35 2001 +++ AP625_source/pp_ctl.c Thu Mar 22 17:41:19 2001 @@ -1,6 +1,6 @@ /* pp_ctl.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/pp_hot.c AP625_source/pp_hot.c --- perl-5.6.1-TRIAL3/pp_hot.c Sun Mar 18 23:46:16 2001 +++ AP625_source/pp_hot.c Thu Mar 22 17:41:19 2001 @@ -1,6 +1,6 @@ /* pp_hot.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/pp_sys.c AP625_source/pp_sys.c --- perl-5.6.1-TRIAL3/pp_sys.c Sun Mar 18 23:47:17 2001 +++ AP625_source/pp_sys.c Thu Mar 22 17:41:19 2001 @@ -1,6 +1,6 @@ /* pp_sys.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/proto.h AP625_source/proto.h --- perl-5.6.1-TRIAL3/proto.h Sun Mar 18 23:37:36 2001 +++ AP625_source/proto.h Thu Mar 22 17:41:19 2001 @@ -842,10 +842,8 @@ PERL_CALLCONV int Perl_yyerror(pTHX_ char* s); #ifdef USE_PURE_BISON PERL_CALLCONV int Perl_yylex_r(pTHX_ YYSTYPE *lvalp, int *lcharp); -PERL_CALLCONV int Perl_yylex(pTHX_ YYSTYPE *lvalp, int *lcharp); -#else -PERL_CALLCONV int Perl_yylex(pTHX); #endif +PERL_CALLCONV int Perl_yylex(pTHX); PERL_CALLCONV int Perl_yyparse(pTHX); PERL_CALLCONV int Perl_yywarn(pTHX_ char* s); #if defined(MYMALLOC) diff -ruN perl-5.6.1-TRIAL3/regcomp.c AP625_source/regcomp.c --- perl-5.6.1-TRIAL3/regcomp.c Thu Mar 15 07:25:20 2001 +++ AP625_source/regcomp.c Thu Mar 22 17:41:19 2001 @@ -69,7 +69,7 @@ * **** Alterations to Henry's code are... **** - **** Copyright (c) 1991-2000, Larry Wall + **** Copyright (c) 1991-2001, Larry Wall **** **** You may distribute under the terms of either the GNU General Public **** License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/regexec.c AP625_source/regexec.c --- perl-5.6.1-TRIAL3/regexec.c Thu Feb 22 18:57:57 2001 +++ AP625_source/regexec.c Thu Mar 22 17:41:19 2001 @@ -66,7 +66,7 @@ * **** Alterations to Henry's code are... **** - **** Copyright (c) 1991-2000, Larry Wall + **** Copyright (c) 1991-2001, Larry Wall **** **** You may distribute under the terms of either the GNU General Public **** License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/run.c AP625_source/run.c --- perl-5.6.1-TRIAL3/run.c Sat Mar 3 11:53:20 2001 +++ AP625_source/run.c Thu Mar 22 17:41:19 2001 @@ -1,6 +1,6 @@ /* run.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -90,7 +90,7 @@ if (svp) PerlIO_printf(Perl_debug_log, "(%s)", SvPV(*svp,n_a)); else - PerlIO_printf(Perl_debug_log, "[%"UVuf"]", o->op_targ); + PerlIO_printf(Perl_debug_log, "[%"UVuf"]", (UV)o->op_targ); break; default: break; diff -ruN perl-5.6.1-TRIAL3/scope.c AP625_source/scope.c --- perl-5.6.1-TRIAL3/scope.c Thu Mar 15 07:25:20 2001 +++ AP625_source/scope.c Thu Mar 22 17:41:19 2001 @@ -1,6 +1,6 @@ /* scope.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -207,6 +207,9 @@ } SvMAGIC(sv) = SvMAGIC(osv); SvFLAGS(sv) |= SvMAGICAL(osv); + /* XXX SvMAGIC() is *shared* between osv and sv. This can + * lead to coredumps when both SVs are destroyed without one + * of their SvMAGIC() slots being NULLed. */ PL_localizing = 1; SvSETMAGIC(sv); PL_localizing = 0; @@ -678,19 +681,20 @@ SvMAGICAL_off(sv); SvMAGIC(sv) = 0; } - /* XXX this branch is pretty bogus--note that we seem to - * only get here if the mg_get() in save_scalar_at() ends - * up croaking. This code irretrievably clears(!) the magic - * on the SV to avoid further croaking that might ensue - * when the SvSETMAGIC() below is called. This needs a - * total rethink. --GSAR */ + /* XXX This branch is pretty bogus. This code irretrievably + * clears(!) the magic on the SV (either to avoid further + * croaking that might ensue when the SvSETMAGIC() below is + * called, or to avoid two different SVs pointing at the same + * SvMAGIC()). This needs a total rethink. --GSAR */ else if (SvTYPE(value) >= SVt_PVMG && SvMAGIC(value) && SvTYPE(value) != SVt_PVGV) { SvFLAGS(value) |= (SvFLAGS(value) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT; SvMAGICAL_off(value); - mg_free(value); + /* XXX this is a leak when we get here because the + * mg_get() in save_scalar_at() croaked */ + SvMAGIC(value) = 0; } SvREFCNT_dec(sv); *(SV**)ptr = value; diff -ruN perl-5.6.1-TRIAL3/sv.c AP625_source/sv.c --- perl-5.6.1-TRIAL3/sv.c Sun Mar 18 23:50:35 2001 +++ AP625_source/sv.c Thu Mar 22 17:41:20 2001 @@ -1,6 +1,6 @@ /* sv.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/sv.h AP625_source/sv.h --- perl-5.6.1-TRIAL3/sv.h Sun Mar 18 23:51:49 2001 +++ AP625_source/sv.h Thu Mar 22 17:41:20 2001 @@ -1,6 +1,6 @@ /* sv.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/t/comp/proto.t AP625_source/t/comp/proto.t --- perl-5.6.1-TRIAL3/t/comp/proto.t Thu Mar 15 07:25:20 2001 +++ AP625_source/t/comp/proto.t Thu Mar 22 17:41:20 2001 @@ -492,6 +492,7 @@ no warnings 'redefine'; my $eval = "sub evaled_subroutine $p { &void *; }"; eval $eval; - print "# eval[$eval]\nnot " unless $@ && $@ =~ /syntax error/; + # The /Syntax error/ is seen on OS/390. It's /syntax error/ elsewhere + print "# eval[$eval]\nnot " unless $@ && $@ =~ /[Ss]yntax error/; print "ok ", $i++, "\n"; } diff -ruN perl-5.6.1-TRIAL3/t/comp/require.t AP625_source/t/comp/require.t --- perl-5.6.1-TRIAL3/t/comp/require.t Thu Feb 22 18:57:57 2001 +++ AP625_source/t/comp/require.t Thu Mar 22 17:41:20 2001 @@ -8,7 +8,15 @@ # don't make this lexical $i = 1; -print "1..23\n"; +# Tests 21 .. 23 work only with non broken UTF16-as-code implementations, +# i.e. not EBCDIC Perls. +my $Is_EBCDIC = ord('A') == 193 ? 1 : 0; +if ($Is_EBCDIC) { + print "1..20\n"; +} +else { + print "1..23\n"; +} sub do_require { %INC = (); @@ -125,6 +133,8 @@ dofile(); sub dofile { do "bleah.do"; }; print $x; + +exit if $Is_EBCDIC; # UTF-encoded things my $utf8 = chr(0xFEFF); diff -ruN perl-5.6.1-TRIAL3/t/lib/bigfloat.t AP625_source/t/lib/bigfloat.t --- perl-5.6.1-TRIAL3/t/lib/bigfloat.t Thu Feb 22 18:57:57 2001 +++ AP625_source/t/lib/bigfloat.t Tue Feb 6 15:43:48 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-TRIAL3/t/lib/bigfltpm.t AP625_source/t/lib/bigfltpm.t --- perl-5.6.1-TRIAL3/t/lib/bigfltpm.t Thu Feb 22 18:57:57 2001 +++ AP625_source/t/lib/bigfltpm.t Tue Feb 6 15:43:48 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-TRIAL3/t/lib/filehand.t AP625_source/t/lib/filehand.t --- perl-5.6.1-TRIAL3/t/lib/filehand.t Thu Feb 22 18:57:57 2001 +++ AP625_source/t/lib/filehand.t Thu Mar 22 17:41:20 2001 @@ -20,7 +20,7 @@ autoflush $mystdout; print "1..11\n"; -print $mystdout "ok ",fileno($mystdout),"\n"; +print $mystdout "ok ".fileno($mystdout)."\n"; $fh = (new FileHandle "./TEST", O_RDONLY or new FileHandle "TEST", O_RDONLY) diff -ruN perl-5.6.1-TRIAL3/t/lib/texttabs.t AP625_source/t/lib/texttabs.t --- perl-5.6.1-TRIAL3/t/lib/texttabs.t Sat Mar 3 11:53:20 2001 +++ AP625_source/t/lib/texttabs.t Thu Mar 22 17:41:20 2001 @@ -91,9 +91,7 @@ $| = 1; -print "1.."; -print @tests/2; -print "\n"; +print "1..".scalar(@tests/2)."\n"; use Text::Tabs; diff -ruN perl-5.6.1-TRIAL3/t/op/numconvert.t AP625_source/t/op/numconvert.t --- perl-5.6.1-TRIAL3/t/op/numconvert.t Thu Feb 22 18:57:58 2001 +++ AP625_source/t/op/numconvert.t Tue Feb 6 15:43:48 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-TRIAL3/t/op/regmesg.t AP625_source/t/op/regmesg.t --- perl-5.6.1-TRIAL3/t/op/regmesg.t Thu Feb 22 18:57:58 2001 +++ AP625_source/t/op/regmesg.t Thu Mar 22 17:41:20 2001 @@ -103,7 +103,7 @@ my $Is_EBCDIC = (ord('A') == 193); if ($Is_EBCDIC) { my @utf8_death = grep(/utf8/, @death); - $total = $total - $#utf8_death; + $total = $total - scalar(@utf8_death); } print "1..$total\n"; diff -ruN perl-5.6.1-TRIAL3/t/op/substr.t AP625_source/t/op/substr.t --- perl-5.6.1-TRIAL3/t/op/substr.t Thu Feb 22 18:57:58 2001 +++ AP625_source/t/op/substr.t Thu Mar 22 17:41:20 2001 @@ -1,6 +1,6 @@ #!./perl -print "1..162\n"; +print "1..174\n"; #P = start of string Q = start of substr R = end of substr S = end of string @@ -548,3 +548,40 @@ substr($x, 2, 1) eq "\x{100}" && substr($x, 3, 1) eq "\x{FF}" && substr($x, 4, 1) eq "\x{F3}"; + +substr($x = "ab", 0, 0, "\x{100}\x{200}"); +ok 163, $x eq "\x{100}\x{200}ab"; + +substr($x = "\x{100}\x{200}", 0, 0, "ab"); +ok 164, $x eq "ab\x{100}\x{200}"; + +substr($x = "ab", 1, 0, "\x{100}\x{200}"); +ok 165, $x eq "a\x{100}\x{200}b"; + +substr($x = "\x{100}\x{200}", 1, 0, "ab"); +ok 166, $x eq "\x{100}ab\x{200}"; + +substr($x = "ab", 2, 0, "\x{100}\x{200}"); +ok 167, $x eq "ab\x{100}\x{200}"; + +substr($x = "\x{100}\x{200}", 2, 0, "ab"); +ok 168, $x eq "\x{100}\x{200}ab"; + +substr($x = "\xFFb", 0, 0, "\x{100}\x{200}"); +ok 169, $x eq "\x{100}\x{200}\xFFb"; + +substr($x = "\x{100}\x{200}", 0, 0, "\xFFb"); +ok 170, $x eq "\xFFb\x{100}\x{200}"; + +substr($x = "\xFFb", 1, 0, "\x{100}\x{200}"); +ok 171, $x eq "\xFF\x{100}\x{200}b"; + +substr($x = "\x{100}\x{200}", 1, 0, "\xFFb"); +ok 172, $x eq "\x{100}\xFFb\x{200}"; + +substr($x = "\xFFb", 2, 0, "\x{100}\x{200}"); +ok 173, $x eq "\xFFb\x{100}\x{200}"; + +substr($x = "\x{100}\x{200}", 2, 0, "\xFFb"); +ok 174, $x eq "\x{100}\x{200}\xFFb"; + diff -ruN perl-5.6.1-TRIAL3/toke.c AP625_source/toke.c --- perl-5.6.1-TRIAL3/toke.c Sun Mar 18 23:33:17 2001 +++ AP625_source/toke.c Thu Mar 22 17:41:20 2001 @@ -1,6 +1,6 @@ /* toke.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -79,7 +79,7 @@ # endif YYSTYPE* yylval_pointer[YYMAXLEVEL]; int* yychar_pointer[YYMAXLEVEL]; -int yyactlevel = 0; +int yyactlevel = -1; # undef yylval # undef yychar # define yylval (*yylval_pointer[yyactlevel]) @@ -2085,9 +2085,9 @@ { int r; + yyactlevel++; yylval_pointer[yyactlevel] = lvalp; yychar_pointer[yyactlevel] = lcharp; - yyactlevel++; if (yyactlevel >= YYMAXLEVEL) Perl_croak(aTHX_ "panic: YYMAXLEVEL"); @@ -2102,13 +2102,8 @@ #ifdef __SC__ #pragma segment Perl_yylex #endif - int -#ifdef USE_PURE_BISON -Perl_yylex(pTHX_ YYSTYPE *lvalp, int *lcharp) -#else Perl_yylex(pTHX) -#endif { register char *s; register char *d; diff -ruN perl-5.6.1-TRIAL3/utf8.c AP625_source/utf8.c --- perl-5.6.1-TRIAL3/utf8.c Thu Feb 22 18:57:58 2001 +++ AP625_source/utf8.c Thu Mar 22 17:41:20 2001 @@ -1,6 +1,6 @@ /* utf8.c * - * Copyright (c) 1998-2000, Larry Wall + * Copyright (c) 1998-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/utf8.h AP625_source/utf8.h --- perl-5.6.1-TRIAL3/utf8.h Sat Mar 3 11:53:20 2001 +++ AP625_source/utf8.h Thu Mar 22 17:41:20 2001 @@ -1,6 +1,6 @@ /* utf8.h * - * Copyright (c) 1998-2000, Larry Wall + * Copyright (c) 1998-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/util.c AP625_source/util.c --- perl-5.6.1-TRIAL3/util.c Sat Mar 3 11:53:20 2001 +++ AP625_source/util.c Thu Mar 22 17:41:20 2001 @@ -1,6 +1,6 @@ /* util.c * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/util.h AP625_source/util.h --- perl-5.6.1-TRIAL3/util.h Thu Feb 22 18:57:58 2001 +++ AP625_source/util.h Thu Mar 22 17:41:20 2001 @@ -1,6 +1,6 @@ /* util.h * - * Copyright (c) 1991-2000, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/vms/vms.c AP625_source/vms/vms.c --- perl-5.6.1-TRIAL3/vms/vms.c Sat Mar 3 11:53:20 2001 +++ AP625_source/vms/vms.c Thu Mar 22 17:41:20 2001 @@ -759,7 +759,7 @@ { $DESCRIPTOR(d_tab, "LNM$PROCESS"); struct dsc$descriptor_d d_name = {0,DSC$K_DTYPE_T,DSC$K_CLASS_D,0}; - unsigned long int iss, attr = 0; + unsigned long int iss, attr = LNM$M_CONFINE; unsigned char acmode = PSL$C_USER; struct itmlst_3 lnmlst[2] = {{0, LNM$_STRING, 0, 0}, {0, 0, 0, 0}}; @@ -1898,8 +1898,8 @@ fprintf(fp,"$ perl_del = \"delete\"\n"); fprintf(fp,"$ pif = \"if\"\n"); fprintf(fp,"$! --- define i/o redirection (sys$output set by lib$spawn)\n"); - fprintf(fp,"$ pif perl_popen_in .nes. \"\" then perl_define/user sys$input 'perl_popen_in'\n"); - fprintf(fp,"$ pif perl_popen_err .nes. \"\" then perl_define/user sys$error 'perl_popen_err'\n"); + fprintf(fp,"$ pif perl_popen_in .nes. \"\" then perl_define/user/name_attributes=confine sys$input 'perl_popen_in'\n"); + fprintf(fp,"$ pif perl_popen_err .nes. \"\" then perl_define/user/name_attributes=confine sys$error 'perl_popen_err'\n"); fprintf(fp,"$ pif perl_popen_out .nes. \"\" then perl_define sys$output 'perl_popen_out'\n"); fprintf(fp,"$ cmd = perl_popen_cmd\n"); fprintf(fp,"$! --- get rid of global symbols\n"); diff -ruN perl-5.6.1-TRIAL3/vms/vmspipe.com AP625_source/vms/vmspipe.com --- perl-5.6.1-TRIAL3/vms/vmspipe.com Thu Feb 22 18:57:58 2001 +++ AP625_source/vms/vmspipe.com Thu Mar 22 17:41:20 2001 @@ -6,8 +6,8 @@ $ perl_del = "delete" $ pif = "if" $! --- define i/o redirection (sys$output set by lib$spawn) -$ pif perl_popen_in .nes. "" then perl_define/user sys$input 'perl_popen_in' -$ pif perl_popen_err .nes. "" then perl_define/user sys$error 'perl_popen_err' +$ pif perl_popen_in .nes. "" then perl_define/user/name_attributes=confine sys$input 'perl_popen_in' +$ pif perl_popen_err .nes. "" then perl_define/user/name_attributes=confine sys$error 'perl_popen_err' $ pif perl_popen_out .nes. "" then perl_define sys$output 'perl_popen_out' $ cmd = perl_popen_cmd $! --- get rid of global symbols diff -ruN perl-5.6.1-TRIAL3/win32/Makefile AP625_source/win32/Makefile --- perl-5.6.1-TRIAL3/win32/Makefile Thu Mar 22 17:43:08 2001 +++ AP625_source/win32/Makefile Thu Mar 22 17:41:20 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" @@ -1034,7 +1034,6 @@ -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 diff -ruN perl-5.6.1-TRIAL3/win32/fcrypt.c AP625_source/win32/fcrypt.c --- perl-5.6.1-TRIAL3/win32/fcrypt.c Wed Dec 31 16:00:00 1969 +++ AP625_source/win32/fcrypt.c Tue Feb 6 15:43:49 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-TRIAL3/win32/makefile.mk AP625_source/win32/makefile.mk --- perl-5.6.1-TRIAL3/win32/makefile.mk Thu Mar 22 17:43:08 2001 +++ AP625_source/win32/makefile.mk Thu Mar 22 17:41:21 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,16 @@ # 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 + +# +# uncomment this if your Borland compiler is older than v5.5. +# +#BCCVER = 5.2 # # set the install locations of the compiler include/libraries. Running @@ -45,9 +50,10 @@ # If such is the case you may have to set CCHOME explicitly. Spaces in # the path name should not be quoted. # -#CCHOME *= c:\bc5 -#CCHOME *= $(MSVCDIR) -CCHOME *= c:\gcc-2.95.2-msvcrt +#CCHOME *= F:\Borland\BC5 +CCHOME *= $(MSVCDIR) +#CCHOME *= c:\gcc-2.95.2-msvcrt + CCINCDIR *= $(CCHOME)\include CCLIBDIR *= $(CCHOME)\lib @@ -68,7 +74,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 +88,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 +231,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. @@ -264,6 +270,8 @@ USE_5005THREADS *= undef +BCCVER *= 5.5 + .IF "$(USE_5005THREADS)" == "define" USE_ITHREADS != undef .ENDIF @@ -351,7 +359,11 @@ .IF "$(CCTYPE)" == "BORLAND" CC = bcc32 +.IF $(BCCVER) > 5.2 +LINK32 = ilink32 +.ELSE LINK32 = tlink32 +.END LIB32 = tlib /P128 IMPLIB = implib -c RSC = rc @@ -361,16 +373,16 @@ # INCLUDES = -I$(COREDIR) -I.\include -I. -I.. -I"$(CCINCDIR)" #PCHFLAGS = -H -Hc -H=c:\temp\bcmoduls.pch -DEFINES = -DWIN32 $(CRYPT_FLAG) +DEFINES = -DWIN32 -D_MT $(CRYPT_FLAG) LOCDEFS = -DPERLDLL -DPERL_CORE SUBSYS = console CXX_FLAG = -P LIBC = cw32mti.lib -LIBFILES = $(CRYPT_LIB) import32.lib $(LIBC) odbc32.lib odbccp32.lib +LIBFILES = $(CRYPT_LIB) import32.lib $(LIBC) .IF "$(CFG)" == "Debug" -OPTIMIZE = -v -D_RTLDLL -DDEBUGGING +OPTIMIZE = -v -D_RTLDLL -DDEBUGGING -y -R LINK_DBG = -v .ELSE OPTIMIZE = -O2 -D_RTLDLL @@ -383,6 +395,9 @@ OBJOUT_FLAG = -o EXEOUT_FLAG = -e LIBOUT_FLAG = +.IF $(BCCVER) > 5.2 +LINK_FLAGS += -Gn +.END .ELIF "$(CCTYPE)" == "GCC" @@ -455,8 +470,8 @@ LIBC = PerlCRT.lib .ENDIF -PERLEXE_RES = -PERLDLL_RES = +PERLEXE_RES = perlexe.res +PERLDLL_RES = perldll.res .IF "$(CFG)" == "Debug" .IF "$(CCTYPE)" == "MSVC20" @@ -1245,7 +1260,6 @@ -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 Binary files perl-5.6.1-TRIAL3/win32/perldll.ico and AP625_source/win32/perldll.ico differ diff -ruN perl-5.6.1-TRIAL3/win32/perldll.rc AP625_source/win32/perldll.rc --- perl-5.6.1-TRIAL3/win32/perldll.rc Wed Dec 31 16:00:00 1969 +++ AP625_source/win32/perldll.rc Tue Feb 6 15:43:49 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-TRIAL3/win32/perlexe.ico and AP625_source/win32/perlexe.ico differ diff -ruN perl-5.6.1-TRIAL3/win32/perlexe.rc AP625_source/win32/perlexe.rc --- perl-5.6.1-TRIAL3/win32/perlexe.rc Wed Dec 31 16:00:00 1969 +++ AP625_source/win32/perlexe.rc Tue Feb 6 15:43:49 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-TRIAL3/win32/win32.c AP625_source/win32/win32.c --- perl-5.6.1-TRIAL3/win32/win32.c Sat Mar 3 11:53:20 2001 +++ AP625_source/win32/win32.c Thu Mar 22 17:41:21 2001 @@ -3559,6 +3559,13 @@ */ static +XS(w32_BuildNumber) +{ + dXSARGS; + XSRETURN_PV(PRODUCT_BUILD_NUMBER); +} + +static XS(w32_GetCwd) { dXSARGS; @@ -4033,6 +4040,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-TRIAL3/win32/win32.h AP625_source/win32/win32.h --- perl-5.6.1-TRIAL3/win32/win32.h Sun Mar 18 23:33:18 2001 +++ AP625_source/win32/win32.h Thu Mar 22 17:41:21 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 diff -ruN perl-5.6.1-TRIAL3/win32/win32sck.c AP625_source/win32/win32sck.c --- perl-5.6.1-TRIAL3/win32/win32sck.c Thu Feb 22 18:58:00 2001 +++ AP625_source/win32/win32sck.c Thu Mar 22 17:41:21 2001 @@ -472,7 +472,11 @@ retval = getsockopt((SOCKET)osf, SOL_SOCKET, SO_TYPE, sockbuf, &optlen); if (retval != SOCKET_ERROR || WSAGetLastError() != WSAENOTSOCK) { +#if defined(__BORLANDC__)&&(__BORLANDC__<=0x520) + sbufptr->st_mode = S_IFIFO; +#else sbufptr->st_mode = _S_IFIFO; +#endif sbufptr->st_rdev = sbufptr->st_dev = (dev_t)fd; sbufptr->st_nlink = 1; sbufptr->st_uid = sbufptr->st_gid = sbufptr->st_ino = 0; diff -ruN perl-5.6.1-TRIAL3/x2p/EXTERN.h AP625_source/x2p/EXTERN.h --- perl-5.6.1-TRIAL3/x2p/EXTERN.h Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/EXTERN.h Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: EXTERN.h,v $$Revision: 4.1 $$Date: 92/08/07 18:29:05 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/INTERN.h AP625_source/x2p/INTERN.h --- perl-5.6.1-TRIAL3/x2p/INTERN.h Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/INTERN.h Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: INTERN.h,v $$Revision: 4.1 $$Date: 92/08/07 18:29:06 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/a2p.c AP625_source/x2p/a2p.c --- perl-5.6.1-TRIAL3/x2p/a2p.c Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/a2p.c Thu Mar 22 17:41:21 2001 @@ -5,7 +5,7 @@ #line 2 "a2p.y" /* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/a2p.h AP625_source/x2p/a2p.h --- perl-5.6.1-TRIAL3/x2p/a2p.h Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/a2p.h Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: a2p.h,v $$Revision: 4.1 $$Date: 92/08/07 18:29:09 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/a2p.y AP625_source/x2p/a2p.y --- perl-5.6.1-TRIAL3/x2p/a2p.y Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/a2p.y Thu Mar 22 17:41:21 2001 @@ -1,7 +1,7 @@ %{ /* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/a2py.c AP625_source/x2p/a2py.c --- perl-5.6.1-TRIAL3/x2p/a2py.c Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/a2py.c Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: a2py.c,v $$Revision: 4.1 $$Date: 92/08/07 18:29:14 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/hash.c AP625_source/x2p/hash.c --- perl-5.6.1-TRIAL3/x2p/hash.c Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/hash.c Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: hash.c,v $$Revision: 4.1 $$Date: 92/08/07 18:29:20 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/hash.h AP625_source/x2p/hash.h --- perl-5.6.1-TRIAL3/x2p/hash.h Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/hash.h Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: hash.h,v $$Revision: 4.1 $$Date: 92/08/07 18:29:21 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/proto.h AP625_source/x2p/proto.h --- perl-5.6.1-TRIAL3/x2p/proto.h Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/proto.h Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* proto.h * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/str.c AP625_source/x2p/str.c --- perl-5.6.1-TRIAL3/x2p/str.c Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/str.c Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: str.c,v $$Revision: 4.1 $$Date: 92/08/07 18:29:26 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/str.h AP625_source/x2p/str.h --- perl-5.6.1-TRIAL3/x2p/str.h Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/str.h Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: str.h,v $$Revision: 4.1 $$Date: 92/08/07 18:29:27 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/util.c AP625_source/x2p/util.c --- perl-5.6.1-TRIAL3/x2p/util.c Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/util.c Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: util.c,v $$Revision: 4.1 $$Date: 92/08/07 18:29:29 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/util.h AP625_source/x2p/util.h --- perl-5.6.1-TRIAL3/x2p/util.h Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/util.h Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: util.h,v $$Revision: 4.1 $$Date: 92/08/07 18:29:30 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. diff -ruN perl-5.6.1-TRIAL3/x2p/walk.c AP625_source/x2p/walk.c --- perl-5.6.1-TRIAL3/x2p/walk.c Thu Feb 22 18:58:00 2001 +++ AP625_source/x2p/walk.c Thu Mar 22 17:41:21 2001 @@ -1,6 +1,6 @@ /* $RCSfile: walk.c,v $$Revision: 4.1 $$Date: 92/08/07 18:29:31 $ * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2001, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. End of Patch. Detailed change log entries follow. ____________________________________________________________________________ [ 9299] By: gsar on 2001/03/22 16:53:45 Log: back out changes#7532,7521 for now (appears to have problems on IRIX) Branch: maint-5.6/perl ! ext/POSIX/POSIX.pm ext/POSIX/POSIX.pod ext/POSIX/POSIX.xs ! ext/POSIX/typemap pod/perlvar.pod ____________________________________________________________________________ [ 9292] By: gsar on 2001/03/22 07:12:00 Log: integrate changes#8306,8532 from mainline (missing USE_PURE_BISON fixes) Branch: maint-5.6/perl !> embed.h embed.pl objXSUB.h perlapi.c perly.y proto.h toke.c ____________________________________________________________________________ [ 9290] By: jhi on 2001/03/22 05:57:01 Log: Move MacOS Classic higher in the list of supported platforms. Branch: maint-5.6/perl ! pod/perlport.pod ____________________________________________________________________________ [ 9289] By: gsar on 2001/03/22 05:35:04 Log: revert part of change#6438 for compatibility (av_reify() appears to be needed to implement av_splice()ish things in XS) Branch: maint-5.6/perl ! embed.pl global.sym objXSUB.h perlapi.c ____________________________________________________________________________ [ 9288] By: gsar on 2001/03/22 03:09:19 Log: update copyright year Branch: maint-5.6/perl ! EXTERN.h INTERN.h README av.c av.h cop.h cv.h deb.c doio.c ! doop.c dump.c form.h gv.c gv.h handy.h hv.c hv.h mg.c mg.h ! op.c op.h perl.c perl.h perlio.c perly.y pp.c pp.h pp_ctl.c ! pp_hot.c pp_sys.c regcomp.c regexec.c run.c scope.c sv.c sv.h ! toke.c utf8.c utf8.h util.c util.h x2p/EXTERN.h x2p/INTERN.h ! x2p/a2p.c x2p/a2p.h x2p/a2p.y x2p/a2py.c x2p/hash.c x2p/hash.h ! x2p/proto.h x2p/str.c x2p/str.h x2p/util.c x2p/util.h ! x2p/walk.c ____________________________________________________________________________ [ 9286] By: gsar on 2001/03/21 19:49:54 Log: makefile.mk tweak Branch: maint-5.6/perl ! win32/Makefile win32/makefile.mk ____________________________________________________________________________ [ 9283] By: jhi on 2001/03/21 17:17:35 Log: Integrate change #9282 from mainline into maintperl, 4-arg UTF-8 substr(). Branch: maint-5.6/perl !> pp.c ____________________________________________________________________________ [ 9281] By: gsar on 2001/03/21 17:03:14 Log: makefile.mk defaults to GCC, not BORLAND (as mentioned in README.win32) Branch: maint-5.6/perl ! win32/makefile.mk ____________________________________________________________________________ [ 9280] By: gsar on 2001/03/21 17:01:20 Log: some tweaks to change#9278 (fork() emulation should be enabled by setting BUILD_FLAVOR instead of changing the defaults) Branch: maint-5.6/perl ! win32/makefile.mk ____________________________________________________________________________ [ 9279] By: gsar on 2001/03/21 16:47:19 Log: integrate change#9271 from mainline; a tweak to Glob.pm docs Branch: maint-5.6/perl ! ext/File/Glob/Glob.pm !> lib/Cwd.pm ____________________________________________________________________________ [ 9278] By: jhi on 2001/03/21 14:35:10 Log: Subject: [PATCH: 5.6.1-trial3] Borland C++ for Win32 fixes From: "Vadim Konovalov" Date: Wed, 21 Mar 2001 01:53:51 +0300 Message-ID: <004101c0b190$a749ea20$f7c030d4@vad> Branch: maint-5.6/perl ! win32/makefile.mk win32/win32sck.c ____________________________________________________________________________ [ 9277] By: jhi on 2001/03/21 13:58:28 Log: Integrate change #9270 from mainline to maintperl: continued 4-arg UTF-8 substr() fixing. Branch: maint-5.6/perl !> pp.c t/op/substr.t ____________________________________________________________________________ [ 9266] By: gsar on 2001/03/20 19:16:43 Log: VMS piping fixes (from Charles Lane) Branch: maint-5.6/perl ! vms/vms.c vms/vmspipe.com ____________________________________________________________________________ [ 9265] By: gsar on 2001/03/20 17:53:52 Log: cut-n-paste goof in change#9264 Branch: maint-5.6/perl ! ext/File/Glob/Glob.xs ____________________________________________________________________________ [ 9264] By: gsar on 2001/03/20 17:43:47 Log: do alphabetical sorting by default (for csh compatibility); bsd_glob() does ASCII sort by default as usual, unless GLOB_ALPHASORT was specified Branch: maint-5.6/perl ! ext/File/Glob/Changes ext/File/Glob/Glob.pm ! ext/File/Glob/Glob.xs ext/File/Glob/bsd_glob.c ! ext/File/Glob/bsd_glob.h ____________________________________________________________________________ [ 9263] By: gsar on 2001/03/20 16:40:08 Log: integrate change#9255 from mainline (unicode fix) substr($bytestr, i, n, $charstr) Branch: maint-5.6/perl !> Todo-5.6 pp.c t/op/substr.t ____________________________________________________________________________ [ 9262] By: gsar on 2001/03/20 15:57:41 Log: revert the leak fix in change#9142 (problem needs a more experimental fix unsuitable for 5.6.1) Branch: maint-5.6/perl ! scope.c ____________________________________________________________________________ [ 9260] By: jhi on 2001/03/20 14:05:46 Log: Subject: [PATCH perl-5.6.1-TRIAL3/run.c] printf warning From: Robin Barker Date: Tue, 20 Mar 2001 10:12:04 GMT Message-Id: <200103201012.KAA04738@tempest.npl.co.uk> Branch: maint-5.6/perl ! run.c ____________________________________________________________________________ [ 9259] By: jhi on 2001/03/20 14:04:39 Log: Subject: [MacPerl-Porters] [PATCH] POSIX, File::Path (Mac OS) for 5.6.1 and 5.7 From: Chris Nandor Date: Tue, 20 Mar 2001 00:40:56 -0500 Message-Id: Branch: maint-5.6/perl ! ext/POSIX/POSIX.xs lib/File/Path.pm ____________________________________________________________________________ [ 9256] By: jhi on 2001/03/20 04:43:12 Log: Subject: [PATCH: 5.6.1-trial3] test fixes and installation cleanliness for OS/390 From: Peter Prymmer Date: Mon, 19 Mar 2001 16:43:13 -0800 (PST) Message-ID: Branch: maint-5.6/perl ! installperl t/comp/proto.t t/comp/require.t t/op/regmesg.t ____________________________________________________________________________ [ 9250] By: jhi on 2001/03/19 21:18:00 Log: A more robust solution for the 64bitall AIX dynaloading problem, from Jens-Uwe Mager. Branch: maint-5.6/perl ! ext/DynaLoader/dl_aix.xs ext/DynaLoader/hints/aix.pl ____________________________________________________________________________ [ 9247] By: jhi on 2001/03/19 19:59:53 Log: 64-bit AIX dynaloading problem (see #9244) idea from Jens-Uwe Mager. Branch: maint-5.6/perl ! ext/DynaLoader/dl_aix.xs ____________________________________________________________________________ [ 9245] By: jhi on 2001/03/19 19:05:19 Log: Integrate change #9243 from mainline into maintperl. Subject: [PATCH perl-5.6.1-TRIAL3/README.vmesa] bad =item paragraphs Branch: maint-5.6/perl !> README.vmesa ____________________________________________________________________________ [ 9244] By: jhi on 2001/03/19 19:03:15 Log: Get 64bitall AIX building, but still does not test okay: dynaloading anything fails, for example for op/defins: Can't load '../lib/auto/File/Glob/Glob.so' for module File::Glob: loadbind: A system call received a parameter that is not valid. at ../lib/XSLoader.pm line 75. at ../lib/File/Glob.pm line 99 (update: fixed by #9247,9250) Branch: maint-5.6/perl ! hints/aix.sh ____________________________________________________________________________ [ 9241] By: gsar on 2001/03/19 17:34:46 Log: VMSify tests (from Charles Lane) Branch: maint-5.6/perl ! t/lib/filehand.t t/lib/texttabs.t