summaryrefslogtreecommitdiffabout
path: root/cgit.h
Unidiff
Diffstat (limited to 'cgit.h') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index 1194eb0..b8557ac 100644
--- a/cgit.h
+++ b/cgit.h
@@ -36,48 +36,59 @@
36#define TM_HOUR (TM_MIN * 60) 36#define TM_HOUR (TM_MIN * 60)
37#define TM_DAY (TM_HOUR * 24) 37#define TM_DAY (TM_HOUR * 24)
38#define TM_WEEK (TM_DAY * 7) 38#define TM_WEEK (TM_DAY * 7)
39#define TM_YEAR (TM_DAY * 365) 39#define TM_YEAR (TM_DAY * 365)
40#define TM_MONTH (TM_YEAR / 12.0) 40#define TM_MONTH (TM_YEAR / 12.0)
41 41
42 42
43/* 43/*
44 * Default encoding 44 * Default encoding
45 */ 45 */
46#define PAGE_ENCODING "UTF-8" 46#define PAGE_ENCODING "UTF-8"
47 47
48typedef void (*configfn)(const char *name, const char *value); 48typedef void (*configfn)(const char *name, const char *value);
49typedef void (*filepair_fn)(struct diff_filepair *pair); 49typedef void (*filepair_fn)(struct diff_filepair *pair);
50typedef void (*linediff_fn)(char *line, int len); 50typedef void (*linediff_fn)(char *line, int len);
51 51
52struct cgit_filter {
53 char *cmd;
54 char **argv;
55 int old_stdout;
56 int pipe_fh[2];
57 int pid;
58 int exitstatus;
59};
60
52struct cgit_repo { 61struct cgit_repo {
53 char *url; 62 char *url;
54 char *name; 63 char *name;
55 char *path; 64 char *path;
56 char *desc; 65 char *desc;
57 char *owner; 66 char *owner;
58 char *defbranch; 67 char *defbranch;
59 char *group; 68 char *group;
60 char *module_link; 69 char *module_link;
61 char *readme; 70 char *readme;
62 char *clone_url; 71 char *clone_url;
63 int snapshots; 72 int snapshots;
64 int enable_log_filecount; 73 int enable_log_filecount;
65 int enable_log_linecount; 74 int enable_log_linecount;
66 int max_stats; 75 int max_stats;
67 time_t mtime; 76 time_t mtime;
77 struct cgit_filter *commit_filter;
78 struct cgit_filter *source_filter;
68}; 79};
69 80
70struct cgit_repolist { 81struct cgit_repolist {
71 int length; 82 int length;
72 int count; 83 int count;
73 struct cgit_repo *repos; 84 struct cgit_repo *repos;
74}; 85};
75 86
76struct commitinfo { 87struct commitinfo {
77 struct commit *commit; 88 struct commit *commit;
78 char *author; 89 char *author;
79 char *author_email; 90 char *author_email;
80 unsigned long author_date; 91 unsigned long author_date;
81 char *committer; 92 char *committer;
82 char *committer_email; 93 char *committer_email;
83 unsigned long committer_date; 94 unsigned long committer_date;
@@ -164,32 +175,34 @@ struct cgit_config {
164 int local_time; 175 int local_time;
165 int max_repo_count; 176 int max_repo_count;
166 int max_commit_count; 177 int max_commit_count;
167 int max_lock_attempts; 178 int max_lock_attempts;
168 int max_msg_len; 179 int max_msg_len;
169 int max_repodesc_len; 180 int max_repodesc_len;
170 int max_stats; 181 int max_stats;
171 int nocache; 182 int nocache;
172 int noplainemail; 183 int noplainemail;
173 int noheader; 184 int noheader;
174 int renamelimit; 185 int renamelimit;
175 int snapshots; 186 int snapshots;
176 int summary_branches; 187 int summary_branches;
177 int summary_log; 188 int summary_log;
178 int summary_tags; 189 int summary_tags;
179 struct string_list mimetypes; 190 struct string_list mimetypes;
191 struct cgit_filter *commit_filter;
192 struct cgit_filter *source_filter;
180}; 193};
181 194
182struct cgit_page { 195struct cgit_page {
183 time_t modified; 196 time_t modified;
184 time_t expires; 197 time_t expires;
185 size_t size; 198 size_t size;
186 char *mimetype; 199 char *mimetype;
187 char *charset; 200 char *charset;
188 char *filename; 201 char *filename;
189 char *etag; 202 char *etag;
190 char *title; 203 char *title;
191 int status; 204 int status;
192 char *statusmsg; 205 char *statusmsg;
193}; 206};
194 207
195struct cgit_context { 208struct cgit_context {
@@ -238,18 +251,21 @@ extern int cgit_diff_files(const unsigned char *old_sha1,
238extern void cgit_diff_tree(const unsigned char *old_sha1, 251extern void cgit_diff_tree(const unsigned char *old_sha1,
239 const unsigned char *new_sha1, 252 const unsigned char *new_sha1,
240 filepair_fn fn, const char *prefix); 253 filepair_fn fn, const char *prefix);
241 254
242extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); 255extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
243 256
244extern char *fmt(const char *format,...); 257extern char *fmt(const char *format,...);
245 258
246extern struct commitinfo *cgit_parse_commit(struct commit *commit); 259extern struct commitinfo *cgit_parse_commit(struct commit *commit);
247extern struct taginfo *cgit_parse_tag(struct tag *tag); 260extern struct taginfo *cgit_parse_tag(struct tag *tag);
248extern void cgit_parse_url(const char *url); 261extern void cgit_parse_url(const char *url);
249 262
250extern const char *cgit_repobasename(const char *reponame); 263extern const char *cgit_repobasename(const char *reponame);
251 264
252extern int cgit_parse_snapshots_mask(const char *str); 265extern int cgit_parse_snapshots_mask(const char *str);
253 266
267extern int cgit_open_filter(struct cgit_filter *filter);
268extern int cgit_close_filter(struct cgit_filter *filter);
269
254 270
255#endif /* CGIT_H */ 271#endif /* CGIT_H */