[prev in list] [next in list] [prev in thread] [next in thread] 

List:       perl5-changes
Subject:    Change 33617: Integrate:
From:       Nicholas Clark <nwc10+p5p4 () colon ! colondot ! net>
Date:       2008-03-31 19:30:04
Message-ID: 20080331193004.7E62E50160 () mx ! activestate ! com
[Download RAW message or body]

Change 33617 by nicholas@mouse-mill on 2008/03/31 19:23:09

	Integrate:
	[ 33260]
	I've been maintaining Net::Ping for a while now.
	
	[ 33295]
	Make sure we only find the macro we were looking for,
	not something that only starts with the same string.
	
	[ 33303]
	Jerry D. Hedden now maintains Thread::Semaphore on CPAN
	
	[ 33352]
	Subject: [patch] Porting/expand-macros.pl gets 'indent'ing
	From: Jim Cromie <jim.cromie@gmail.com>
	Message-ID: <47AB9C4A.3080107@gmail.com>
	Date: Thu, 07 Feb 2008 17:03:22 -0700
	
	[ 33353]
	Take advantage of the fact that we can use indent as a stdin/stdout
	filter to reduce its workload (and ours) by only sending it the 3 or
	so lines that we are interested in printing, not the preceding
	bucket loads.
	
	[ 33456]
	Subject: checkAUTHORS.pl update for me
	From: Michael G Schwern <schwern@pobox.com>
	Date: Sun, 09 Mar 2008 00:35:48 +0100
	Message-ID: <47D322D4.8090508@pobox.com>

Affected files ...

... //depot/maint-5.10/perl/Porting/Maintainers.pl#6 integrate
... //depot/maint-5.10/perl/Porting/checkAUTHORS.pl#2 integrate
... //depot/maint-5.10/perl/Porting/expand-macro.pl#2 integrate

Differences ...

==== //depot/maint-5.10/perl/Porting/Maintainers.pl#6 (text) ====
Index: perl/Porting/Maintainers.pl
--- perl/Porting/Maintainers.pl#5~33524~	2008-03-14 02:37:22.000000000 -0700
+++ perl/Porting/Maintainers.pl	2008-03-31 12:23:09.000000000 -0700
@@ -17,7 +17,6 @@
 	'arandal'       => 'Allison Randal <allison@perl.org>',
 	'audreyt'	=> 'Audrey Tang <cpan@audreyt.org>',
 	'avar'		=> 'Ævar Arnfjörð Bjarmason <avar@cpan.org>',
-	'bbb'		=> 'Rob Brown <bbb@cpan.org>',
 	'craig'		=> 'Craig Berry <craigberry@mac.com>',
 	'dankogai'	=> 'Dan Kogai <dankogai@cpan.org>',
 	'dconway'	=> 'Damian Conway <dconway@cpan.org>',
@@ -70,6 +69,7 @@
 	'sburke'	=> 'Sean Burke <sburke@cpan.org>',
 	'mschwern'	=> 'Michael Schwern <mschwern@cpan.org>',
 	'smccam'	=> 'Stephen McCamant <smccam@cpan.org>',
+	'smpeters'	=> 'Steve Peters <steve@fisharerojo.org>',
 	'smueller'	=> 'Steffen Mueller <smueller@cpan.org>',
 	'tels'		=> 'Tels <nospam-abuse@bloodgate.com>',
 	'tomhughes'	=> 'Tom Hughes <tomhughes@cpan.org>',
@@ -618,7 +618,7 @@
 
 	'Net::Ping' =>
 		{
-		'MAINTAINER'	=> 'bbb',
+		'MAINTAINER'	=> 'smpeters',
 		'FILES'		=> q[lib/Net/Ping.pm lib/Net/Ping],
 		'CPAN'		=> 1,
 		},

==== //depot/maint-5.10/perl/Porting/checkAUTHORS.pl#2 (text) ====
Index: perl/Porting/checkAUTHORS.pl
--- perl/Porting/checkAUTHORS.pl#1~32694~	2007-12-22 01:23:09.000000000 -0800
+++ perl/Porting/checkAUTHORS.pl	2008-03-31 12:23:09.000000000 -0700
@@ -436,6 +436,9 @@
 schubiger\100cpan.org                   steven\100accognoscere.org
 +                                       sts\100accognoscere.org
 schwern\100pobox.com                    schwern\100gmail.com
