summaryrefslogtreecommitdiffabout
path: root/cgit.h
authorLars Hjemli <hjemli@gmail.com>2008-11-29 17:39:41 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-11-29 17:39:41 (UTC)
commit0274b57d55a12ed38259757dbfae96b79cfa2e0b (patch) (unidiff)
tree34c7204f88168f791ef48f603bb8ab66e9df523c /cgit.h
parent7b5cee65fd9cf31e4f19ce4ff613778cb95512a9 (diff)
downloadcgit-0274b57d55a12ed38259757dbfae96b79cfa2e0b.zip
cgit-0274b57d55a12ed38259757dbfae96b79cfa2e0b.tar.gz
cgit-0274b57d55a12ed38259757dbfae96b79cfa2e0b.tar.bz2
ui-log: add support for showing the full commit message
Some users prefer to see the full message, so to make these users happy the new querystring parameter "showmsg" can be used to print the full commit message per log entry. A link is provided in the log heading to make this function accessible, and all links and forms tries to preserve the users preference. Note: the new link is not displayed on the summary page since the point of the summary page is to be a summary, but it is still obeyed if specified manually. 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 91db98a..aab898b 100644
--- a/cgit.h
+++ b/cgit.h
@@ -1,243 +1,244 @@
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#include <utf8.h> 19#include <utf8.h>
20 20
21 21
22/* 22/*
23 * Dateformats used on misc. pages 23 * Dateformats used on misc. pages
24 */ 24 */
25#define FMT_LONGDATE "%Y-%m-%d %H:%M:%S (%Z)" 25#define FMT_LONGDATE "%Y-%m-%d %H:%M:%S (%Z)"
26#define FMT_SHORTDATE "%Y-%m-%d" 26#define FMT_SHORTDATE "%Y-%m-%d"
27#define FMT_ATOMDATE "%Y-%m-%dT%H:%M:%SZ" 27#define FMT_ATOMDATE "%Y-%m-%dT%H:%M:%SZ"
28 28
29 29
30/* 30/*
31 * Limits used for relative dates 31 * Limits used for relative dates
32 */ 32 */
33#define TM_MIN 60 33#define TM_MIN 60
34#define TM_HOUR (TM_MIN * 60) 34#define TM_HOUR (TM_MIN * 60)
35#define TM_DAY (TM_HOUR * 24) 35#define TM_DAY (TM_HOUR * 24)
36#define TM_WEEK (TM_DAY * 7) 36#define TM_WEEK (TM_DAY * 7)
37#define TM_YEAR (TM_DAY * 365) 37#define TM_YEAR (TM_DAY * 365)
38#define TM_MONTH (TM_YEAR / 12.0) 38#define TM_MONTH (TM_YEAR / 12.0)
39 39
40 40
41/* 41/*
42 * Default encoding 42 * Default encoding
43 */ 43 */
44#define PAGE_ENCODING "UTF-8" 44#define PAGE_ENCODING "UTF-8"
45 45
46typedef void (*configfn)(const char *name, const char *value); 46typedef void (*configfn)(const char *name, const char *value);
47typedef void (*filepair_fn)(struct diff_filepair *pair); 47typedef void (*filepair_fn)(struct diff_filepair *pair);
48typedef void (*linediff_fn)(char *line, int len); 48typedef void (*linediff_fn)(char *line, int len);
49 49
50struct cgit_repo { 50struct cgit_repo {
51 char *url; 51 char *url;
52 char *name; 52 char *name;
53 char *path; 53 char *path;
54 char *desc; 54 char *desc;
55 char *owner; 55 char *owner;
56 char *defbranch; 56 char *defbranch;
57 char *group; 57 char *group;
58 char *module_link; 58 char *module_link;
59 char *readme; 59 char *readme;
60 char *clone_url; 60 char *clone_url;
61 int snapshots; 61 int snapshots;
62 int enable_log_filecount; 62 int enable_log_filecount;
63 int enable_log_linecount; 63 int enable_log_linecount;
64}; 64};
65 65
66struct cgit_repolist { 66struct cgit_repolist {
67 int length; 67 int length;
68 int count; 68 int count;
69 struct cgit_repo *repos; 69 struct cgit_repo *repos;
70}; 70};
71 71
72struct commitinfo { 72struct commitinfo {
73 struct commit *commit; 73 struct commit *commit;
74 char *author; 74 char *author;
75 char *author_email; 75 char *author_email;
76 unsigned long author_date; 76 unsigned long author_date;
77 char *committer; 77 char *committer;
78 char *committer_email; 78 char *committer_email;
79 unsigned long committer_date; 79 unsigned long committer_date;
80 char *subject; 80 char *subject;
81 char *msg; 81 char *msg;
82 char *msg_encoding; 82 char *msg_encoding;
83}; 83};
84 84
85struct taginfo { 85struct taginfo {
86 char *tagger; 86 char *tagger;
87 char *tagger_email; 87 char *tagger_email;
88 unsigned long tagger_date; 88 unsigned long tagger_date;
89 char *msg; 89 char *msg;
90}; 90};
91 91
92struct refinfo { 92struct refinfo {
93 const char *refname; 93 const char *refname;
94 struct object *object; 94 struct object *object;
95 union { 95 union {
96 struct taginfo *tag; 96 struct taginfo *tag;
97 struct commitinfo *commit; 97 struct commitinfo *commit;
98 }; 98 };
99}; 99};
100 100
101struct reflist { 101struct reflist {
102 struct refinfo **refs; 102 struct refinfo **refs;
103 int alloc; 103 int alloc;
104 int count; 104 int count;
105}; 105};
106 106
107struct cgit_query { 107struct cgit_query {
108 int has_symref; 108 int has_symref;
109 int has_sha1; 109 int has_sha1;
110 char *raw; 110 char *raw;
111 char *repo; 111 char *repo;
112 char *page; 112 char *page;
113 char *search; 113 char *search;
114 char *grep; 114 char *grep;
115 char *head; 115 char *head;
116 char *sha1; 116 char *sha1;
117 char *sha2; 117 char *sha2;
118 char *path; 118 char *path;
119 char *name; 119 char *name;
120 char *mimetype; 120 char *mimetype;
121 char *url; 121 char *url;
122 int ofs; 122 int ofs;
123 int nohead; 123 int nohead;
124 int showmsg;
124}; 125};
125 126
126struct cgit_config { 127struct cgit_config {
127 char *agefile; 128 char *agefile;
128 char *cache_root; 129 char *cache_root;
129 char *clone_prefix; 130 char *clone_prefix;
130 char *css; 131 char *css;
131 char *favicon; 132 char *favicon;
132 char *footer; 133 char *footer;
133 char *index_header; 134 char *index_header;
134 char *index_info; 135 char *index_info;
135 char *logo; 136 char *logo;
136 char *logo_link; 137 char *logo_link;
137 char *module_link; 138 char *module_link;
138 char *repo_group; 139 char *repo_group;
139 char *robots; 140 char *robots;
140 char *root_title; 141 char *root_title;
141 char *root_desc; 142 char *root_desc;
142 char *root_readme; 143 char *root_readme;
143 char *script_name; 144 char *script_name;
144 char *virtual_root; 145 char *virtual_root;
145 int cache_size; 146 int cache_size;
146 int cache_dynamic_ttl; 147 int cache_dynamic_ttl;
147 int cache_max_create_time; 148 int cache_max_create_time;
148 int cache_repo_ttl; 149 int cache_repo_ttl;
149 int cache_root_ttl; 150 int cache_root_ttl;
150 int cache_static_ttl; 151 int cache_static_ttl;
151 int enable_index_links; 152 int enable_index_links;
152 int enable_log_filecount; 153 int enable_log_filecount;
153 int enable_log_linecount; 154 int enable_log_linecount;
154 int local_time; 155 int local_time;
155 int max_repo_count; 156 int max_repo_count;
156 int max_commit_count; 157 int max_commit_count;
157 int max_lock_attempts; 158 int max_lock_attempts;
158 int max_msg_len; 159 int max_msg_len;
159 int max_repodesc_len; 160 int max_repodesc_len;
160 int nocache; 161 int nocache;
161 int renamelimit; 162 int renamelimit;
162 int snapshots; 163 int snapshots;
163 int summary_branches; 164 int summary_branches;
164 int summary_log; 165 int summary_log;
165 int summary_tags; 166 int summary_tags;
166}; 167};
167 168
168struct cgit_page { 169struct cgit_page {
169 time_t modified; 170 time_t modified;
170 time_t expires; 171 time_t expires;
171 size_t size; 172 size_t size;
172 char *mimetype; 173 char *mimetype;
173 char *charset; 174 char *charset;
174 char *filename; 175 char *filename;
175 char *title; 176 char *title;
176}; 177};
177 178
178struct cgit_context { 179struct cgit_context {
179 struct cgit_query qry; 180 struct cgit_query qry;
180 struct cgit_config cfg; 181 struct cgit_config cfg;
181 struct cgit_repo *repo; 182 struct cgit_repo *repo;
182 struct cgit_page page; 183 struct cgit_page page;
183}; 184};
184 185
185struct cgit_snapshot_format { 186struct cgit_snapshot_format {
186 const char *suffix; 187 const char *suffix;
187 const char *mimetype; 188 const char *mimetype;
188 write_archive_fn_t write_func; 189 write_archive_fn_t write_func;
189 int bit; 190 int bit;
190}; 191};
191 192
192extern const char *cgit_version; 193extern const char *cgit_version;
193 194
194extern struct cgit_repolist cgit_repolist; 195extern struct cgit_repolist cgit_repolist;
195extern struct cgit_context ctx; 196extern struct cgit_context ctx;
196extern const struct cgit_snapshot_format cgit_snapshot_formats[]; 197extern const struct cgit_snapshot_format cgit_snapshot_formats[];
197 198
198extern struct cgit_repo *cgit_add_repo(const char *url); 199extern struct cgit_repo *cgit_add_repo(const char *url);
199extern struct cgit_repo *cgit_get_repoinfo(const char *url); 200extern struct cgit_repo *cgit_get_repoinfo(const char *url);
200extern void cgit_repo_config_cb(const char *name, const char *value); 201extern void cgit_repo_config_cb(const char *name, const char *value);
201 202
202extern int chk_zero(int result, char *msg); 203extern int chk_zero(int result, char *msg);
203extern int chk_positive(int result, char *msg); 204extern int chk_positive(int result, char *msg);
204extern int chk_non_negative(int result, char *msg); 205extern int chk_non_negative(int result, char *msg);
205 206
206extern char *trim_end(const char *str, char c); 207extern char *trim_end(const char *str, char c);
207extern char *strlpart(char *txt, int maxlen); 208extern char *strlpart(char *txt, int maxlen);
208extern char *strrpart(char *txt, int maxlen); 209extern char *strrpart(char *txt, int maxlen);
209 210
210extern void cgit_add_ref(struct reflist *list, struct refinfo *ref); 211extern void cgit_add_ref(struct reflist *list, struct refinfo *ref);
211extern int cgit_refs_cb(const char *refname, const unsigned char *sha1, 212extern int cgit_refs_cb(const char *refname, const unsigned char *sha1,
212 int flags, void *cb_data); 213 int flags, void *cb_data);
213 214
214extern void *cgit_free_commitinfo(struct commitinfo *info); 215extern void *cgit_free_commitinfo(struct commitinfo *info);
215 216
216extern int cgit_diff_files(const unsigned char *old_sha1, 217extern int cgit_diff_files(const unsigned char *old_sha1,
217 const unsigned char *new_sha1, 218 const unsigned char *new_sha1,
218 linediff_fn fn); 219 linediff_fn fn);
219 220
220extern void cgit_diff_tree(const unsigned char *old_sha1, 221extern void cgit_diff_tree(const unsigned char *old_sha1,
221 const unsigned char *new_sha1, 222 const unsigned char *new_sha1,
222 filepair_fn fn, const char *prefix); 223 filepair_fn fn, const char *prefix);
223 224
224extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); 225extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
225 226
226extern char *fmt(const char *format,...); 227extern char *fmt(const char *format,...);
227 228
228extern struct commitinfo *cgit_parse_commit(struct commit *commit); 229extern struct commitinfo *cgit_parse_commit(struct commit *commit);
229extern struct taginfo *cgit_parse_tag(struct tag *tag); 230extern struct taginfo *cgit_parse_tag(struct tag *tag);
230extern void cgit_parse_url(const char *url); 231extern void cgit_parse_url(const char *url);
231 232
232extern const char *cgit_repobasename(const char *reponame); 233extern const char *cgit_repobasename(const char *reponame);
233 234
234extern int cgit_parse_snapshots_mask(const char *str); 235extern int cgit_parse_snapshots_mask(const char *str);
235 236
236/* libgit.a either links against or compiles its own implementation of 237/* libgit.a either links against or compiles its own implementation of
237 * strcasestr(), and we'd like to reuse it. Simply re-declaring it 238 * strcasestr(), and we'd like to reuse it. Simply re-declaring it
238 * seems to do the trick. 239 * seems to do the trick.
239 */ 240 */
240extern char *strcasestr(const char *haystack, const char *needle); 241extern char *strcasestr(const char *haystack, const char *needle);
241 242
242 243
243#endif /* CGIT_H */ 244#endif /* CGIT_H */