Junio C Hamano | d9ea73e | 2006-04-05 02:03:58 -0700 | [diff] [blame] | 1 | #ifndef XDIFF_INTERFACE_H |
| 2 | #define XDIFF_INTERFACE_H |
| 3 | |
brian m. carlson | d449347 | 2016-09-05 20:08:02 +0000 | [diff] [blame] | 4 | #include "cache.h" |
Junio C Hamano | d9ea73e | 2006-04-05 02:03:58 -0700 | [diff] [blame] | 5 | #include "xdiff/xdiff.h" |
Junio C Hamano | d9ea73e | 2006-04-05 02:03:58 -0700 | [diff] [blame] | 6 | |
Jeff King | dcd1742 | 2015-09-24 19:12:45 -0400 | [diff] [blame] | 7 | /* |
| 8 | * xdiff isn't equipped to handle content over a gigabyte; |
| 9 | * we make the cutoff 1GB - 1MB to give some breathing |
| 10 | * room for constant-sized additions (e.g., merge markers) |
| 11 | */ |
| 12 | #define MAX_XDIFF_SIZE (1024UL * 1024 * 1023) |
| 13 | |
Junio C Hamano | d9ea73e | 2006-04-05 02:03:58 -0700 | [diff] [blame] | 14 | typedef void (*xdiff_emit_consume_fn)(void *, char *, unsigned long); |
| 15 | |
Junio C Hamano | c279d7e | 2007-12-13 13:25:07 -0800 | [diff] [blame] | 16 | int xdi_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdemitconf_t const *xecfg, xdemitcb_t *ecb); |
Brian Downing | c99db9d2 | 2008-08-14 00:36:50 -0500 | [diff] [blame] | 17 | int xdi_diff_outf(mmfile_t *mf1, mmfile_t *mf2, |
Junio C Hamano | 8a3f524 | 2008-08-13 23:18:22 -0700 | [diff] [blame] | 18 | xdiff_emit_consume_fn fn, void *consume_callback_data, |
René Scharfe | dfea790 | 2010-05-04 22:41:34 +0200 | [diff] [blame] | 19 | xpparam_t const *xpp, xdemitconf_t const *xecfg); |
Junio C Hamano | c1e335a | 2006-04-05 12:22:35 -0700 | [diff] [blame] | 20 | int parse_hunk_header(char *line, int len, |
Junio C Hamano | a0fd314 | 2006-04-06 22:29:55 -0700 | [diff] [blame] | 21 | int *ob, int *on, |
| 22 | int *nb, int *nn); |
Johannes Schindelin | 7cab588 | 2006-12-20 17:37:07 +0100 | [diff] [blame] | 23 | int read_mmfile(mmfile_t *ptr, const char *filename); |
brian m. carlson | d449347 | 2016-09-05 20:08:02 +0000 | [diff] [blame] | 24 | void read_mmblob(mmfile_t *ptr, const struct object_id *oid); |
Johannes Schindelin | 6bfce93 | 2007-06-05 03:36:11 +0100 | [diff] [blame] | 25 | int buffer_is_binary(const char *ptr, unsigned long size); |
Junio C Hamano | d9ea73e | 2006-04-05 02:03:58 -0700 | [diff] [blame] | 26 | |
Brandon Casey | a013585 | 2008-09-18 17:42:48 -0500 | [diff] [blame] | 27 | extern void xdiff_set_find_func(xdemitconf_t *xecfg, const char *line, int cflags); |
René Scharfe | 8cfe5f1 | 2009-07-02 00:01:43 +0200 | [diff] [blame] | 28 | extern void xdiff_clear_find_func(xdemitconf_t *xecfg); |
Junio C Hamano | b541248 | 2008-08-29 10:49:56 -0700 | [diff] [blame] | 29 | extern int git_xmerge_config(const char *var, const char *value, void *cb); |
| 30 | extern int git_xmerge_style; |
Junio C Hamano | f258475 | 2007-07-06 00:45:10 -0700 | [diff] [blame] | 31 | |
Stefan Beller | 5ec8274 | 2017-10-25 11:49:11 -0700 | [diff] [blame] | 32 | /* |
| 33 | * Compare the strings l1 with l2 which are of size s1 and s2 respectively. |
| 34 | * Returns 1 if the strings are deemed equal, 0 otherwise. |
| 35 | * The `flags` given as XDF_WHITESPACE_FLAGS determine how white spaces |
| 36 | * are treated for the comparision. |
| 37 | */ |
| 38 | extern int xdiff_compare_lines(const char *l1, long s1, |
| 39 | const char *l2, long s2, long flags); |
| 40 | |
| 41 | /* |
| 42 | * Returns a hash of the string s of length len. |
| 43 | * The `flags` given as XDF_WHITESPACE_FLAGS determine how white spaces |
| 44 | * are treated for the hash. |
| 45 | */ |
| 46 | extern unsigned long xdiff_hash_string(const char *s, size_t len, long flags); |
| 47 | |
Junio C Hamano | d9ea73e | 2006-04-05 02:03:58 -0700 | [diff] [blame] | 48 | #endif |