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

Re: [PATCH v3 4/8] gitweb: Extract print_sidebyside_diff_lines()

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 4, 2012, 21:47 UTC
Message-ID
<7vsjgj6ufi.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1333569433-3245-5-git-send-email-michal.kiedrowicz@gmail.com>
Michał Kiedrowicz <michal.kiedrowicz@gmail.com> writes:
Show 9 quoted lines
> +	if (!@$add) {
> +		# pure removal
> +...
> +	} elsif (!@$rem) {
> +		# pure addition
> +...
> +	} else {
> +		# assume that it is change
> +		print join '',

I know this is not a new problem, but if your patch hunk has both '-' and '+' lines, what's there to "assume" that it is a change? Isn't it always?

Show 6 quoted lines
> -		# empty add/rem block on start context block, or end of chunk
> -		if ((@rem || @add) && (!$class || $class eq 'ctx')) {
> -...
> +		## print from accumulator when have some add/rem lines or end
> +		# of chunk (flush context lines)
> +		if (((@rem || @add) && $class eq 'ctx') || !$class) {

This seems to change the condition. Earlier, it held true if (there is anything to show), and (class is unset or equal to ctx). The new code says something different. Also can $class be undef, and if so, doesn't it trigger comparison between undef and 'ctx' by having !$class check at the end of || chain?

Previous: Michał KiedrowiczNext: Jakub Narebski
Message 8 of 19 in “Highlight interesting parts of diff”
  1. 0/8 Highlight interesting parts of diffMichał Kiedrowicz, Apr 4, 2012
  2. 1/8 gitweb: Use descriptive names in esc_html_hl_regions()Michał Kiedrowicz, Apr 4, 2012
  3. Junio C HamanoApr 4, 2012
  4. Michal KiedrowiczApr 5, 2012
  5. 2/8 gitweb: esc_html_hl_regions(): Don't create empty <span> elementsMichał Kiedrowicz, Apr 4, 2012
  6. 3/8 gitweb: Pass esc_html_hl_regions() options to esc_html()Michał Kiedrowicz, Apr 4, 2012
  7. 4/8 gitweb: Extract print_sidebyside_diff_lines()Michał Kiedrowicz, Apr 4, 2012
  8. Junio C HamanoApr 4, 2012
  9. Jakub NarebskiApr 4, 2012
  10. Michal KiedrowiczApr 5, 2012
  11. Jakub NarebskiApr 5, 2012
  12. Michal KiedrowiczApr 6, 2012
  13. 5/8 gitweb: Use print_diff_chunk() for both side-by-side and inline diffsMichał Kiedrowicz, Apr 4, 2012
  14. Jakub NarebskiApr 5, 2012
  15. Michal KiedrowiczApr 6, 2012
  16. 6/8 gitweb: Push formatting diff lines to print_diff_chunk()Michał Kiedrowicz, Apr 4, 2012
  17. 7/8 gitweb: Highlight interesting parts of diffMichał Kiedrowicz, Apr 4, 2012
  18. Michal KiedrowiczApr 5, 2012
  19. 8/8 gitweb: Refinement highlightning in combined diffsMichał Kiedrowicz, Apr 4, 2012

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.