Bugzilla – Attachment 23067 Details for
Bug 10996
Cannot exclude numeric subfields on export
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 10996 Allow numeric subfields to be stripped on export
Bug-10996-Allow-numeric-subfields-to-be-stripped-o.patch (text/plain), 3.21 KB, created by
Jonathan Druart
on 2013-11-21 15:52:15 UTC
(
hide
)
Description:
Bug 10996 Allow numeric subfields to be stripped on export
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2013-11-21 15:52:15 UTC
Size:
3.21 KB
patch
obsolete
>From 5275e3eeb8a92ef0d3448471b3494b5a04cac1f6 Mon Sep 17 00:00:00 2001 >From: Colin Campbell <colin.campbell@ptfs-europe.com> >Date: Fri, 4 Oct 2013 11:01:27 +0100 >Subject: [PATCH] Bug 10996 Allow numeric subfields to be stripped on export > >Regex assumed all numeric characters were part of the tag number >This is obviously false as $9 would be a likely candidate >to be removed on export. Constrain the tag by length > >The code can be any printing ascii character other than space >according to LoC's website > >Also changed regexp to no longer allow a zero length tag number >which is nonsensical. >The old regex would accept shorter than 3 digit tags but these were >not stripped so I've removed that option considering it a bug >not a feature > >NB assumption that the code makes that a tag is always numeric is >incorrect but works in practice. Handling non-numeric tags is >a 'To be done' > >Made code dependent on the regex succeeding. Picking up results >from a previous regex on failure can lead to weird hard to >identify bugs > >In the course of testing Paola Rossi <paola.rossi@cineca.it> >spotted that the delete operation was flawed, only removing >the first occurence of the specified tag/tag subfield. Reworked >the delete loop to operate on all occurences > >Signed-off-by: Paola Rossi <paola.rossi@cineca.it> >Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> >--- > tools/export.pl | 29 ++++++++++++++++------------- > 1 file changed, 16 insertions(+), 13 deletions(-) > >diff --git a/tools/export.pl b/tools/export.pl >index 40c3b9b..a516a6b 100755 >--- a/tools/export.pl >+++ b/tools/export.pl >@@ -358,19 +358,22 @@ if ( $op eq "export" ) { > } > > if ($export_remove_fields) { >- my @fields = split " ", $export_remove_fields; >- foreach (@fields) { >- /^(\d*)(\w)?$/; >- my $field = $1; >- my $subfield = $2; >- >- # skip if this record doesn't have this field >- next if not defined $record->field($field); >- if ($subfield) { >- $record->field($field)->delete_subfields($subfield); >- } >- else { >- $record->delete_field( $record->field($field) ); >+ for my $f ( split / /, $export_remove_fields ) { >+ if ( $f =~ m/^(\d{3})(.)?$/ ) { >+ my ( $field, $subfield ) = ( $1, $2 ); >+ >+ # skip if this record doesn't have this field >+ if ( defined $record->field($field) ) { >+ if ( defined $subfield ) { >+ my @tags = $record->field($field); >+ foreach my $t (@tags) { >+ $t->delete_subfields($subfield); >+ } >+ } >+ else { >+ $record->delete_fields($field); >+ } >+ } > } > } > } >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 10996
:
21806
|
21934
|
21974
|
22009
|
22586
|
22596
| 23067