pazz0 patch: fix offset handling - ics2txt - convert icalendar .ics file to plain text HTML git clone git://bitreich.org/ics2txt git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ics2txt DIR Log DIR Files DIR Refs DIR Tags DIR README --- DIR commit 6e47747983a5da9b1217fbaca2dc9a61f05f6300 DIR parent e9d91a5ac44449450f9752bba23df8e80ab330ac HTML Author: Josuah Demangeon <mail@josuah.net> Date: Sat, 4 Aug 2018 20:43:36 +0200 pazz0 patch: fix offset handling Diffstat: M ics2txt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) --- DIR diff --git a/ics2txt b/ics2txt @@ -44,7 +44,10 @@ function date_ical(str, offset) { day = substr(str, 7, 2); hrs = substr(str, 10, 2); min = substr(str, 12, 2); - return to_sec(yrs, mth, day, hrs, min, 0) - offset; + if (substr(str, 16, 1) == "Z") + return to_sec(yrs, mth, day, hrs, min, 0); + else + return to_sec(yrs, mth, day, hrs, min, 0) - offset; } function date_iso8601(date, offset) @@ -148,7 +151,7 @@ function txt(offset) nb = parse_ical(list, offset); for (i = 1; i <= nb; i++) { split(list[i], arr, "\t"); - txt_one(arr[1], arr[2], arr[3], arr[4], arr[5], arr[6]); + txt_one(arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], offset); } } @@ -166,9 +169,13 @@ function usage() } BEGIN { - "date +%z" | getline offset; + "date +%z" | getline offset_str; close("date +%z"); - offset = substr(offset, 1, 3) * 3600; + + offset = substr(offset_str, 2, 2) * 3600; + offset += substr(offset_str, 4, 2) * 60; + if (substr(offset_str, 1, 1) == "-") + offset *= -1; if (ARGV[1] == "txt") { ARGV[1] = ARGV[--ARGC];