aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Jason A. Donenfeld <Jason@zx2c4.com>2013-03-21 04:21:25 (JST)
committerGravatar Jason A. Donenfeld <Jason@zx2c4.com>2013-03-21 04:21:25 (JST)
commit0255821e22678d4c58c809efe17bf2798835d5b9 (patch)
treed4679ff23796406648cf83ff0b98940ba844c5e1
parent6d8a789d61f3a682bc040f1f7f44050b1f723546 (diff)
parent59fe348deaa270434f05afc56ca8d13618af9ca9 (diff)
downloadcgit-0255821e22678d4c58c809efe17bf2798835d5b9.zip
cgit-0255821e22678d4c58c809efe17bf2798835d5b9.tar.gz
Merge branch 'wip'
-rw-r--r--cache.c2
-rw-r--r--cgit.c34
-rw-r--r--cgit.h1
-rw-r--r--configfile.c6
-rw-r--r--html.c6
-rw-r--r--parsing.c6
-rw-r--r--shared.c48
-rw-r--r--ui-atom.c2
-rw-r--r--ui-commit.c1
-rw-r--r--ui-diff.c5
-rw-r--r--ui-log.c6
-rw-r--r--ui-refs.c12
-rw-r--r--ui-repolist.c14
-rw-r--r--ui-shared.c64
-rw-r--r--ui-snapshot.c2
-rw-r--r--ui-stats.c17
-rw-r--r--ui-tag.c2
-rw-r--r--ui-tree.c8
18 files changed, 125 insertions, 111 deletions
diff --git a/cache.c b/cache.c
index 47cdcb4..3127fc2 100644
--- a/cache.c
+++ b/cache.c
@@ -363,7 +363,7 @@ int cache_process(int size, const char *path, const char *key, int ttl,
363/* Return a strftime formatted date/time 363/* Return a strftime formatted date/time
364 * NB: the result from this function is to shared memory 364 * NB: the result from this function is to shared memory
365 */ 365 */
366char *sprintftime(const char *format, time_t time) 366static char *sprintftime(const char *format, time_t time)
367{ 367{
368 static char buf[64]; 368 static char buf[64];
369 struct tm *tm; 369 struct tm *tm;
diff --git a/cgit.c b/cgit.c
index 2ccf864..afafcce 100644
--- a/cgit.c
+++ b/cgit.c
@@ -18,7 +18,7 @@
18 18
19const char *cgit_version = CGIT_VERSION; 19const char *cgit_version = CGIT_VERSION;
20 20
21void add_mimetype(const char *name, const char *value) 21static void add_mimetype(const char *name, const char *value)
22{ 22{
23 struct string_list_item *item; 23 struct string_list_item *item;
24 24
@@ -26,7 +26,7 @@ void add_mimetype(const char *name, const char *value)
26 item->util = xstrdup(value); 26 item->util = xstrdup(value);
27} 27}
28 28
29struct cgit_filter *new_filter(const char *cmd, filter_type filtertype) 29static struct cgit_filter *new_filter(const char *cmd, filter_type filtertype)
30{ 30{
31 struct cgit_filter *f; 31 struct cgit_filter *f;
32 int args_size = 0; 32 int args_size = 0;
@@ -58,7 +58,7 @@ struct cgit_filter *new_filter(const char *cmd, filter_type filtertype)
58 58
59static void process_cached_repolist(const char *path); 59static void process_cached_repolist(const char *path);
60 60
61void repo_config(struct cgit_repo *repo, const char *name, const char *value) 61static void repo_config(struct cgit_repo *repo, const char *name, const char *value)
62{ 62{
63 struct string_list_item *item; 63 struct string_list_item *item;
64 64
@@ -114,7 +114,7 @@ void repo_config(struct cgit_repo *repo, const char *name, const char *value)
114 } 114 }
115} 115}
116 116
117void config_cb(const char *name, const char *value) 117static void config_cb(const char *name, const char *value)
118{ 118{
119 if (!strcmp(name, "section") || !strcmp(name, "repo.group")) 119 if (!strcmp(name, "section") || !strcmp(name, "repo.group"))
120 ctx.cfg.section = xstrdup(value); 120 ctx.cfg.section = xstrdup(value);
@@ -333,7 +333,7 @@ static void querystring_cb(const char *name, const char *value)
333 } 333 }
334} 334}
335 335
336char *xstrdupn(const char *str) 336static char *xstrdupn(const char *str)
337{ 337{
338 return (str ? xstrdup(str) : NULL); 338 return (str ? xstrdup(str) : NULL);
339} 339}
@@ -414,8 +414,8 @@ struct refmatch {
414 int match; 414 int match;
415}; 415};
416 416
417int find_current_ref(const char *refname, const unsigned char *sha1, 417static int find_current_ref(const char *refname, const unsigned char *sha1,
418 int flags, void *cb_data) 418 int flags, void *cb_data)
419{ 419{
420 struct refmatch *info; 420 struct refmatch *info;
421 421
@@ -427,7 +427,13 @@ int find_current_ref(const char *refname, const unsigned char *sha1,
427 return info->match; 427 return info->match;
428} 428}
429 429
430char *find_default_branch(struct cgit_repo *repo) 430static void free_refmatch_inner(struct refmatch *info)
431{
432 if (info->first_ref)
433 free(info->first_ref);
434}
435
436static char *find_default_branch(struct cgit_repo *repo)
431{ 437{
432 struct refmatch info; 438 struct refmatch info;
433 char *ref; 439 char *ref;
@@ -442,6 +448,8 @@ char *find_default_branch(struct cgit_repo *repo)
442 ref = info.first_ref; 448 ref = info.first_ref;
443 if (ref) 449 if (ref)
444 ref = xstrdup(ref); 450 ref = xstrdup(ref);
451 free_refmatch_inner(&info);
452
445 return ref; 453 return ref;
446} 454}
447 455
@@ -569,13 +577,13 @@ static void process_request(void *cbdata)
569 cgit_print_docend(); 577 cgit_print_docend();
570} 578}
571 579
572int cmp_repos(const void *a, const void *b) 580static int cmp_repos(const void *a, const void *b)
573{ 581{
574 const struct cgit_repo *ra = a, *rb = b; 582 const struct cgit_repo *ra = a, *rb = b;
575 return strcmp(ra->url, rb->url); 583 return strcmp(ra->url, rb->url);
576} 584}
577 585
578char *build_snapshot_setting(int bitmap) 586static char *build_snapshot_setting(int bitmap)
579{ 587{
580 const struct cgit_snapshot_format *f; 588 const struct cgit_snapshot_format *f;
581 char *result = xstrdup(""); 589 char *result = xstrdup("");
@@ -595,7 +603,7 @@ char *build_snapshot_setting(int bitmap)
595 return result; 603 return result;
596} 604}
597 605
598char *get_first_line(char *txt) 606static char *get_first_line(char *txt)
599{ 607{
600 char *t = xstrdup(txt); 608 char *t = xstrdup(txt);
601 char *p = strchr(t, '\n'); 609 char *p = strchr(t, '\n');
@@ -604,7 +612,7 @@ char *get_first_line(char *txt)
604 return t; 612 return t;
605} 613}
606 614
607void print_repo(FILE *f, struct cgit_repo *repo) 615static void print_repo(FILE *f, struct cgit_repo *repo)
608{ 616{
609 fprintf(f, "repo.url=%s\n", repo->url); 617 fprintf(f, "repo.url=%s\n", repo->url);
610 fprintf(f, "repo.name=%s\n", repo->name); 618 fprintf(f, "repo.name=%s\n", repo->name);
@@ -649,7 +657,7 @@ void print_repo(FILE *f, struct cgit_repo *repo)
649 fprintf(f, "\n"); 657 fprintf(f, "\n");
650} 658}
651 659
652void print_repolist(FILE *f, struct cgit_repolist *list, int start) 660static void print_repolist(FILE *f, struct cgit_repolist *list, int start)
653{ 661{
654 int i; 662 int i;
655 663
diff --git a/cgit.h b/cgit.h
index c655bd8..ed5cf14 100644
--- a/cgit.h
+++ b/cgit.h
@@ -304,6 +304,7 @@ extern char *strlpart(char *txt, int maxlen);
304extern char *strrpart(char *txt, int maxlen); 304extern char *strrpart(char *txt, int maxlen);
305 305
306extern void cgit_add_ref(struct reflist *list, struct refinfo *ref); 306extern void cgit_add_ref(struct reflist *list, struct refinfo *ref);
307extern void cgit_free_reflist_inner(struct reflist *list);
307extern int cgit_refs_cb(const char *refname, const unsigned char *sha1, 308extern int cgit_refs_cb(const char *refname, const unsigned char *sha1,
308 int flags, void *cb_data); 309 int flags, void *cb_data);
309 310
diff --git a/configfile.c b/configfile.c
index 3fa217f..d98989c 100644
--- a/configfile.c
+++ b/configfile.c
@@ -10,7 +10,7 @@
10#include <stdio.h> 10#include <stdio.h>
11#include "configfile.h" 11#include "configfile.h"
12 12
13int next_char(FILE *f) 13static int next_char(FILE *f)
14{ 14{
15 int c = fgetc(f); 15 int c = fgetc(f);
16 if (c == '\r') { 16 if (c == '\r') {
@@ -23,7 +23,7 @@ int next_char(FILE *f)
23 return c; 23 return c;
24} 24}
25 25
26void skip_line(FILE *f) 26static void skip_line(FILE *f)
27{ 27{
28 int c; 28 int c;
29 29
@@ -31,7 +31,7 @@ void skip_line(FILE *f)
31 ; 31 ;
32} 32}
33 33
34int read_config_line(FILE *f, char *line, const char **value, int bufsize) 34static int read_config_line(FILE *f, char *line, const char **value, int bufsize)
35{ 35{
36 int i = 0, isname = 0; 36 int i = 0, isname = 0;
37 37
diff --git a/html.c b/html.c
index 90cc1c0..b5c6903 100644
--- a/html.c
+++ b/html.c
@@ -39,7 +39,7 @@ static const char* url_escape_table[256] = {
39 "%fe", "%ff" 39 "%fe", "%ff"
40}; 40};
41 41
42int htmlfd = STDOUT_FILENO; 42static int htmlfd = STDOUT_FILENO;
43 43
44char *fmt(const char *format, ...) 44char *fmt(const char *format, ...)
45{ 45{
@@ -266,7 +266,7 @@ int html_include(const char *filename)
266 return 0; 266 return 0;
267} 267}
268 268
269int hextoint(char c) 269static int hextoint(char c)
270{ 270{
271 if (c >= 'a' && c <= 'f') 271 if (c >= 'a' && c <= 'f')
272 return 10 + c - 'a'; 272 return 10 + c - 'a';
@@ -278,7 +278,7 @@ int hextoint(char c)
278 return -1; 278 return -1;
279} 279}
280 280
281char *convert_query_hexchar(char *txt) 281static char *convert_query_hexchar(char *txt)
282{ 282{
283 int d1, d2, n; 283 int d1, d2, n;
284 n = strlen(txt); 284 n = strlen(txt);
diff --git a/parsing.c b/parsing.c
index 9b7efb3..658621d 100644
--- a/parsing.c
+++ b/parsing.c
@@ -52,7 +52,7 @@ void cgit_parse_url(const char *url)
52 } 52 }
53} 53}
54 54
55char *substr(const char *head, const char *tail) 55static char *substr(const char *head, const char *tail)
56{ 56{
57 char *buf; 57 char *buf;
58 58
@@ -64,7 +64,7 @@ char *substr(const char *head, const char *tail)
64 return buf; 64 return buf;
65} 65}
66 66
67char *parse_user(char *t, char **name, char **email, unsigned long *date) 67static char *parse_user(char *t, char **name, char **email, unsigned long *date)
68{ 68{
69 char *p = t; 69 char *p = t;
70 int mode = 1; 70 int mode = 1;
@@ -101,7 +101,7 @@ char *parse_user(char *t, char **name, char **email, unsigned long *date)
101#ifdef NO_ICONV 101#ifdef NO_ICONV
102#define reencode(a, b, c) 102#define reencode(a, b, c)
103#else 103#else
104const char *reencode(char **txt, const char *src_enc, const char *dst_enc) 104static const char *reencode(char **txt, const char *src_enc, const char *dst_enc)
105{ 105{
106 char *tmp; 106 char *tmp;
107 107
diff --git a/shared.c b/shared.c
index e732064..cc06930 100644
--- a/shared.c
+++ b/shared.c
@@ -158,7 +158,7 @@ void cgit_add_ref(struct reflist *list, struct refinfo *ref)
158 list->refs[list->count++] = ref; 158 list->refs[list->count++] = ref;
159} 159}
160 160
161struct refinfo *cgit_mk_refinfo(const char *refname, const unsigned char *sha1) 161static struct refinfo *cgit_mk_refinfo(const char *refname, const unsigned char *sha1)
162{ 162{
163 struct refinfo *ref; 163 struct refinfo *ref;
164 164
@@ -176,6 +176,42 @@ struct refinfo *cgit_mk_refinfo(const char *refname, const unsigned char *sha1)
176 return ref; 176 return ref;
177} 177}
178 178
179static void cgit_free_taginfo(struct taginfo *tag)
180{
181 if (tag->tagger)
182 free(tag->tagger);
183 if (tag->tagger_email)
184 free(tag->tagger_email);
185 if (tag->msg)
186 free(tag->msg);
187 free(tag);
188}
189
190static void cgit_free_refinfo(struct refinfo *ref)
191{
192 if (ref->refname)
193 free((char *)ref->refname);
194 switch (ref->object->type) {
195 case OBJ_TAG:
196 cgit_free_taginfo(ref->tag);
197 break;
198 case OBJ_COMMIT:
199 cgit_free_commitinfo(ref->commit);
200 break;
201 }
202 free(ref);
203}
204
205void cgit_free_reflist_inner(struct reflist *list)
206{
207 int i;
208
209 for (i = 0; i < list->count; i++) {
210 cgit_free_refinfo(list->refs[i]);
211 }
212 free(list->refs);
213}
214
179int cgit_refs_cb(const char *refname, const unsigned char *sha1, int flags, 215int cgit_refs_cb(const char *refname, const unsigned char *sha1, int flags,
180 void *cb_data) 216 void *cb_data)
181{ 217{
@@ -187,8 +223,8 @@ int cgit_refs_cb(const char *refname, const unsigned char *sha1, int flags,
187 return 0; 223 return 0;
188} 224}
189 225
190void cgit_diff_tree_cb(struct diff_queue_struct *q, 226static void cgit_diff_tree_cb(struct diff_queue_struct *q,
191 struct diff_options *options, void *data) 227 struct diff_options *options, void *data)
192{ 228{
193 int i; 229 int i;
194 230
@@ -224,7 +260,7 @@ static int load_mmfile(mmfile_t *file, const unsigned char *sha1)
224char *diffbuf = NULL; 260char *diffbuf = NULL;
225int buflen = 0; 261int buflen = 0;
226 262
227int filediff_cb(void *priv, mmbuffer_t *mb, int nbuf) 263static int filediff_cb(void *priv, mmbuffer_t *mb, int nbuf)
228{ 264{
229 int i; 265 int i;
230 266
@@ -461,14 +497,14 @@ int readfile(const char *path, char **buf, size_t *size)
461 return (*size == st.st_size ? 0 : e); 497 return (*size == st.st_size ? 0 : e);
462} 498}
463 499
464int is_token_char(char c) 500static int is_token_char(char c)
465{ 501{
466 return isalnum(c) || c == '_'; 502 return isalnum(c) || c == '_';
467} 503}
468 504
469/* Replace name with getenv(name), return pointer to zero-terminating char 505/* Replace name with getenv(name), return pointer to zero-terminating char
470 */ 506 */
471char *expand_macro(char *name, int maxlength) 507static char *expand_macro(char *name, int maxlength)
472{ 508{
473 char *value; 509 char *value;
474 int len; 510 int len;
diff --git a/ui-atom.c b/ui-atom.c
index b218456..5b5525d 100644
--- a/ui-atom.c
+++ b/ui-atom.c
@@ -10,7 +10,7 @@
10#include "html.h" 10#include "html.h"
11#include "ui-shared.h" 11#include "ui-shared.h"
12 12
13void add_entry(struct commit *commit, char *host) 13static void add_entry(struct commit *commit, char *host)
14{ 14{
15 char delim = '&'; 15 char delim = '&';
16 char *hex; 16 char *hex;
diff --git a/ui-commit.c b/ui-commit.c
index 74f37c8..0783285 100644
--- a/ui-commit.c
+++ b/ui-commit.c
@@ -74,6 +74,7 @@ void cgit_print_commit(char *hex, const char *prefix)