Added the "week" search criterion.
[mymail.git] / mymail.c
index 2519a7a..0e9009a 100644 (file)
--- a/mymail.c
+++ b/mymail.c
 
 regex_t leading_from_line_regexp;
 
-char *db_filename;
-char *db_filename_regexp_string;
-char *db_root_path;
-char *db_filename_list;
-char output_filename[PATH_MAX + 1];
+/* Global variables! */
 
 int paranoid;
-int action_index;
 int quiet;
 
-time_t being_today;
-
 /********************************************************************/
 
 enum {
@@ -709,12 +702,22 @@ void init_condition(struct search_condition *condition, char *string) {
     condition->negation = 0;
   }
 
-  if(strcmp(search_field, "6h") == 0) {
+  /* Last 8 hours */
+
+  if(strcmp(search_field, "8h") == 0) {
+    condition->field_id = ID_INTERVAL;
+    condition->interval_start = time(0) - 3600 * 8;
+    condition->interval_stop = 0;
+  }
+
+  else if(strcmp(search_field, "week") == 0) {
     condition->field_id = ID_INTERVAL;
-    condition->interval_start = time(0) - 3600 * 6;
+    condition->interval_start = time(0) - 3600 * 24 * 7;
     condition->interval_stop = 0;
   }
 
+  /* Today and yesterday */
+
   else if(strcmp(search_field, "24h") == 0 ||
           strcmp(search_field, "today") == 0) {
     condition->field_id = ID_INTERVAL;
@@ -722,6 +725,14 @@ void init_condition(struct search_condition *condition, char *string) {
     condition->interval_stop = 0;
   }
 
+  else if(strcmp(search_field, "yesterday") == 0) {
+    condition->field_id = ID_INTERVAL;
+    condition->interval_start = time(0) - 2 * 3600 * 24;
+    condition->interval_stop = condition->interval_start + 3600 * 24;
+  }
+
+  /* Week days */
+
   else if(strcmp(search_field, "monday") == 0) {
     condition->field_id = ID_INTERVAL;
     condition->interval_start = time_for_past_day(1);
@@ -764,12 +775,6 @@ void init_condition(struct search_condition *condition, char *string) {
     condition->interval_stop = condition->interval_start + 3600 * 24;
   }
 
-  else if(strcmp(search_field, "yesterday") == 0) {
-    condition->field_id = ID_INTERVAL;
-    condition->interval_start = time(0) - 2 * 3600 * 24;
-    condition->interval_stop = condition->interval_start + 3600 * 24;
-  }
-
   else {
     condition->field_id = -1;
 
@@ -809,6 +814,13 @@ 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 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;
@@ -828,6 +840,7 @@ 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;
   quiet = 0;