aboutsummaryrefslogtreecommitdiffstats
path: root/config.c
diff options
context:
space:
mode:
authorGravatar Lars Hjemli <hjemli@gmail.com>2006-12-12 00:11:40 (JST)
committerGravatar Lars Hjemli <hjemli@gmail.com>2006-12-12 00:11:40 (JST)
commit51ada4fda2b47710351e6e4da8a95807d6d9f729 (patch)
tree48b543fd16b666db7024038506ffc4eadb0ca966 /config.c
parent318d106300102c19d114a4ea89265b0a4060d9cb (diff)
downloadcgit-51ada4fda2b47710351e6e4da8a95807d6d9f729.zip
cgit-51ada4fda2b47710351e6e4da8a95807d6d9f729.tar.gz
Rename config.c to parsing.c + move cgit_parse_query from cgit.c to parsing.c
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'config.c')
-rw-r--r--config.c81
1 files changed, 0 insertions, 81 deletions
diff --git a/config.c b/config.c
deleted file mode 100644
index 871edf2..0000000
--- a/config.c
+++ /dev/null
@@ -1,81 +0,0 @@
1/* config.c: parsing of config files
2 *
3 * Copyright (C) 2006 Lars Hjemli
4 *
5 * Licensed under GNU General Public License v2
6 * (see COPYING for full license text)
7 */
8
9#include "cgit.h"
10
11int next_char(FILE *f)
12{
13 int c = fgetc(f);
14 if (c=='\r') {
15 c = fgetc(f);
16 if (c!='\n') {
17 ungetc(c, f);
18 c = '\r';
19 }
20 }
21 return c;
22}
23
24void skip_line(FILE *f)
25{
26 int c;
27
28 while((c=next_char(f)) && c!='\n' && c!=EOF)
29 ;
30}
31
32int read_config_line(FILE *f, char *line, const char **value, int bufsize)
33{
34 int i = 0, isname = 0;
35
36 *value = NULL;
37 while(i<bufsize-1) {
38 int c = next_char(f);
39 if (!isname && (c=='#' || c==';')) {
40 skip_line(f);
41 continue;
42 }
43 if (!isname && isspace(c))
44 continue;
45
46 if (c=='=' && !*value) {
47 line[i] = 0;
48 *value = &line[i+1];
49 } else if (c=='\n' && !isname) {
50 i = 0;
51 continue;
52 } else if (c=='\n' || c==EOF) {
53 line[i] = 0;
54 break;
55 } else {
56 line[i]=c;
57 }
58 isname = 1;
59 i++;
60 }
61 line[i+1] = 0;
62 return i;
63}
64
65int cgit_read_config(const char *filename, configfn fn)
66{
67 int ret = 0, len;
68 char line[256];
69 const char *value;
70 FILE *f = fopen(filename, "r");
71
72 if (!f)
73 return -1;
74
75 while((len = read_config_line(f, line, &value, sizeof(line))) > 0)
76 (*fn)(line, value);
77
78 fclose(f);
79 return ret;
80}
81