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

Re: [PATCH 2/4] xdiff-interface: export comparing and hashing strings

From
René Scharfe <l.s.r@web.de>
Date
Oct 24, 2017, 20:23 UTC
Message-ID
<9f5c5cd5-9491-3163-60d4-ad36d75981ce@web.de>
In-Reply-To
<20171024185917.20515-3-sbeller@google.com>
Am 24.10.2017 um 20:59 schrieb Stefan Beller:
Show 33 quoted lines
> This will turn out to be useful in a later patch
> 
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
>   xdiff-interface.c | 11 +++++++++++
>   xdiff-interface.h |  5 +++++
>   2 files changed, 16 insertions(+)
> 
> diff --git a/xdiff-interface.c b/xdiff-interface.c
> index 018e033089..fd002ebbc2 100644
> --- a/xdiff-interface.c
> +++ b/xdiff-interface.c
> @@ -5,6 +5,7 @@
>   #include "xdiff/xdiffi.h"
>   #include "xdiff/xemit.h"
>   #include "xdiff/xmacros.h"
> +#include "xdiff/xutils.h"
>   
>   struct xdiff_emit_state {
>   	xdiff_emit_consume_fn consume;
> @@ -296,6 +297,16 @@ void xdiff_clear_find_func(xdemitconf_t *xecfg)
>   	}
>   }
>   
> +unsigned long xdiff_hash_string(const char *s, size_t len, long flags)
> +{
> +	return xdl_hash_record(&s, s + len, flags);
> +}
> +
> +int xdiff_compare_lines(const char *l1, long s1, const char *l2, long s2, long flags)
> +{
> +	return xdl_recmatch(l1, s1, l2, s2, flags);
> +}

xdl_recmatch() is already exported; why not use it without this wrapper?

Show 16 quoted lines
> +
>   int git_xmerge_style = -1;
>   
>   int git_xmerge_config(const char *var, const char *value, void *cb)
> diff --git a/xdiff-interface.h b/xdiff-interface.h
> index 6f6ba9095d..d3cb9285c5 100644
> --- a/xdiff-interface.h
> +++ b/xdiff-interface.h
> @@ -29,4 +29,9 @@ extern void xdiff_clear_find_func(xdemitconf_t *xecfg);
>   extern int git_xmerge_config(const char *var, const char *value, void *cb);
>   extern int git_xmerge_style;
>   
> +extern int xdiff_compare_lines(const char *l1, long s1,
> +			       const char *l2, long s2, long flags);
> +
> +extern unsigned long xdiff_hash_string(const char *s, size_t len, long flags);

Documenting the meaning of their parameters would be nice. s and len are easy enough to guess, but which flags can be used? At least a pointer to their definition in xdiff/xdiff.h would be helpful. And renaming l1, s1, l2, s2 to a, alen, b, blen or line1, len1, line2, len2 or similar would leave me less confused, but perhaps that's just me.

> +
>   #endif
> 
Previous: Stefan BellerNext: Stefan Beller
Message 6 of 31 in “(x)diff cleanup: remove duplicate code”
  1. 0/4 (x)diff cleanup: remove duplicate codeStefan Beller, Oct 24, 2017
  2. 1/4 hashmap: introduce memhash_feed to access the internals of FNV-1 hashStefan Beller, Oct 24, 2017
  3. René ScharfeOct 24, 2017
  4. Stefan BellerOct 24, 2017
  5. 2/4 xdiff-interface: export comparing and hashing stringsStefan Beller, Oct 24, 2017
  6. René ScharfeOct 24, 2017
  7. Stefan BellerOct 24, 2017
  8. René ScharfeOct 26, 2017
  9. 3/4 xdiff: use stronger hash function internallyStefan Beller, Oct 24, 2017
  10. René ScharfeOct 24, 2017
  11. Stefan BellerOct 24, 2017
  12. Jonathan NiederOct 24, 2017
  13. 4/4 diff.c: get rid of duplicate implementationStefan Beller, Oct 24, 2017
  14. Stefan BellerOct 24, 2017
  15. 0/2 (x)diff cleanup: remove duplicate codeStefan Beller, Oct 24, 2017
  16. 1/2 xdiff-interface: export comparing and hashing stringsStefan Beller, Oct 24, 2017
  17. Eric SunshineOct 25, 2017
  18. 2/2 diff.c: get rid of duplicate implementationStefan Beller, Oct 24, 2017
  19. Junio C HamanoOct 25, 2017
  20. Stefan BellerOct 25, 2017
  21. 0/2 (x)diff cleanup: remove duplicate codeStefan Beller, Oct 25, 2017
  22. 2/2 diff.c: get rid of duplicate implementationStefan Beller, Oct 25, 2017
  23. Junio C HamanoOct 26, 2017
  24. René ScharfeOct 26, 2017
  25. Jeff KingOct 30, 2017
  26. Jeff KingOct 30, 2017
  27. 1/2 xdiff-interface: export comparing and hashing stringsStefan Beller, Oct 25, 2017
  28. René ScharfeOct 26, 2017
  29. Junio C HamanoOct 27, 2017
  30. Stefan BellerOct 27, 2017
  31. 1/5 fnv: migrate code from hashmap to fnvStefan Beller, Oct 24, 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.