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)
committerGalen Charlton <gmc@esilibrary.com>
Fri, 23 May 2014 15:32:27 +0000 (15:32 +0000)
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>
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();
                 }
             }