summaryrefslogtreecommitdiffabout
path: root/shared.c
authorJonathan Bastien-Filiatrault <joe@x2a.org>2007-10-26 22:09:06 (UTC)
committer Jonathan Bastien-Filiatrault <joe@x2a.org>2007-11-05 23:13:30 (UTC)
commit3845e177e4e0b231efb6fda0ac3cd3a2d8f34d4b (patch) (unidiff)
tree548671b6339e9a1a252ded4d534f11bfcd560043 /shared.c
parent72ede12551af320b6d8eade853dbd2cd6f2222cc (diff)
downloadcgit-3845e177e4e0b231efb6fda0ac3cd3a2d8f34d4b.zip
cgit-3845e177e4e0b231efb6fda0ac3cd3a2d8f34d4b.tar.gz
cgit-3845e177e4e0b231efb6fda0ac3cd3a2d8f34d4b.tar.bz2
Add commit->msg_encoding, allocate msg dynamicly.
Diffstat (limited to 'shared.c') (more/less context) (ignore whitespace changes)
-rw-r--r--shared.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/shared.c b/shared.c
index e06df91..a04c4dc 100644
--- a/shared.c
+++ b/shared.c
@@ -204,128 +204,130 @@ void cgit_global_config_cb(const char *name, const char *value)
204 else if (cgit_repo && !strcmp(name, "repo.path")) 204 else if (cgit_repo && !strcmp(name, "repo.path"))
205 cgit_repo->path = trim_end(value, '/'); 205 cgit_repo->path = trim_end(value, '/');
206 else if (cgit_repo && !strcmp(name, "repo.desc")) 206 else if (cgit_repo && !strcmp(name, "repo.desc"))
207 cgit_repo->desc = xstrdup(value); 207 cgit_repo->desc = xstrdup(value);
208 else if (cgit_repo && !strcmp(name, "repo.owner")) 208 else if (cgit_repo && !strcmp(name, "repo.owner"))
209 cgit_repo->owner = xstrdup(value); 209 cgit_repo->owner = xstrdup(value);
210 else if (cgit_repo && !strcmp(name, "repo.defbranch")) 210 else if (cgit_repo && !strcmp(name, "repo.defbranch"))
211 cgit_repo->defbranch = xstrdup(value); 211 cgit_repo->defbranch = xstrdup(value);
212 else if (cgit_repo && !strcmp(name, "repo.snapshots")) 212 else if (cgit_repo && !strcmp(name, "repo.snapshots"))
213 cgit_repo->snapshots = cgit_snapshots & cgit_parse_snapshots_mask(value); /* XXX: &? */ 213 cgit_repo->snapshots = cgit_snapshots & cgit_parse_snapshots_mask(value); /* XXX: &? */
214 else if (cgit_repo && !strcmp(name, "repo.enable-log-filecount")) 214 else if (cgit_repo && !strcmp(name, "repo.enable-log-filecount"))
215 cgit_repo->enable_log_filecount = cgit_enable_log_filecount * atoi(value); 215 cgit_repo->enable_log_filecount = cgit_enable_log_filecount * atoi(value);
216 else if (cgit_repo && !strcmp(name, "repo.enable-log-linecount")) 216 else if (cgit_repo && !strcmp(name, "repo.enable-log-linecount"))
217 cgit_repo->enable_log_linecount = cgit_enable_log_linecount * atoi(value); 217 cgit_repo->enable_log_linecount = cgit_enable_log_linecount * atoi(value);
218 else if (cgit_repo && !strcmp(name, "repo.module-link")) 218 else if (cgit_repo && !strcmp(name, "repo.module-link"))
219 cgit_repo->module_link= xstrdup(value); 219 cgit_repo->module_link= xstrdup(value);
220 else if (cgit_repo && !strcmp(name, "repo.readme") && value != NULL) { 220 else if (cgit_repo && !strcmp(name, "repo.readme") && value != NULL) {
221 if (*value == '/') 221 if (*value == '/')
222 cgit_repo->readme = xstrdup(value); 222 cgit_repo->readme = xstrdup(value);
223 else 223 else
224 cgit_repo->readme = xstrdup(fmt("%s/%s", cgit_repo->path, value)); 224 cgit_repo->readme = xstrdup(fmt("%s/%s", cgit_repo->path, value));
225 } else if (!strcmp(name, "include")) 225 } else if (!strcmp(name, "include"))
226 cgit_read_config(value, cgit_global_config_cb); 226 cgit_read_config(value, cgit_global_config_cb);
227} 227}
228 228
229void cgit_querystring_cb(const char *name, const char *value) 229void cgit_querystring_cb(const char *name, const char *value)
230{ 230{
231 if (!strcmp(name,"r")) { 231 if (!strcmp(name,"r")) {
232 cgit_query_repo = xstrdup(value); 232 cgit_query_repo = xstrdup(value);
233 cgit_repo = cgit_get_repoinfo(value); 233 cgit_repo = cgit_get_repoinfo(value);
234 } else if (!strcmp(name, "p")) { 234 } else if (!strcmp(name, "p")) {
235 cgit_query_page = xstrdup(value); 235 cgit_query_page = xstrdup(value);
236 cgit_cmd = cgit_get_cmd_index(value); 236 cgit_cmd = cgit_get_cmd_index(value);
237 } else if (!strcmp(name, "url")) { 237 } else if (!strcmp(name, "url")) {
238 cgit_parse_url(value); 238 cgit_parse_url(value);
239 } else if (!strcmp(name, "qt")) { 239 } else if (!strcmp(name, "qt")) {
240 cgit_query_grep = xstrdup(value); 240 cgit_query_grep = xstrdup(value);
241 } else if (!strcmp(name, "q")) { 241 } else if (!strcmp(name, "q")) {
242 cgit_query_search = xstrdup(value); 242 cgit_query_search = xstrdup(value);
243 } else if (!strcmp(name, "h")) { 243 } else if (!strcmp(name, "h")) {
244 cgit_query_head = xstrdup(value); 244 cgit_query_head = xstrdup(value);
245 cgit_query_has_symref = 1; 245 cgit_query_has_symref = 1;
246 } else if (!strcmp(name, "id")) { 246 } else if (!strcmp(name, "id")) {
247 cgit_query_sha1 = xstrdup(value); 247 cgit_query_sha1 = xstrdup(value);
248 cgit_query_has_sha1 = 1; 248 cgit_query_has_sha1 = 1;
249 } else if (!strcmp(name, "id2")) { 249 } else if (!strcmp(name, "id2")) {
250 cgit_query_sha2 = xstrdup(value); 250 cgit_query_sha2 = xstrdup(value);
251 cgit_query_has_sha1 = 1; 251 cgit_query_has_sha1 = 1;
252 } else if (!strcmp(name, "ofs")) { 252 } else if (!strcmp(name, "ofs")) {
253 cgit_query_ofs = atoi(value); 253 cgit_query_ofs = atoi(value);
254 } else if (!strcmp(name, "path")) { 254 } else if (!strcmp(name, "path")) {
255 cgit_query_path = trim_end(value, '/'); 255 cgit_query_path = trim_end(value, '/');
256 } else if (!strcmp(name, "name")) { 256 } else if (!strcmp(name, "name")) {
257 cgit_query_name = xstrdup(value); 257 cgit_query_name = xstrdup(value);
258 } 258 }
259} 259}
260 260
261void *cgit_free_commitinfo(struct commitinfo *info) 261void *cgit_free_commitinfo(struct commitinfo *info)
262{ 262{
263 free(info->author); 263 free(info->author);
264 free(info->author_email); 264 free(info->author_email);
265 free(info->committer); 265 free(info->committer);
266 free(info->committer_email); 266 free(info->committer_email);
267 free(info->subject); 267 free(info->subject);
268 free(info->msg);
269 free(info->msg_encoding);
268 free(info); 270 free(info);
269 return NULL; 271 return NULL;
270} 272}
271 273
272int hextoint(char c) 274int hextoint(char c)
273{ 275{
274 if (c >= 'a' && c <= 'f') 276 if (c >= 'a' && c <= 'f')
275 return 10 + c - 'a'; 277 return 10 + c - 'a';
276 else if (c >= 'A' && c <= 'F') 278 else if (c >= 'A' && c <= 'F')
277 return 10 + c - 'A'; 279 return 10 + c - 'A';
278 else if (c >= '0' && c <= '9') 280 else if (c >= '0' && c <= '9')
279 return c - '0'; 281 return c - '0';
280 else 282 else
281 return -1; 283 return -1;
282} 284}
283 285
284char *trim_end(const char *str, char c) 286char *trim_end(const char *str, char c)
285{ 287{
286 int len; 288 int len;
287 char *s, *t; 289 char *s, *t;
288 290
289 if (str == NULL) 291 if (str == NULL)
290 return NULL; 292 return NULL;
291 t = (char *)str; 293 t = (char *)str;
292 len = strlen(t); 294 len = strlen(t);
293 while(len > 0 && t[len - 1] == c) 295 while(len > 0 && t[len - 1] == c)
294 len--; 296 len--;
295 297
296 if (len == 0) 298 if (len == 0)
297 return NULL; 299 return NULL;
298 300
299 c = t[len]; 301 c = t[len];
300 t[len] = '\0'; 302 t[len] = '\0';
301 s = xstrdup(t); 303 s = xstrdup(t);
302 t[len] = c; 304 t[len] = c;
303 return s; 305 return s;
304} 306}
305 307
306char *strlpart(char *txt, int maxlen) 308char *strlpart(char *txt, int maxlen)
307{ 309{
308 char *result; 310 char *result;
309 311
310 if (!txt) 312 if (!txt)
311 return txt; 313 return txt;
312 314
313 if (strlen(txt) <= maxlen) 315 if (strlen(txt) <= maxlen)
314 return txt; 316 return txt;
315 result = xmalloc(maxlen + 1); 317 result = xmalloc(maxlen + 1);
316 memcpy(result, txt, maxlen - 3); 318 memcpy(result, txt, maxlen - 3);
317 result[maxlen-1] = result[maxlen-2] = result[maxlen-3] = '.'; 319 result[maxlen-1] = result[maxlen-2] = result[maxlen-3] = '.';
318 result[maxlen] = '\0'; 320 result[maxlen] = '\0';
319 return result; 321 return result;
320} 322}
321 323
322char *strrpart(char *txt, int maxlen) 324char *strrpart(char *txt, int maxlen)
323{ 325{
324 char *result; 326 char *result;
325 327
326 if (!txt) 328 if (!txt)
327 return txt; 329 return txt;
328 330
329 if (strlen(txt) <= maxlen) 331 if (strlen(txt) <= maxlen)
330 return txt; 332 return txt;
331 result = xmalloc(maxlen + 1); 333 result = xmalloc(maxlen + 1);