diff options
Diffstat (limited to 'tree.h')
-rw-r--r-- | tree.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tree.h b/tree.h new file mode 100644 index 0000000000..0df065ae36 --- /dev/null +++ b/tree.h @@ -0,0 +1,35 @@ +#ifndef TREE_H +#define TREE_H + +#include "object.h" + +extern const char *tree_type; + +struct tree_entry_list { + struct tree_entry_list *next; + unsigned directory : 1; + unsigned executable : 1; + unsigned symlink : 1; + unsigned zeropad : 1; + unsigned int mode; + char *name; + union { + struct object *any; + struct tree *tree; + struct blob *blob; + } item; + struct tree_entry_list *parent; +}; + +struct tree { + struct object object; + struct tree_entry_list *entries; +}; + +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); + +#endif /* TREE_H */ |