projects
/
mymail.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5419b44
)
Cosmetics + increased version number.
author
Francois Fleuret
<francois@fleuret.org>
Fri, 8 Feb 2013 17:27:30 +0000
(18:27 +0100)
committer
Francois Fleuret
<francois@fleuret.org>
Fri, 8 Feb 2013 17:27:30 +0000
(18:27 +0100)
mymail.c
patch
|
blob
|
history
diff --git
a/mymail.c
b/mymail.c
index
54febff
..
cc55261
100644
(file)
--- a/
mymail.c
+++ b/
mymail.c
@@
-46,13
+46,15
@@
#include <time.h>
#define MYMAIL_DB_MAGIC_TOKEN "mymail_index_file"
#include <time.h>
#define MYMAIL_DB_MAGIC_TOKEN "mymail_index_file"
-#define VERSION "0.9.
1
"
+#define VERSION "0.9.
2
"
#define MAX_NB_SEARCH_CONDITIONS 10
#define BUFFER_SIZE 65536
#define TOKEN_BUFFER_SIZE 1024
#define MAX_NB_SEARCH_CONDITIONS 10
#define BUFFER_SIZE 65536
#define TOKEN_BUFFER_SIZE 1024
+#define LEADING_FROM_LINE_REGEXP "^From [^ ]* \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\) \\(Jan\\|Feb\\|Mar\\|Apr\\|May\\|Jun\\|Jul\\|Aug\\|Sep\\|Oct\\|Nov\\|Dec\\) [ 123][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]\n$"
+
regex_t leading_from_line_regexp;
/* Global variables! */
regex_t leading_from_line_regexp;
/* Global variables! */
@@
-60,6
+62,7
@@
regex_t leading_from_line_regexp;
int paranoid;
int quiet;
char *default_search_field;
int paranoid;
int quiet;
char *default_search_field;
+int ignore_dot_files;
/********************************************************************/
/********************************************************************/
@@
-228,12
+231,12
@@
time_t time_for_past_day(int day) {
int ignore_entry(const char *name) {
return
int ignore_entry(const char *name) {
return
- /* strcmp(name, ".") == 0 || */
- /* strcmp(name, "..") == 0 || */
- (name[0] == '.' && name[1] != '/');
+ strcmp(name, ".") == 0 ||
+ strcmp(name, "..") == 0 ||
+ (
ignore_dot_files &&
name[0] == '.' && name[1] != '/');
}
}
-int is_a_leading_from_line(
int last_mbox_line_was_empty,
char *mbox_line) {
+int is_a_leading_from_line(char *mbox_line) {
return
/*
return
/*
@@
-246,7
+249,6
@@
int is_a_leading_from_line(int last_mbox_line_was_empty, char *mbox_line) {
*/
*/
- /* last_mbox_line_was_empty && */
strncmp(mbox_line, "From ", 5) == 0 &&
regexec(&leading_from_line_regexp, mbox_line, 0, 0, 0) == 0;
}
strncmp(mbox_line, "From ", 5) == 0 &&
regexec(&leading_from_line_regexp, mbox_line, 0, 0, 0) == 0;
}
@@
-300,7
+302,6
@@
void update_body_hits(char *mail_filename, int position_in_mail,
int *hits) {
FILE *mail_file;
int header, n;
int *hits) {
FILE *mail_file;
int header, n;
- int last_mbox_line_was_empty;
char raw_mbox_line[BUFFER_SIZE];
int nb_body_hits;
char raw_mbox_line[BUFFER_SIZE];
int nb_body_hits;
@@
-320,9
+321,10
@@
void update_body_hits(char *mail_filename, int position_in_mail,
if(fgets(raw_mbox_line, BUFFER_SIZE, mail_file)) {
while(nb_body_hits < nb_body_conditions) {
if(fgets(raw_mbox_line, BUFFER_SIZE, mail_file)) {
while(nb_body_hits < nb_body_conditions) {
- last_mbox_line_was_empty = (raw_mbox_line[0] == '\n');
+ /* last_mbox_line_was_empty = (raw_mbox_line[0] == '\n'); */
+ /* if(last_mbox_line_was_empty) { header = 0; } */
- if(
last_mbox_line_was_empty
) { header = 0; }
+ if(
raw_mbox_line[0] == '\n'
) { header = 0; }
if(!header) {
for(n = 0; n < nb_search_conditions; n++) {
if(!header) {
for(n = 0; n < nb_search_conditions; n++) {
@@
-337,7
+339,7
@@
void update_body_hits(char *mail_filename, int position_in_mail,
}
if(!fgets(raw_mbox_line, BUFFER_SIZE, mail_file) ||
}
if(!fgets(raw_mbox_line, BUFFER_SIZE, mail_file) ||
- (is_a_leading_from_line(
last_mbox_line_was_empty,
raw_mbox_line)))
+ (is_a_leading_from_line(raw_mbox_line)))
break;
}
}
break;
}
}
@@
-348,7
+350,6
@@
void update_body_hits(char *mail_filename, int position_in_mail,
void write_mail(const char *mail_filename, unsigned long int position_in_mail,
FILE *output_file) {
char raw_mbox_line[BUFFER_SIZE];
void write_mail(const char *mail_filename, unsigned long int position_in_mail,
FILE *output_file) {
char raw_mbox_line[BUFFER_SIZE];
- int last_mbox_line_was_empty;
FILE *mail_file;
mail_file = fopen(mail_filename, "r");
FILE *mail_file;
mail_file = fopen(mail_filename, "r");
@@
-363,14
+364,12
@@
void write_mail(const char *mail_filename, unsigned long int position_in_mail,
fseek(mail_file, position_in_mail, SEEK_SET);
if(fgets(raw_mbox_line, BUFFER_SIZE, mail_file)) {
fseek(mail_file, position_in_mail, SEEK_SET);
if(fgets(raw_mbox_line, BUFFER_SIZE, mail_file)) {
- last_mbox_line_was_empty = 0;
fprintf(output_file, "%s", raw_mbox_line);
while(1) {
if(!fgets(raw_mbox_line, BUFFER_SIZE, mail_file) ||
fprintf(output_file, "%s", raw_mbox_line);
while(1) {
if(!fgets(raw_mbox_line, BUFFER_SIZE, mail_file) ||
- (is_a_leading_from_line(
last_mbox_line_was_empty,
raw_mbox_line))
+ (is_a_leading_from_line(raw_mbox_line))
)
break;
)
break;
- last_mbox_line_was_empty = (raw_mbox_line[0] == '\n');
fprintf(output_file, "%s", raw_mbox_line);
}
}
fprintf(output_file, "%s", raw_mbox_line);
}
}
@@
-572,7
+571,7
@@
void index_mbox(const char *mbox_filename,
char raw_mbox_line[BUFFER_SIZE], full_line[BUFFER_SIZE];
char *end_of_full_line;
FILE *file;
char raw_mbox_line[BUFFER_SIZE], full_line[BUFFER_SIZE];
char *end_of_full_line;
FILE *file;
- int in_header, new_header
, last_mbox_line_was_empty
;
+ int in_header, new_header;
unsigned long int position_in_file;
file = fopen(mbox_filename, "r");
unsigned long int position_in_file;
file = fopen(mbox_filename, "r");
@@
-589,10
+588,9
@@
void index_mbox(const char *mbox_filename,
position_in_file = 0;
end_of_full_line = 0;
full_line[0] = '\0';
position_in_file = 0;
end_of_full_line = 0;
full_line[0] = '\0';
- last_mbox_line_was_empty = 1;
while(fgets(raw_mbox_line, BUFFER_SIZE, file)) {
while(fgets(raw_mbox_line, BUFFER_SIZE, file)) {
- if(is_a_leading_from_line(
last_mbox_line_was_empty,
raw_mbox_line)) {
+ if(is_a_leading_from_line(raw_mbox_line)) {
if(in_header) {
fprintf(stderr,
"Got a ^\"From \" in the header in %s:%lu.\n",
if(in_header) {
fprintf(stderr,
"Got a ^\"From \" in the header in %s:%lu.\n",
@@
-606,8
+604,6
@@
void index_mbox(const char *mbox_filename,
if(in_header) { in_header = 0; }
}
if(in_header) { in_header = 0; }
}
- last_mbox_line_was_empty = (raw_mbox_line[0] == '\n');
-
if(in_header) {
if(new_header) {
fprintf(db_file, "mail %lu %s\n", position_in_file, mbox_filename);
if(in_header) {
if(new_header) {
fprintf(db_file, "mail %lu %s\n", position_in_file, mbox_filename);
@@
-880,9
+876,7
@@
int main(int argc, char **argv) {
FILE *output_file;
struct search_condition search_conditions[MAX_NB_SEARCH_CONDITIONS];
FILE *output_file;
struct search_condition search_conditions[MAX_NB_SEARCH_CONDITIONS];
- if(regcomp(&leading_from_line_regexp,
- "^From [^ ]* \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\) \\(Jan\\|Feb\\|Mar\\|Apr\\|May\\|Jun\\|Jul\\|Aug\\|Sep\\|Oct\\|Nov\\|Dec\\) [ 123][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]\n$",
- 0)) {
+ if(regcomp(&leading_from_line_regexp, LEADING_FROM_LINE_REGEXP, 0)) {
fprintf(stderr,
"mymail: Cannot compile leading \"from\" line regexp. That is strange.\n");
exit(EXIT_FAILURE);
fprintf(stderr,
"mymail: Cannot compile leading \"from\" line regexp. That is strange.\n");
exit(EXIT_FAILURE);
@@
-896,6
+890,7
@@
int main(int argc, char **argv) {
db_filename_list = 0;
quiet = 0;
default_search_field = 0;
db_filename_list = 0;
quiet = 0;
default_search_field = 0;
+ ignore_dot_files = 1;
setlocale(LC_ALL, "");
setlocale(LC_ALL, "");