In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/68cd360812f9eaa2d34c45c501e2fef87c44ccde?hp=1530a57dfaff29c214be6c42259309d263abc973>
- Log ----------------------------------------------------------------- commit 68cd360812f9eaa2d34c45c501e2fef87c44ccde Author: Jesse Vincent <[email protected]> Date: Tue Apr 24 19:02:34 2012 -0400 Bump the version of perl5db since the porting scripts care M lib/perl5db.pl commit ab71bbe6094f2ef024ae212325c2a5172afc8707 Author: Jesse Vincent <[email protected]> Date: Tue Apr 24 15:35:39 2012 -0400 we no longer have in-file changelogs, since we have a version control system M utils/perlbug.PL commit b9238fd3a387e42a408fffd89cea7e1f94ea7e6a Author: Jesse Vincent <[email protected]> Date: Tue Apr 24 15:05:55 2012 -0400 We now have version control and no longer need a changelog in perl5db M lib/perl5db.pl commit 2f8f112e03b73a49c60674d3b5e00b4463f1d5b7 Author: Karl Williamson <[email protected]> Date: Fri Apr 27 11:09:14 2012 -0600 utf8n_to_uvuni(): Fix broken malformation interactions All code points whose UTF-8 representations start with a byte containing either \xFE or \xFF are considered problematic because they are not portable. There are many such code points that are too large to represent on a 32 or even a 64 bit platform. Commit eb83ed87110e41de6a4cd4463f75df60798a9243 failed to properly catch overflow when the input flags to this function say to warn on, but otherwise accept FE and FF sequences. Now overflow is checked for unconditionally. M ext/XS-APItest/t/utf8.t M utf8.c ----------------------------------------------------------------------- Summary of changes: ext/XS-APItest/t/utf8.t | 75 +++++++++++--- lib/perl5db.pl | 262 +---------------------------------------------- utf8.c | 15 ++- utils/perlbug.PL | 52 --------- 4 files changed, 71 insertions(+), 333 deletions(-) diff --git a/ext/XS-APItest/t/utf8.t b/ext/XS-APItest/t/utf8.t index b59fb69..8bafd89 100644 --- a/ext/XS-APItest/t/utf8.t +++ b/ext/XS-APItest/t/utf8.t @@ -148,7 +148,7 @@ else { # The above overflows unless a quad platform # Now test the cases where a legal code point is generated, but may or may not # be allowed/warned on. -foreach my $test ( +my @tests = ( [ "surrogate", "\xed\xa4\x8d", $UTF8_WARN_SURROGATE, $UTF8_DISALLOW_SURROGATE, 'surrogate', 0xD90D, 3, qr/surrogate/ @@ -164,19 +164,39 @@ foreach my $test ( [ "begins with FE", "\xfe\x82\x80\x80\x80\x80\x80", # This code point is chosen so that it is representable in a UV on - # 32-bit machines, otherwise we would have to handle it like the FF - # ones + # 32-bit machines $UTF8_WARN_FE_FF, $UTF8_DISALLOW_FE_FF, 'utf8', 0x80000000, 7, qr/Code point beginning with byte .* is not Unicode, and not portable/ ], - [ "begins with FF", "\xff\x80\x80\x80\x80\x80\x81\x80\x80\x80\x80\x80\x80", - $UTF8_WARN_FE_FF, $UTF8_DISALLOW_FE_FF, 'utf8', $FF_ret, 13, + [ "overflow with FE/FF", + # This tests the interaction of WARN_FE_FF/DISALLOW_FE_FF with + # overflow. The overflow malformation is never allowed, so preventing + # it takes precedence if the FE_FF options would otherwise allow in an + # overflowing value. These two code points (1 for 32-bits; 1 for 64) + # were chosen because the old overflow detection algorithm did not + # catch them; this means this test also checks for that fix. + ($has_quad) + ? "\xff\x80\x90\x90\x90\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf" + : "\xfe\x86\x80\x80\x80\x80\x80", + $UTF8_WARN_FE_FF, $UTF8_DISALLOW_FE_FF, 'utf8', 0, + ($has_quad) ? 13 : 7, qr/Code point beginning with byte .* is not Unicode, and not portable/ ], -) { +); + +if ($has_quad) { # All FF's will overflow on 32 bit + push @tests, + [ "begins with FF", "\xff\x80\x80\x80\x80\x80\x81\x80\x80\x80\x80\x80\x80", + $UTF8_WARN_FE_FF, $UTF8_DISALLOW_FE_FF, 'utf8', $FF_ret, 13, + qr/Code point beginning with byte .* is not Unicode, and not portable/ + ]; +} + +foreach my $test (@tests) { my ($testname, $bytes, $warn_flags, $disallow_flags, $category, $allowed_uv, $expected_len, $message ) = @$test; my $length = length $bytes; + my $will_overflow = $testname =~ /overflow/; # This is more complicated than the malformations tested earlier, as there # are several orthogonal variables involved. We test all the subclasses @@ -186,16 +206,19 @@ foreach my $test ( foreach my $warn_flag (0, $warn_flags) { foreach my $disallow_flag (0, $disallow_flags) { - # On 32-bit machines, anything beginning with \xff is not - # representable, and would overflow even if we were to allow - # them in this test. - next if ! $has_quad - && ! $disallow_flag - && substr($bytes, 0, 1) eq "\xff"; - no warnings 'utf8'; my $eval_warn = $warning eq 0 ? "no warnings" : "use warnings '$warning'"; - my $this_name = "$testname: " . (($disallow_flag) ? 'disallowed' : 'allowed'); + + # is effectively disallowed if will overflow, even if the flag + # indicates it is allowed, fix up test name to indicate this + # as well + my $disallowed = $disallow_flag || $will_overflow; + + my $this_name = "$testname: " . (($disallow_flag) + ? 'disallowed' + : ($disallowed) + ? 'FE_FF allowed' + : 'allowed'); $this_name .= ", $eval_warn"; $this_name .= ", " . (($warn_flag) ? 'with warning flag' : 'no warning flag'); @@ -208,7 +231,7 @@ foreach my $test ( note "\$!='$!'; eval'd=\"$eval_text\""; next; } - if ($disallow_flag) { + if ($disallowed) { is($ret_ref->[0], 0, "$this_name: Returns 0"); } else { @@ -216,7 +239,22 @@ foreach my $test ( } is($ret_ref->[1], $expected_len, "$this_name: Returns expected length"); - if ($warn_flag && ($warning eq 'utf8' || $warning eq $category)) { + if ($will_overflow && ! $disallow_flag && $warning eq 'utf8') { + + # Will get the overflow message instead of the expected + # message under these circumstances, as they would + # otherwise accept an overflowed value, which the code + # should not allow, so falls back to overflow. + if (is(scalar @warnings, 1, "$this_name: Got a single warning ")) { + like($warnings[0], qr/overflow/, "$this_name: Got overflow warning"); + } + else { + if (scalar @warnings) { + note "The warnings were: " . join(", ", @warnings); + } + } + } + elsif ($warn_flag && ($warning eq 'utf8' || $warning eq $category)) { if (is(scalar @warnings, 1, "$this_name: Got a single warning ")) { like($warnings[0], $message, "$this_name: Got expected warning"); } @@ -233,7 +271,10 @@ foreach my $test ( } } - if ($disallow_flag) { + # Check CHECK_ONLY results when the input is disallowed. Do + # this when actually disallowed, not just when the + # $disallow_flag is set + if ($disallowed) { undef @warnings; $ret_ref = test_utf8n_to_uvuni($bytes, $length, $disallow_flag|$UTF8_CHECK_ONLY); is($ret_ref->[0], 0, "$this_name, CHECK_ONLY: Returns 0"); diff --git a/lib/perl5db.pl b/lib/perl5db.pl index e25b728..889f305 100644 --- a/lib/perl5db.pl +++ b/lib/perl5db.pl @@ -519,7 +519,7 @@ BEGIN { } # Debugger for Perl 5.00x; perl5db.pl patch level: -$VERSION = '1.36'; +$VERSION = '1.37'; $header = "perl5db.pl version $VERSION"; @@ -712,266 +712,6 @@ sub eval { # Ray Lischner (uunet!mntgfx!lisch) as of 5 Nov 1990 # Johan Vromans -- upgrade to 4.0 pl 10 # Ilya Zakharevich -- patches after 5.001 (and some before ;-) - -# (We have made efforts to clarify the comments in the change log -# in other places; some of them may seem somewhat obscure as they -# were originally written, and explaining them away from the code -# in question seems conterproductive.. -JM) - -######################################################################## -# Changes: 0.94 -# + A lot of things changed after 0.94. First of all, core now informs -# debugger about entry into XSUBs, overloaded operators, tied operations, -# BEGIN and END. Handy with 'O f=2'. -# + This can make debugger a little bit too verbose, please be patient -# and report your problems promptly. -# + Now the option frame has 3 values: 0,1,2. XXX Document! -# + Note that if DESTROY returns a reference to the object (or object), -# the deletion of data may be postponed until the next function call, -# due to the need to examine the return value. -# -# Changes: 0.95 -# + 'v' command shows versions. -# -# Changes: 0.96 -# + 'v' command shows version of readline. -# primitive completion works (dynamic variables, subs for 'b' and 'l', -# options). Can 'p %var' -# + Better help ('h <' now works). New commands <<, >>, {, {{. -# {dump|print}_trace() coded (to be able to do it from <<cmd). -# + 'c sub' documented. -# + At last enough magic combined to stop after the end of debuggee. -# + !! should work now (thanks to Emacs bracket matching an extra -# ']' in a regexp is caught). -# + 'L', 'D' and 'A' span files now (as documented). -# + Breakpoints in 'require'd code are possible (used in 'R'). -# + Some additional words on internal work of debugger. -# + 'b load filename' implemented. -# + 'b postpone subr' implemented. -# + now only 'q' exits debugger (overwritable on $inhibit_exit). -# + When restarting debugger breakpoints/actions persist. -# + Buglet: When restarting debugger only one breakpoint/action per -# autoloaded function persists. -# -# Changes: 0.97: NonStop will not stop in at_exit(). -# + Option AutoTrace implemented. -# + Trace printed differently if frames are printed too. -# + new 'inhibitExit' option. -# + printing of a very long statement interruptible. -# Changes: 0.98: New command 'm' for printing possible methods -# + 'l -' is a synonym for '-'. -# + Cosmetic bugs in printing stack trace. -# + 'frame' & 8 to print "expanded args" in stack trace. -# + Can list/break in imported subs. -# + new 'maxTraceLen' option. -# + frame & 4 and frame & 8 granted. -# + new command 'm' -# + nonstoppable lines do not have ':' near the line number. -# + 'b compile subname' implemented. -# + Will not use $` any more. -# + '-' behaves sane now. -# Changes: 0.99: Completion for 'f', 'm'. -# + 'm' will remove duplicate names instead of duplicate functions. -# + 'b load' strips trailing whitespace. -# completion ignores leading '|'; takes into account current package -# when completing a subroutine name (same for 'l'). -# Changes: 1.07: Many fixed by tchrist 13-March-2000 -# BUG FIXES: -# + Added bare minimal security checks on perldb rc files, plus -# comments on what else is needed. -# + Fixed the ornaments that made "|h" completely unusable. -# They are not used in print_help if they will hurt. Strip pod -# if we're paging to less. -# + Fixed mis-formatting of help messages caused by ornaments -# to restore Larry's original formatting. -# + Fixed many other formatting errors. The code is still suboptimal, -# and needs a lot of work at restructuring. It's also misindented -# in many places. -# + Fixed bug where trying to look at an option like your pager -# shows "1". -# + Fixed some $? processing. Note: if you use csh or tcsh, you will -# lose. You should consider shell escapes not using their shell, -# or else not caring about detailed status. This should really be -# unified into one place, too. -# + Fixed bug where invisible trailing whitespace on commands hoses you, -# tricking Perl into thinking you weren't calling a debugger command! -# + Fixed bug where leading whitespace on commands hoses you. (One -# suggests a leading semicolon or any other irrelevant non-whitespace -# to indicate literal Perl code.) -# + Fixed bugs that ate warnings due to wrong selected handle. -# + Fixed a precedence bug on signal stuff. -# + Fixed some unseemly wording. -# + Fixed bug in help command trying to call perl method code. -# + Fixed to call dumpvar from exception handler. SIGPIPE killed us. -# ENHANCEMENTS: -# + Added some comments. This code is still nasty spaghetti. -# + Added message if you clear your pre/post command stacks which was -# very easy to do if you just typed a bare >, <, or {. (A command -# without an argument should *never* be a destructive action; this -# API is fundamentally screwed up; likewise option setting, which -# is equally buggered.) -# + Added command stack dump on argument of "?" for >, <, or {. -# + Added a semi-built-in doc viewer command that calls man with the -# proper %Config::Config path (and thus gets caching, man -k, etc), -# or else perldoc on obstreperous platforms. -# + Added to and rearranged the help information. -# + Detected apparent misuse of { ... } to declare a block; this used -# to work but now is a command, and mysteriously gave no complaint. -# -# Changes: 1.08: Apr 25, 2001 Jon Eveland <[email protected]> -# BUG FIX: -# + This patch to perl5db.pl cleans up formatting issues on the help -# summary (h h) screen in the debugger. Mostly columnar alignment -# issues, plus converted the printed text to use all spaces, since -# tabs don't seem to help much here. -# -# Changes: 1.09: May 19, 2001 Ilya Zakharevich <[email protected]> -# Minor bugs corrected; -# + Support for auto-creation of new TTY window on startup, either -# unconditionally, or if started as a kid of another debugger session; -# + New 'O'ption CreateTTY -# I<CreateTTY> bits control attempts to create a new TTY on events: -# 1: on fork() -# 2: debugger is started inside debugger -# 4: on startup -# + Code to auto-create a new TTY window on OS/2 (currently one -# extra window per session - need named pipes to have more...); -# + Simplified interface for custom createTTY functions (with a backward -# compatibility hack); now returns the TTY name to use; return of '' -# means that the function reset the I/O handles itself; -# + Better message on the semantic of custom createTTY function; -# + Convert the existing code to create a TTY into a custom createTTY -# function; -# + Consistent support for TTY names of the form "TTYin,TTYout"; -# + Switch line-tracing output too to the created TTY window; -# + make 'b fork' DWIM with CORE::GLOBAL::fork; -# + High-level debugger API cmd_*(): -# cmd_b_load($filenamepart) # b load filenamepart -# cmd_b_line($lineno [, $cond]) # b lineno [cond] -# cmd_b_sub($sub [, $cond]) # b sub [cond] -# cmd_stop() # Control-C -# cmd_d($lineno) # d lineno (B) -# The cmd_*() API returns FALSE on failure; in this case it outputs -# the error message to the debugging output. -# + Low-level debugger API -# break_on_load($filename) # b load filename -# @files = report_break_on_load() # List files with load-breakpoints -# breakable_line_in_filename($name, $from [, $to]) -# # First breakable line in the -# # range $from .. $to. $to defaults -# # to $from, and may be less than -# # $to -# breakable_line($from [, $to]) # Same for the current file -# break_on_filename_line($name, $lineno [, $cond]) -# # Set breakpoint,$cond defaults to -# # 1 -# break_on_filename_line_range($name, $from, $to [, $cond]) -# # As above, on the first -# # breakable line in range -# break_on_line($lineno [, $cond]) # As above, in the current file -# break_subroutine($sub [, $cond]) # break on the first breakable line -# ($name, $from, $to) = subroutine_filename_lines($sub) -# # The range of lines of the text -# The low-level API returns TRUE on success, and die()s on failure. -# -# Changes: 1.10: May 23, 2001 Daniel Lewart <[email protected]> -# BUG FIXES: -# + Fixed warnings generated by "perl -dWe 42" -# + Corrected spelling errors -# + Squeezed Help (h) output into 80 columns -# -# Changes: 1.11: May 24, 2001 David Dyck <[email protected]> -# + Made "x @INC" work like it used to -# -# Changes: 1.12: May 24, 2001 Daniel Lewart <[email protected]> -# + Fixed warnings generated by "O" (Show debugger options) -# + Fixed warnings generated by "p 42" (Print expression) -# Changes: 1.13: Jun 19, 2001 [email protected] -# + Added windowSize option -# Changes: 1.14: Oct 9, 2001 multiple -# + Clean up after itself on VMS (Charles Lane in 12385) -# + Adding "@ file" syntax (Peter Scott in 12014) -# + Debug reloading selfloaded stuff (Ilya Zakharevich in 11457) -# + $^S and other debugger fixes (Ilya Zakharevich in 11120) -# + Forgot a my() declaration (Ilya Zakharevich in 11085) -# Changes: 1.15: Nov 6, 2001 Michael G Schwern <[email protected]> -# + Updated 1.14 change log -# + Added *dbline explanatory comments -# + Mentioning perldebguts man page -# Changes: 1.16: Feb 15, 2002 Mark-Jason Dominus <[email protected]> -# + $onetimeDump improvements -# Changes: 1.17: Feb 20, 2002 Richard Foley <[email protected]> -# Moved some code to cmd_[.]()'s for clarity and ease of handling, -# rationalised the following commands and added cmd_wrapper() to -# enable switching between old and frighteningly consistent new -# behaviours for diehards: 'o CommandSet=pre580' (sigh...) -# a(add), A(del) # action expr (added del by line) -# + b(add), B(del) # break [line] (was b,D) -# + w(add), W(del) # watch expr (was W,W) -# # added del by expr -# + h(summary), h h(long) # help (hh) (was h h,h) -# + m(methods), M(modules) # ... (was m,v) -# + o(option) # lc (was O) -# + v(view code), V(view Variables) # ... (was w,V) -# Changes: 1.18: Mar 17, 2002 Richard Foley <[email protected]> -# + fixed missing cmd_O bug -# Changes: 1.19: Mar 29, 2002 Spider Boardman -# + Added missing local()s -- DB::DB is called recursively. -# Changes: 1.20: Feb 17, 2003 Richard Foley <[email protected]> -# + pre'n'post commands no longer trashed with no args -# + watch val joined out of eval() -# Changes: 1.21: Jun 04, 2003 Joe McMahon <[email protected]> -# + Added comments and reformatted source. No bug fixes/enhancements. -# + Includes cleanup by Robin Barker and Jarkko Hietaniemi. -# Changes: 1.22 Jun 09, 2003 Alex Vandiver <[email protected]> -# + Flush stdout/stderr before the debugger prompt is printed. -# Changes: 1.23: Dec 21, 2003 Dominique Quatravaux -# + Fix a side-effect of bug #24674 in the perl debugger ("odd taint bug") -# Changes: 1.24: Mar 03, 2004 Richard Foley <[email protected]> -# + Added command to save all debugger commands for sourcing later. -# + Added command to display parent inheritance tree of given class. -# + Fixed minor newline in history bug. -# Changes: 1.25: Apr 17, 2004 Richard Foley <[email protected]> -# + Fixed option bug (setting invalid options + not recognising valid short forms) -# Changes: 1.26: Apr 22, 2004 Richard Foley <[email protected]> -# + unfork the 5.8.x and 5.9.x debuggers. -# + whitespace and assertions call cleanup across versions -# + H * deletes (resets) history -# + i now handles Class + blessed objects -# Changes: 1.27: May 09, 2004 Richard Foley <[email protected]> -# + updated pod page references - clunky. -# + removed windowid restriction for forking into an xterm. -# + more whitespace again. -# + wrapped restart and enabled rerun [-n] (go back n steps) command. -# Changes: 1.28: Oct 12, 2004 Richard Foley <[email protected]> -# + Added threads support (inc. e and E commands) -# Changes: 1.29: Nov 28, 2006 Bo Lindbergh <[email protected]> -# + Added macosx_get_fork_TTY support -# Changes: 1.30: Mar 06, 2007 Andreas Koenig <[email protected]> -# + Added HistFile, HistSize -# Changes: 1.31 -# + Remove support for assertions and -A -# + stop NEXT::AUTOLOAD from emitting warnings under the debugger. RT #25053 -# + "update for Mac OS X 10.5" [finding the tty device] -# + "What I needed to get the forked debugger to work" [on VMS] -# + [perl #57016] debugger: o warn=0 die=0 ignored -# + Note, but don't use, PERLDBf_SAVESRC -# + Fix #7013: lvalue subs not working inside debugger -# Changes: 1.32: Jun 03, 2009 Jonathan Leto <[email protected]> -# + Fix bug where a key _< with undefined value was put into the symbol table -# + when the $filename variable is not set -# Changes: 1.33: -# + Debugger prints lines to the remote port when it forks and openes a new port (f633fd2) -# + The debugger now continues to use RemotePort when it's been configured to use it. (11653f7) -# + Stop using $ENV{LESS} for parameters not intended for less (d463cf2) -# + Configure has a path to less and perl5db.pl can use it (bf320d6) -# + Die with $@ instead of empty message (86755f4) -# + Remove extra/useless $@ check after eval { require PadWalker } (which is still checked) (dab8d6d) -# + Promote eval( "require ..." ) to eval { require ... } (4a49187) -# + Promote eval { require( ... )} || die to mere require( ... ) (999f23b) -# + Remove indirect object notation from debugger (bee4b46) -# + Document that @{$main::{'_<'.$filename}} lines are dualvar to (COP*). (7e17a74) -# + Remove MacOS classic support from the debugger. (2b894b7) ######################################################################## =head1 DEBUGGER INITIALIZATION diff --git a/utf8.c b/utf8.c index c01ea4b..83d2397 100644 --- a/utf8.c +++ b/utf8.c @@ -560,6 +560,7 @@ Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags) UV pack_warn = 0; /* Save result of packWARN() for later */ bool unexpected_non_continuation = FALSE; bool overflowed = FALSE; + bool do_overlong_test = TRUE; /* May have to skip this test */ const char* const malformed_text = "Malformed UTF-8 character"; @@ -707,6 +708,10 @@ Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags) goto malformed; } uv = UNICODE_REPLACEMENT; + + /* Skip testing for overlongs, as the REPLACEMENT may not be the same + * as what the original expectations were. */ + do_overlong_test = FALSE; if (retlen) { *retlen = curlen; } @@ -719,13 +724,14 @@ Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags) goto malformed; } uv = UNICODE_REPLACEMENT; + do_overlong_test = FALSE; if (retlen) { *retlen = curlen; } } #ifndef EBCDIC /* EBCDIC allows FE, FF, can't overflow */ - else if ((*s0 & 0xFE) == 0xFE /* matches FE or FF */ + if ((*s0 & 0xFE) == 0xFE /* matches both FE, FF */ && (flags & (UTF8_WARN_FE_FF|UTF8_DISALLOW_FE_FF))) { /* By adding UTF8_CHECK_ONLY to the test, we avoid unnecessary @@ -740,7 +746,7 @@ Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags) goto malformed; } } - else if (overflowed) { + if (overflowed) { /* If the first byte is FF, it will overflow a 32-bit word. If the * first byte is FE, it will overflow a signed 32-bit word. The @@ -751,7 +757,10 @@ Perl_utf8n_to_uvuni(pTHX_ const U8 *s, STRLEN curlen, STRLEN *retlen, U32 flags) } #endif - else if (expectlen > (STRLEN)UNISKIP(uv) && ! (flags & UTF8_ALLOW_LONG)) { + if (do_overlong_test + && expectlen > (STRLEN)UNISKIP(uv) + && ! (flags & UTF8_ALLOW_LONG)) + { /* The overlong malformation has lower precedence than the others. * Note that if this malformation is allowed, we return the actual * value, instead of the replacement character. This is because this diff --git a/utils/perlbug.PL b/utils/perlbug.PL index 47d23fa..cac62a0 100644 --- a/utils/perlbug.PL +++ b/utils/perlbug.PL @@ -107,58 +107,6 @@ BEGIN { my $Version = "1.39"; -# Changed in 1.06 to skip Mail::Send and Mail::Util if not available. -# Changed in 1.07 to see more sendmail execs, and added pipe output. -# Changed in 1.08 to use correct address for sendmail. -# Changed in 1.09 to close the REP file before calling it up in the editor. -# Also removed some old comments duplicated elsewhere. -# Changed in 1.10 to run under VMS without Mail::Send; also fixed -# temp filename generation. -# Changed in 1.11 to clean up some text and removed Mail::Send deactivator. -# Changed in 1.12 to check for editor errors, make save/send distinction -# clearer and add $ENV{REPLYTO}. -# Changed in 1.13 to hopefully make it more difficult to accidentally -# send mail -# Changed in 1.14 to make the prompts a little more clear on providing -# helpful information. Also let file read fail gracefully. -# Changed in 1.15 to add warnings to stop people using perlbug for non-bugs. -# Also report selected environment variables. -# Changed in 1.16 to include @INC, and allow user to re-edit if no changes. -# Changed in 1.17 Win32 support added. GSAR 97-04-12 -# Changed in 1.18 add '-ok' option for reporting build success. CFR 97-06-18 -# Changed in 1.19 '-ok' default not '-v' -# add local patch information -# warn on '-ok' if this is an old system; add '-okay' -# Changed in 1.20 Added patchlevel.h reading and version/config checks -# Changed in 1.21 Added '-nok' for reporting build failure DFD 98-05-05 -# Changed in 1.22 Heavy reformatting & minor bugfixes HVDS 98-05-10 -# Changed in 1.23 Restore -ok(ay): say 'success'; don't prompt -# Changed in 1.24 Added '-F<file>' to save report HVDS 98-07-01 -# Changed in 1.25 Warn on failure to open save file. HVDS 98-07-12 -# Changed in 1.26 Don't require -t STDIN for -ok. HVDS 98-07-15 -# Changed in 1.27 Added Mac OS and File::Spec support CNANDOR 99-07-27 -# Changed in 1.28 Additional questions for Perlbugtron RFOLEY 20.03.2000 -# Changed in 1.29 Perlbug(tron): auto(-ok), short prompts RFOLEY 05-05-2000 -# Changed in 1.30 Added warnings on failure to open files MSTEVENS 13-07-2000 -# Changed in 1.31 Add checks on close().Fix my $var unless. TJENNESS 26-07-2000 -# Changed in 1.32 Use File::Spec->tmpdir TJENNESS 20-08-2000 -# Changed in 1.33 Don't require -t STDOUT for -ok. -# Changed in 1.34 Added Message-Id RFOLEY 18-06-2002 -# Changed in 1.35 Use File::Temp (patch from Solar Designer) NWCLARK 28-02-2004 -# Changed in 1.36 Initial Module::CoreList support Alexandr Ciornii 11-07-2007 -# Changed in 1.37 Killed some string evals, rewrote most prose JESSE 2008-06-08 -# Changed in 1.38 Actually enforce the CoreList check, -# Record the module the user enters if they do so -# Refactor prompts to use common code JESSE 2008-06-08 -# Changed in 1.39 Trap mail sending failures (simple ones) so JESSE 2008-06-08 -# users might be able to recover their bug reports -# Refactor mail sending routines -# Unify message building code -# Unify message header building -# Fix "module" prompting to not squish "category" prompting -# use warnings; (except 'once' warnings) -# Unified report fingerprint/change detection code -# Removed some labeled 'gotos' #TODO: # make sure failure (transmission-wise) of Mail::Send is accounted for. # (This may work now. Unsure of the original author's issue -JESSE 2008-06-08) -- Perl5 Master Repository
