summaryrefslogtreecommitdiffabout
path: root/cgit.h
authorLars Hjemli <hjemli@gmail.com>2007-05-18 11:55:52 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-05-18 11:55:52 (UTC)
commite189344a7dfe6fa1b07434d5170e6441dcbaf788 (patch) (unidiff)
treef1500b97f95a710dba27469510114388be435d01 /cgit.h
parentc1ad6cb77889880ad0189a689840fbfa6e5cbc80 (diff)
downloadcgit-e189344a7dfe6fa1b07434d5170e6441dcbaf788.zip
cgit-e189344a7dfe6fa1b07434d5170e6441dcbaf788.tar.gz
cgit-e189344a7dfe6fa1b07434d5170e6441dcbaf788.tar.bz2
Add knobs to enable/disable files/lines changed in log view
These columns can cause lots of IO on the server, so add settings to explicitly enable them. Also, add per repo settings to optionally disable the columns if sitewide enabled. While at it, do not allow repo.snapshot to enable snapshots if the global setting is disabled. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.h') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index 290401f..ed100a7 100644
--- a/cgit.h
+++ b/cgit.h
@@ -1,186 +1,190 @@
1#ifndef CGIT_H 1#ifndef CGIT_H
2#define CGIT_H 2#define CGIT_H
3 3
4 4
5#include <git-compat-util.h> 5#include <git-compat-util.h>
6#include <cache.h> 6#include <cache.h>
7#include <grep.h> 7#include <grep.h>
8#include <object.h> 8#include <object.h>
9#include <tree.h> 9#include <tree.h>
10#include <commit.h> 10#include <commit.h>
11#include <tag.h> 11#include <tag.h>
12#include <diff.h> 12#include <diff.h>
13#include <diffcore.h> 13#include <diffcore.h>
14#include <refs.h> 14#include <refs.h>
15#include <revision.h> 15#include <revision.h>
16#include <log-tree.h> 16#include <log-tree.h>
17#include <archive.h> 17#include <archive.h>
18#include <xdiff/xdiff.h> 18#include <xdiff/xdiff.h>
19 19
20 20
21typedef void (*configfn)(const char *name, const char *value); 21typedef void (*configfn)(const char *name, const char *value);
22typedef void (*filepair_fn)(struct diff_filepair *pair); 22typedef void (*filepair_fn)(struct diff_filepair *pair);
23typedef void (*linediff_fn)(char *line, int len); 23typedef void (*linediff_fn)(char *line, int len);
24 24
25struct cacheitem { 25struct cacheitem {
26 char *name; 26 char *name;
27 struct stat st; 27 struct stat st;
28 int ttl; 28 int ttl;
29 int fd; 29 int fd;
30}; 30};
31 31
32struct repoinfo { 32struct repoinfo {
33 char *url; 33 char *url;
34 char *name; 34 char *name;
35 char *path; 35 char *path;
36 char *desc; 36 char *desc;
37 char *owner; 37 char *owner;
38 char *defbranch; 38 char *defbranch;
39 char *module_link; 39 char *module_link;
40 int snapshots; 40 int snapshots;
41 int enable_log_filecount;
42 int enable_log_linecount;
41}; 43};
42 44
43struct repolist { 45struct repolist {
44 int length; 46 int length;
45 int count; 47 int count;
46 struct repoinfo *repos; 48 struct repoinfo *repos;
47}; 49};
48 50
49struct commitinfo { 51struct commitinfo {
50 struct commit *commit; 52 struct commit *commit;
51 char *author; 53 char *author;
52 char *author_email; 54 char *author_email;
53 unsigned long author_date; 55 unsigned long author_date;
54 char *committer; 56 char *committer;
55 char *committer_email; 57 char *committer_email;
56 unsigned long committer_date; 58 unsigned long committer_date;
57 char *subject; 59 char *subject;
58 char *msg; 60 char *msg;
59}; 61};
60 62
61struct taginfo { 63struct taginfo {
62 char *tagger; 64 char *tagger;
63 char *tagger_email; 65 char *tagger_email;
64 int tagger_date; 66 int tagger_date;
65 char *msg; 67 char *msg;
66}; 68};
67 69
68extern const char cgit_version[]; 70extern const char cgit_version[];
69 71
70extern struct repolist cgit_repolist; 72extern struct repolist cgit_repolist;
71extern struct repoinfo *cgit_repo; 73extern struct repoinfo *cgit_repo;
72 74
73extern char *cgit_root_title; 75extern char *cgit_root_title;
74extern char *cgit_css; 76extern char *cgit_css;
75extern char *cgit_logo; 77extern char *cgit_logo;
76extern char *cgit_logo_link; 78extern char *cgit_logo_link;
77extern char *cgit_module_link; 79extern char *cgit_module_link;
78extern char *cgit_virtual_root; 80extern char *cgit_virtual_root;
79extern char *cgit_script_name; 81extern char *cgit_script_name;
80extern char *cgit_cache_root; 82extern char *cgit_cache_root;
81 83
82extern int cgit_nocache; 84extern int cgit_nocache;
83extern int cgit_snapshots; 85extern int cgit_snapshots;
86extern int cgit_enable_log_filecount;
87extern int cgit_enable_log_linecount;
84extern int cgit_max_lock_attempts; 88extern int cgit_max_lock_attempts;
85extern int cgit_cache_root_ttl; 89extern int cgit_cache_root_ttl;
86extern int cgit_cache_repo_ttl; 90extern int cgit_cache_repo_ttl;
87extern int cgit_cache_dynamic_ttl; 91extern int cgit_cache_dynamic_ttl;
88extern int cgit_cache_static_ttl; 92extern int cgit_cache_static_ttl;
89extern int cgit_cache_max_create_time; 93extern int cgit_cache_max_create_time;
90 94
91extern int cgit_max_msg_len; 95extern int cgit_max_msg_len;
92extern int cgit_max_repodesc_len; 96extern int cgit_max_repodesc_len;
93extern int cgit_max_commit_count; 97extern int cgit_max_commit_count;
94 98
95extern char *cgit_repo_name; 99extern char *cgit_repo_name;
96extern char *cgit_repo_desc; 100extern char *cgit_repo_desc;
97extern char *cgit_repo_owner; 101extern char *cgit_repo_owner;
98 102
99extern int cgit_query_has_symref; 103extern int cgit_query_has_symref;
100extern int cgit_query_has_sha1; 104extern int cgit_query_has_sha1;
101 105
102extern char *cgit_querystring; 106extern char *cgit_querystring;
103extern char *cgit_query_repo; 107extern char *cgit_query_repo;
104extern char *cgit_query_page; 108extern char *cgit_query_page;
105extern char *cgit_query_search; 109extern char *cgit_query_search;
106extern char *cgit_query_head; 110extern char *cgit_query_head;
107extern char *cgit_query_sha1; 111extern char *cgit_query_sha1;
108extern char *cgit_query_sha2; 112extern char *cgit_query_sha2;
109extern char *cgit_query_path; 113extern char *cgit_query_path;
110extern char *cgit_query_name; 114extern char *cgit_query_name;
111extern int cgit_query_ofs; 115extern int cgit_query_ofs;
112 116
113extern int htmlfd; 117extern int htmlfd;
114 118
115extern void cgit_global_config_cb(const char *name, const char *value); 119extern void cgit_global_config_cb(const char *name, const char *value);
116extern void cgit_repo_config_cb(const char *name, const char *value); 120extern void cgit_repo_config_cb(const char *name, const char *value);
117extern void cgit_querystring_cb(const char *name, const char *value); 121extern void cgit_querystring_cb(const char *name, const char *value);
118 122
119extern int chk_zero(int result, char *msg); 123extern int chk_zero(int result, char *msg);
120extern int chk_positive(int result, char *msg); 124extern int chk_positive(int result, char *msg);
121 125
122extern int hextoint(char c); 126extern int hextoint(char c);
123 127
124extern void *cgit_free_commitinfo(struct commitinfo *info); 128extern void *cgit_free_commitinfo(struct commitinfo *info);
125 129
126extern int cgit_diff_files(const unsigned char *old_sha1, 130extern int cgit_diff_files(const unsigned char *old_sha1,
127 const unsigned char *new_sha1, 131 const unsigned char *new_sha1,
128 linediff_fn fn); 132 linediff_fn fn);
129 133
130extern void cgit_diff_tree(const unsigned char *old_sha1, 134extern void cgit_diff_tree(const unsigned char *old_sha1,
131 const unsigned char *new_sha1, 135 const unsigned char *new_sha1,
132 filepair_fn fn); 136 filepair_fn fn);
133 137
134extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); 138extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
135 139
136extern char *fmt(const char *format,...); 140extern char *fmt(const char *format,...);
137 141
138extern void html(const char *txt); 142extern void html(const char *txt);
139extern void htmlf(const char *format,...); 143extern void htmlf(const char *format,...);
140extern void html_txt(char *txt); 144extern void html_txt(char *txt);
141extern void html_ntxt(int len, char *txt); 145extern void html_ntxt(int len, char *txt);
142extern void html_attr(char *txt); 146extern void html_attr(char *txt);
143extern void html_hidden(char *name, char *value); 147extern void html_hidden(char *name, char *value);
144extern void html_link_open(char *url, char *title, char *class); 148extern void html_link_open(char *url, char *title, char *class);
145extern void html_link_close(void); 149extern void html_link_close(void);
146extern void html_filemode(unsigned short mode); 150extern void html_filemode(unsigned short mode);
147 151
148extern int cgit_read_config(const char *filename, configfn fn); 152extern int cgit_read_config(const char *filename, configfn fn);
149extern int cgit_parse_query(char *txt, configfn fn); 153extern int cgit_parse_query(char *txt, configfn fn);
150extern struct commitinfo *cgit_parse_commit(struct commit *commit); 154extern struct commitinfo *cgit_parse_commit(struct commit *commit);
151extern struct taginfo *cgit_parse_tag(struct tag *tag); 155extern struct taginfo *cgit_parse_tag(struct tag *tag);
152 156
153extern char *cache_safe_filename(const char *unsafe); 157extern char *cache_safe_filename(const char *unsafe);
154extern int cache_lock(struct cacheitem *item); 158extern int cache_lock(struct cacheitem *item);
155extern int cache_unlock(struct cacheitem *item); 159extern int cache_unlock(struct cacheitem *item);
156extern int cache_cancel_lock(struct cacheitem *item); 160extern int cache_cancel_lock(struct cacheitem *item);
157extern int cache_exist(struct cacheitem *item); 161extern int cache_exist(struct cacheitem *item);
158extern int cache_expired(struct cacheitem *item); 162extern int cache_expired(struct cacheitem *item);
159 163
160extern char *cgit_repourl(const char *reponame); 164extern char *cgit_repourl(const char *reponame);
161extern char *cgit_pageurl(const char *reponame, const char *pagename, 165extern char *cgit_pageurl(const char *reponame, const char *pagename,
162 const char *query); 166 const char *query);
163 167
164extern void cgit_print_error(char *msg); 168extern void cgit_print_error(char *msg);
165extern void cgit_print_date(unsigned long secs); 169extern void cgit_print_date(unsigned long secs);
166extern void cgit_print_docstart(char *title, struct cacheitem *item); 170extern void cgit_print_docstart(char *title, struct cacheitem *item);
167extern void cgit_print_docend(); 171extern void cgit_print_docend();
168extern void cgit_print_pageheader(char *title, int show_search); 172extern void cgit_print_pageheader(char *title, int show_search);
169extern void cgit_print_snapshot_start(const char *mimetype, 173extern void cgit_print_snapshot_start(const char *mimetype,
170 const char *filename, 174 const char *filename,
171 struct cacheitem *item); 175 struct cacheitem *item);
172 176
173extern void cgit_print_repolist(struct cacheitem *item); 177extern void cgit_print_repolist(struct cacheitem *item);
174extern void cgit_print_summary(); 178extern void cgit_print_summary();
175extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path); 179extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path);
176extern void cgit_print_view(const char *hex, char *path); 180extern void cgit_print_view(const char *hex, char *path);
177extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path); 181extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path);
178extern void cgit_print_tree(const char *rev, const char *hex, char *path); 182extern void cgit_print_tree(const char *rev, const char *hex, char *path);
179extern void cgit_print_commit(const char *hex); 183extern void cgit_print_commit(const char *hex);
180extern void cgit_print_diff(const char *head, const char *old_hex, const char *new_hex, 184extern void cgit_print_diff(const char *head, const char *old_hex, const char *new_hex,
181 char *path); 185 char *path);
182extern void cgit_print_snapshot(struct cacheitem *item, const char *hex, 186extern void cgit_print_snapshot(struct cacheitem *item, const char *hex,
183 const char *format, const char *prefix, 187 const char *format, const char *prefix,
184 const char *filename); 188 const char *filename);
185 189
186#endif /* CGIT_H */ 190#endif /* CGIT_H */