Unidiff1 files changed, 2 insertions, 0 deletions
|
diff --git a/parsing.c b/parsing.c index 4d5cc74..1b22fcf 100644 --- a/ parsing.c+++ b/ parsing.c |
|
@@ -71,48 +71,50 @@ int cgit_read_config(const char *filename, configfn fn) |
71 | |
71 | |
72 | if (!f) |
72 | if (!f) |
73 | return -1; |
73 | return -1; |
74 | |
74 | |
75 | while((len = read_config_line(f, line, &value, sizeof(line))) > 0) |
75 | while((len = read_config_line(f, line, &value, sizeof(line))) > 0) |
76 | (*fn)(line, value); |
76 | (*fn)(line, value); |
77 | |
77 | |
78 | fclose(f); |
78 | fclose(f); |
79 | return ret; |
79 | return ret; |
80 | } |
80 | } |
81 | |
81 | |
82 | int cgit_parse_query(char *txt, configfn fn) |
82 | int cgit_parse_query(char *txt, configfn fn) |
83 | { |
83 | { |
84 | char *t, *value = NULL, c; |
84 | char *t, *value = NULL, c; |
85 | |
85 | |
86 | if (!txt) |
86 | if (!txt) |
87 | return 0; |
87 | return 0; |
88 | |
88 | |
89 | t = txt = xstrdup(txt); |
89 | t = txt = xstrdup(txt); |
90 | |
90 | |
91 | while((c=*t) != '\0') { |
91 | while((c=*t) != '\0') { |
92 | if (c=='=') { |
92 | if (c=='=') { |
93 | *t = '\0'; |
93 | *t = '\0'; |
94 | value = t+1; |
94 | value = t+1; |
| |
95 | } else if (c=='+') { |
| |
96 | *t = ' '; |
95 | } else if (c=='&') { |
97 | } else if (c=='&') { |
96 | *t = '\0'; |
98 | *t = '\0'; |
97 | (*fn)(txt, value); |
99 | (*fn)(txt, value); |
98 | txt = t+1; |
100 | txt = t+1; |
99 | value = NULL; |
101 | value = NULL; |
100 | } |
102 | } |
101 | t++; |
103 | t++; |
102 | } |
104 | } |
103 | if (t!=txt) |
105 | if (t!=txt) |
104 | (*fn)(txt, value); |
106 | (*fn)(txt, value); |
105 | return 0; |
107 | return 0; |
106 | } |
108 | } |
107 | |
109 | |
108 | char *substr(const char *head, const char *tail) |
110 | char *substr(const char *head, const char *tail) |
109 | { |
111 | { |
110 | char *buf; |
112 | char *buf; |
111 | |
113 | |
112 | buf = xmalloc(tail - head + 1); |
114 | buf = xmalloc(tail - head + 1); |
113 | strncpy(buf, head, tail - head); |
115 | strncpy(buf, head, tail - head); |
114 | buf[tail - head] = '\0'; |
116 | buf[tail - head] = '\0'; |
115 | return buf; |
117 | return buf; |
116 | } |
118 | } |
117 | |
119 | |
118 | struct commitinfo *cgit_parse_commit(struct commit *commit) |
120 | struct commitinfo *cgit_parse_commit(struct commit *commit) |
|