diff options
| -rw-r--r-- | Makefile | 5 | ||||
| -rw-r--r-- | cgit.c | 26 | ||||
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | parsing.c (renamed from config.c) | 25 |
4 files changed, 29 insertions, 28 deletions
| @@ -5,7 +5,7 @@ INSTALL_CSS = /var/www/htdocs/cgit.css | |||
| 5 | CACHE_ROOT = /var/cache/cgit | 5 | CACHE_ROOT = /var/cache/cgit |
| 6 | 6 | ||
| 7 | EXTLIBS = ../git/libgit.a ../git/xdiff/lib.a -lz -lcrypto | 7 | EXTLIBS = ../git/libgit.a ../git/xdiff/lib.a -lz -lcrypto |
| 8 | OBJECTS = config.o html.o cache.o | 8 | OBJECTS = parsing.o html.o cache.o |
| 9 | 9 | ||
| 10 | CFLAGS += -Wall | 10 | CFLAGS += -Wall |
| 11 | 11 | ||
| @@ -17,7 +17,8 @@ install: all | |||
| 17 | rm -rf $(CACHE_ROOT)/* | 17 | rm -rf $(CACHE_ROOT)/* |
| 18 | 18 | ||
| 19 | cgit: cgit.c cgit.h git.h $(OBJECTS) | 19 | cgit: cgit.c cgit.h git.h $(OBJECTS) |
| 20 | $(CC) $(CFLAGS) -DCGIT_VERSION='"$(CGIT_VERSION)"' cgit.c -o cgit $(OBJECTS) $(EXTLIBS) | 20 | $(CC) $(CFLAGS) -DCGIT_VERSION='"$(CGIT_VERSION)"' cgit.c -o cgit \ |
| 21 | $(OBJECTS) $(EXTLIBS) | ||
| 21 | 22 | ||
| 22 | $(OBJECTS): cgit.h git.h | 23 | $(OBJECTS): cgit.h git.h |
| 23 | 24 | ||
| @@ -53,32 +53,6 @@ char *cgit_query_sha1 = NULL; | |||
| 53 | 53 | ||
| 54 | struct cacheitem cacheitem; | 54 | struct cacheitem cacheitem; |
| 55 | 55 | ||
| 56 | int cgit_parse_query(char *txt, configfn fn) | ||
| 57 | { | ||
| 58 | char *t, *value = NULL, c; | ||
| 59 | |||
| 60 | if (!txt) | ||
| 61 | return 0; | ||
| 62 | |||
| 63 | t = txt = xstrdup(txt); | ||
| 64 | |||
| 65 | while((c=*t) != '\0') { | ||
| 66 | if (c=='=') { | ||
| 67 | *t = '\0'; | ||
| 68 | value = t+1; | ||
| 69 | } else if (c=='&') { | ||
| 70 | *t = '\0'; | ||
| 71 | (*fn)(txt, value); | ||
| 72 | txt = t+1; | ||
| 73 | value = NULL; | ||
| 74 | } | ||
| 75 | t++; | ||
| 76 | } | ||
| 77 | if (t!=txt) | ||
| 78 | (*fn)(txt, value); | ||
| 79 | return 0; | ||
| 80 | } | ||
| 81 | |||
| 82 | void cgit_global_config_cb(const char *name, const char *value) | 56 | void cgit_global_config_cb(const char *name, const char *value) |
| 83 | { | 57 | { |
| 84 | if (!strcmp(name, "root")) | 58 | if (!strcmp(name, "root")) |
| @@ -56,6 +56,7 @@ extern void html_link_close(void); | |||
| 56 | 56 | ||
| 57 | 57 | ||
| 58 | extern int cgit_read_config(const char *filename, configfn fn); | 58 | extern int cgit_read_config(const char *filename, configfn fn); |
| 59 | extern int cgit_parse_query(char *txt, configfn fn); | ||
| 59 | 60 | ||
| 60 | extern void cache_prepare(struct cacheitem *item); | 61 | extern void cache_prepare(struct cacheitem *item); |
| 61 | extern int cache_lock(struct cacheitem *item); | 62 | extern int cache_lock(struct cacheitem *item); |
| @@ -79,3 +79,28 @@ int cgit_read_config(const char *filename, configfn fn) | |||
| 79 | return ret; | 79 | return ret; |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | int cgit_parse_query(char *txt, configfn fn) | ||
| 83 | { | ||
| 84 | char *t, *value = NULL, c; | ||
| 85 | |||
| 86 | if (!txt) | ||
| 87 | return 0; | ||
| 88 | |||
| 89 | t = txt = xstrdup(txt); | ||
| 90 | |||
| 91 | while((c=*t) != '\0') { | ||
| 92 | if (c=='=') { | ||
| 93 | *t = '\0'; | ||
| 94 | value = t+1; | ||
| 95 | } else if (c=='&') { | ||
| 96 | *t = '\0'; | ||
| 97 | (*fn)(txt, value); | ||
| 98 | txt = t+1; | ||
| 99 | value = NULL; | ||
| 100 | } | ||
| 101 | t++; | ||
| 102 | } | ||
| 103 | if (t!=txt) | ||
| 104 | (*fn)(txt, value); | ||
| 105 | return 0; | ||
| 106 | } | ||
