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 {
/*********************************************************************/
+time_t time_for_past_day(int day) {
+ time_t t;
+ struct tm *tm;
+ int delta_day;
+ t = time(0);
+ tm = localtime(&t);
+ delta_day = (7 + tm->tm_wday - day) % 7 + 1;
+ return t - delta_day * 3600 * 24 + tm->tm_sec + 60 * tm->tm_min + 3600 * tm->tm_hour;
+}
+
+/*********************************************************************/
+
int ignore_entry(const char *name) {
return
/* strcmp(name, ".") == 0 || */
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 * 6;
+ condition->interval_start = time(0) - 3600 * 8;
condition->interval_stop = 0;
}
+ /* Today and yesterday */
+
else if(strcmp(search_field, "24h") == 0 ||
strcmp(search_field, "today") == 0) {
condition->field_id = ID_INTERVAL;
else if(strcmp(search_field, "yesterday") == 0) {
condition->field_id = ID_INTERVAL;
condition->interval_start = time(0) - 2 * 3600 * 24;
- condition->interval_stop = time(0) - 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);
+ condition->interval_stop = condition->interval_start + 3600 * 24;
+ }
+
+ else if(strcmp(search_field, "tuesday") == 0) {
+ condition->field_id = ID_INTERVAL;
+ condition->interval_start = time_for_past_day(2);
+ condition->interval_stop = condition->interval_start + 3600 * 24;
+ }
+
+ else if(strcmp(search_field, "wednesday") == 0) {
+ condition->field_id = ID_INTERVAL;
+ condition->interval_start = time_for_past_day(3);
+ condition->interval_stop = condition->interval_start + 3600 * 24;
+ }
+
+ else if(strcmp(search_field, "thursday") == 0) {
+ condition->field_id = ID_INTERVAL;
+ condition->interval_start = time_for_past_day(4);
+ condition->interval_stop = condition->interval_start + 3600 * 24;
+ }
+
+ else if(strcmp(search_field, "friday") == 0) {
+ condition->field_id = ID_INTERVAL;
+ condition->interval_start = time_for_past_day(5);
+ condition->interval_stop = condition->interval_start + 3600 * 24;
+ }
+
+ else if(strcmp(search_field, "saturday") == 0) {
+ condition->field_id = ID_INTERVAL;
+ condition->interval_start = time_for_past_day(6);
+ condition->interval_stop = condition->interval_start + 3600 * 24;
+ }
+
+ else if(strcmp(search_field, "sunday") == 0) {
+ condition->field_id = ID_INTERVAL;
+ condition->interval_start = time_for_past_day(7);
+ condition->interval_stop = condition->interval_start + 3600 * 24;
}
else {
/*********************************************************************/
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;