++                                       schwern\100athens.arena-i.com
++                                       schwern\100blackrider.aocn.com
++                                       schwern\100ool-18b93024.dyn.optonline.net
 sebastien\100aperghis.net               maddingue\100free.fr
 +                                       saper\100cpan.org
 simon\100simon-cozens.org               simon\100pembro4.pmb.ox.ac.uk

==== //depot/maint-5.10/perl/Porting/expand-macro.pl#2 (text) ====
Index: perl/Porting/expand-macro.pl
--- perl/Porting/expand-macro.pl#1~33117~	2008-01-29 15:38:53.000000000 -0800
+++ perl/Porting/expand-macro.pl	2008-03-31 12:23:09.000000000 -0700
@@ -1,16 +1,37 @@
 #!perl -w
 use strict;
 
+use Getopt::Std;
+
 use vars qw($trysource $tryout $sentinel);
 $trysource = "try.c";
 $tryout = "try.i";
 
+getopts('fF:ekvI:', \my %opt) or usage();
+
+sub usage {
+    die<<EO_HELP;
+@_;
+usage: $0 [options] <macro-name> [headers]
+options:
+    -f		use 'indent' to format output
+    -F	<tool>	use <tool> to format output  (instead of -f)
+    -e		erase try.[ic] instead of failing when theyre present (errdetect)
+    -k		keep them after generating (for handy inspection)
+    -v		verbose
+    -I <indent-opts>	passed into indent
+EO_HELP
+}
+
 my $macro = shift;
-die "$0 macro [headers]" unless defined $macro;
+usage "missing <macro-name>" unless defined $macro;
 
 $sentinel = "$macro expands to";
 
+usage "-f and -F <tool> are exclusive\n" if $opt{f} and $opt{F};
+
 foreach($trysource, $tryout) {
+    unlink $_ if $opt{e};
     die "You already have a $_" if -e $_;
 }
 
@@ -23,16 +44,20 @@
 
 my $args = '';
 
+my $found_macro;
 while (<>) {
-    next unless /^#\s*define\s+$macro/;
+    next unless /^#\s*define\s+$macro\b/;
     my ($def_args) = /^#\s*define\s+$macro\(([^)]*)\)/;
     if (defined $def_args) {
 	my @args = split ',', $def_args;
+	print "# macro: $macro args: @args in $_\n" if $opt{v};
 	my $argname = "A0";
 	$args = '(' . join (', ', map {$argname++} 1..@args) . ')';
     }
+    $found_macro++;
     last;
 }
+die "$macro not found\n" unless $found_macro;
 
 open my $out, '>', $trysource or die "Can't open $trysource: $!";
 
@@ -45,14 +70,38 @@
 
 close $out or die "Can't close $trysource: $!";
 
+print "doing: make $tryout\n" if $opt{v};
 system "make $tryout" and die;
 
+# if user wants 'indent' formatting ..
+my $out_fh;
+
+if ($opt{f} || $opt{F}) {
+    # a: indent is a well behaved filter when given 0 arguments, reading from
+    #    stdin and writing to stdout
+    # b: all our braces should be balanced, indented back to column 0, in the
+    #    headers, hence everything before our #line directive can be ignored
+    #
+    # We can take advantage of this to reduce the work to indent.
+
+    my $indent_command = $opt{f} ? 'indent' : $opt{F};
+
+    if (defined $opt{I}) {
+	$indent_command .= " $opt{I}";
+    }
+    open $out_fh, '|-', $indent_command or die $?;
+} else {
+    $out_fh = \*STDOUT;
+}
+
 open my $fh, '<', $tryout or die "Can't open $tryout: $!";
 
 while (<$fh>) {
-    print if /$sentinel/o .. 1;
+    print $out_fh $_ if /$sentinel/o .. 1;
 }
 
-foreach($trysource, $tryout) {
-    die "Can't unlink $_" unless unlink $_;
+unless ($opt{k}) {
+    foreach($trysource, $tryout) {
+	die "Can't unlink $_" unless unlink $_;
+    }
 }
End of Patch.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic