Re: [PATCH] perl: add new module Git::Config for cached 'git config' access
- From
Frank Lichtenheld <frank@lichtenheld.de>
- Date
- Apr 6, 2009, 09:29 UTC
- Message-ID
- <20090406092942.GW17706@mail-vs.djpig.de>
- In-Reply-To
- <1238975176-14354-1-git-send-email-sam.vilain@catalyst.net.nz>
On Mon, Apr 06, 2009 at 11:46:15AM +1200, Sam Vilain wrote:
Show 19 quoted lines
> + 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 <frank@lichtenheld.de> www: http://www.djpig.de/