X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_cgi.h;h=a14acdbd463a4c95cf6a60cd279b9d660b2ce5e4;hb=2ea55b3be5e18fc58050670f9419f35d66ba2ec8;hp=a5db9c3f6909d6f9cef470465ac18d311f20de9f;hpb=66e1c8fe2814ddaf803ceee092f1d1dd02a5e981;p=collection4.git diff --git a/src/utils_cgi.h b/src/utils_cgi.h index a5db9c3..a14acdb 100644 --- a/src/utils_cgi.h +++ b/src/utils_cgi.h @@ -1,19 +1,93 @@ +/** + * collection4 - utils_cgi.h + * Copyright (C) 2010 Florian octo Forster + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA + * + * Authors: + * Florian octo Forster + **/ + #ifndef UTILS_CGI_H #define UTILS_CGI_H 1 #include +typedef int (*page_callback_t) (void *user_data); + +struct page_callbacks_s +{ + page_callback_t top_left; + page_callback_t top_center; + page_callback_t top_right; + page_callback_t middle_left; + page_callback_t middle_center; + page_callback_t middle_right; + page_callback_t bottom_left; + page_callback_t bottom_center; + page_callback_t bottom_right; +}; +typedef struct page_callbacks_s page_callbacks_t; + +struct param_list_s; +typedef struct param_list_s param_list_t; + +#define PAGE_CALLBACKS_INIT \ +{ NULL, NULL, NULL, \ + NULL, NULL, NULL, \ + NULL, NULL, NULL } + int param_init (void); void param_finish (void); const char *param (const char *key); -int uri_escape (char *dst, const char *src, size_t size); +/* Create a new parameter list from "query_string". If "query_string" is NULL, + * the "QUERY_STRING" will be used. */ +param_list_t *param_create (const char *query_string); +param_list_t *param_clone (param_list_t *pl); +void param_destroy (param_list_t *pl); +const char *param_get (param_list_t *pl, const char *name); +int param_set (param_list_t *pl, + const char *name, const char *value); +char *param_as_string (param_list_t *pl); +int param_print_hidden (param_list_t *pl); + +char *uri_escape (const char *string); +char *uri_escape_buffer (char *buffer, size_t buffer_size); +char *uri_escape_copy (char *dest, const char *src, size_t n); + +char *json_escape (const char *string); +char *json_escape_buffer (char *buffer, size_t buffer_size); +char *json_escape_copy (char *dest, const char *src, size_t n); const char *script_name (void); int time_to_rfc1123 (time_t t, char *buffer, size_t buffer_size); char *html_escape (const char *string); +char *html_escape_buffer (char *buffer, size_t buffer_size); +char *html_escape_copy (char *dest, const char *src, size_t n); + +int html_print_page (const char *title, + const page_callbacks_t *cb, void *user_data); + +int html_print_logo (void *user_data); + +int html_print_search_box (void *user_data); +/* vim: set sw=2 sts=2 et fdm=marker : */ #endif /* UTILS_CGI_H */