my $EXMARC = '';
open MARC, '<:utf8', (shift || 'incoming.marc.xml');
open my $NUMARC, '>:utf8', $conf->{output};
-open my $OLD2NEW, '>', 'old2new.incoming.map'
+open my $OLD2NEW, '>', 'old2new.map'
if ($conf->{'renumber-from'} and $conf->{'original-subfield'});
print $NUMARC '<?xml version="1.0" encoding="UTF-8"?>',"\n";
print $NUMARC '<collection xmlns="http://www.loc.gov/MARC21/slim">',"\n";
# uninitialized $EXMARC
if ($FH eq '') {
+ $EXMARC = undef;
open $EXMARC, '>:utf8', $conf->{exception};
$FH = $EXMARC;
}
{ s/\n// for (@record) }
# write to old->new map file if needed
- print $OLD2NEW $recmeta{oid}, "\t", $recmeta{nid}, "\n"
- if ($conf->{'renumber-from'} and $conf->{'original-subfield'});
+ if ($conf->{'renumber-from'} and $conf->{'original-subfield'}) {
+ unless (defined $recmeta{oid}) {
+ my $msg = join(' ', "No old id num found");
+ dump_record($msg);
+ } else {
+ print $OLD2NEW $recmeta{oid}, "\t", $recmeta{nid}, "\n"
+ }
+ }
# and finally, actually write the record
print $FH @record,"\n";
print $OUT $conf->{editmsg},"\n";
print $OUT "\r Tag:",$recmeta{tag}, " Ind1:'",
$recmeta{ind1},"' Ind2:'", $recmeta{ind2}, "'";
+ print $OUT " @ ", $conf->{ricount}, "/", $conf->{rocount} + 1,"\n";
print_context();
return 0;
}
return 0;
}
+sub insert_original {
+ $record[$ptr] = $recmeta{origline};
+ print_context();
+ return 0;
+}
+
sub display_lines {
print $OUT "\nOrig. edit line :", $recmeta{origline};
print $OUT "Current flip line:", $recmeta{prevline} if $recmeta{prevline};
'nocollapse|n',
'renumber-from|rf=i',
'renumber-tag|rt=i',
- 'renumber-subfield|rs=i',
+ 'renumber-subfield|rs=s',
'original-tag|ot=i',
- 'original-subfield|os=i',
+ 'original-subfield|os=s',
'script',
'strip-nines',
'trashfile|t=s',
it appears in the trash file
--original-subfield -os Original id subfield code. If this is specified
and renumbering is in effect, an old-to-new mapping
- file (old2new.incoming.map) will be generated.
+ file (old2new.map) will be generated.
--nocollapse -n Don't compress records to one line on output
--autoscrub -a Automatically remove non-numeric tags in data