42ea9cb286
The tree object parsing used to get the executable bit wrong, and didn't know about symlinks. Also, fsck really wants the full mode value so that it can verify the other bits for sanity, so save it all in struct tree_entry.
31 lines
489 B
C
31 lines
489 B
C
#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 int mode;
|
|
char *name;
|
|
union {
|
|
struct tree *tree;
|
|
struct blob *blob;
|
|
} item;
|
|
};
|
|
|
|
struct tree {
|
|
struct object object;
|
|
struct tree_entry_list *entries;
|
|
};
|
|
|
|
struct tree *lookup_tree(unsigned char *sha1);
|
|
|
|
int parse_tree(struct tree *tree);
|
|
|
|
#endif /* TREE_H */
|