From 25be1ba3ca97913b1e15eefeb124daa5c34ea5be Mon Sep 17 00:00:00 2001 From: Francois Fleuret Date: Tue, 12 Feb 2013 09:13:51 +0100 Subject: [PATCH] Cosmetics. --- mymail.c | 61 +++++++++++++++++++++++--------------------------------- 1 file changed, 25 insertions(+), 36 deletions(-) diff --git a/mymail.c b/mymail.c index fd200a1..8926cd5 100644 --- a/mymail.c +++ b/mymail.c @@ -61,7 +61,6 @@ regex_t leading_from_line_regexp; int paranoid; int quiet; -char *default_search_field; int ignore_dot_files; /********************************************************************/ @@ -153,8 +152,8 @@ int xor(int a, int b) { return (a && !b) || (!a && b); } -char *parse_token(char *token_buffer, size_t token_buffer_size, - char separator, char *string) { +const char *parse_token(char *token_buffer, size_t token_buffer_size, + char separator, const char *string) { char *u = token_buffer; while(u < token_buffer + token_buffer_size - 1 && *string && *string != separator) { @@ -184,6 +183,7 @@ char *default_value(char *current_value, FILE *safe_fopen(const char *path, const char *mode, const char *comment) { FILE *result = fopen(path, mode); + /* printf("Opening '%s' with mode \"%s\"\n", path, mode); */ if(result) { return result; } else { @@ -255,27 +255,16 @@ int ignore_entry(const char *name) { int is_a_leading_from_line(char *mbox_line) { return - - /* - - The mbox man page in qmail documentation states: - - > The reader should not attempt to take advantage of the fact - > that every From_ line (past the beginning of the file) is - > preceded by a blank line. - - */ - strncmp(mbox_line, "From ", 5) == 0 && regexec(&leading_from_line_regexp, mbox_line, 0, 0, 0) == 0; } int mbox_line_match_search(struct search_condition *condition, - int mbox_id, char *mbox_value) { + int mbox_id, const char *mbox_value) { if(condition->field_id == ID_INTERVAL) { if(mbox_id == ID_LEADING_LINE) { - char *c; + const char *c; time_t t; struct tm tm; @@ -388,7 +377,8 @@ int search_in_db(const char *db_filename, char raw_db_line[BUFFER_SIZE]; char current_mail_filename[PATH_MAX + 1]; unsigned long int current_position_in_mail; - char mbox_name[TOKEN_BUFFER_SIZE], *mbox_value; + char mbox_name[TOKEN_BUFFER_SIZE]; + const char *mbox_value; int mbox_id; int already_written, m, n; int nb_body_conditions, nb_fulfilled_body_conditions; @@ -527,6 +517,8 @@ int recursive_search_in_db(const char *entry_name, regex_t *db_filename_regexp, exit(EXIT_FAILURE); } + /* printf("recursive_search_in_db %s\n", entry_name); */ + dir = opendir(entry_name); if(dir) { @@ -712,10 +704,11 @@ static struct option long_options[] = { /*********************************************************************/ -void init_condition(struct search_condition *condition, char *full_string) { +void init_condition(struct search_condition *condition, const char *full_string, + const char *default_search_field) { char full_search_field[TOKEN_BUFFER_SIZE], *search_field; int m; - char *string; + const char *string; string = parse_token(full_search_field, TOKEN_BUFFER_SIZE, ' ', full_string); search_field = full_search_field; @@ -866,13 +859,14 @@ void free_condition(struct search_condition *condition) { /*********************************************************************/ int main(int argc, char **argv) { - char *db_filename; - char *db_filename_regexp_string; - char *db_root_path; - char *db_filename_list; - char *mbox_filename_regexp_string; + char *db_filename = 0; + char *db_filename_regexp_string = 0; + char *db_root_path = 0; + char *db_filename_list = 0; + char *mbox_filename_regexp_string = 0; + char *default_search_field; char output_filename[PATH_MAX + 1]; - int action_index; + int action_index = 0; int error = 0, show_help = 0; const int nb_fields_to_parse = sizeof(fields_to_parse) / sizeof(struct parsable_field); char c; @@ -887,21 +881,16 @@ int main(int argc, char **argv) { } paranoid = 0; - action_index = 0; - db_filename = 0; - db_filename_regexp_string = 0; - db_root_path = 0; - db_filename_list = 0; - mbox_filename_regexp_string = 0; quiet = 0; default_search_field = 0; ignore_dot_files = 1; + strncpy(output_filename, "", PATH_MAX); setlocale(LC_ALL, ""); nb_search_conditions = 0; - while ((c = getopt_long(argc, argv, "hvqip:s:d:r:l:o:a:", + while ((c = getopt_long(argc, argv, "hvqip:s:d:r:l:o:a:m:", long_options, NULL)) != -1) { switch(c) { @@ -971,7 +960,7 @@ int main(int argc, char **argv) { fprintf(stderr, "mymail: Too many search patterns.\n"); exit(EXIT_FAILURE); } - init_condition(&search_conditions[nb_search_conditions], optarg); + init_condition(&search_conditions[nb_search_conditions], optarg, default_search_field); nb_search_conditions++; break; @@ -994,7 +983,7 @@ int main(int argc, char **argv) { db_filename_regexp_string = default_value(db_filename_regexp_string, "MYMAIL_DB_FILE", - "^mymail.db$"); + "\.db$"); db_root_path = default_value(db_root_path, "MYMAIL_DB_ROOT", @@ -1006,7 +995,7 @@ int main(int argc, char **argv) { mbox_filename_regexp_string = default_value(mbox_filename_regexp_string, "MYMAIL_MBOX_PATTERN", - "mbox$"); + 0); /* Start the processing */ @@ -1116,7 +1105,7 @@ int main(int argc, char **argv) { if(db_filename_list) { char db_filename[PATH_MAX + 1]; - char *s; + const char *s; s = db_filename_list; -- 2.20.1