diff options
Diffstat (limited to 'server.h')
-rw-r--r-- | server.h | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/server.h b/server.h index 1177871..20d1803 100644 --- a/server.h +++ b/server.h @@ -55,11 +55,11 @@ extern const char *Pages[PagesLen]; X(Context, "context", kvalid_stringne) \ X(After, "after", kvalid_stringne) \ X(Before, "before", kvalid_stringne) \ - X(Tidy, "tidy", kvalid_stringne) \ + X(Tidy, "tidy", kvalid_int) \ X(Query, "query", kvalid_stringne) \ X(Offset, "offset", kvalid_int) -enum { +enum Key { #define X(key, name, valid) key, ENUM_KEYS #undef X @@ -67,20 +67,6 @@ enum { }; extern const struct kvalid Keys[KeysLen]; -struct Scope { - const char *network; - const char *context; - const char *query; -}; - -static inline struct Scope pageScope(struct kreq *req) { - struct Scope s = {0}; - if (req->fieldmap[Network]) s.network = req->fieldmap[Network]->parsed.s; - if (req->fieldmap[Context]) s.context = req->fieldmap[Context]->parsed.s; - if (req->fieldmap[Query]) s.query = req->fieldmap[Query]->parsed.s; - return s; -} - extern int contextsRecent; extern bool contextsPublic; extern const char *NetworksQuery; @@ -181,13 +167,13 @@ struct Event { extern const char *htmlStylesheet; enum kcgi_err htmlHead(struct khtmlreq *html, const char *title); -enum kcgi_err htmlScopeFields(struct khtmlreq *html, struct Scope scope); -enum kcgi_err htmlNav(struct khtmlreq *html, struct Scope scope); -enum kcgi_err htmlFooter(struct khtmlreq *html); +enum kcgi_err htmlHidden(struct khtmlreq *html, struct kreq *req, enum Key key); +enum kcgi_err htmlNav(struct khtmlreq *html, struct kreq *req); enum kcgi_err htmlIRC(struct khtmlreq *html, const char *str); enum kcgi_err htmlEvent( - struct khtmlreq *html, struct Scope scope, struct Event event + struct khtmlreq *html, struct kreq *req, struct Event *event ); +enum kcgi_err htmlFooter(struct khtmlreq *html); static inline enum kcgi_err httpHead(struct kreq *req, enum khttp http, enum kmime mime) { |