author | Lars Hjemli <hjemli@gmail.com> | 2006-12-12 23:13:27 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2006-12-12 23:13:27 (UTC) |
commit | 06fe0c2f47eaf467db8ab1443e61dfa1c280f30a (patch) (side-by-side diff) | |
tree | 481164eeeeb5ca3302f7b3d38d1debbad9db9296 /git.h | |
parent | 58d04f6523b0029281d65f841859fa42d0c744ff (diff) | |
download | cgit-06fe0c2f47eaf467db8ab1443e61dfa1c280f30a.zip cgit-06fe0c2f47eaf467db8ab1443e61dfa1c280f30a.tar.gz cgit-06fe0c2f47eaf467db8ab1443e61dfa1c280f30a.tar.bz2 |
Add display of tree content w/ui-tree.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | git.h | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -143,96 +143,109 @@ extern char *sha1_to_hex(const unsigned char *sha1); /* static buffer result! */ */ struct object_list { struct object *item; struct object_list *next; }; struct object_refs { unsigned count; struct object *base; struct object *ref[FLEX_ARRAY]; /* more */ }; struct object_array { unsigned int nr; unsigned int alloc; struct object_array_entry { struct object *item; const char *name; } *objects; }; #define TYPE_BITS 3 #define FLAG_BITS 27 /* * The object type is stored in 3 bits. */ struct object { unsigned parsed : 1; unsigned used : 1; unsigned type : TYPE_BITS; unsigned flags : FLAG_BITS; unsigned char sha1[20]; }; /* * from git:tree.h */ struct tree { struct object object; void *buffer; unsigned long size; }; +struct tree *lookup_tree(const unsigned char *sha1); +int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size); +int parse_tree(struct tree *tree); +struct tree *parse_tree_indirect(const unsigned char *sha1); + +typedef int (*read_tree_fn_t)(const unsigned char *, const char *, int, const char *, unsigned int, int); + +extern int read_tree_recursive(struct tree *tree, + const char *base, int baselen, + int stage, const char **match, + read_tree_fn_t fn); + +extern int read_tree(struct tree *tree, int stage, const char **paths); /* from git:commit.h */ struct commit_list { struct commit *item; struct commit_list *next; }; struct commit { struct object object; void *util; unsigned long date; struct commit_list *parents; struct tree *tree; char *buffer; }; struct commit *lookup_commit(const unsigned char *sha1); struct commit *lookup_commit_reference(const unsigned char *sha1); struct commit *lookup_commit_reference_gently(const unsigned char *sha1, int quiet); int parse_commit_buffer(struct commit *item, void *buffer, unsigned long size); int parse_commit(struct commit *item); struct commit_list * commit_list_insert(struct commit *item, struct commit_list **list_p); struct commit_list * insert_by_date(struct commit *item, struct commit_list **list); void free_commit_list(struct commit_list *list); void sort_by_date(struct commit_list **list); /* Commit formats */ enum cmit_fmt { CMIT_FMT_RAW, CMIT_FMT_MEDIUM, CMIT_FMT_DEFAULT = CMIT_FMT_MEDIUM, CMIT_FMT_SHORT, CMIT_FMT_FULL, CMIT_FMT_FULLER, CMIT_FMT_ONELINE, CMIT_FMT_EMAIL, CMIT_FMT_UNSPECIFIED, }; |