diff options
author | Abhijit Menon-Sen <ams@wiw.org> | 2001-07-06 06:56:32 +0530 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-07-06 01:11:50 +0000 |
commit | a27978d3b51a1694fbb3bf9d13a41f0518386f5c (patch) | |
tree | 7bff78ca93daef4611e6e1254a6fd73e14b860dc /toke.c | |
parent | 82c397ed3a4951f2883d92a4a7f58893312cd077 (diff) | |
download | perl-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.c | 21 |
1 files changed, 7 insertions, 14 deletions
@@ -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; |