summaryrefslogtreecommitdiffabout
path: root/config.c
Unidiff
Diffstat (limited to 'config.c') (more/less context) (ignore whitespace changes)
-rw-r--r--config.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/config.c b/config.c
index 858ab69..ee49b62 100644
--- a/config.c
+++ b/config.c
@@ -23,25 +23,25 @@ void skip_line(FILE *f)
23 23
24int read_config_line(FILE *f, char *line, const char **value, int bufsize) 24int read_config_line(FILE *f, char *line, const char **value, int bufsize)
25{ 25{
26 int i = 0, isname = 0; 26 int i = 0, isname = 0;
27 27
28 *value = NULL; 28 *value = NULL;
29 while(i<bufsize-1) { 29 while(i<bufsize-1) {
30 int c = next_char(f); 30 int c = next_char(f);
31 if (!isname && (c=='#' || c==';')) { 31 if (!isname && (c=='#' || c==';')) {
32 skip_line(f); 32 skip_line(f);
33 continue; 33 continue;
34 } 34 }
35 if (!isname && isblank(c)) 35 if (!isname && isspace(c))
36 continue; 36 continue;
37 37
38 if (c=='=' && !*value) { 38 if (c=='=' && !*value) {
39 line[i] = 0; 39 line[i] = 0;
40 *value = &line[i+1]; 40 *value = &line[i+1];
41 } else if (c=='\n' && !isname) { 41 } else if (c=='\n' && !isname) {
42 i = 0; 42 i = 0;
43 continue; 43 continue;
44 } else if (c=='\n' || c==EOF) { 44 } else if (c=='\n' || c==EOF) {
45 line[i] = 0; 45 line[i] = 0;
46 break; 46 break;
47 } else { 47 } else {
@@ -55,19 +55,19 @@ int read_config_line(FILE *f, char *line, const char **value, int bufsize)
55} 55}
56 56
57int cgit_read_config(const char *filename, configfn fn) 57int cgit_read_config(const char *filename, configfn fn)
58{ 58{
59 int ret = 0, len; 59 int ret = 0, len;
60 char line[256]; 60 char line[256];
61 const char *value; 61 const char *value;
62 FILE *f = fopen(filename, "r"); 62 FILE *f = fopen(filename, "r");
63 63
64 if (!f) 64 if (!f)
65 return -1; 65 return -1;
66 66
67 while(len = read_config_line(f, line, &value, sizeof(line))) 67 while((len = read_config_line(f, line, &value, sizeof(line))) > 0)
68 (*fn)(line, value); 68 (*fn)(line, value);
69 69
70 fclose(f); 70 fclose(f);
71 return ret; 71 return ret;
72} 72}
73 73