summaryrefslogtreecommitdiffabout
path: root/cgit.h
authorLars Hjemli <hjemli@gmail.com>2008-03-24 00:09:39 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-03-24 00:43:48 (UTC)
commite0e4478e7b4812f822d60a13a33525f8e529e1e8 (patch) (unidiff)
tree577c3927deb9b122f940b69ca7db66afe2422814 /cgit.h
parentb608e88adb6f77328288afb6dd0eddf674fc9b5b (diff)
downloadcgit-e0e4478e7b4812f822d60a13a33525f8e529e1e8.zip
cgit-e0e4478e7b4812f822d60a13a33525f8e529e1e8.tar.gz
cgit-e0e4478e7b4812f822d60a13a33525f8e529e1e8.tar.bz2
Add command dispatcher
This simplifies the code in cgit.c and makes it easier to extend cgit with new pages/commands. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'cgit.h') (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h14
1 files changed, 0 insertions, 14 deletions
diff --git a/cgit.h b/cgit.h
index 40e2d40..295441b 100644
--- a/cgit.h
+++ b/cgit.h
@@ -1,59 +1,46 @@
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 * The valid cgit repo-commands
24 */
25#define CMD_LOG 1
26#define CMD_COMMIT 2
27#define CMD_DIFF 3
28#define CMD_TREE 4
29#define CMD_BLOB 5
30#define CMD_SNAPSHOT 6
31#define CMD_TAG 7
32#define CMD_REFS 8
33#define CMD_PATCH 9
34
35/*
36 * Dateformats used on misc. pages 23 * Dateformats used on misc. pages
37 */ 24 */
38#define FMT_LONGDATE "%Y-%m-%d %H:%M:%S" 25#define FMT_LONGDATE "%Y-%m-%d %H:%M:%S"
39#define FMT_SHORTDATE "%Y-%m-%d" 26#define FMT_SHORTDATE "%Y-%m-%d"
40 27
41 28
42/* 29/*
43 * Limits used for relative dates 30 * Limits used for relative dates
44 */ 31 */
45#define TM_MIN 60 32#define TM_MIN 60
46#define TM_HOUR (TM_MIN * 60) 33#define TM_HOUR (TM_MIN * 60)
47#define TM_DAY (TM_HOUR * 24) 34#define TM_DAY (TM_HOUR * 24)
48#define TM_WEEK (TM_DAY * 7) 35#define TM_WEEK (TM_DAY * 7)
49#define TM_YEAR (TM_DAY * 365) 36#define TM_YEAR (TM_DAY * 365)
50#define TM_MONTH (TM_YEAR / 12.0) 37#define TM_MONTH (TM_YEAR / 12.0)
51 38
52 39
53/* 40/*
54 * Default encoding 41 * Default encoding
55 */ 42 */
56#define PAGE_ENCODING "UTF-8" 43#define PAGE_ENCODING "UTF-8"
57 44
58typedef void (*configfn)(const char *name, const char *value); 45typedef void (*configfn)(const char *name, const char *value);
59typedef void (*filepair_fn)(struct diff_filepair *pair); 46typedef void (*filepair_fn)(struct diff_filepair *pair);
@@ -176,49 +163,48 @@ struct cgit_config {
176 163
177struct cgit_page { 164struct cgit_page {
178 time_t modified; 165 time_t modified;
179 time_t expires; 166 time_t expires;
180 char *mimetype; 167 char *mimetype;
181 char *charset; 168 char *charset;
182 char *filename; 169 char *filename;
183 char *title; 170 char *title;
184}; 171};
185 172
186struct cgit_context { 173struct cgit_context {
187 struct cgit_query qry; 174 struct cgit_query qry;
188 struct cgit_config cfg; 175 struct cgit_config cfg;
189 struct cgit_repo *repo; 176 struct cgit_repo *repo;
190 struct cgit_page page; 177 struct cgit_page page;
191}; 178};
192 179
193extern const char *cgit_version; 180extern const char *cgit_version;
194 181
195extern struct cgit_repolist cgit_repolist; 182extern struct cgit_repolist cgit_repolist;
196extern struct cgit_context ctx; 183extern struct cgit_context ctx;
197extern int cgit_cmd; 184extern int cgit_cmd;
198 185
199extern void cgit_prepare_context(struct cgit_context *ctx); 186extern void cgit_prepare_context(struct cgit_context *ctx);
200extern int cgit_get_cmd_index(const char *cmd);
201extern struct cgit_repo *cgit_get_repoinfo(const char *url); 187extern struct cgit_repo *cgit_get_repoinfo(const char *url);
202extern void cgit_global_config_cb(const char *name, const char *value); 188extern void cgit_global_config_cb(const char *name, const char *value);
203extern void cgit_repo_config_cb(const char *name, const char *value); 189extern void cgit_repo_config_cb(const char *name, const char *value);
204extern void cgit_querystring_cb(const char *name, const char *value); 190extern void cgit_querystring_cb(const char *name, const char *value);
205 191
206extern int chk_zero(int result, char *msg); 192extern int chk_zero(int result, char *msg);
207extern int chk_positive(int result, char *msg); 193extern int chk_positive(int result, char *msg);
208extern int chk_non_negative(int result, char *msg); 194extern int chk_non_negative(int result, char *msg);
209 195
210extern int hextoint(char c); 196extern int hextoint(char c);
211extern char *trim_end(const char *str, char c); 197extern char *trim_end(const char *str, char c);
212extern char *strlpart(char *txt, int maxlen); 198extern char *strlpart(char *txt, int maxlen);
213extern char *strrpart(char *txt, int maxlen); 199extern char *strrpart(char *txt, int maxlen);
214 200
215extern void cgit_add_ref(struct reflist *list, struct refinfo *ref); 201extern void cgit_add_ref(struct reflist *list, struct refinfo *ref);
216extern int cgit_refs_cb(const char *refname, const unsigned char *sha1, 202extern int cgit_refs_cb(const char *refname, const unsigned char *sha1,
217 int flags, void *cb_data); 203 int flags, void *cb_data);
218 204
219extern void *cgit_free_commitinfo(struct commitinfo *info); 205extern void *cgit_free_commitinfo(struct commitinfo *info);
220 206
221extern int cgit_diff_files(const unsigned char *old_sha1, 207extern int cgit_diff_files(const unsigned char *old_sha1,
222 const unsigned char *new_sha1, 208 const unsigned char *new_sha1,
223 linediff_fn fn); 209 linediff_fn fn);
224 210