X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Faction_list_graphs.c;h=2b26043846766af2e3e0ff17f2fe4882b7f2baad;hb=3ba1ec553cbd4ea7a008e32c7f816b0294dbe860;hp=81a2e19ae7227422e6918c023cf1a75960cb9c59;hpb=06651124c58362741dee867142f0a42b6ccc091d;p=collection4.git diff --git a/src/action_list_graphs.c b/src/action_list_graphs.c index 81a2e19..2b26043 100644 --- a/src/action_list_graphs.c +++ b/src/action_list_graphs.c @@ -1,3 +1,26 @@ +/** + * collection4 - action_list_graphs.c + * 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 + **/ + #include #include #include @@ -25,6 +48,7 @@ struct callback_data_s int inst_index; int inst_limit; _Bool inst_more; + const char *search_term; }; typedef struct callback_data_s callback_data_t; @@ -65,7 +89,27 @@ static int print_graph_inst_html (graph_config_t *cfg, /* {{{ */ { if (!data->inst_more) { - printf ("
  • More ...
  • \n"); + char *search_term_html = html_escape (data->search_term); + char param_search_term[1024]; + + memset (params, 0, sizeof (params)); + graph_get_params (cfg, params, sizeof (params)); + html_escape_buffer (params, sizeof (params)); + + param_search_term[0] = 0; + if (search_term_html != NULL) + { + snprintf (param_search_term, sizeof (param_search_term), ";q=%s", + search_term_html); + param_search_term[sizeof (param_search_term) - 1] = 0; + } + + free (search_term_html); + + printf ("
  • More …
  • \n", + script_name (), params, param_search_term); + data->inst_more = 1; } return (0); @@ -85,6 +129,27 @@ static int print_graph_inst_html (graph_config_t *cfg, /* {{{ */ return (0); } /* }}} int print_graph_inst_html */ +static int print_graph_html (graph_config_t *cfg, /* {{{ */ + __attribute__((unused)) void *user_data) +{ + char params[1024]; + char title[1024]; + + memset (title, 0, sizeof (title)); + graph_get_title (cfg, title, sizeof (title)); + html_escape_buffer (title, sizeof (title)); + + memset (params, 0, sizeof (params)); + graph_get_params (cfg, params, sizeof (params)); + html_escape_buffer (params, sizeof (params)); + + printf ("
  • " + "%s
  • \n", + script_name (), params, title); + + return (0); +} /* }}} int print_graph_html */ + struct page_data_s { const char *search_term; @@ -96,7 +161,8 @@ static int print_search_result (void *user_data) /* {{{ */ page_data_t *pg_data = user_data; callback_data_t cb_data = { /* cfg = */ NULL, /* graph_index = */ -1, /* graph_limit = */ 20, /* graph_more = */ 0, - /* inst_index = */ -1, /* inst_limit = */ 5, /* inst more = */ 0 }; + /* inst_index = */ -1, /* inst_limit = */ 5, /* inst more = */ 0, + /* search_term = */ pg_data->search_term }; if (pg_data->search_term != NULL) { @@ -108,7 +174,9 @@ static int print_search_result (void *user_data) /* {{{ */ printf ("
      \n"); if (pg_data->search_term == NULL) - gl_instance_get_all (print_graph_inst_html, /* user_data = */ &cb_data); + { + gl_graph_get_all (print_graph_html, /* user_data = */ &cb_data); + } else { char *term_lc = strtolower_copy (pg_data->search_term); @@ -186,9 +254,10 @@ static int list_graphs_html (const char *term) /* {{{ */ char title[512]; if (term != NULL) - snprintf (title, sizeof (title), "c4: Graphs matching \"%s\"", term); + snprintf (title, sizeof (title), "Graphs matching \"%s\"", + term); else - strncpy (title, "c4: List of all graphs", sizeof (title)); + strncpy (title, "List of all graphs", sizeof (title)); title[sizeof (title) - 1] = 0; memset (&pg_data, 0, sizeof (pg_data));