summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cache.c1
-rw-r--r--cache.h23
-rw-r--r--cgit.c1
-rw-r--r--cgit.h14
4 files changed, 25 insertions, 14 deletions
diff --git a/cache.c b/cache.c
index 7860fc7..89f7ecd 100644
--- a/cache.c
+++ b/cache.c
@@ -1,21 +1,22 @@
1/* cache.c: cache management 1/* cache.c: cache management
2 * 2 *
3 * Copyright (C) 2006 Lars Hjemli 3 * Copyright (C) 2006 Lars Hjemli
4 * 4 *
5 * Licensed under GNU General Public License v2 5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include "cgit.h" 9#include "cgit.h"
10#include "cache.h"
10 11
11const int NOLOCK = -1; 12const int NOLOCK = -1;
12 13
13char *cache_safe_filename(const char *unsafe) 14char *cache_safe_filename(const char *unsafe)
14{ 15{
15 static char buf[4][PATH_MAX]; 16 static char buf[4][PATH_MAX];
16 static int bufidx; 17 static int bufidx;
17 char *s; 18 char *s;
18 char c; 19 char c;
19 20
20 bufidx++; 21 bufidx++;
21 bufidx &= 3; 22 bufidx &= 3;
diff --git a/cache.h b/cache.h
new file mode 100644
index 0000000..4dcbea3
--- a/dev/null
+++ b/cache.h
@@ -0,0 +1,23 @@
1/*
2 * Since git has it's own cache.h which we include,
3 * lets test on CGIT_CACHE_H to avoid confusion
4 */
5
6#ifndef CGIT_CACHE_H
7#define CGIT_CACHE_H
8
9struct cacheitem {
10 char *name;
11 struct stat st;
12 int ttl;
13 int fd;
14};
15
16extern char *cache_safe_filename(const char *unsafe);
17extern int cache_lock(struct cacheitem *item);
18extern int cache_unlock(struct cacheitem *item);
19extern int cache_cancel_lock(struct cacheitem *item);
20extern int cache_exist(struct cacheitem *item);
21extern int cache_expired(struct cacheitem *item);
22
23#endif /* CGIT_CACHE_H */
diff --git a/cgit.c b/cgit.c
index f749b6b..73b1f02 100644
--- a/cgit.c
+++ b/cgit.c
@@ -1,21 +1,22 @@
1/* cgit.c: cgi for the git scm 1/* cgit.c: cgi for the git scm
2 * 2 *
3 * Copyright (C) 2006 Lars Hjemli 3 * Copyright (C) 2006 Lars Hjemli
4 * 4 *
5 * Licensed under GNU General Public License v2 5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text) 6 * (see COPYING for full license text)
7 */ 7 */
8 8
9#include "cgit.h" 9#include "cgit.h"
10#include "cache.h"
10#include "cmd.h" 11#include "cmd.h"
11#include "ui-shared.h" 12#include "ui-shared.h"
12 13
13const char *cgit_version = CGIT_VERSION; 14const char *cgit_version = CGIT_VERSION;
14 15
15void config_cb(const char *name, const char *value) 16void config_cb(const char *name, const char *value)
16{ 17{
17 if (!strcmp(name, "root-title")) 18 if (!strcmp(name, "root-title"))
18 ctx.cfg.root_title = xstrdup(value); 19 ctx.cfg.root_title = xstrdup(value);
19 else if (!strcmp(name, "css")) 20 else if (!strcmp(name, "css"))
20 ctx.cfg.css = xstrdup(value); 21 ctx.cfg.css = xstrdup(value);
21 else if (!strcmp(name, "logo")) 22 else if (!strcmp(name, "logo"))
diff --git a/cgit.h b/cgit.h
index e82e9aa..f600912 100644
--- a/cgit.h
+++ b/cgit.h
@@ -37,31 +37,24 @@
37#define TM_MONTH (TM_YEAR / 12.0) 37#define TM_MONTH (TM_YEAR / 12.0)
38 38
39 39
40/* 40/*
41 * Default encoding 41 * Default encoding
42 */ 42 */
43#define PAGE_ENCODING "UTF-8" 43#define PAGE_ENCODING "UTF-8"
44 44
45typedef void (*configfn)(const char *name, const char *value); 45typedef void (*configfn)(const char *name, const char *value);
46typedef void (*filepair_fn)(struct diff_filepair *pair); 46typedef void (*filepair_fn)(struct diff_filepair *pair);
47typedef void (*linediff_fn)(char *line, int len); 47typedef void (*linediff_fn)(char *line, int len);
48 48
49struct cacheitem {
50 char *name;
51 struct stat st;
52 int ttl;
53 int fd;
54};
55
56struct cgit_repo { 49struct cgit_repo {
57 char *url; 50 char *url;
58 char *name; 51 char *name;
59 char *path; 52 char *path;
60 char *desc; 53 char *desc;
61 char *owner; 54 char *owner;
62 char *defbranch; 55 char *defbranch;
63 char *group; 56 char *group;
64 char *module_link; 57 char *module_link;
65 char *readme; 58 char *readme;
66 char *clone_url; 59 char *clone_url;
67 int snapshots; 60 int snapshots;
@@ -218,24 +211,17 @@ extern void cgit_diff_tree(const unsigned char *old_sha1,
218 filepair_fn fn, const char *prefix); 211 filepair_fn fn, const char *prefix);
219 212
220extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); 213extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
221 214
222extern char *fmt(const char *format,...); 215extern char *fmt(const char *format,...);
223 216
224extern int cgit_read_config(const char *filename, configfn fn); 217extern int cgit_read_config(const char *filename, configfn fn);
225extern int cgit_parse_query(char *txt, configfn fn); 218extern int cgit_parse_query(char *txt, configfn fn);
226extern struct commitinfo *cgit_parse_commit(struct commit *commit); 219extern struct commitinfo *cgit_parse_commit(struct commit *commit);
227extern struct taginfo *cgit_parse_tag(struct tag *tag); 220extern struct taginfo *cgit_parse_tag(struct tag *tag);
228extern void cgit_parse_url(const char *url); 221extern void cgit_parse_url(const char *url);
229 222
230extern char *cache_safe_filename(const char *unsafe);
231extern int cache_lock(struct cacheitem *item);
232extern int cache_unlock(struct cacheitem *item);
233extern int cache_cancel_lock(struct cacheitem *item);
234extern int cache_exist(struct cacheitem *item);
235extern int cache_expired(struct cacheitem *item);
236
237extern const char *cgit_repobasename(const char *reponame); 223extern const char *cgit_repobasename(const char *reponame);
238 224
239extern int cgit_parse_snapshots_mask(const char *str); 225extern int cgit_parse_snapshots_mask(const char *str);
240 226
241#endif /* CGIT_H */ 227#endif /* CGIT_H */