summaryrefslogtreecommitdiff
path: root/toke.c
Commit message (Collapse)AuthorAgeFilesLines
* Combine sv_utf8_upgrade with a following growKarl2009-01-191-7/+9
|
* [perl #59908] \x, \0, and \N{} not ok in double-quotish when followed by > \x100karl williamson2009-01-151-70/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attached is a patch for this problem. The root cause was that S_scan_const() was not recoding to utf8 under some circumstances when it should be. I also changed it so that in all places, the flag that indicates the output is in utf8 is changed from false to true if and only if the destination is recoded to utf8. One place was skipping this, and then setting it unconditionally later on. In one place in the routine, the routine had code to do the recoding itself. In the other places, it called sv_utf8_upgrade(). I changed it to call the subroutine in all cases. I fixed a bug that would appear only on EBCDIC machines where constants of the form \N{U+....} would have been interpreted as EBCDIC. And in inspecting the code, I realized there were problems with growing the scalar value to fit the input. I cleaned those up. I also added a number of comments to document things I found out, and changed some existing ones to be more accurate. Since no one responded to my request for where to put the test cases, and I couldn't figure out a good place to put them, I added a new test file, t/uni/lex_utf8.t.
* Allow '\r' after "#line XXX" directives.Steve Hay2009-01-141-1/+1
| | | | Fixes lib/feature.t and lib/warnings.t tests that have been failing on Win32 since commit 26b6dc3.
* Require a space or a newline after a "#line XXX" directiveRafael Garcia-Suarez2009-01-061-0/+2
| | | | This fixes bug [perl #59170] Typo: bad regex for #line directive in perlsyn.
* ywarn() is actually only used inside toke.c, so it can be static.Nicholas Clark2008-11-261-2/+2
| | | p4raw-id: //depot/perl@34941
* A small refactoring based on a comment in an old RT ticket (RTSteve Peters2008-11-071-7/+1
| | | | | #4362 in case you were wondering). p4raw-id: //depot/perl@34768
* Re: @{"_<$filename"} is unreasonably tied to use of DB::DB ($^P & 0x2)Tim Bunce2008-11-031-7/+7
| | | | | | Message-ID: <20081103160130.GA45762@timac.local> Date: Mon, 3 Nov 2008 16:01:31 +0000 p4raw-id: //depot/perl@34705
* PATCH: Large omnibus patch to clean up the JRRT quotesTom Christiansen2008-11-021-1/+3
| | | | | | Message-ID: <25940.1225611819@chthon> Date: Sun, 02 Nov 2008 01:43:39 -0600 p4raw-id: //depot/perl@34698
* Explicitly specify some printf formats for constant strings.Rafael Garcia-Suarez2008-11-021-2/+2
| | | | | | This is mostly to silence gcc's warning, "format not a string literal and no format arguments". p4raw-id: //depot/perl@34694
* Eliminate (SV *) casts from sv.c and [tu]*.c, except for the cast inNicholas Clark2008-10-301-6/+6
| | | | | Perl_sv_magicext(), which is documented. p4raw-id: //depot/perl@34671
* Use pvs macros instead of pvn where possible.Marcus Holland-Moritz2008-10-291-14/+14
| | | p4raw-id: //depot/perl@34653
* Eliminate (AV *) casts in *.c.Nicholas Clark2008-10-291-1/+1
| | | p4raw-id: //depot/perl@34650
* Add MUTABLE_CV(), and eliminate (CV *) casts in *.c.Nicholas Clark2008-10-291-3/+3
| | | p4raw-id: //depot/perl@34647
* Two casts that are MUTABLE_?V.Nicholas Clark2008-10-281-2/+2
| | | p4raw-id: //depot/perl@34622
* Update copyright years.Nicholas Clark2008-10-251-2/+2
| | | p4raw-id: //depot/perl@34585
* Unintented interpolation of $/ in regex (was: Re: [perlBram2008-08-241-1/+6
| | | | | | | | | | Message-ID: <20080724181427.aiml4sdvr40k4coc@horde.wizbit.be> Note that the Subject: has a typo - it should be $\ This adds a new warning. I moved the tests from the original patch to t/lib/warnings/toke. p4raw-id: //depot/perl@34224
* Make sure parser's filehandle is closed when finishedSteve Hay2008-06-171-2/+2
| | | | | | | (It was mistakenly left open if there was no old_parser, which caused t/comp/require.t to leave behind a 'bleah.pm' (from the test for #49472) on Win32, where the deletion of an open file fails.) p4raw-id: //depot/perl@34071
* Tweak the "Illegal character in prototype" warning so it's moreRafael Garcia-Suarez2008-06-081-2/+4
| | | | | precise when reporting illegal characters after _ p4raw-id: //depot/perl@34023
* Add a new warning, "Prototype after '%s'"Renee Baecker2008-06-081-2/+39
| | | | | | | Based on: Subject: Re: [perl #36673] sub foo(@$) {} should generate an error Message-ID: <483A9A2B.6020808@smart-websolutions.de> p4raw-id: //depot/perl@34021
* Re: [PATCH: TODO Tests] Re: [perl #53806] No complain about barewordRafael Garcia-Suarez2008-05-201-1/+1
| | | | | | From: "Rafael Garcia-Suarez" <rgarciasuarez@gmail.com> Message-ID: <b77c1dce0805200045i1000598ci13c9cb3a29f64b6d@mail.gmail.com> p4raw-id: //depot/perl@33874
* Add ..., !!!, and ??? operatorschromatic2008-05-181-2/+15
| | | | | Message-Id: <200805101252.11961.chromatic@wgz.org> p4raw-id: //depot/perl@33858
* Prevent the tokenizer from segfaulting in debug mode when a FUNC token is forcedRafael Garcia-Suarez2008-05-161-1/+1
| | | | | | From: "Rafael Garcia-Suarez" <rgarciasuarez@gmail.com> Message-ID: <b77c1dce0805160313r78cb1b2bxfeb64460d2e9a7df@mail.gmail.com> p4raw-id: //depot/perl@33833
* Handle PL_minus_E before PL_minus_{n,p}.Florian Ragwitz2008-05-111-3/+3
| | | | | Message-Id: <1210485078-19640-1-git-send-email-rafl@debian.org> p4raw-id: //depot/perl@33822
* Three variables in S_scan_trans only hold flags for op_private, so canNicholas Clark2008-03-041-3/+3
| | | | | be U8. p4raw-id: //depot/perl@33437
* [ patch ] silence 2 possibly uninitialized varsJim Cromie2008-02-181-3/+3
| | | | | Message-ID: <47B7879B.5040302@gmail.com> p4raw-id: //depot/perl@33327
* assert() that every NN argument is not NULL. Otherwise we have theNicholas Clark2008-02-121-1/+105
| | | | | | | | | | | | ability to create landmines that will explode under someone in the future when they upgrade their compiler to one with better optimisation. We've already done this at least twice. (Yes, some of the assertions are after code that would already have SEGVd because it already deferences a pointer, but they are put in to make it easier to automate checking that each and every case is covered.) Add a tool, checkARGS_ASSERT.pl, to check that every case is covered. p4raw-id: //depot/perl@33291
* [perl #49472] Attributes + Unkown ErrorDave Mitchell2008-02-091-0/+1
| | | | | | | An errored attribute sub still processes the attributes, which require's attribute.pm, so make sure the error state is passed to the new require p4raw-id: //depot/perl@33265
* toke.c/universal.c: constingSteven Schubiger2008-01-291-11/+11
| | | | | Message-ID: <20080128125741.GA27390@refcnt.homeunix.org> p4raw-id: //depot/perl@33103
* also report forced tokens when using -DTGerard Goossen2008-01-281-9/+15
| | | | | Message-ID: <20080117173652.GB4969@ostwald> p4raw-id: //depot/perl@33089
* Remove the -P switchRafael Garcia-Suarez2008-01-111-19/+4
| | | p4raw-id: //depot/perl@32954
* Add newSVpvs_flags() as a wrapper to newSVpvn_flags(), and reworkNicholas Clark2008-01-031-1/+1
| | | | | sv_2mortal(newSVpvs(...)) constructions to use it. p4raw-id: //depot/perl@32819
* Extend newSVpvn_flags() to also call sv_2mortal() if SVs_TEMP is set inNicholas Clark2008-01-031-3/+3
| | | | | | the flags. Move its implementation just ahead of sv_2mortal()'s for CPU cache locality. Refactor all code that can be to use this. p4raw-id: //depot/perl@32818
* Add a new function newSVpvn_flags(), which takes a third parameter ofNicholas Clark2008-01-021-12/+6
| | | | | | | | | | flag bits. Right now the only flag bit is SVf_UTF8, which will call SvUTF8_on() on the new SV for you. Provide a wrapper newSVpvn_utf8(), which takes a boolean, and passes in SVf_UTF8 if that is true. Refactor the core to use it where possible. It makes the source code clearer and smaller, but seems to be swings and roundabouts on object code size. p4raw-id: //depot/perl@32807
* "Automate" change 32648 (ensure that -E always loads the latestNicholas Clark2007-12-271-1/+2
| | | | | features) p4raw-id: //depot/perl@32744
* Make -E require 5.11 featuresRafael Garcia-Suarez2007-12-191-1/+1
| | | p4raw-id: //depot/perl@32648
* Rename yylval to pl_yylval, to avoid confusing bogus C preprocessorsRafael Garcia-Suarez2007-11-211-131/+131
| | | | | that attempt to expand it recursively. (like, on UNICOS) p4raw-id: //depot/perl@32443
* It seems crazy for Perl_yylex() to individually shift each element offNicholas Clark2007-10-181-5/+6
| | | | | | | PL_preambleav, and then free each in turn, rather than simply process the array in place, and allow the sv_free(PL_preambleav) to dispose of everything. p4raw-id: //depot/perl@32140
* Inline and eliminate S_incl_perldb(), as it's only called on one place.Nicholas Clark2007-10-181-26/+16
| | | | | This also makes the logic in the call site simpler and more efficient. p4raw-id: //depot/perl@32138
* Eliminate some uses of sv_setpv() where we already know the length.Nicholas Clark2007-10-181-11/+12
| | | | | | Donate the prototype buffer to the CV in Perl_gv_init(), rather than setting a copy, and immediately free()ing the original. p4raw-id: //depot/perl@32136
* Change newSVpv() to newSVpvn() where we know the length is non-zero, asNicholas Clark2007-10-181-1/+1
| | | | | newSVpvn() will be fractionally more efficient. p4raw-id: //depot/perl@32135
* Don't call strlen() on CopFILE() for the unthreaded case, because theNicholas Clark2007-10-181-2/+12
| | | | | length can be obtained via CopFILESV(). p4raw-id: //depot/perl@32129
* Silence a casting warningRafael Garcia-Suarez2007-10-181-1/+1
| | | p4raw-id: //depot/perl@32128
* Where possible, change gv_fetchfile() to gv_fetchfile_flags(),Nicholas Clark2007-10-181-18/+20
| | | | | | | | | | | gv_stashpv() to gv_stashpvn() and gv_fetchpv() to gv_fetchpvn_flags(). Change the len parameter of S_find_in_my_stash() from I32 to STRLEN, as a pointer the variable needs to be passed onwards, and size matters on 64 bit platforms. Fix the temporary scribbling of a buffer in Perl_yylex() by using gv_fetchpvn_flags(), and remove the XXX comment added in change 27641. Brought to you by the Campaign for the Elimination of strlen(). p4raw-id: //depot/perl@32127
* Given that S_feature_is_enabled() is a static function, we can know allNicholas Clark2007-10-161-2/+6
| | | | | | | the possible strings that can be passed to it, and their lengths. So we can avoid my_strlcpy() and instead use memcpy(). Brought to you by the Campaign for the Elimination of strlen(). p4raw-id: //depot/perl@32114
* Pass in explicit lengths for the key and type arguments toNicholas Clark2007-10-161-29/+39
| | | | | | S_new_constant() in toke.c, as we know all the lengths already. Brought to you by the Campaign for the Elimination of strlen(). p4raw-id: //depot/perl@32111
* Re: several compilation problems on VMS in perl@32039Craig A. Berry2007-10-061-1/+1
| | | | | | | From: "Craig A. Berry" <craig.a.berry@gmail.com> Message-ID: <c9ab31fc0710061147x3ee7f9bdg2b1bac3acd018bb2@mail.gmail.com> Date: Sat, 6 Oct 2007 13:47:03 -0500 p4raw-id: //depot/perl@32058
* Finally! Worked out how to const Perl_moreswitches().Nicholas Clark2007-10-061-7/+8
| | | | | | | | | | Although I've committed crimes against indenting to avoid losing blame annotation history. Revisit this when we have version control that can easily see through whitespace changes. [Can probably now propagate consting inside S_parse_body(), Perl_moreswitches() and Perl_yylex(), but that will not affect the external API, so can wait until after 5.10] p4raw-id: //depot/perl@32057
* Remove remaining C<Nullch>s and C<Nullsv>sNicholas Clark2007-10-061-2/+2
| | | p4raw-id: //depot/perl@32054
* In the MAD code, eliminate one Perl_sv_catpvf() and convert oneNicholas Clark2007-10-051-4/+10
| | | | | construction to *pvs. p4raw-id: //depot/perl@32039
* PL_cshname is actually a constant value known at compile time.Nicholas Clark2007-10-051-23/+0
| | | | | | | PL_cshlen can be calculated by the compiler. So eliminate both as interpreter variables, and the code that calculates PL_cshlen at runtime. p4raw-id: //depot/perl@32035