| 1 | #ifndef USERDIFF_H |
| 2 | #define USERDIFF_H |
| 3 | |
| 4 | #include "notes-cache.h" |
| 5 | |
| 6 | struct index_state; |
| 7 | struct repository; |
| 8 | |
| 9 | struct userdiff_funcname { |
| 10 | const char *pattern; |
| 11 | int cflags; |
| 12 | }; |
| 13 | |
| 14 | struct userdiff_driver { |
| 15 | const char *name; |
| 16 | const char *external; |
| 17 | int binary; |
| 18 | struct userdiff_funcname funcname; |
| 19 | const char *word_regex; |
| 20 | const char *textconv; |
| 21 | struct notes_cache *textconv_cache; |
| 22 | int textconv_want_cache; |
| 23 | }; |
| 24 | |
| 25 | int userdiff_config(const char *k, const char *v); |
| 26 | struct userdiff_driver *userdiff_find_by_name(const char *name); |
| 27 | struct userdiff_driver *userdiff_find_by_path(struct index_state *istate, |
| 28 | const char *path); |
| 29 | |
| 30 | /* |
| 31 | * Initialize any textconv-related fields in the driver and return it, or NULL |
| 32 | * if it does not have textconv enabled at all. |
| 33 | */ |
| 34 | struct userdiff_driver *userdiff_get_textconv(struct repository *r, |
| 35 | struct userdiff_driver *driver); |
| 36 | |
| 37 | #endif /* USERDIFF */ |