# New Ticket Created by James Keenan
# Please include the string: [perl #53270]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=53270 >
There are five configuration step classes where the class's runstep()
method has an internal subroutine called _handle_mswin32(). These
classes are:
config/auto//crypto.pm
config/auto//gettext.pm
config/auto//gmp.pm
config/auto//opengl.pm
config/auto//readline.pm
Attached is an example of this subroutine, in this case, from
auto::readline:
sub _handle_mswin32 {
my ($conf, $osname, $cc) = @_;
if ( $osname =~ /mswin32/i ) {
if ( $cc =~ /^gcc/i ) {
$conf->data->add( ' ', libs => '-lreadline' );
}
else {
$conf->data->add( ' ', libs => 'readline.lib' );
}
}
else {
$conf->data->add( ' ', libs => '-lreadline' );
}
return 1;
}
Since this subroutine is declared with the same structure in 5
different classes, I propose that we refactor it into a method which,
by analogy with similar subroutines, we would place in
Parrot::Configure::Step::Methods.
More importantly, I propose that this subroutine be renamed. As you
can see from the sample, its action is *not* limited to mswin32.
Rather, it behaves one way on mswin32 -- actually, two ways,
depending on gcc or not -- and a different way on all other OSes.
How about: _add_flags_to_libs()?
I'll draw up an actual patch in a day or two, but first let me ask if
this sounds like a good idea or not.
Thank you very much.
kid51