summaryrefslogtreecommitdiffabout
path: root/cgit.h
authorLars Hjemli <hjemli@gmail.com>2007-05-15 22:14:51 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-05-15 22:16:00 (UTC)
commitb28b105ec172b258ae5d629381a5890697c2f938 (patch) (unidiff)
tree0673dc5ed94c8ce99c714d1204b6582f9ba96fc5 /cgit.h
parent47a81c77fdd017227632c4df9a0b7b135b8a738d (diff)
downloadcgit-b28b105ec172b258ae5d629381a5890697c2f938.zip
cgit-b28b105ec172b258ae5d629381a5890697c2f938.tar.gz
cgit-b28b105ec172b258ae5d629381a5890697c2f938.tar.bz2
Enable default value for head parameter
Pages which expect head to be specified in the querystring can now be given a default value, configurable per repository (via repo.defbranch, which defaults to "master"). Currently, only the log page actually works without parameters, but the defbranch is bound to be exploited. This also removes some dead code from shared.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.h') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index f5906ad..ac710a6 100644
--- a/cgit.h
+++ b/cgit.h
@@ -1,183 +1,184 @@
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 *module_link; 39 char *module_link;
39 int snapshots; 40 int snapshots;
40}; 41};
41 42
42struct repolist { 43struct repolist {
43 int length; 44 int length;
44 int count; 45 int count;
45 struct repoinfo *repos; 46 struct repoinfo *repos;
46}; 47};
47 48
48struct commitinfo { 49struct commitinfo {
49 struct commit *commit; 50 struct commit *commit;
50 char *author; 51 char *author;
51 char *author_email; 52 char *author_email;
52 unsigned long author_date; 53 unsigned long author_date;
53 char *committer; 54 char *committer;
54 char *committer_email; 55 char *committer_email;
55 unsigned long committer_date; 56 unsigned long committer_date;
56 char *subject; 57 char *subject;
57 char *msg; 58 char *msg;
58}; 59};
59 60
60struct taginfo { 61struct taginfo {
61 char *tagger; 62 char *tagger;
62 char *tagger_email; 63 char *tagger_email;
63 int tagger_date; 64 int tagger_date;
64 char *msg; 65 char *msg;
65}; 66};
66 67
67extern const char cgit_version[]; 68extern const char cgit_version[];
68 69
69extern struct repolist cgit_repolist; 70extern struct repolist cgit_repolist;
70extern struct repoinfo *cgit_repo; 71extern struct repoinfo *cgit_repo;
71 72
72extern char *cgit_root_title; 73extern char *cgit_root_title;
73extern char *cgit_css; 74extern char *cgit_css;
74extern char *cgit_logo; 75extern char *cgit_logo;
75extern char *cgit_logo_link; 76extern char *cgit_logo_link;
76extern char *cgit_module_link; 77extern char *cgit_module_link;
77extern char *cgit_virtual_root; 78extern char *cgit_virtual_root;
78extern char *cgit_script_name; 79extern char *cgit_script_name;
79extern char *cgit_cache_root; 80extern char *cgit_cache_root;
80 81
81extern int cgit_nocache; 82extern int cgit_nocache;
82extern int cgit_snapshots; 83extern int cgit_snapshots;
83extern int cgit_max_lock_attempts; 84extern int cgit_max_lock_attempts;
84extern int cgit_cache_root_ttl; 85extern int cgit_cache_root_ttl;
85extern int cgit_cache_repo_ttl; 86extern int cgit_cache_repo_ttl;
86extern int cgit_cache_dynamic_ttl; 87extern int cgit_cache_dynamic_ttl;
87extern int cgit_cache_static_ttl; 88extern int cgit_cache_static_ttl;
88extern int cgit_cache_max_create_time; 89extern int cgit_cache_max_create_time;
89 90
90extern int cgit_max_msg_len; 91extern int cgit_max_msg_len;
91extern int cgit_max_commit_count; 92extern int cgit_max_commit_count;
92 93
93extern char *cgit_repo_name; 94extern char *cgit_repo_name;
94extern char *cgit_repo_desc; 95extern char *cgit_repo_desc;
95extern char *cgit_repo_owner; 96extern char *cgit_repo_owner;
96 97
97extern int cgit_query_has_symref; 98extern int cgit_query_has_symref;
98extern int cgit_query_has_sha1; 99extern int cgit_query_has_sha1;
99 100
100extern char *cgit_querystring; 101extern char *cgit_querystring;
101extern char *cgit_query_repo; 102extern char *cgit_query_repo;
102extern char *cgit_query_page; 103extern char *cgit_query_page;
103extern char *cgit_query_search; 104extern char *cgit_query_search;
104extern char *cgit_query_head; 105extern char *cgit_query_head;
105extern char *cgit_query_sha1; 106extern char *cgit_query_sha1;
106extern char *cgit_query_sha2; 107extern char *cgit_query_sha2;
107extern char *cgit_query_path; 108extern char *cgit_query_path;
108extern char *cgit_query_name; 109extern char *cgit_query_name;
109extern int cgit_query_ofs; 110extern int cgit_query_ofs;
110 111
111extern int htmlfd; 112extern int htmlfd;
112 113
113extern void cgit_global_config_cb(const char *name, const char *value); 114extern void cgit_global_config_cb(const char *name, const char *value);
114extern void cgit_repo_config_cb(const char *name, const char *value); 115extern void cgit_repo_config_cb(const char *name, const char *value);
115extern void cgit_querystring_cb(const char *name, const char *value); 116extern void cgit_querystring_cb(const char *name, const char *value);
116 117
117extern int chk_zero(int result, char *msg); 118extern int chk_zero(int result, char *msg);
118extern int chk_positive(int result, char *msg); 119extern int chk_positive(int result, char *msg);
119 120
120extern int hextoint(char c); 121extern int hextoint(char c);
121 122
122extern void *cgit_free_commitinfo(struct commitinfo *info); 123extern void *cgit_free_commitinfo(struct commitinfo *info);
123 124
124extern int cgit_diff_files(const unsigned char *old_sha1, 125extern int cgit_diff_files(const unsigned char *old_sha1,
125 const unsigned char *new_sha1, 126 const unsigned char *new_sha1,
126 linediff_fn fn); 127 linediff_fn fn);
127 128
128extern void cgit_diff_tree(const unsigned char *old_sha1, 129extern void cgit_diff_tree(const unsigned char *old_sha1,
129 const unsigned char *new_sha1, 130 const unsigned char *new_sha1,
130 filepair_fn fn); 131 filepair_fn fn);
131 132
132extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); 133extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
133 134
134extern char *fmt(const char *format,...); 135extern char *fmt(const char *format,...);
135 136
136extern void html(const char *txt); 137extern void html(const char *txt);
137extern void htmlf(const char *format,...); 138extern void htmlf(const char *format,...);
138extern void html_txt(char *txt); 139extern void html_txt(char *txt);
139extern void html_ntxt(int len, char *txt); 140extern void html_ntxt(int len, char *txt);
140extern void html_attr(char *txt); 141extern void html_attr(char *txt);
141extern void html_hidden(char *name, char *value); 142extern void html_hidden(char *name, char *value);
142extern void html_link_open(char *url, char *title, char *class); 143extern void html_link_open(char *url, char *title, char *class);
143extern void html_link_close(void); 144extern void html_link_close(void);
144extern void html_filemode(unsigned short mode); 145extern void html_filemode(unsigned short mode);
145 146
146extern int cgit_read_config(const char *filename, configfn fn); 147extern int cgit_read_config(const char *filename, configfn fn);
147extern int cgit_parse_query(char *txt, configfn fn); 148extern int cgit_parse_query(char *txt, configfn fn);
148extern struct commitinfo *cgit_parse_commit(struct commit *commit); 149extern struct commitinfo *cgit_parse_commit(struct commit *commit);
149extern struct taginfo *cgit_parse_tag(struct tag *tag); 150extern struct taginfo *cgit_parse_tag(struct tag *tag);
150 151
151extern char *cache_safe_filename(const char *unsafe); 152extern char *cache_safe_filename(const char *unsafe);
152extern int cache_lock(struct cacheitem *item); 153extern int cache_lock(struct cacheitem *item);
153extern int cache_unlock(struct cacheitem *item); 154extern int cache_unlock(struct cacheitem *item);
154extern int cache_cancel_lock(struct cacheitem *item); 155extern int cache_cancel_lock(struct cacheitem *item);
155extern int cache_exist(struct cacheitem *item); 156extern int cache_exist(struct cacheitem *item);
156extern int cache_expired(struct cacheitem *item); 157extern int cache_expired(struct cacheitem *item);
157 158
158extern char *cgit_repourl(const char *reponame); 159extern char *cgit_repourl(const char *reponame);
159extern char *cgit_pageurl(const char *reponame, const char *pagename, 160extern char *cgit_pageurl(const char *reponame, const char *pagename,
160 const char *query); 161 const char *query);
161 162
162extern void cgit_print_error(char *msg); 163extern void cgit_print_error(char *msg);
163extern void cgit_print_date(unsigned long secs); 164extern void cgit_print_date(unsigned long secs);
164extern void cgit_print_docstart(char *title, struct cacheitem *item); 165extern void cgit_print_docstart(char *title, struct cacheitem *item);
165extern void cgit_print_docend(); 166extern void cgit_print_docend();
166extern void cgit_print_pageheader(char *title, int show_search); 167extern void cgit_print_pageheader(char *title, int show_search);
167extern void cgit_print_snapshot_start(const char *mimetype, 168extern void cgit_print_snapshot_start(const char *mimetype,
168 const char *filename, 169 const char *filename,
169 struct cacheitem *item); 170 struct cacheitem *item);
170 171
171extern void cgit_print_repolist(struct cacheitem *item); 172extern void cgit_print_repolist(struct cacheitem *item);
172extern void cgit_print_summary(); 173extern void cgit_print_summary();
173extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path); 174extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path);
174extern void cgit_print_view(const char *hex, char *path); 175extern void cgit_print_view(const char *hex, char *path);
175extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path); 176extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path);
176extern void cgit_print_tree(const char *rev, const char *hex, char *path); 177extern void cgit_print_tree(const char *rev, const char *hex, char *path);
177extern void cgit_print_commit(const char *hex); 178extern void cgit_print_commit(const char *hex);
178extern void cgit_print_diff(const char *old_hex, const char *new_hex, char *path); 179extern void cgit_print_diff(const char *old_hex, const char *new_hex, char *path);
179extern void cgit_print_snapshot(struct cacheitem *item, const char *hex, 180extern void cgit_print_snapshot(struct cacheitem *item, const char *hex,
180 const char *format, const char *prefix, 181 const char *format, const char *prefix,
181 const char *filename); 182 const char *filename);
182 183
183#endif /* CGIT_H */ 184#endif /* CGIT_H */