summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorPaul Marquess <paul.marquess@btinternet.com>1998-07-29 10:28:45 +0100
committerGurusamy Sarathy <gsar@cpan.org>1998-08-09 11:31:53 +0000
commit599cee73f2261c5e09cde7ceba3f9a896989e117 (patch)
treeca10c96d845fe755d35da930b1935926856e99b9 /perl.c
parent33938b7370f825af073cea6d9fadf7e82857ec9c (diff)
downloadperl-599cee73f2261c5e09cde7ceba3f9a896989e117.tar.gz
lexical warnings; tweaks to places that didn't apply correctly
Message-Id: <9807290828.AA26286@claudius.bfsec.bt.co.uk> Subject: lexical warnings patch for 5.005_50 p4raw-id: //depot/perl@1773
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/perl.c b/perl.c
index e76d83afdf..16e8bc9628 100644
--- a/perl.c
+++ b/perl.c
@@ -403,7 +403,7 @@ perl_destruct(register PerlInterpreter *sv_interp)
PL_minus_a = FALSE;
PL_minus_F = FALSE;
PL_doswitches = FALSE;
- PL_dowarn = FALSE;
+ PL_dowarn = G_WARN_OFF;
PL_doextract = FALSE;
PL_sawampersand = FALSE; /* must save all match strings */
PL_sawstudy = FALSE; /* do fbm_instr on all strings */
@@ -680,6 +680,7 @@ setuid perl scripts securely.\n");
time(&PL_basetime);
oldscope = PL_scopestack_ix;
+ PL_dowarn = G_WARN_OFF;
JMPENV_PUSH(ret);
switch (ret) {
@@ -737,6 +738,8 @@ setuid perl scripts securely.\n");
case 'u':
case 'U':
case 'v':
+ case 'W':
+ case 'X':
case 'w':
if (s = moreswitches(s))
goto reswitch;
@@ -990,7 +993,7 @@ print \" \\@INC:\\n @INC\\n\";");
if (PL_do_undump)
my_unexec();
- if (PL_dowarn)
+ if (ckWARN(WARN_ONCE))
gv_check(PL_defstash);
LEAVE;
@@ -1748,7 +1751,18 @@ this system using `man perl' or `perldoc perl'. If you have access to the\n\
Internet, point your browser at http://www.perl.com/, the Perl Home Page.\n\n");
PerlProc_exit(0);
case 'w':
- PL_dowarn = TRUE;
+ if (! (PL_dowarn & G_WARN_ALL_MASK))
+ PL_dowarn |= G_WARN_ON;
+ s++;
+ return s;
+ case 'W':
+ PL_dowarn = G_WARN_ALL_ON|G_WARN_ON;
+ compiling.cop_warnings = WARN_ALL ;
+ s++;
+ return s;
+ case 'X':
+ PL_dowarn = G_WARN_ALL_OFF;
+ compiling.cop_warnings = WARN_NONE ;
s++;
return s;
case '*':