X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=CHANGES;h=1f6a50a900718be9444e00c9ede2c572f0f5fd07;hb=8d8457b72810ae1c021905fc0f309e4719f2c712;hp=1ce55744794f4403b219950738ac414232631e1e;hpb=95f0396837606890bfbd39a5aa0254af7c8b4f52;p=perltidy.git diff --git a/CHANGES b/CHANGES index 1ce5574..1f6a50a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,240 @@ Perltidy Change Log + 2017 05 21 + - Fixed debian #862667: failure to check for perltidy.ERR deletion can lead + to overwriting abritrary files by symlink attack. Perltidy was continuing + to write files after an unlink failure. Thanks to Don Armstrong + for a patch. + + - Fixed RT #116344, perltidy fails on certain anonymous hash references: + in the following code snippet the '?' was misparsed as a pattern + delimiter rather than a ternary operator. + return ref {} ? 1 : 0; + + - Fixed RT #113792: misparsing of a fat comma (=>) right after + the __END__ or __DATA__ tokens. These keywords were getting + incorrectly quoted by the following => operator. + + - Fixed RT #118558. Custom Getopt::Long configuration breaks parsing + of perltidyrc. Perltidy was resetting the users configuration too soon. + + - Fixed RT #119140, failure to parse double diamond operator. Code to + handle this new operator has been added. + + - Fixed RT #120968. Fixed problem where -enc=utf8 didn't work + with --backup-and-modify-in-place. Thanks to Heinz Knutzen for this patch. + + - Fixed minor formatting issue where one-line blocks for subs with signatures + were unnecesarily broken + + - RT #32905, patch to fix utf-8 error when output was STDOUT. + + - RT #79947, improved spacing of try/catch/finally blocks. Thanks to qsimpleq + for a patch. + + - Fixed #114909, Anonymous subs with signatures and prototypes misparsed as + broken ternaries, in which a statement such as this was not being parsed + correctly: + return sub ( $fh, $out ) : prototype(*$) { ... } + + - Implemented RT #113689, option to introduces spaces after an opening block + brace and before a closing block brace. Four new optional controls are + added. The first two define the minimum number of blank lines to be + inserted + + -blao=i or --blank-lines-after-opening-block=i + -blbc=i or --blank-lines-before-closing-block=i + + where i is an integer, the number of lines (the default is 0). + + The second two define the types of blocks to which the first two apply + + -blaol=s or --blank-lines-after-opening-block-list=s + -blbcl=s or --blank-lines-before-closing-block-list=s + + where s is a string of possible block keywords (default is just 'sub', + meaning a named subroutine). + + For more information please see the documentation. + + - The method for specifying block types for certain input parameters has + been generalized to distinguish between normal named subroutines and + anonymous subs. The keyword for normal subroutines remains 'sub', and + the new keyword for anonymous subs is 'asub'. + + - Minor documentation changes. The BUGS sections now have a link + to CPAN where most open bugs and issues can be reviewed and bug reports + can be submitted. The information in the AUTHOR and CREDITS sections of + the man pages have been removed from the man pages to streamline the + documentation. This information is still in the source code. + + 2016 03 02 + - RT #112534. Corrected a minor problem in which an unwanted newline + was placed before the closing brace of an anonymous sub with + a signature, if it was in a list. Thanks to Dmytro Zagashev. + + - Corrected a minor problem in which occasional extra indentation was + given to the closing brace of an anonymous sub in a list when the -lp + parameter was set. + + 2016 03 01 + - RT #104427. Added support for signatures. + + - RT #111512. Changed global warning flag $^W = 1 to use warnings; + Thanks to Dmytro Zagashev. + + - RT #110297, added support for new regexp modifier /n + Thanks to Dmytro Zagashev. + + - RT #111519. The -io (--indent-only) and -dac (--delete-all-comments) + can now both be used in one pass. Thanks to Dmitry Veltishev. + + - Patch to avoid error message with 'catch' used by TryCatch, as in + catch($err){ + # do something + } + Thanks to Nick Tonkin. + + - RT #32905, UTF-8 coding is now more robust. Thanks to qsimpleq + and Dmytro for patches. + + - RT #106885. Added string bitwise operators ^. &. |. ~. ^.= &.= |.= + + - Fixed RT #107832 and #106492, lack of vertical alignment of two lines + when -boc flag (break at old commas) is set. This bug was + inadvertantly introduced in previous bug fix RT #98902. + + - Some common extensions to Perl syntax are handled better. + In particular, the following snippet is now foratted cleanly: + + method deposit( Num $amount) { + $self->balance( $self->balance + $amount ); + } + + A new flag -xs (--extended-syntax) was added to enable this, and the default + is to use -xs. + + In previous versions, and now only when -nxs is set, this snippet of code + generates the following error message: + + "syntax error at ') {', didn't see one of: case elsif for foreach given if switch unless until when while" + + 2015 08 15 + - Fixed RT# 105484, Invalid warning about 'else' in 'switch' statement. The + warning happened if a 'case' statement did not use parens. + + - Fixed RT# 101547, misparse of // caused error message. Also.. + + - Fixed RT# 102371, misparse of // caused unwated space in //= + + - Fixed RT# 100871, "silent failure of HTML Output on Windows". + Changed calls to tempfile() from: + my ( $fh_tmp, $tmpfile ) = tempfile(); + to have the full path name: + my ( $fh_tmp, $tmpfile ) = File::Temp::tempfile() + because of problems in the Windows version reported by Dean Pearce. + + - Fixed RT# 99514, calling the perltidy module multiple times with + a .perltidyrc file containing the parameter --output-line-ending + caused a crash. This was a glitch in the memoization logic. + + - Fixed RT#99961, multiple lines inside a cast block caused unwanted + continuation indentation. + + - RT# 32905, broken handling of UTF-8 strings. + A new flag -utf8 causes perltidy assume UTF-8 encoding for input and + output of an io stream. Thanks to Sebastian Podjasek for a patch. + This feature may not work correctly in older versions of Perl. + It worked in a linux version 5.10.1 but not in a Windows version 5.8.3 (but + otherwise perltidy ran correctly). + + - Warning files now report perltidy VERSION. Suggested by John Karr. + + - Fixed long flag --nostack-closing-tokens (-nsct has always worked though). + This was due to a typo. This also fixed --nostack-opening-tokens to + behave correctly. Thanks to Rob Dixon. + + 2014 07 11 + - Fixed RT #94902: abbreviation parsing in .perltidyrc files was not + working for multi-line abbreviations. Thanks to Eric Fung for + supplying a patch. + + - Fixed RT #95708, misparsing of a hash when the first key was a perl + keyword, causing a semicolon to be incorrectly added. + + - Fixed RT #94338 for-loop in a parenthesized block-map. A code block within + parentheses of a map, sort, or grep function was being mistokenized. In + rare cases this could produce in an incorrect error message. The fix will + produce some minor formatting changes. Thanks to Daniel Trizen + discovering and documenting this. + + - Fixed RT #94354, excess indentation for stacked tokens. Thanks to + Colin Williams for supplying a patch. + + - Added support for experimental postfix dereferencing notation introduced in + perl 5.20. RT #96021. + + - Updated documentation to clarify the behavior of the -io flag + in response to RT #95709. You can add -noll or -l=0 to prevent + long comments from being outdented when -io is used. + + - Added a check to prevent a problem reported in RT #81866, where large + scripts which had been compressed to a single line could not be formatted + because of a check for VERSION for MakeMaker. The workaround was to + use -nvpl, but this shouldn't be necessary now. + + - Fixed RT #96101; Closing brace of anonymous sub in a list was being + indented. For example, the closing brace of the anonymous sub below + will now be lined up with the word 'callback'. This problem + occured if there was no comma after the closing brace of the anonymous sub. + This update may cause minor changes to formatting of code with lists + of anonymous subs, especially TK code. + + # OLD + my @menu_items = ( + + #... + { + path => '/_Operate/Transcode and split', + callback => sub { + return 1 if not $self->project_opened; + $self->comp('project')->transcode( split => 1 ); + } + } + ); + + # NEW + my @menu_items = ( + + #... + { + path => '/_Operate/Transcode and split', + callback => sub { + return 1 if not $self->project_opened; + $self->comp('project')->transcode( split => 1 ); + } + } + ); + + 2014 03 28 + - Fixed RT #94190 and debian Bug #742004: perltidy.LOG file left behind. + Thanks to George Hartzell for debugging this. The problem was + caused by the memoization speedup patch in version 20121207. An + unwanted flag was being set which caused a LOG to be written if + perltidy was called multiple times. + + - New default behavior for LOG files: If the source is from an array or + string (through a call to the perltidy module) then a LOG output is only + possible if a logfile stream is specified. This is to prevent + unexpected perltidy.LOG files. + + - Fixed debian Bug #740670, insecure temporary file usage. File::Temp is now + used to get a temporary file. Thanks to Don Anderson for a patch. + + - Any -b (--backup-and-modify-in-place) flag is silently ignored when a + source stream, destination stream, or standard output is used. + This is because the -b flag may have been in a .perltidyrc file and + warnings break Test::NoWarnings. Thanks to Marijn Brand. + 2013 09 22 - Fixed RT #88020. --converge was not working with wide characters.