summaryrefslogtreecommitdiff
path: root/toke.c
diff options
context:
space:
mode:
authorAbhijit Menon-Sen <ams@wiw.org>2001-07-06 06:56:32 +0530
committerJarkko Hietaniemi <jhi@iki.fi>2001-07-06 01:11:50 +0000
commita27978d3b51a1694fbb3bf9d13a41f0518386f5c (patch)
tree7bff78ca93daef4611e6e1254a6fd73e14b860dc /toke.c
parent82c397ed3a4951f2883d92a4a7f58893312cd077 (diff)
downloadperl-a27978d3b51a1694fbb3bf9d13a41f0518386f5c.tar.gz
(Retracted by #11285.)
Subject: Re: [PATCH] mkdir() mode argument is missing initial 0 Message-ID: <20010706012632.A28327@lustre.dyn.wiw.org> p4raw-id: //depot/perl@11166
Diffstat (limited to 'toke.c')
-rw-r--r--toke.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/toke.c b/toke.c
index 3ae0f276e8..47dacaf832 100644
--- a/toke.c
+++ b/toke.c
@@ -4299,12 +4299,6 @@ Perl_yylex(pTHX)
LOP(OP_CRYPT,XTERM);
case KEY_chmod:
- if (ckWARN(WARN_CHMOD)) {
- for (d = s; d < PL_bufend && (isSPACE(*d) || *d == '('); d++) ;
- if (*d != '0' && isDIGIT(*d))
- Perl_warner(aTHX_ WARN_CHMOD,
- "chmod() mode argument is missing initial 0");
- }
LOP(OP_CHMOD,XTERM);
case KEY_chown:
@@ -5162,12 +5156,6 @@ Perl_yylex(pTHX)
LOP(OP_UTIME,XTERM);
case KEY_umask:
- if (ckWARN(WARN_UMASK)) {
- for (d = s; d < PL_bufend && (isSPACE(*d) || *d == '('); d++) ;
- if (*d != '0' && isDIGIT(*d))
- Perl_warner(aTHX_ WARN_UMASK,
- "umask: argument is missing initial 0");
- }
UNI(OP_UMASK);
case KEY_unshift:
@@ -6914,7 +6902,8 @@ Perl_scan_num(pTHX_ char *start, YYSTYPE* lvalp)
register char *e; /* end of temp buffer */
NV nv; /* number read, as a double */
SV *sv = Nullsv; /* place to put the converted number */
- bool floatit; /* boolean: int or float? */
+ bool floatit, /* boolean: int or float? */
+ octal = 0; /* Is this an octal number? */
char *lastub = 0; /* position of last underbar */
static char number_too_long[] = "Number too long";
@@ -6968,6 +6957,7 @@ Perl_scan_num(pTHX_ char *start, YYSTYPE* lvalp)
/* so it must be octal */
else {
shift = 3;
+ octal = 1;
s++;
}
@@ -7373,8 +7363,11 @@ vstring:
/* make the op for the constant and return */
- if (sv)
+ if (sv) {
lvalp->opval = newSVOP(OP_CONST, 0, sv);
+ if (octal)
+ ((SVOP *)lvalp->opval)->op_private |= OPpCONST_OCTAL;
+ }
else
lvalp->opval = Nullop;