From 3162c6360f6b5264ef21e94d5490cf3db81ed1dd Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Mon, 28 Mar 2016 15:04:02 -0700 Subject: [PATCH] error out on malformed lines if necessary --- make_invoice | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/make_invoice b/make_invoice index 5f87df4..0047d45 100755 --- a/make_invoice +++ b/make_invoice @@ -176,6 +176,7 @@ while (<$log_fh>) { chomp; next if /^Total: \d+\.\d{2}$/; if (/^\s*\* /) { + print STDERR $_."\n"; if (defined $time) { $tex_log .= format_events(date => $date, date2 => $date2, @@ -188,13 +189,19 @@ while (<$log_fh>) { } s/\s*\[[\.\d]+\]\s*\[[\.\d]+\]\s*$//; my ($d1,$d2); - if (/\s*\*\s*CLOCK:\s+\[([^\]]+)\]--\[([^\]]+)\]/) { + if (/\s*\*\s*CLOCK:\s+\[([^\]]+)\]--\[([^\]]+)\]/ or + /^\s*\*\s*(.+)?\s* - \s*(.+)?\s*$/ + ) { $d1 = UnixDate(ParseDate($1),'%s'); $d2 = UnixDate(ParseDate($2),'%s'); + if (not defined $d1) { + die "Invalid date: $1"; + } + if (not defined $d2) { + die "Invalid date: $2"; + } } else { - ($d1,$d2) = map {s/^\s*\*\s*//; - UnixDate(ParseDate($_),'%s') - } split /\s*-\s*/; + die "malformed line $_"; } my $string = '* '.strftime('%A, %B %e, %H:%M:%S',localtime($d1)).' - '. strftime('%A, %B %e, %H:%M:%S',localtime($d2)); -- 2.39.2