author | Lars Hjemli <hjemli@gmail.com> | 2006-12-28 01:51:46 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2006-12-28 01:51:46 (UTC) |
commit | 05b13194b4b40a2614692125d5037ef20c5fb20e (patch) (unidiff) | |
tree | 5f22ac2e53d5ea3cb8fc50e2ca59c524a7180574 /parsing.c | |
parent | 732d68d240b95dc428c92fc94bce9adb8912094e (diff) | |
download | cgit-05b13194b4b40a2614692125d5037ef20c5fb20e.zip cgit-05b13194b4b40a2614692125d5037ef20c5fb20e.tar.gz cgit-05b13194b4b40a2614692125d5037ef20c5fb20e.tar.bz2 |
Handle '+' in querystring
Translate '+' to ' ' in querystring parser (still doesn't handle %xx)
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | parsing.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -83,24 +83,26 @@ 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 | } |