int fd;
};
+struct repoinfo {
+ char *url;
+ char *name;
+ char *path;
+ char *desc;
+ char *owner;
+};
+
+struct repolist {
+ int length;
+ int count;
+ struct repoinfo *repos;
+};
+
struct commitinfo {
struct commit *commit;
char *author;
char *msg;
};
+struct taginfo {
+ char *tagger;
+ char *tagger_email;
+ int tagger_date;
+ char *msg;
+};
+
extern const char cgit_version[];
-extern char *cgit_root;
+extern struct repolist cgit_repolist;
+extern struct repoinfo *cgit_repo;
+
extern char *cgit_root_title;
extern char *cgit_css;
extern char *cgit_logo;
extern int cgit_cache_static_ttl;
extern int cgit_cache_max_create_time;
+extern int cgit_max_msg_len;
+
extern char *cgit_repo_name;
extern char *cgit_repo_desc;
extern char *cgit_repo_owner;
extern char *cgit_query_head;
extern char *cgit_query_sha1;
extern char *cgit_query_sha2;
+extern char *cgit_query_path;
extern int cgit_query_ofs;
extern int htmlfd;
extern int cgit_read_config(const char *filename, configfn fn);
extern int cgit_parse_query(char *txt, configfn fn);
extern struct commitinfo *cgit_parse_commit(struct commit *commit);
+extern struct taginfo *cgit_parse_tag(struct tag *tag);
+extern char *cache_safe_filename(const char *unsafe);
extern int cache_lock(struct cacheitem *item);
extern int cache_unlock(struct cacheitem *item);
extern int cache_cancel_lock(struct cacheitem *item);
extern void cgit_print_summary();
extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep);
extern void cgit_print_view(const char *hex);
-extern void cgit_print_tree(const char *hex);
+extern void cgit_print_tree(const char *hex, char *path);
extern void cgit_print_commit(const char *hex);
extern void cgit_print_diff(const char *old_hex, const char *new_hex);