From 0e7a232b4fec24afc880a7f1c79f54103b4a694f Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Tue, 27 Apr 2021 19:02:07 -0400 Subject: Interpret -D, -a, -b as local time with -L --- scoop.c | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) (limited to 'scoop.c') diff --git a/scoop.c b/scoop.c index 95fb794..6c2957b 100644 --- a/scoop.c +++ b/scoop.c @@ -364,9 +364,19 @@ int main(int argc, char *argv[]) { append( where, SQL( - AND events.time >= strftime('%s', :date, 'start of day') - AND events.time - < strftime('%s', :date, 'start of day', '+1 day') + AND events.time >= + CASE WHEN :local THEN + strftime('%s', :date, 'start of day', 'utc') + ELSE + strftime('%s', :date, 'start of day') + END + AND events.time < + CASE WHEN :local THEN + strftime('%s', :date, 'start of day', '+1 day', + 'utc') + ELSE + strftime('%s', :date, 'start of day', '+1 day') + END ) ); binds[n++] = Bind(":date", optarg, 0); @@ -389,11 +399,29 @@ int main(int argc, char *argv[]) { binds[n++] = Bind(":target", optarg, 0); } break; case 'a': { - append(where, SQL(AND events.time >= strftime('%s', :after))); + append( + where, + SQL( + AND events.time >= + CASE WHEN :local + THEN strftime('%s', :after, 'utc') + ELSE strftime('%s', :after) + END + ) + ); binds[n++] = Bind(":after", optarg, 0); } break; case 'b': { - append(where, SQL(AND events.time < strftime('%s', :before))); + append( + where, + SQL( + AND events.time < + CASE WHEN :local + THEN strftime('%s', :before, 'utc') + ELSE strftime('%s', :before) + END + ) + ); binds[n++] = Bind(":before", optarg, 0); } break; case 'c': { -- cgit 1.4.1