X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=actions.c;h=82495714995ca0d983f24d6b08b31d340135704d;hb=c46413a31172a46ad4b522a614b130a202cc6b2a;hp=0709ab721d443e93ac89f767cf0bc22050b32d03;hpb=0428133610c525457cb16f7ac6a54203a2743d6c;p=privoxy.git diff --git a/actions.c b/actions.c index 0709ab72..82495714 100644 --- a/actions.c +++ b/actions.c @@ -1,10 +1,9 @@ -const char actions_rcs[] = "$Id: actions.c,v 1.70 2011/08/17 10:24:55 fabiankeil Exp $"; +const char actions_rcs[] = "$Id: actions.c,v 1.77 2012/02/29 19:31:12 fabiankeil Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/actions.c,v $ * * Purpose : Declares functions to work with actions files - * Functions declared include: FIXME * * Copyright : Written by and Copyright (C) 2001-2011 the * Privoxy team. http://www.privoxy.org/ @@ -70,11 +69,13 @@ const char actions_h_rcs[] = ACTIONS_H_VERSION; * an enumerated type (well, the preprocessor equivalent). Here are * the values: */ -#define AV_NONE 0 /* +opt -opt */ -#define AV_ADD_STRING 1 /* +stropt{string} */ -#define AV_REM_STRING 2 /* -stropt */ -#define AV_ADD_MULTI 3 /* +multiopt{string} +multiopt{string2} */ -#define AV_REM_MULTI 4 /* -multiopt{string} -multiopt */ +enum action_value_type { + AV_NONE = 0, /* +opt -opt */ + AV_ADD_STRING = 1, /* +stropt{string} */ + AV_REM_STRING = 2, /* -stropt */ + AV_ADD_MULTI = 3, /* +multiopt{string} +multiopt{string2} */ + AV_REM_MULTI = 4 /* -multiopt{string} -multiopt */ +}; /* * We need a structure to hold the name, flag changes, @@ -83,10 +84,10 @@ const char actions_h_rcs[] = ACTIONS_H_VERSION; struct action_name { const char * name; - unsigned long mask; /* a bit set to "0" = remove action */ - unsigned long add; /* a bit set to "1" = add action */ - int takes_value; /* an AV_... constant */ - int index; /* index into strings[] or multi[] */ + unsigned long mask; /* a bit set to "0" = remove action */ + unsigned long add; /* a bit set to "1" = add action */ + enum action_value_type value_type; /* an AV_... constant */ + int index; /* index into strings[] or multi[] */ }; /* @@ -319,7 +320,7 @@ void free_action (struct action_spec *src) * Function : get_action_token * * Description : Parses a line for the first action. - * Modifies it's input array, doesn't allocate memory. + * Modifies its input array, doesn't allocate memory. * e.g. given: * *line=" +abc{def} -ghi " * Returns: @@ -434,7 +435,7 @@ jb_err get_action_token(char **line, char **name, char **value) *********************************************************************/ static int action_used_to_be_valid(const char *action) { - static const char *formerly_valid_actions[] = { + static const char * const formerly_valid_actions[] = { "inspect-jpegs", "kill-popups", "send-vanilla-wafer", @@ -511,7 +512,7 @@ jb_err get_actions(char *line, cur_action->add &= action->mask; cur_action->add |= action->add; - switch (action->takes_value) + switch (action->value_type) { case AV_NONE: /* ignore any option. */ @@ -772,36 +773,6 @@ jb_err merge_current_action (struct current_action_spec *dest, return err; } -#if 0 -/********************************************************************* - * - * Function : update_action_bits_for_all_tags - * - * Description : Updates the action bits based on all matching tags. - * - * Parameters : - * 1 : csp = Current client state (buffers, headers, etc...) - * - * Returns : 0 if no tag matched, or - * 1 otherwise - * - *********************************************************************/ -int update_action_bits_for_all_tags(struct client_state *csp) -{ - struct list_entry *tag; - int updated = 0; - - for (tag = csp->tags->first; tag != NULL; tag = tag->next) - { - if (update_action_bits_for_tag(csp, tag->str)) - { - updated = 1; - } - } - - return updated; -} -#endif /********************************************************************* * @@ -1572,7 +1543,7 @@ static int load_one_actions_file(struct client_state *csp, int fileid) /* oops - please have a {} line as 1st line in file. */ fclose(fp); log_error(LOG_LEVEL_FATAL, - "can't load actions file '%s': first needed line (%lu) is invalid: %s", + "can't load actions file '%s': line %lu should begin with a '{': %s", csp->config->actions_file[fileid], linenum, buf); return 1; /* never get here */ }