| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
$Revision: 2.70 $ $Date: 2015/02/05 10:53:00 $
! Makefile.PL
add bin/encguess to EXE_FILES
2.69 2015/02/05 10:35:11
! bin/encguess
Refactored so that
* does not depend on non-core module (File::Slurp in particular)
* PODified document
* -s "encA encB" to -s encA,encB which is more shell-friendly
* and more
! MANIFEST
+ bin/encguess
Pulled: Added CLI wrapper for Encode::Guess
https://github.com/dankogai/p5-encode/pull/32
! Unicode/Unicode.pm
Pulled: Bump $VERSION in module changed since Encode-2.60
https://github.com/dankogai/p5-encode/pull/31
|
|
|
|
| |
perl.c
|
|
|
|
| |
my_putenv doesn't exist, the function is called my_setenv
|
|
|
|
|
|
| |
A POSIX character class is has to be in a bracketed character class. A
warning is issued when something appearing to be one is found outside.
Until this commit the warning wasn't raised for negated classes.
|
| |
|
|
|
|
| |
Fix some indents, vertically align ternary
|
|
|
|
|
| |
In these three code paths, PL_lex_stuff is never null, so there is no
need to check that.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes crashes and assertion failures related to ticket #123617.
When the lexer encounters a quote-like operator, it scans for the
final delimiter, putting the string in PL_lex_stuff and the replace-
ment, if any, in PL_sublex_info.repl. Those are just temporary spots
for those values. As soon as the next token is emitted (FUNC or
PMFUNC), the values are copied to PL_linestr and PL_lex_repl, respec-
tively, after these latter have been localised.
When scan_str (which scans a quote-like op) sees that PL_lex_stuff is
already set, it assumes that it is now parsing a replacement, so it
puts the result in PL_sublex_info.repl.
The FUNC or PMFUNC token for a quote-like operator may trigger a syn-
tax error while PL_lex_stuff and PL_sublex_info.repl are still set. A
syntax error can cause scopes to be popped, discarding the inner lex-
ing scope (for the quote op) that we were about to enter, but leaving
a PL_lex_stuff value behind.
If another quote-like op is parsed after that, scan_str will assume it
is parsing a replacement since PL_lex_stuff is set. So you can end up
with a replacement for an op of type OP_MATCH, which is not supposed
to happen. S_sublex_done fails an assertion in that case. Some exam-
ples of this bug crash later on non-debugging builds.
Localising PL_lex_stuff fixes the problem.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The PL_lex_stuff variable in the parser struct is reference-counted.
Yet, in toke.c:S_sublex_start we pass the value to S_tokeq, which may
pass it to S_new_constant, which takes ownership of the reference
count (possibly freeing or mortalising the SV), and then relinquishes
its ownership of the returned SV (incrementing the reference count if
it is the same SV passed to it). If S_new_constant croaks, then it
will have mortalised the SV passed to it while PL_lex_stuff still
points to it.
This example makes S_new_constant croak indirectly, by causing its
yyerror call to croak because of the number of errors:
$ perl5.20.1 -e 'BEGIN { $^H|=0x8000} undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); undef(1,2); "a"'
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Too many arguments for undef operator at -e line 1, near "2)"
Constant(q) unknown at -e line 1, near ";"a""
-e has too many errors.
Attempt to free unreferenced scalar: SV 0x7fb49882fae8 at -e line 1.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
A plain 'no re'; without subpragmas prior to this commit only turned off
a few things. Now it turns off all the enabled things. For example,
previously, you couldn't turn off debugging, once enabled, inside the
same block.
|
|
|
|
|
| |
There are multiple occurrences of these constants in the file. It's
better to use a variable than to repeat them.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Background: sprintf aka sv_vcatpvn_flags uses a long double for
floating point values whenever has-long-double, not only when
use-long-double. The (only?) reason for this is being able to
(perlio) printf long doubles from XS, even if no use-long-double.
(see ext/XS-APItest/t/printf.t)
Instead of casting the long double (explicitly or implicitly),
try keeping also an NV in sync, and using it. Could probably
use the NV even more, but trying to stay minimal given the
impending 5.22.
|
|
|
|
| |
So that the test doesn't die too early.
|
| |
|
|
|
|
| |
and base/rs.t tests $/ not $!
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
My recent commit c3890f9c66 appears to have broken win32 builds,
I guess because it doesn't like the args to the macro sv_setsv() being
spilt across #idfef's. So don't do that.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
If we are parsing a \N{U+XXX.YYY} construct in a regexp literal, we do
not need to pass it to grok_hex, because we do not need the numeric
value at this point. The regexp engine will be calling grok_hex
again, after all. A simple scan for hex digits should be faster, and
makes the code a little simpler, too.
|
|
|
|
|
|
| |
This will help people write B:: code that can, in a backwards-compatible way,
handle the parent method that has recently been added, and whose behaviour
varies depending on whether perl was built with PERL_OP_PARENT.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code for handling this only worked in double-quotish contexts. To
make it work in single-quotish areas as well, it needs to be moved out
of toke.c, and corresponding code added to regcomp.c. This commit does
just the portion that removes the code from toke.c. The other portion
hasn't been fully debugged yet. This means that blead will now fail on
EBCDIC platforms in double-quotish contexts. But EBCDIC platforms
aren't fully supported in blead currently anyway.
The reason this partial commit is being pushed to blead now is that its
absence is blocking other work in toke.c
Spotted by Father Chrysostomos
|
|
|
|
| |
This caused EBCDIC builds to fail
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
perl-5.8.0-117-g6f33ba7, which added the XTERMORDORDOR hack, did not
change the leftbracket code to treat XTERMORDORDOR the same way as
XTERM, so -l {0} and getc {0} (among other ops) were treating {...} as
a block, rather than an anonymous hash. This was not, however, being
turned into a real block with enter/leave ops to protect the stack,
so the nextstate op was corrupting the stack and possibly freeing mor-
tals in use.
This commit makes the leftbracket code check for XTERMORDORDOR and
treat it like XTERM, so that -l {0} once more creates an anonymous
hash. There is really no way to get to that hash, though, so all I
can test for is the crash.
|
|
|
|
|
|
| |
This harmonizes perlmodstyle with the guidance on PAUSE for getting
feedback. Having new authors email modules@perl.org is not a good
use of PAUSE admin time.
|