diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2024-05-22 19:08:35 +0200 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2024-05-22 19:08:35 +0200 |
commit | 4764fd9a6b1ddedecacf18a0f98d6282217a2b77 (patch) | |
tree | 50f9e0ede01ca869fd6d78b2c843392fdd21dbf7 /lib/Travelynx/Model | |
parent | cd6df2aa9bd8c272ee6ab6c993733ae0a055ee5a (diff) |
route_after: handle passing the same stop more than once2.6.10
Diffstat (limited to 'lib/Travelynx/Model')
-rw-r--r-- | lib/Travelynx/Model/InTransit.pm | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/Travelynx/Model/InTransit.pm b/lib/Travelynx/Model/InTransit.pm index 6278bad..d825826 100644 --- a/lib/Travelynx/Model/InTransit.pm +++ b/lib/Travelynx/Model/InTransit.pm @@ -221,8 +221,15 @@ sub postprocess { if ($is_after) { push( @route_after, $station ); } - if ( $ret->{dep_name} - and $station->[0] eq $ret->{dep_name} ) + + # Note that the departure stop may be present more than once in @route, + # e.g. when traveling along ring lines such as S41 / S42 in Berlin. + if ( + $ret->{dep_name} + and $station->[0] eq $ret->{dep_name} + and not($station->[2]{sched_dep} + and $station->[2]{sched_dep} < $ret->{sched_dep_ts} ) + ) { $is_after = 1; if ( @{$station} > 1 and not $dep_info ) { |