This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
The real Mc5_54 integration.
authorJarkko Hietaniemi <jhi@iki.fi>
Wed, 2 Dec 1998 10:29:00 +0000 (10:29 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Wed, 2 Dec 1998 10:29:00 +0000 (10:29 +0000)
p4raw-id: //depot/cfgperl@2434

Configure
ext/Socket/Socket.xs
hints/freebsd.sh
hints/os390.sh
lib/perl5db.pl
regcomp.c
regexec.c
t/op/filetest.t [changed mode: 0755->0644]
t/op/pwent.t
util.c
vms/perly_c.vms

index db88d84..bba0632 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -4149,7 +4149,7 @@ $cat >try.msg <<'EOM'
 I've tried to compile and run the following simple program:
 
 EOM
-$cat try.c
+$cat try.c >> try.msg
 
 $cat >> try.msg <<EOM
 
@@ -5092,6 +5092,10 @@ EOM
     esac
 
        : Try to guess additional flags to pick up local libraries.
+       : Be careful not to append to a plain 'none'
+       case "$dflt" in
+       none) dflt='' ;;
+       esac
        for thisflag in $ldflags; do
                case "$thisflag" in
                -L*)
@@ -10510,8 +10514,8 @@ while $test "$cont"; do
        if set $ans val -f; eval $csym; $val; then
                cont=''
        else
-               dflt=n
-               rp="Function $ans does not exist. Use that name anyway?"
+                dflt=y
+                rp="I cannot find function $ans.  Use that name anyway?"
                . ./myread
                dflt=rand
                case "$ans" in
index 1c541d7..0bd6e59 100644 (file)
@@ -602,7 +602,7 @@ constant(char *name, int arg)
 #endif
        if (strEQ(name, "SCM_CREDENTIALS"))
 #ifdef SCM_CREDENTIALS
-           return SCM_CREDENTIALSS;
+           return SCM_CREDENTIALS;
 #else
            goto not_there;
 #endif
index 0dbe323..65ea8c5 100644 (file)
@@ -165,3 +165,14 @@ EOM
 esac
 EOSH
 # XXX EXPERIMENTAL  --end of call-back
+
+# From: Anton Berezin <tobez@plab.ku.dk>
+# To: perl5-porters@perl.org
+# Subject: [PATCH 5.005_54] Configure - hints/freebsd.sh signal handler type
+# Date: 30 Nov 1998 19:46:24 +0100
+# Message-ID: <864srhhvcv.fsf@lion.plab.ku.dk>
+
+signal_t='void'
+d_voidsig='define'
+
+
index d7ade09..08b60c8 100644 (file)
@@ -17,6 +17,8 @@
 # To get ANSI C, we need to use c89, and ld doesn't exist
 cc='c89'
 ld='c89'
+# To link via definition side decks we need the dll option
+cccdlflags='-W 0,dll,"langlvl(extended)"'
 # c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again,
 # YYDYNAMIC ensures that the OS/390 yacc generated parser is reentrant.
 # -DEBCDIC should come from Configure.
index 03f9d44..4d05e6d 100644 (file)
@@ -1752,13 +1752,7 @@ sub list_versions {
     } 
     $version{$file} .= $INC{$file};
   }
-  do 'dumpvar.pl' unless defined &main::dumpValue;
-  if (defined &main::dumpValue) {
-    local $frame = 0;
-    &main::dumpValue(\%version);
-  } else {
-    print $OUT "dumpvar.pl not available.\n";
-  }
+  dumpit($OUT,\%version);
 }
 
 sub sethelp {
index 0915af6..70682ae 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -2093,6 +2093,44 @@ regwhite(char *p, char *e)
     return p;
 }
 
