git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/8] t0021/rot13-filter: fix list comparison

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 7, 2017, 01:00 UTC
Message-ID
<xmqqvaimhph3.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20171105213836.11717-2-chriscool@tuxfamily.org>
Christian Couder <christian.couder@gmail.com> writes:
Show 26 quoted lines
> +sub packet_compare_lists {
> +	my ($expect, @result) = @_;
> +	my $ix;
> +	if (scalar @$expect != scalar @result) {
> +		return undef;
> +	}
> +	for ($ix = 0; $ix < $#result; $ix++) {
> +		if ($expect->[$ix] ne $result[$ix]) {
> +			return undef;
> +		}
> +	}
> +	return 1;
> +}
> +
>  sub packet_bin_read {
>  	my $buffer;
>  	my $bytes_read = read STDIN, $buffer, 4;
> @@ -110,18 +124,25 @@ sub packet_flush {
>  print $debug "START\n";
>  $debug->flush();
>  
> -( packet_txt_read() eq ( 0, "git-filter-client" ) ) || die "bad initialize";
> -( packet_txt_read() eq ( 0, "version=2" ) )         || die "bad version";
> -( packet_bin_read() eq ( 1, "" ) )                  || die "bad version end";
> +packet_compare_lists([0, "git-filter-client"], packet_txt_read()) ||
> +	die "bad initialize";

For now this should do, but the "packet_compare_lists" may later want to become more specific to the needs of these callers. It tries to be a generic comparison function for list of strings, but what these callers feed is always two-element tuple, whose first element is an integer (not just a random thing that can be made into a string to be compared with "ne") and whose second element is a string.

Previous: Christian CouderNext: Christian Couder
Message 3 of 14 in “Create Git/Packet.pm”
  1. 0/8 Create Git/Packet.pmChristian Couder, Nov 5, 2017
  2. 1/8 t0021/rot13-filter: fix list comparisonChristian Couder, Nov 5, 2017
  3. Junio C HamanoNov 7, 2017
  4. 2/8 t0021/rot13-filter: refactor packet reading functionsChristian Couder, Nov 5, 2017
  5. Junio C HamanoNov 7, 2017
  6. Christian CouderNov 7, 2017
  7. 8/8 Add Git/Packet.pm from parts of t0021/rot13-filter.plChristian Couder, Nov 5, 2017
  8. 5/8 t0021/rot13-filter: add packet_initialize()Christian Couder, Nov 5, 2017
  9. 3/8 t0021/rot13-filter: improve 'if .. elsif .. else' styleChristian Couder, Nov 5, 2017
  10. 7/8 t0021/rot13-filter: add capability functionsChristian Couder, Nov 5, 2017
  11. Junio C HamanoNov 7, 2017
  12. 6/8 t0021/rot13-filter: refactor checking final lfChristian Couder, Nov 5, 2017
  13. Junio C HamanoNov 7, 2017
  14. 4/8 t0021/rot13-filter: improve error messageChristian Couder, Nov 5, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.