diff options
Diffstat (limited to 'shared.c')
| -rw-r--r-- | shared.c | 48 |
1 files changed, 42 insertions, 6 deletions
| @@ -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 | ||
| 161 | struct refinfo *cgit_mk_refinfo(const char *refname, const unsigned char *sha1) | 161 | static 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 | ||
| 179 | static 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 | |||
| 190 | static 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 | |||
| 205 | void 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 | |||
| 179 | int cgit_refs_cb(const char *refname, const unsigned char *sha1, int flags, | 215 | int 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 | ||
| 190 | void cgit_diff_tree_cb(struct diff_queue_struct *q, | 226 | static 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) | |||
| 224 | char *diffbuf = NULL; | 260 | char *diffbuf = NULL; |
| 225 | int buflen = 0; | 261 | int buflen = 0; |
| 226 | 262 | ||
| 227 | int filediff_cb(void *priv, mmbuffer_t *mb, int nbuf) | 263 | static 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 | ||
| 464 | int is_token_char(char c) | 500 | static 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 | */ |
| 471 | char *expand_macro(char *name, int maxlength) | 507 | static char *expand_macro(char *name, int maxlength) |
| 472 | { | 508 | { |
| 473 | char *value; | 509 | char *value; |
| 474 | int len; | 510 | int len; |
