+extern void *cgit_free_commitinfo(struct commitinfo *info);
+
+extern int cgit_diff_files(const unsigned char *old_sha1,
+ const unsigned char *new_sha1,
+ linediff_fn fn);
+
+extern void cgit_diff_tree(const unsigned char *old_sha1,
+ const unsigned char *new_sha1,
+ filepair_fn fn, const char *prefix);
+
+extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
+
+extern char *fmt(const char *format,...);
+
+extern struct commitinfo *cgit_parse_commit(struct commit *commit);
+extern struct taginfo *cgit_parse_tag(struct tag *tag);
+extern void cgit_parse_url(const char *url);
+
+extern const char *cgit_repobasename(const char *reponame);
+
+extern int cgit_parse_snapshots_mask(const char *str);
+
+/* libgit.a either links against or compiles its own implementation of
+ * strcasestr(), and we'd like to reuse it. Simply re-declaring it
+ * seems to do the trick.
+ */
+extern char *strcasestr(const char *haystack, const char *needle);