Bug 11244: (follow-up) Fix $dateonly flag
authorDavid Cook <dcook@prosentient.com.au>
Mon, 20 Jan 2014 02:52:38 +0000 (13:52 +1100)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Wed, 20 Aug 2014 16:42:32 +0000 (13:42 -0300)
At the moment, $dateonly is set to true when $1 is defined. However,
since the regex capture group only includes the time, this flag will
only be set when there is a value that includes a time.

In effect, this means that timestamps are reduced to dates only,
while dates have 00-00-0000 added to them.

This patch keeps the logic but reverses the values, so that $dateonly
will default to true unless $1 is defined.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>

C4/Letters.pm

index 0ccbd3a..a3fcbb7 100644 (file)
@@ -622,7 +622,7 @@ sub _parseletter {
         my $replacedby   = defined ($val) ? $val : '';
         if ( $replacedby and $replacedby =~ m|^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}:\d{2})?$| ) {
             # If the value is XXXX-YY-ZZ[ AA:BB:CC] we assume it is a date
-            my $dateonly = defined $1 ? 1 : 0;
+            my $dateonly = defined $1 ? 0 : 1; #$1 refers to the capture group wrapped in parentheses. In this case, that's the hours, minutes, seconds.
             eval {
                 $replacedby = output_pref({ dt => dt_from_string( $replacedby ), dateonly => $dateonly });
             };