.TP
\fB-o <output filename>\fR, \fB--output <output filename>\fR
set the db filename pattern for recursive search
+.TP
+\fB-a <search field>\fR, \fB--default-search <search field>\fR
+set the default search field: If a search request is not understood,
+it is interpreted as the regexp with this default search field
.SH "ENVIRONMENT VARIABLES"
.TP
\fB8h\fR selects mails received during the last 8 hours.
.TP
-\fBtoday\fR, \fB24h\fR selects mails received during the last 24 hours.
-.TP
-\fBweek\fR selects mails received during the last 7*24 hours.
+\fBtoday\fR, \fB24h\fR, \fBweek\fR, and \fBmonth\fR selects mails received during the last 24, 7 * 24 hours or 31 * 24 hours.
.TP
\fByesterday\fR selects mails received between 48h and 24h ago.
.TP
int paranoid;
int quiet;
-char *default_search_field = "p";
+char *default_search_field;
/********************************************************************/
fprintf(out, " index mails\n");
fprintf(out, " -o <output filename>, --output <output filename>\n");
fprintf(out, " set the result file, use stdout if unset\n");
+ fprintf(out, " -a <search field>, --default-search <search field>\n");
+ fprintf(out, " set the default search field\n");
}
/*********************************************************************/
{ "search", 1, 0, 's' },
{ "index", 0, 0, 'i' },
{ "output", 1, 0, 'o' },
+ { "default-search", 1, 0, 'a' },
{ 0, 0, 0, 0 }
};
condition->negation = 0;
}
- /* Last 8 hours */
+ /* Recently */
if(strcmp(search_field, "8h") == 0) {
condition->field_id = ID_INTERVAL;
condition->interval_stop = 0;
}
- /* Today and yesterday */
+ else if(strcmp(search_field, "month") == 0) {
+ condition->field_id = ID_INTERVAL;
+ condition->interval_start = time(0) - 3600 * 24 * 31;
+ condition->interval_stop = 0;
+ }
else if(strcmp(search_field, "24h") == 0 ||
strcmp(search_field, "today") == 0) {
condition->interval_stop = 0;
}
+ /* Yesterday */
+
else if(strcmp(search_field, "yesterday") == 0) {
condition->field_id = ID_INTERVAL;
condition->interval_start = time(0) - 2 * 3600 * 24;
}
else {
+
+ /* header-related conditions */
+
condition->field_id = -1;
for(m = 0; (m < MAX_ID) && condition->field_id == -1; m++) {
char *db_filename_list;
char output_filename[PATH_MAX + 1];
int action_index;
-
int error = 0, show_help = 0;
const int nb_fields_to_parse = sizeof(fields_to_parse) / sizeof(struct parsable_field);
char c;
db_root_path = 0;
db_filename_list = 0;
quiet = 0;
+ default_search_field = 0;
setlocale(LC_ALL, "");
nb_search_conditions = 0;
- while ((c = getopt_long(argc, argv, "hvqip:s:d:r:l:o:",
+ while ((c = getopt_long(argc, argv, "hvqip:s:d:r:l:o:a:",
long_options, NULL)) != -1) {
switch(c) {
nb_search_conditions++;
break;
+ case 'a':
+ default_search_field = optarg;
+ break;
+
default:
error = 1;
break;