X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=actions.c;h=d5c02c481792f7a62afad37ebbd04d3c2a9bd725;hp=ab3bbd7b62df4a2731ea4d6a64f1a8c8e256ff04;hb=6201d6d332ba8b69a49a7798b27cf9af7ac330ed;hpb=02ff7fa09f86dd12a1ca8fe8200c5dd3512219f4 diff --git a/actions.c b/actions.c index ab3bbd7b..d5c02c48 100644 --- a/actions.c +++ b/actions.c @@ -1,4 +1,4 @@ -const char actions_rcs[] = "$Id: actions.c,v 1.39 2007/04/17 18:21:45 fabiankeil Exp $"; +const char actions_rcs[] = "$Id: actions.c,v 1.42 2008/02/09 15:15:38 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/actions.c,v $ @@ -6,7 +6,7 @@ const char actions_rcs[] = "$Id: actions.c,v 1.39 2007/04/17 18:21:45 fabiankeil * Purpose : Declares functions to work with actions files * Functions declared include: FIXME * - * Copyright : Written by and Copyright (C) 2001-2007 the SourceForge + * Copyright : Written by and Copyright (C) 2001-2008 the SourceForge * Privoxy team. http://www.privoxy.org/ * * Based on the Internet Junkbuster originally written @@ -33,6 +33,20 @@ const char actions_rcs[] = "$Id: actions.c,v 1.39 2007/04/17 18:21:45 fabiankeil * * Revisions : * $Log: actions.c,v $ + * Revision 1.42 2008/02/09 15:15:38 fabiankeil + * List active and inactive actions in the show-url-info's + * "Final results" section separately. Patch submitted by Lee + * in #1830056, modified to list active actions first. + * + * Revision 1.41 2008/01/28 20:17:40 fabiankeil + * - Mark some parameters as immutable. + * - Hide update_action_bits_for_all_tags() while it's unused. + * + * Revision 1.40 2007/05/21 10:26:50 fabiankeil + * - Use strlcpy() instead of strcpy(). + * - Provide a reason why loading the actions + * file might have failed. + * * Revision 1.39 2007/04/17 18:21:45 fabiankeil * Split update_action_bits() into * update_action_bits_for_all_tags() @@ -655,7 +669,25 @@ jb_err get_actions(char *line, if ((value == NULL) || (*value == '\0')) { - return JB_ERR_PARSE; + if (0 != strcmpic(action->name, "block")) + { + /* + * XXX: Temporary backwards compatibility hack. + */ + static int complaint_shown = 0; + value = "No reason specified."; + if (!complaint_shown) + { + log_error(LOG_LEVEL_ERROR, "At least one block " + "without reason found. This may become a fatal " + "error in future versions."); + complaint_shown = 1; + } + } + else + { + return JB_ERR_PARSE; + } } /* FIXME: should validate option string here */ freez (cur_action->string[action->index]); @@ -880,7 +912,7 @@ jb_err merge_current_action (struct current_action_spec *dest, return err; } - +#if 0 /********************************************************************* * * Function : update_action_bits_for_all_tags @@ -909,7 +941,7 @@ int update_action_bits_for_all_tags(struct client_state *csp) return updated; } - +#endif /********************************************************************* * @@ -1596,7 +1628,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid) * NULL on out-of-memory error. * *********************************************************************/ -char * actions_to_text(struct action_spec *action) +char * actions_to_text(const struct action_spec *action) { unsigned mask = action->mask; unsigned add = action->add; @@ -1684,8 +1716,8 @@ char * actions_to_text(struct action_spec *action) * NULL on out-of-memory error. * *********************************************************************/ -char * actions_to_html(struct client_state *csp, - struct action_spec *action) +char * actions_to_html(const struct client_state *csp, + const struct action_spec *action) { unsigned mask = action->mask; unsigned add = action->add; @@ -1790,56 +1822,58 @@ char * actions_to_html(struct client_state *csp, * NULL on out-of-memory error. * *********************************************************************/ -char *current_action_to_html(struct client_state *csp, - struct current_action_spec *action) +char *current_action_to_html(const struct client_state *csp, + const struct current_action_spec *action) { unsigned long flags = action->flags; - char * result = strdup(""); struct list_entry * lst; + char *result = strdup(""); + char *active = strdup(""); + char *inactive = strdup(""); #define DEFINE_ACTION_BOOL(__name, __bit) \ if (flags & __bit) \ { \ - string_append(&result, "\n
+"); \ - string_join(&result, add_help_link(__name, csp->config)); \ + string_append(&active, "\n
+"); \ + string_join(&active, add_help_link(__name, csp->config)); \ } \ else \ { \ - string_append(&result, "\n
-"); \ - string_join(&result, add_help_link(__name, csp->config)); \ + string_append(&inactive, "\n
-"); \ + string_join(&inactive, add_help_link(__name, csp->config)); \ } #define DEFINE_ACTION_STRING(__name, __bit, __index) \ if (flags & __bit) \ { \ - string_append(&result, "\n
+"); \ - string_join(&result, add_help_link(__name, csp->config)); \ - string_append(&result, "{"); \ - string_join(&result, html_encode(action->string[__index])); \ - string_append(&result, "}"); \ + string_append(&active, "\n
+"); \ + string_join(&active, add_help_link(__name, csp->config)); \ + string_append(&active, "{"); \ + string_join(&active, html_encode(action->string[__index])); \ + string_append(&active, "}"); \ } \ else \ { \ - string_append(&result, "\n
-"); \ - string_join(&result, add_help_link(__name, csp->config)); \ + string_append(&inactive, "\n
-"); \ + string_join(&inactive, add_help_link(__name, csp->config)); \ } #define DEFINE_ACTION_MULTI(__name, __index) \ lst = action->multi[__index]->first; \ if (lst == NULL) \ { \ - string_append(&result, "\n
-"); \ - string_join(&result, add_help_link(__name, csp->config)); \ + string_append(&inactive, "\n
-"); \ + string_join(&inactive, add_help_link(__name, csp->config)); \ } \ else \ { \ while (lst) \ { \ - string_append(&result, "\n
+"); \ - string_join(&result, add_help_link(__name, csp->config)); \ - string_append(&result, "{"); \ - string_join(&result, html_encode(lst->str)); \ - string_append(&result, "}"); \ + string_append(&active, "\n
+"); \ + string_join(&active, add_help_link(__name, csp->config)); \ + string_append(&active, "{"); \ + string_join(&active, html_encode(lst->str)); \ + string_append(&active, "}"); \ lst = lst->next; \ } \ } @@ -1853,5 +1887,16 @@ char *current_action_to_html(struct client_state *csp, #undef DEFINE_ACTION_BOOL #undef DEFINE_ACTION_ALIAS + if (active != NULL) + { + string_append(&result, active); + freez(active); + } + string_append(&result, "\n
"); + if (inactive != NULL) + { + string_append(&result, inactive); + freez(inactive); + } return result; }