summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile5
-rw-r--r--cgit.c26
-rw-r--r--cgit.h1
-rw-r--r--parsing.c (renamed from config.c)25
4 files changed, 29 insertions, 28 deletions
diff --git a/Makefile b/Makefile
index c71e39c..eab7926 100644
--- a/Makefile
+++ b/Makefile
@@ -2,25 +2,26 @@ CGIT_VERSION = 0.1-pre
INSTALL_BIN = /var/www/htdocs/cgit.cgi
INSTALL_CSS = /var/www/htdocs/cgit.css
CACHE_ROOT = /var/cache/cgit
EXTLIBS = ../git/libgit.a ../git/xdiff/lib.a -lz -lcrypto
-OBJECTS = config.o html.o cache.o
+OBJECTS = parsing.o html.o cache.o
CFLAGS += -Wall
all: cgit
install: all
install cgit $(INSTALL_BIN)
install cgit.css $(INSTALL_CSS)
rm -rf $(CACHE_ROOT)/*
cgit: cgit.c cgit.h git.h $(OBJECTS)
- $(CC) $(CFLAGS) -DCGIT_VERSION='"$(CGIT_VERSION)"' cgit.c -o cgit $(OBJECTS) $(EXTLIBS)
+ $(CC) $(CFLAGS) -DCGIT_VERSION='"$(CGIT_VERSION)"' cgit.c -o cgit \
+ $(OBJECTS) $(EXTLIBS)
$(OBJECTS): cgit.h git.h
.PHONY: clean
clean:
rm -f cgit *.o
diff --git a/cgit.c b/cgit.c
index dc91125..5567859 100644
--- a/cgit.c
+++ b/cgit.c
@@ -50,38 +50,12 @@ char *cgit_query_repo = NULL;
char *cgit_query_page = NULL;
char *cgit_query_head = NULL;
char *cgit_query_sha1 = NULL;
struct cacheitem cacheitem;
-int cgit_parse_query(char *txt, configfn fn)
-{
- char *t, *value = NULL, c;
-
- if (!txt)
- return 0;
-
- t = txt = xstrdup(txt);
-
- while((c=*t) != '\0') {
- if (c=='=') {
- *t = '\0';
- value = t+1;
- } else if (c=='&') {
- *t = '\0';
- (*fn)(txt, value);
- txt = t+1;
- value = NULL;
- }
- t++;
- }
- if (t!=txt)
- (*fn)(txt, value);
- return 0;
-}
-
void cgit_global_config_cb(const char *name, const char *value)
{
if (!strcmp(name, "root"))
cgit_root = xstrdup(value);
else if (!strcmp(name, "root-title"))
cgit_root_title = xstrdup(value);
diff --git a/cgit.h b/cgit.h
index 7e4bfef..6c0aa3b 100644
--- a/cgit.h
+++ b/cgit.h
@@ -53,12 +53,13 @@ extern void html_txt(char *txt);
extern void html_attr(char *txt);
extern void html_link_open(char *url, char *title, char *class);
extern void html_link_close(void);
extern int cgit_read_config(const char *filename, configfn fn);
+extern int cgit_parse_query(char *txt, configfn fn);
extern void cache_prepare(struct cacheitem *item);
extern int cache_lock(struct cacheitem *item);
extern int cache_unlock(struct cacheitem *item);
extern int cache_exist(struct cacheitem *item);
extern int cache_expired(struct cacheitem *item);
diff --git a/config.c b/parsing.c
index 871edf2..98b3243 100644
--- a/config.c
+++ b/parsing.c
@@ -76,6 +76,31 @@ int cgit_read_config(const char *filename, configfn fn)
(*fn)(line, value);
fclose(f);
return ret;
}
+int cgit_parse_query(char *txt, configfn fn)
+{
+ char *t, *value = NULL, c;
+
+ if (!txt)
+ return 0;
+
+ t = txt = xstrdup(txt);
+
+ while((c=*t) != '\0') {
+ if (c=='=') {
+ *t = '\0';
+ value = t+1;
+ } else if (c=='&') {
+ *t = '\0';
+ (*fn)(txt, value);
+ txt = t+1;
+ value = NULL;
+ }
+ t++;
+ }
+ if (t!=txt)
+ (*fn)(txt, value);
+ return 0;
+}