Bug 12229: when exporting MARC records (as ISO2709), refuse to output records that...
authorStéphane Delaune <stephane.delaune@biblibre.com>
Mon, 12 May 2014 14:58:14 +0000 (16:58 +0200)
committerFridolin Somers <fridolin.somers@biblibre.com>
Thu, 16 Oct 2014 10:30:33 +0000 (12:30 +0200)
Test:
1. Edit a bib record, add 100.000 chars text to 500a
2. Go to Tools -> Export data (or run tools/export.pl on
   the command line)
3. Verify that exporting as XML includes the record
4. Verify that exporting as MARC does not include the record,
   and that you get the following warning:

export.pl: record (number 2025) length 102668 is larger than the MARC spec allows (99999 bytes) at...

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Work as described. No errors

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 1f72a1c2dd45c3a570746dd575b0fcfb38d13dc4)
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

tools/export.pl

index 9bbed0b..1a055b0 100755 (executable)
@@ -394,6 +394,11 @@ if ( $op eq "export" ) {
                     print "\n";
                 }
                 else {
+                    my (@result_build_tag) = MARC::File::USMARC::_build_tag_directory($record);
+                    if ($result_build_tag[2] > 99999) {
+                        warn "record (number $recordid) length ".$result_build_tag[2]." is larger than the MARC spec allows (99999 bytes)";
+                        next;
+                    }
                     print $record->as_usmarc();
                 }
             }