diffcore-order: export generic ordering interface
diffcore_order() interface only accepts a queue of `struct diff_filepair`. In the next patches, we'll want to order `struct combine_diff_path` by path, so let's first rework diffcore-order to also provide generic low-level interface for ordering arbitrary objects, provided they have path accessors. The new interface is: - `struct obj_order` for describing objects to ordering routine, and - order_objects() for actually doing the ordering work. Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
7146e66f08
commit
1df4320fa2
14
diffcore.h
14
diffcore.h
@ -109,6 +109,20 @@ extern void diffcore_merge_broken(void);
|
||||
extern void diffcore_pickaxe(struct diff_options *);
|
||||
extern void diffcore_order(const char *orderfile);
|
||||
|
||||
/* low-level interface to diffcore_order */
|
||||
struct obj_order {
|
||||
void *obj; /* setup by caller */
|
||||
|
||||
/* setup/used by order_objects() */
|
||||
int orig_order;
|
||||
int order;
|
||||
};
|
||||
|
||||
typedef const char *(*obj_path_fn_t)(void *obj);
|
||||
|
||||
void order_objects(const char *orderfile, obj_path_fn_t obj_path,
|
||||
struct obj_order *objs, int nr);
|
||||
|
||||
#define DIFF_DEBUG 0
|
||||
#if DIFF_DEBUG
|
||||
void diff_debug_filespec(struct diff_filespec *, int, const char *);
|
||||
|
Reference in New Issue
Block a user