chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
document new choose screen properly
[disorder]
/
lib
/
cgi.c
diff --git
a/lib/cgi.c
b/lib/cgi.c
index 1c1154d52e82b7ec321ff3d832aa64bc1f4e467a..1d1ddd708e85725d45edc462ac182ca230d8bedd 100644
(file)
--- a/
lib/cgi.c
+++ b/
lib/cgi.c
@@
-207,6
+207,12
@@
const char *cgi_get(const char *name) {
return v ? *v : NULL;
}
return v ? *v : NULL;
}
+/** @brief Set a CGI argument */
+void cgi_set(const char *name, const char *value) {
+ value = xstrdup(value);
+ hash_add(cgi_args, name, &value, HASH_INSERT_OR_REPLACE);
+}
+
/** @brief Add SGML-style quoting
* @param src String to quote (UTF-8)
* @return Quoted string
/** @brief Add SGML-style quoting
* @param src String to quote (UTF-8)
* @return Quoted string
@@
-344,13
+350,11
@@
char *cgi_thisurl(const char *url) {
dynstr_init(d);
dynstr_append_string(d, url);
dynstr_init(d);
dynstr_append_string(d, url);
- if(*keys) {
- dynstr_append(d, '?');
- for(n = 0; keys[n]; ++n) {
- dynstr_append_string(d, urlencodestring(keys[n]));
- dynstr_append(d, '=');
- dynstr_append_string(d, cgi_get(keys[n]));
- }
+ for(n = 0; keys[n]; ++n) {
+ dynstr_append(d, n ? '&' : '?');
+ dynstr_append_string(d, urlencodestring(keys[n]));
+ dynstr_append(d, '=');
+ dynstr_append_string(d, cgi_get(keys[n]));
}
dynstr_terminate(d);
return d->vec;
}
dynstr_terminate(d);
return d->vec;