On Mon, Apr 06, 2009 at 11:46:15AM +1200, Sam Vilain wrote:
+ my ($fh, $c) = $git->command_output_pipe(
+ 'config', ( $which ? ("--$which") : () ),
+ '--list',
+ );
+ my $read_state = {};
+
+ while (<$fh>) {
+ my ($item, $value) = m{(.*?)=(.*)};
+ my $sl = \( $read_state->{$item} );
+ if (!defined $$sl) {
+ $$sl = $value;
+ }
+ elsif (!ref $$sl) {
+ $$sl = [ $$sl, $value ];
+ }
+ else {
+ push @{ $$sl }, $value;
+ }
+ }
Any reason why you don't use --null here? The output of --list without --null
is not reliably parsable, since people can put newlines in values.
Gruesse,
--
Frank Lichtenheld [off-list ref]
www: http://www.djpig.de/