+/* parse POSIX character classes like [[:foo:]] */
+STATIC char*
+regpposixcc(I32 value)
+{
+    char *posixcc = 0;
+
+    if (value == '[' && PL_regcomp_parse + 1 < PL_regxend &&
+       /* I smell either [: or [= or [. -- POSIX has been here, right? */
+       (*PL_regcomp_parse == ':' ||
+        *PL_regcomp_parse == '=' ||
+        *PL_regcomp_parse == '.')) {
+       char  c = *PL_regcomp_parse;
+       char* s = PL_regcomp_parse++;
+           
+       while (PL_regcomp_parse < PL_regxend && *PL_regcomp_parse != c)
+           PL_regcomp_parse++;
+       if (PL_regcomp_parse == PL_regxend)
+           /* Grandfather lone [:, [=, [. */
+           PL_regcomp_parse = s;
+       else {
+           PL_regcomp_parse++; /* skip over the c */
+           if (*PL_regcomp_parse == ']') {
+               /* Not Implemented Yet.
+                * (POSIX Extended Character Classes, that is)
+                * The text between e.g. [: and :] would start
+                * at s + 1 and stop at regcomp_parse - 2. */
+               if (ckWARN(WARN_UNSAFE) && !SIZE_ONLY)
+                   warner(WARN_UNSAFE,
+                          "Character class syntax [%c %c] is reserved for future extensions", c, c);
+               PL_regcomp_parse++; /* skip over the ending ] */
+               posixcc = s + 1;
+           }
+       }
+    }
+
+    return posixcc;
+}
+
 STATIC regnode *
 regclass(void)
 {
@@ -2130,32 +2168,9 @@ regclass(void)
     while (PL_regcomp_parse < PL_regxend && *PL_regcomp_parse != ']') {
        skipcond:
        value = UCHARAT(PL_regcomp_parse++);
-       if (value == '[' && PL_regcomp_parse + 1 < PL_regxend &&
-           /* I smell either [: or [= or [. -- POSIX has been here, right? */
-           (*PL_regcomp_parse == ':' || *PL_regcomp_parse == '=' || *PL_regcomp_parse == '.')) {
-           char  posixccc = *PL_regcomp_parse;
-           char* posixccs = PL_regcomp_parse++;
-           
-           while (PL_regcomp_parse < PL_regxend && *PL_regcomp_parse != posixccc)
-               PL_regcomp_parse++;
-           if (PL_regcomp_parse == PL_regxend)
-               /* Grandfather lone [:, [=, [. */
-               PL_regcomp_parse = posixccs;
-           else {
-               PL_regcomp_parse++; /* skip over the posixccc */
-               if (*PL_regcomp_parse == ']') {
-                   /* Not Implemented Yet.
-                    * (POSIX Extended Character Classes, that is)
-                    * The text between e.g. [: and :] would start
-                    * at posixccs + 1 and stop at regcomp_parse - 2. */
-                   if (ckWARN(WARN_UNSAFE) && !SIZE_ONLY)
-                       warner(WARN_UNSAFE,
-                           "Character class syntax [%c %c] is reserved for future extensions", posixccc, posixccc);
-                   PL_regcomp_parse++; /* skip over the ending ] */
-               }
-           }
-       }
-       if (value == '\\') {
+       if (value == '[')
+           (void)regpposixcc(value); /* ignore the return value for now */
+       else if (value == '\\') {
            value = UCHARAT(PL_regcomp_parse++);
            switch (value) {
            case 'w':
@@ -2350,33 +2365,9 @@ regclassutf8(void)
        value = utf8_to_uv((U8*)PL_regcomp_parse, &numlen);
        PL_regcomp_parse += numlen;
 
-       if (value == '[' && PL_regcomp_parse + 1 < PL_regxend &&
-           /* I smell either [: or [= or [. -- POSIX has been here, right? */
-           (*PL_regcomp_parse == ':' || *PL_regcomp_parse == '=' || *PL_regcomp_parse == '.')) {
-           char  posixccc = *PL_regcomp_parse;
-           char* posixccs = PL_regcomp_parse++;
-           
-           while (PL_regcomp_parse < PL_regxend && *PL_regcomp_parse != posixccc)
-               PL_regcomp_parse++;
-           if (PL_regcomp_parse == PL_regxend)
-               /* Grandfather lone [:, [=, [. */
-               PL_regcomp_parse = posixccs;
-           else {
-               PL_regcomp_parse++; /* skip over the posixccc */
-               if (*PL_regcomp_parse == ']') {
-                   /* Not Implemented Yet.
-                    * (POSIX Extended Character Classes, that is)
-                    * The text between e.g. [: and :] would start
-                    * at posixccs + 1 and stop at regcomp_parse - 2. */
-                   if (ckWARN(WARN_UNSAFE) && !SIZE_ONLY)
-                       warner(WARN_UNSAFE,
-                           "Character class syntax [%c %c] is reserved for future extensions", posixccc, posixccc);
-                   PL_regcomp_parse++; /* skip over the ending ] */
-               }
-           }
-       }
-
-       if (value == '\\') {
+       if (value == '[')
+           (void)regpposixcc(value); /* ignore the return value for now */
+       else if (value == '\\') {
            value = utf8_to_uv((U8*)PL_regcomp_parse, &numlen);
            PL_regcomp_parse += numlen;
            switch (value) {
index 4879706..53b1664 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -2669,7 +2669,7 @@ regrepeat_hard(regnode *p, I32 max, I32 *lp)
 }
 
 /*
- - regclass - determine if a character falls into a character class
+ - reginclass - determine if a character falls into a character class
  */
 
 STATIC bool
old mode 100755 (executable)
new mode 100644 (file)
index d562ec3..4151ef2 100755 (executable)
@@ -35,6 +35,7 @@ my %seen;
 
 while (<PW>) {
     chomp;
+    next if /^\+/; # ignore NIS includes
     my @s = split /:/;
     my ($name_s, $passwd_s, $uid_s, $gid_s, $gcos_s, $home_s, $shell_s) = @s;
     if (@s) {
diff --git a/util.c b/util.c
index 1c5ea59..3be6a91 100644 (file)
--- a/util.c
+++ b/util.c
@@ -15,8 +15,7 @@
 #include "EXTERN.h"
 #include "perl.h"
 
-/* XXX Configure test needed */
-#if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX) || defined(__NetBSD__)
+#if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX)
 #include <signal.h>
 #endif
 
index 2fc1781..3a4ef8b 100644 (file)
@@ -31,7 +31,7 @@ dep(void)
 
 #line 30 "perly.y"
 #define YYERRCODE 256
-dEXT short yylhs[] = {                                        -1,
+static short yylhs[] = {                                        -1,
    45,    0,    9,    7,   10,    8,   11,   11,   11,   12,
    12,   12,   12,   24,   24,   24,   24,   24,   24,   24,
    15,   15,   15,   14,   14,   42,   42,   13,   13,   13,
@@ -51,7 +51,7 @@ dEXT short yylhs[] = {                                        -1,
    34,   34,   34,    2,    2,   43,   23,   18,   19,   20,
    21,   22,   35,   35,   35,   35,
 };
-dEXT short yylen[] = {                                         2,
+static short yylen[] = {                                         2,
     0,    2,    4,    0,    4,    0,    0,    2,    2,    2,
     1,    2,    3,    1,    1,    3,    3,    3,    3,    3,
     0,    2,    6,    7,    7,    0,    2,    8,    8,   10,
@@ -71,7 +71,7 @@ dEXT short yylen[] = {                                         2,
     0,    1,    2,    1,    1,    1,    2,    2,    2,    2,
     2,    2,    1,    1,    1,    1,
 };
-dEXT short yydefred[] = {                                      1,
+static short yydefred[] = {                                      1,
     0,    7,    0,   45,   56,   54,    0,   54,    8,   46,
     9,   11,    0,   47,   48,   49,    0,    0,    0,   63,
    64,   14,    4,  157,    0,    0,  130,    0,  152,    0,
@@ -110,14 +110,14 @@ dEXT short yydefred[] = {                                      1,
    22,    0,    0,    0,   31,    5,    0,   30,    0,    0,
    33,    0,   23,
 };
-dEXT short yydgoto[] = {                                       1,
+static short yydgoto[] = {                                       1,
     9,   66,   10,   18,   95,   17,   86,  339,   89,  328,
     3,   11,   12,   68,  344,  263,   70,   71,   72,   73,
    74,   75,   76,  269,   78,  270,  259,  261,  264,  272,
   260,  262,  113,  198,   91,   79,  238,   81,   83,  179,
   250,  142,  267,   13,    2,   14,   15,   16,   85,  256,
 };
-dEXT short yysindex[] = {                                      0,
+static short yysindex[] = {                                      0,
     0,    0,  -66,    0,    0,    0,  -48,    0,    0,    0,
     0,    0,  645,    0,    0,    0, -232, -227,  -27,    0,
     0,    0,    0,    0,  -23,  -23,    0,   -6,    0, 2099,
@@ -156,7 +156,7 @@ dEXT short yysindex[] = {                                      0,
     0, 2099, -206,  256,    0,    0,  259,    0,   92,   92,
     0, -238,    0,
 };
-dEXT short yyrindex[] = {                                      0,
+static short yyrindex[] = {                                      0,
     0,    0,  249,    0,    0,    0,    0,    0,    0,    0,
     0,    0,    0,    0,    0,    0,  184,    0,    0,    0,
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
@@ -195,7 +195,7 @@ dEXT short yyrindex[] = {                                      0,
     0,    0,   59,    0,    0,    0,    0,    0,    0,    0,
     0,  154,    0,
 };
-dEXT short yygindex[] = {                                      0,
+static short yygindex[] = {                                      0,
     0,    0,    0,  374,  351,    0,  -12,    0,  946,  413,
   -83,    0,    0,    0, -311,  -13, 4007, 2893,    0,    0,
     0,    0,    0,  372,   -8,    0,    0,  246, -131,   43,
@@ -203,7 +203,7 @@ dEXT short yygindex[] = {                                      0,
     0, -271,    0,    0,    0,    0,    0,    0,    0,    0,
 };
 #define YYTABLESIZE 4293
-dEXT short yytable[] = {                                      69,
+static short yytable[] = {                                      69,
   207,   62,  181,  104,  168,  102,  104,  204,  168,  248,
    20,  208,   62,  253,   58,  285,  274,  170,  298,  345,
   104,  104,  172,  202,   80,  104,  311,  148,  149,   82,
@@ -635,7 +635,7 @@ dEXT short yytable[] = {                                      69,
     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     0,    0,  317,
 };
-dEXT short yycheck[] = {                                      13,
+static short yycheck[] = {                                      13,
    41,   36,   86,   41,   91,   40,   44,   59,   91,   59,
    59,   93,   36,  183,   59,   59,   41,   91,   41,  331,
    58,   59,   91,   40,  257,   63,   41,  297,  298,  257,
@@ -1073,7 +1073,7 @@ dEXT short yycheck[] = {                                      13,
 #endif
 #define YYMAXTOKEN 314
 #if YYDEBUG
-dEXT char * yyname[] = {
+static char *yyname[] = {
 "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0,
 0,0,0,0,0,"':'","';'",0,0,0,"'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -1090,7 +1090,7 @@ dEXT char * yyname[] = {
 "SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP","PREINC","PREDEC","POSTINC",
 "POSTDEC","ARROW",
 };
-dEXT char * yyrule[] = {
+static char *yyrule[] = {
 "$accept : prog",
 "$$1 :",
 "prog : $$1 lineseq",