You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
#ifndef USERDIFF_H |
|
#define USERDIFF_H |
|
|
|
#include "notes-cache.h" |
|
|
|
struct index_state; |
|
struct repository; |
|
|
|
struct userdiff_funcname { |
|
const char *pattern; |
|
int cflags; |
|
}; |
|
|
|
struct userdiff_driver { |
|
const char *name; |
|
const char *external; |
|
const char *algorithm; |
|
int binary; |
|
struct userdiff_funcname funcname; |
|
const char *word_regex; |
|
const char *word_regex_multi_byte; |
|
const char *textconv; |
|
struct notes_cache *textconv_cache; |
|
int textconv_want_cache; |
|
}; |
|
enum userdiff_driver_type { |
|
USERDIFF_DRIVER_TYPE_BUILTIN = 1<<0, |
|
USERDIFF_DRIVER_TYPE_CUSTOM = 1<<1, |
|
}; |
|
typedef int (*each_userdiff_driver_fn)(struct userdiff_driver *, |
|
enum userdiff_driver_type, void *); |
|
|
|
int userdiff_config(const char *k, const char *v); |
|
struct userdiff_driver *userdiff_find_by_name(const char *name); |
|
struct userdiff_driver *userdiff_find_by_path(struct index_state *istate, |
|
const char *path); |
|
|
|
/* |
|
* Initialize any textconv-related fields in the driver and return it, or NULL |
|
* if it does not have textconv enabled at all. |
|
*/ |
|
struct userdiff_driver *userdiff_get_textconv(struct repository *r, |
|
struct userdiff_driver *driver); |
|
|
|
/* |
|
* Iterate over all userdiff drivers. The userdiff_driver_type |
|
* argument to each_userdiff_driver_fn indicates their type. Return |
|
* non-zero to exit early from the loop. |
|
*/ |
|
int for_each_userdiff_driver(each_userdiff_driver_fn, void *); |
|
|
|
#endif /* USERDIFF */
|
|
|