|
diff --git a/git.h b/git.h index a3f977c..922a167 100644 --- a/ git.h+++ b/ git.h |
|
@@ -125,20 +125,40 @@ static inline ssize_t xwrite(int fd, const void *buf, size_t len) |
125 | |
125 | |
126 | |
126 | |
127 | /* Convert to/from hex/sha1 representation */ |
127 | /* Convert to/from hex/sha1 representation */ |
128 | #define MINIMUM_ABBREV 4 |
128 | #define MINIMUM_ABBREV 4 |
129 | #define DEFAULT_ABBREV 7 |
129 | #define DEFAULT_ABBREV 7 |
130 | |
130 | |
| |
131 | extern const unsigned char null_sha1[20]; |
| |
132 | |
131 | extern int sha1_object_info(const unsigned char *, char *, unsigned long *); |
133 | extern int sha1_object_info(const unsigned char *, char *, unsigned long *); |
132 | |
134 | |
133 | extern void * read_sha1_file(const unsigned char *sha1, char *type, unsigned long *size); |
135 | extern void * read_sha1_file(const unsigned char *sha1, char *type, unsigned long *size); |
134 | |
136 | |
135 | extern int get_sha1(const char *str, unsigned char *sha1); |
137 | extern int get_sha1(const char *str, unsigned char *sha1); |
136 | extern int get_sha1_hex(const char *hex, unsigned char *sha1); |
138 | extern int get_sha1_hex(const char *hex, unsigned char *sha1); |
137 | extern char *sha1_to_hex(const unsigned char *sha1);/* static buffer result! */ |
139 | extern char *sha1_to_hex(const unsigned char *sha1);/* static buffer result! */ |
138 | |
140 | |
| |
141 | static inline int is_null_sha1(const unsigned char *sha1) |
| |
142 | { |
| |
143 | return !memcmp(sha1, null_sha1, 20); |
| |
144 | } |
| |
145 | static inline int hashcmp(const unsigned char *sha1, const unsigned char *sha2) |
| |
146 | { |
| |
147 | return memcmp(sha1, sha2, 20); |
| |
148 | } |
| |
149 | static inline void hashcpy(unsigned char *sha_dst, const unsigned char *sha_src) |
| |
150 | { |
| |
151 | memcpy(sha_dst, sha_src, 20); |
| |
152 | } |
| |
153 | static inline void hashclr(unsigned char *hash) |
| |
154 | { |
| |
155 | memset(hash, 0, 20); |
| |
156 | } |
| |
157 | |
| |
158 | |
139 | |
159 | |
140 | |
160 | |
141 | /* |
161 | /* |
142 | * from git:object.h |
162 | * from git:object.h |
143 | */ |
163 | */ |
144 | |
164 | |
@@ -254,12 +274,67 @@ extern unsigned long pretty_print_commit(enum cmit_fmt fmt, const struct commit |
254 | |
274 | |
255 | typedef void (*topo_sort_set_fn_t)(struct commit*, void *data); |
275 | typedef void (*topo_sort_set_fn_t)(struct commit*, void *data); |
256 | typedef void* (*topo_sort_get_fn_t)(struct commit*); |
276 | typedef void* (*topo_sort_get_fn_t)(struct commit*); |
257 | |
277 | |
258 | |
278 | |
259 | |
279 | |
| |
280 | /* |
| |
281 | * from git:diffcore.h |
| |
282 | */ |
| |
283 | |
| |
284 | struct diff_filespec { |
| |
285 | unsigned char sha1[20]; |
| |
286 | char *path; |
| |
287 | void *data; |
| |
288 | void *cnt_data; |
| |
289 | unsigned long size; |
| |
290 | int xfrm_flags; /* for use by the xfrm */ |
| |
291 | unsigned short mode; /* file mode */ |
| |
292 | unsigned sha1_valid : 1; /* if true, use sha1 and trust mode; |
| |
293 | * if false, use the name and read from |
| |
294 | * the filesystem. |
| |
295 | */ |
| |
296 | #define DIFF_FILE_VALID(spec) (((spec)->mode) != 0) |
| |
297 | unsigned should_free : 1; /* data should be free()'ed */ |
| |
298 | unsigned should_munmap : 1; /* data should be munmap()'ed */ |
| |
299 | }; |
| |
300 | |
| |
301 | struct diff_filepair { |
| |
302 | struct diff_filespec *one; |
| |
303 | struct diff_filespec *two; |
| |
304 | unsigned short int score; |
| |
305 | char status; /* M C R N D U (see Documentation/diff-format.txt) */ |
| |
306 | unsigned source_stays : 1; /* all of R/C are copies */ |
| |
307 | unsigned broken_pair : 1; |
| |
308 | unsigned renamed_pair : 1; |
| |
309 | }; |
| |
310 | |
| |
311 | #define DIFF_PAIR_UNMERGED(p) \ |
| |
312 | (!DIFF_FILE_VALID((p)->one) && !DIFF_FILE_VALID((p)->two)) |
| |
313 | |
| |
314 | #define DIFF_PAIR_RENAME(p) ((p)->renamed_pair) |
| |
315 | |
| |
316 | #define DIFF_PAIR_BROKEN(p) \ |
| |
317 | ( (!DIFF_FILE_VALID((p)->one) != !DIFF_FILE_VALID((p)->two)) && \ |
| |
318 | ((p)->broken_pair != 0) ) |
| |
319 | |
| |
320 | #define DIFF_PAIR_TYPE_CHANGED(p) \ |
| |
321 | ((S_IFMT & (p)->one->mode) != (S_IFMT & (p)->two->mode)) |
| |
322 | |
| |
323 | #define DIFF_PAIR_MODE_CHANGED(p) ((p)->one->mode != (p)->two->mode) |
| |
324 | |
| |
325 | extern void diff_free_filepair(struct diff_filepair *); |
| |
326 | |
| |
327 | extern int diff_unmodified_pair(struct diff_filepair *); |
| |
328 | |
| |
329 | struct diff_queue_struct { |
| |
330 | struct diff_filepair **queue; |
| |
331 | int alloc; |
| |
332 | int nr; |
| |
333 | }; |
| |
334 | |
260 | |
335 | |
261 | /* |
336 | /* |
262 | * from git:diff.h |
337 | * from git:diff.h |
263 | */ |
338 | */ |
264 | |
339 | |
265 | |
340 | |
@@ -349,12 +424,38 @@ enum color_diff { |
349 | DIFF_FILE_NEW = 5, |
424 | DIFF_FILE_NEW = 5, |
350 | DIFF_COMMIT = 6, |
425 | DIFF_COMMIT = 6, |
351 | DIFF_WHITESPACE = 7, |
426 | DIFF_WHITESPACE = 7, |
352 | }; |
427 | }; |
353 | |
428 | |
354 | |
429 | |
| |
430 | extern int diff_tree_sha1(const unsigned char *old, const unsigned char *new, |
| |
431 | const char *base, struct diff_options *opt); |
| |
432 | |
| |
433 | extern int diff_root_tree_sha1(const unsigned char *new, const char *base, |
| |
434 | struct diff_options *opt); |
| |
435 | |
| |
436 | extern int git_diff_ui_config(const char *var, const char *value); |
| |
437 | extern void diff_setup(struct diff_options *); |
| |
438 | extern int diff_opt_parse(struct diff_options *, const char **, int); |
| |
439 | extern int diff_setup_done(struct diff_options *); |
| |
440 | |
| |
441 | |
| |
442 | extern void diffcore_std(struct diff_options *); |
| |
443 | extern void diff_flush(struct diff_options*); |
| |
444 | |
| |
445 | |
| |
446 | /* diff-raw status letters */ |
| |
447 | #define DIFF_STATUS_ADDED 'A' |
| |
448 | #define DIFF_STATUS_COPIED 'C' |
| |
449 | #define DIFF_STATUS_DELETED 'D' |
| |
450 | #define DIFF_STATUS_MODIFIED 'M' |
| |
451 | #define DIFF_STATUS_RENAMED 'R' |
| |
452 | #define DIFF_STATUS_TYPE_CHANGED'T' |
| |
453 | #define DIFF_STATUS_UNKNOWN 'X' |
| |
454 | #define DIFF_STATUS_UNMERGED 'U' |
| |
455 | |
355 | |
456 | |
356 | |
457 | |
357 | /* |
458 | /* |
358 | * from git:refs.g |
459 | * from git:refs.g |
359 | */ |
460 | */ |
360 | |
461 | |
@@ -455,8 +556,13 @@ extern int handle_revision_arg(const char *arg, struct rev_info *revs,int flags, |
455 | |
556 | |
456 | extern void prepare_revision_walk(struct rev_info *revs); |
557 | extern void prepare_revision_walk(struct rev_info *revs); |
457 | extern struct commit *get_revision(struct rev_info *revs); |
558 | extern struct commit *get_revision(struct rev_info *revs); |
458 | |
559 | |
459 | |
560 | |
460 | |
561 | |
| |
562 | /* from git:log-tree.h */ |
| |
563 | |
| |
564 | int log_tree_commit(struct rev_info *, struct commit *); |
| |
565 | |
| |
566 | |
461 | |
567 | |
462 | #endif /* GIT_H */ |
568 | #endif /* GIT_H */ |
|