46 |
my $swish; |
my $swish; |
47 |
|
|
48 |
sub cnv_cp { |
sub cnv_cp { |
49 |
my $tmp = shift; |
my $codepage = shift; |
50 |
|
my $tmp = shift || return; |
51 |
if ($codepage) { |
if ($codepage) { |
52 |
$tmp = $codepage->convert($tmp) || print STDERR "$1$2 = '$tmp' can't convert"; |
$tmp = $codepage->convert($tmp) || print STDERR "iso: '$tmp' can't convert\n"; |
53 |
} |
} |
54 |
return $tmp; |
return $tmp; |
55 |
} |
} |
59 |
# this is EBSCO special to support numeric subfield in |
# this is EBSCO special to support numeric subfield in |
60 |
# form of 856#3 |
# form of 856#3 |
61 |
if ($format =~ s/^(\d\d\d)#*(\w?)//) { |
if ($format =~ s/^(\d\d\d)#*(\w?)//) { |
62 |
my $tmp = get_sf($row,$1,$2,$i); |
my $tmp = cnv_cp($codepage,get_sf($row,$1,$2,$i)); |
63 |
if ($tmp) { |
if ($tmp) { |
64 |
$display .= $prefix.cnv_cp($tmp); |
$display .= $prefix.$tmp; |
65 |
$swish .= $tmp." "; |
$swish .= $tmp." "; |
66 |
#print STDERR " == $tmp"; |
#print STDERR " == $tmp"; |
67 |
} |
} |
70 |
# (as opposed to 010 and 011) so they are strictly listed |
# (as opposed to 010 and 011) so they are strictly listed |
71 |
# here |
# here |
72 |
} elsif ($format =~ s/^(1[01])//) { |
} elsif ($format =~ s/^(1[01])//) { |
73 |
my $tmp = get_sf($row,$1,undef,$i); |
my $tmp = cnv_cp($codepage,get_sf($row,$1,undef,$i)); |
74 |
if ($tmp) { |
if ($tmp) { |
75 |
$display .= $prefix.cnv_cp($tmp); |
$display .= $prefix.$tmp; |
76 |
$swish .= $tmp." "; |
$swish .= $tmp." "; |
77 |
} |
} |
78 |
$prefix = ""; |
$prefix = ""; |