diff options
Diffstat (limited to 'config.c')
| -rw-r--r-- | config.c | 81 | 
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 @@ -/* config.c: parsing of config files - * - * Copyright (C) 2006 Lars Hjemli - * - * Licensed under GNU General Public License v2 - *   (see COPYING for full license text) - */ - -#include "cgit.h" - -int next_char(FILE *f) -{ -	int c = fgetc(f); -	if (c=='\r') { -		c = fgetc(f); -		if (c!='\n') { -			ungetc(c, f); -			c = '\r'; -		} -	} -	return c; -} - -void skip_line(FILE *f) -{ -	int c; - -	while((c=next_char(f)) && c!='\n' && c!=EOF) -		; -} - -int read_config_line(FILE *f, char *line, const char **value, int bufsize) -{ -	int i = 0, isname = 0; - -	*value = NULL; -	while(i<bufsize-1) { -		int c = next_char(f); -		if (!isname && (c=='#' || c==';')) { -			skip_line(f); -			continue; -		} -		if (!isname && isspace(c)) -			continue; - -		if (c=='=' && !*value) { -			line[i] = 0; -			*value = &line[i+1]; -		} else if (c=='\n' && !isname) { -			i = 0; -			continue; -		} else if (c=='\n' || c==EOF) { -			line[i] = 0; -			break; -		} else { -			line[i]=c; -		} -		isname = 1; -		i++; -	} -	line[i+1] = 0; -	return i; -} - -int cgit_read_config(const char *filename, configfn fn) -{ -	int ret = 0, len; -	char line[256]; -	const char *value; -	FILE *f = fopen(filename, "r"); - -	if (!f) -		return -1; - -	while((len = read_config_line(f, line, &value, sizeof(line))) > 0) -		(*fn)(line, value); - -	fclose(f); -	return ret; -} - | 
