Bugzilla – Attachment 2604 Details for
Bug 5105
Switch Module Depreciated in perl 12
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed Patch
0001-Bug-5105-Remove-use-of-depreciated-Switch-module.patch (text/plain), 16.34 KB, created by
Colin Campbell
on 2010-09-08 13:09:05 UTC
(
hide
)
Description:
Proposed Patch
Filename:
MIME Type:
Creator:
Colin Campbell
Created:
2010-09-08 13:09:05 UTC
Size:
16.34 KB
patch
obsolete
>From 43e365314cae9323ba95eb1e8b790eaebaff0192 Mon Sep 17 00:00:00 2001 >From: Colin Campbell <colin.campbell@ptfs-europe.com> >Date: Wed, 8 Sep 2010 13:10:10 +0100 >Subject: [PATCH] Bug 5105 - Remove use of depreciated Switch module >Content-Type: text/plain; charset="utf-8" > >Use of switch generates errors in perl 12 and above >Replaced uses of the Switch module by if- else constructs >Removed some mixed space+tab indentation around these where >it generated visual confusion > >As of perl 10 you can use given/when constructs but this is not >supported in earlier perls. >--- > C4/Reports/Guided.pm | 111 ++++++++++++++++++--------------------- > basket/downloadcart.pl | 21 ++++--- > opac/opac-detail.pl | 58 +++++++++----------- > opac/opac-downloadcart.pl | 29 ++++++----- > opac/opac-downloadshelf.pl | 25 +++++---- > tools/batchMod.pl | 69 +++++++++++------------- > virtualshelves/downloadshelf.pl | 25 +++++---- > 7 files changed, 167 insertions(+), 171 deletions(-) > >diff --git a/C4/Reports/Guided.pm b/C4/Reports/Guided.pm >index 51e608b..5fb1aae 100644 >--- a/C4/Reports/Guided.pm >+++ b/C4/Reports/Guided.pm >@@ -29,7 +29,6 @@ use C4::Output; > use C4::Dates; > use XML::Simple; > use XML::Dumper; >-use Switch; > use C4::Debug; > # use Smart::Comments; > # use Data::Dumper; >@@ -311,70 +310,64 @@ sub get_criteria { > my ($area,$cgi) = @_; > my $dbh = C4::Context->dbh(); > my $crit = $criteria{$area}; >- my $column_defs = _get_column_defs($cgi); >+ my $column_defs = _get_column_defs($cgi); > my @criteria_array; > foreach my $localcrit (@$crit) { > my ( $value, $type ) = split( /\|/, $localcrit ); > my ( $table, $column ) = split( /\./, $value ); >- switch ($type) { >- case 'textrange' { >- my %temp; >- $temp{'name'} = $value; >- $temp{'from'} = "from_" . $value; >- $temp{'to'} = "to_" . $value; >- $temp{'textrange'} = 1; >- $temp{'description'} = $column_defs->{$value}; >- push @criteria_array, \%temp; >- } >- >- case 'date' { >- my %temp; >- $temp{'name'} = $value; >- $temp{'date'} = 1; >- $temp{'description'} = $column_defs->{$value}; >- push @criteria_array, \%temp; >- } >- >- case 'daterange' { >- my %temp; >- $temp{'name'} = $value; >- $temp{'from'} = "from_" . $value; >- $temp{'to'} = "to_" . $value; >- $temp{'daterange'} = 1; >- $temp{'description'} = $column_defs->{$value}; >- push @criteria_array, \%temp; >- } >- >- else { >- my $query = >- "SELECT distinct($column) as availablevalues FROM $table"; >- my $sth = $dbh->prepare($query); >- $sth->execute(); >- my @values; >- # push the runtime choosing option >- my $list; >- $list='branches' if $column eq 'branchcode' or $column eq 'holdingbranch' or $column eq 'homebranch'; >- $list='categorycode' if $column eq 'categorycode'; >- $list='itemtype' if $column eq 'itype'; >- $list='ccode' if $column eq 'ccode'; >- # TODO : improve to let the librarian choose the description at runtime >- push @values, { availablevalues => "<<$column".($list?"|$list":'').">>" }; >- while ( my $row = $sth->fetchrow_hashref() ) { >- push @values, $row; >- if ($row->{'availablevalues'} eq '') { $row->{'default'} = 1 }; >- } >- $sth->finish(); >+ if ($type eq 'textrange') { >+ my %temp; >+ $temp{'name'} = $value; >+ $temp{'from'} = "from_" . $value; >+ $temp{'to'} = "to_" . $value; >+ $temp{'textrange'} = 1; >+ $temp{'description'} = $column_defs->{$value}; >+ push @criteria_array, \%temp; >+ } >+ elsif ($type eq 'date') { >+ my %temp; >+ $temp{'name'} = $value; >+ $temp{'date'} = 1; >+ $temp{'description'} = $column_defs->{$value}; >+ push @criteria_array, \%temp; >+ } >+ elsif ($type eq 'daterange') { >+ my %temp; >+ $temp{'name'} = $value; >+ $temp{'from'} = "from_" . $value; >+ $temp{'to'} = "to_" . $value; >+ $temp{'daterange'} = 1; >+ $temp{'description'} = $column_defs->{$value}; >+ push @criteria_array, \%temp; >+ } >+ else { >+ my $query = >+ "SELECT distinct($column) as availablevalues FROM $table"; >+ my $sth = $dbh->prepare($query); >+ $sth->execute(); >+ my @values; >+ # push the runtime choosing option >+ my $list; >+ $list='branches' if $column eq 'branchcode' or $column eq 'holdingbranch' or $column eq 'homebranch'; >+ $list='categorycode' if $column eq 'categorycode'; >+ $list='itemtype' if $column eq 'itype'; >+ $list='ccode' if $column eq 'ccode'; >+ # TODO : improve to let the librarian choose the description at runtime >+ push @values, { availablevalues => "<<$column".($list?"|$list":'').">>" }; >+ while ( my $row = $sth->fetchrow_hashref() ) { >+ push @values, $row; >+ if ($row->{'availablevalues'} eq '') { $row->{'default'} = 1 }; >+ } >+ $sth->finish(); > >- my %temp; >- $temp{'name'} = $value; >- $temp{'description'} = $column_defs->{$value}; >- $temp{'values'} = \@values; >- >- push @criteria_array, \%temp; >- >- } >+ my %temp; >+ $temp{'name'} = $value; >+ $temp{'description'} = $column_defs->{$value}; >+ $temp{'values'} = \@values; >+ >+ push @criteria_array, \%temp; >+ } > >- } > } > return ( \@criteria_array ); > } >diff --git a/basket/downloadcart.pl b/basket/downloadcart.pl >index 38c6277..456f0a4 100755 >--- a/basket/downloadcart.pl >+++ b/basket/downloadcart.pl >@@ -22,7 +22,6 @@ use warnings; > > use CGI; > use Encode qw(encode); >-use Switch; > > use C4::Auth; > use C4::Biblio; >@@ -64,16 +63,20 @@ if ($bib_list && $format) { > # Other formats > } else { > >- foreach my $biblio (@bibs) { >+ foreach my $biblio (@bibs) { > >- my $record = GetMarcBiblio($biblio); >+ my $record = GetMarcBiblio($biblio); > >- switch ($format) { >- case "iso2709" { $output .= $record->as_usmarc(); } >- case "ris" { $output .= marc2ris($record); } >- case "bibtex" { $output .= marc2bibtex($record, $biblio); } >- } >- } >+ if ($format eq 'iso2709') { >+ $output .= $record->as_usmarc(); >+ } >+ elsif ($format eq 'ris') { >+ $output .= marc2ris($record); >+ } >+ elsif ($format eq 'bibtex') { >+ $output .= marc2bibtex($record, $biblio); >+ } >+ } > } > > # If it was a CSV export we change the format after the export so the file extension is fine >diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl >index 629ebd2..b28b391 100755 >--- a/opac/opac-detail.pl >+++ b/opac/opac-detail.pl >@@ -40,7 +40,6 @@ use C4::Serials; > use C4::Members; > use C4::VirtualShelves; > use C4::XSLT; >-use Switch; > > BEGIN { > if (C4::Context->preference('BakerTaylorEnabled')) { >@@ -597,42 +596,39 @@ if (my $search_for_title = C4::Context->preference('OPACSearchForTitleIn')){ > # We try to select the best default tab to show, according to what > # the user wants, and what's available for display > my $defaulttab = ''; >-switch (C4::Context->preference('opacSerialDefaultTab')) { >- >- # If the user wants subscriptions by default >- case "subscriptions" { >- # And there are subscriptions, we display them >- if ($subscriptionsnumber) { >- $defaulttab = 'subscriptions'; >- } else { >- # Else, we try next option >- next; >- } >+my $deftab = C4::Context->preference('opacSerialDefaultTab'); >+# If the user wants subscriptions by default >+if ($deftab eq 'subscriptions') { >+ # And there are subscriptions, we display them >+ if ($subscriptionsnumber) { >+ $defaulttab = 'subscriptions'; >+ } else { >+ # Else, we try next option >+ $deftab = 'serialcollection'; > } >- >- case "serialcollection" { >- if (scalar(@serialcollections) > 0) { >- $defaulttab = 'serialcollection' ; >- } else { >- next; >- } >+} >+if ($deftab eq 'serialcollection') { >+ if (scalar(@serialcollections) > 0) { >+ $defaulttab = 'serialcollection' ; >+ } else { >+ $deftab = 'holdings'; > } >+} > >- case "holdings" { >- if ($dat->{'count'} > 0) { >- $defaulttab = 'holdings'; >- } else { >- # As this is the last option, we try other options if there are no items >- if ($subscriptionsnumber) { >- $defaulttab = 'subscriptions'; >- } elsif (scalar(@serialcollections) > 0) { >- $defaulttab = 'serialcollection' ; >- } >- } >- >+if ($deftab eq 'holdings') { >+ if ($dat->{'count'} > 0) { >+ $defaulttab = 'holdings'; >+ } else { >+ # As this is the last option, we try other options if there are no items >+ if ($subscriptionsnumber) { >+ $defaulttab = 'subscriptions'; >+ } elsif (scalar(@serialcollections) > 0) { >+ $defaulttab = 'serialcollection' ; >+ } > } > > } >+ > $template->param('defaulttab' => $defaulttab); > > >diff --git a/opac/opac-downloadcart.pl b/opac/opac-downloadcart.pl >index ff1b58f..7f2bb32 100755 >--- a/opac/opac-downloadcart.pl >+++ b/opac/opac-downloadcart.pl >@@ -22,7 +22,6 @@ use warnings; > > use CGI; > use Encode qw(encode); >-use Switch; > > use C4::Auth; > use C4::Biblio; >@@ -61,19 +60,23 @@ if ($bib_list && $format) { > > $output = marc2csv(\@bibs, $format); > >- # Other formats >+ # Other formats > } else { >- foreach my $biblio (@bibs) { >- >- my $record = GetMarcBiblio($biblio); >- next unless $record; >- >- switch ($format) { >- case "iso2709" { $output .= $record->as_usmarc(); } >- case "ris" { $output .= marc2ris($record); } >- case "bibtex" { $output .= marc2bibtex($record, $biblio); } >- } >- } >+ foreach my $biblio (@bibs) { >+ >+ my $record = GetMarcBiblio($biblio); >+ next unless $record; >+ >+ if ($format eq 'iso2709') { >+ $output .= $record->as_usmarc(); >+ } >+ elsif ($format eq 'ris') { >+ $output .= marc2ris($record); >+ } >+ elsif ($format eq 'bibtex') { >+ $output .= marc2bibtex($record, $biblio); >+ } >+ } > } > > # If it was a CSV export we change the format after the export so the file extension is fine >diff --git a/opac/opac-downloadshelf.pl b/opac/opac-downloadshelf.pl >index d73a8e7..ab1fe8d 100755 >--- a/opac/opac-downloadshelf.pl >+++ b/opac/opac-downloadshelf.pl >@@ -22,7 +22,6 @@ use warnings; > > use CGI; > use Encode qw(encode); >-use Switch; > > use C4::Auth; > use C4::Biblio; >@@ -66,18 +65,22 @@ if ($shelfid && $format) { > > # Other formats > } else { >- foreach my $biblio (@$items) { >- my $biblionumber = $biblio->{biblionumber}; >+ foreach my $biblio (@$items) { >+ my $biblionumber = $biblio->{biblionumber}; > >- my $record = GetMarcBiblio($biblionumber); >- next unless $record; >+ my $record = GetMarcBiblio($biblionumber); >+ next unless $record; > >- switch ($format) { >- case "iso2709" { $output .= $record->as_usmarc(); } >- case "ris" { $output .= marc2ris($record); } >- case "bibtex" { $output .= marc2bibtex($record, $biblionumber); } >- } >- } >+ if ($format eq 'iso2709') { >+ $output .= $record->as_usmarc(); >+ } >+ elsif ($format eq 'ris' ) { >+ $output .= marc2ris($record); >+ } >+ elsif ($format eq 'bibtex') { >+ $output .= marc2bibtex($record, $biblionumber); >+ } >+ } > } > > # If it was a CSV export we change the format after the export so the file extension is fine >diff --git a/tools/batchMod.pl b/tools/batchMod.pl >index f5138d1..e37ed97 100755 >--- a/tools/batchMod.pl >+++ b/tools/batchMod.pl >@@ -32,7 +32,6 @@ use C4::BackgroundJob; > use C4::ClassSource; > use C4::Dates; > use C4::Debug; >-use Switch; > use MARC::File::XML; > > my $input = new CGI; >@@ -164,9 +163,9 @@ if ($op eq "action") { > #------------------------------------------------------------------------------- > > if ($op eq "show"){ >- my $filefh = $input->upload('uploadfile'); >- my $filecontent = $input->param('filecontent'); >- my @notfoundbarcodes; >+ my $filefh = $input->upload('uploadfile'); >+ my $filecontent = $input->param('filecontent'); >+ my @notfoundbarcodes; > > my @contentlist; > if ($filefh){ >@@ -175,48 +174,44 @@ if ($op eq "show"){ > push @contentlist, $content if $content; > } > >- switch ($filecontent) { >- case "barcode_file" { >- foreach my $barcode (@contentlist) { >+ if ($filecontent eq 'barcode_file') { >+ foreach my $barcode (@contentlist) { > >- my $itemnumber = GetItemnumberFromBarcode($barcode); >- if ($itemnumber) { >- push @itemnumbers,$itemnumber; >- } else { >- push @notfoundbarcodes, $barcode; >- } >- } >- >- } >- >- case "itemid_file" { >- @itemnumbers = @contentlist; >- } >- } >+ my $itemnumber = GetItemnumberFromBarcode($barcode); >+ if ($itemnumber) { >+ push @itemnumbers,$itemnumber; >+ } else { >+ push @notfoundbarcodes, $barcode; >+ } >+ } >+ } >+ elsif ( $filecontent eq 'itemid_file') { >+ @itemnumbers = @contentlist; >+ } > } else { >- if ( my $list=$input->param('barcodelist')){ >- push my @barcodelist, split(/\s\n/, $list); >+ if ( my $list=$input->param('barcodelist')){ >+ push my @barcodelist, split(/\s\n/, $list); > >- foreach my $barcode (@barcodelist) { >+ foreach my $barcode (@barcodelist) { > >- my $itemnumber = GetItemnumberFromBarcode($barcode); >- if ($itemnumber) { >- push @itemnumbers,$itemnumber; >- } else { >- push @notfoundbarcodes, $barcode; >- } >- } >+ my $itemnumber = GetItemnumberFromBarcode($barcode); >+ if ($itemnumber) { >+ push @itemnumbers,$itemnumber; >+ } else { >+ push @notfoundbarcodes, $barcode; >+ } >+ } > >+ } > } >-} > # Only display the items if there are no more than 1000 > if (scalar(@itemnumbers) <= 1000) { >- $items_display_hashref=BuildItemsData(@itemnumbers); >+ $items_display_hashref=BuildItemsData(@itemnumbers); > } else { >- $template->param("too_many_items" => scalar(@itemnumbers)); >- # Even if we do not display the items, we need the itemnumbers >- my @itemnumbers_hashref = map {{itemnumber => $_}} @itemnumbers; >- $template->param("itemnumbers_hashref" => \@itemnumbers_hashref); >+ $template->param("too_many_items" => scalar(@itemnumbers)); >+ # Even if we do not display the items, we need the itemnumbers >+ my @itemnumbers_hashref = map {{itemnumber => $_}} @itemnumbers; >+ $template->param("itemnumbers_hashref" => \@itemnumbers_hashref); > } > # now, build the item form for entering a new item > my @loop_data =(); >diff --git a/virtualshelves/downloadshelf.pl b/virtualshelves/downloadshelf.pl >index 9e8de6b..253eec1 100755 >--- a/virtualshelves/downloadshelf.pl >+++ b/virtualshelves/downloadshelf.pl >@@ -22,7 +22,6 @@ use warnings; > > use CGI; > use Encode qw(encode); >-use Switch; > > use C4::Auth; > use C4::Biblio; >@@ -65,19 +64,23 @@ if ($shelfid && $format) { > $output = marc2csv(\@biblios, $format); > > # Other formats >- } else { >- foreach my $biblio (@$items) { >- my $biblionumber = $biblio->{biblionumber}; >+} else { >+ foreach my $biblio (@$items) { >+ my $biblionumber = $biblio->{biblionumber}; > >- my $record = GetMarcBiblio($biblionumber); >+ my $record = GetMarcBiblio($biblionumber); > >- switch ($format) { >- case "iso2709" { $output .= $record->as_usmarc(); } >- case "ris" { $output .= marc2ris($record); } >- case "bibtex" { $output .= marc2bibtex($record, $biblionumber); } >- } >- } >+ if ($format eq 'iso2709') { >+ $output .= $record->as_usmarc(); >+ } >+ elsif ($format eq 'ris') { >+ $output .= marc2ris($record); >+ } >+ elsif ($format eq 'bibtex') { >+ $output .= marc2bibtex($record, $biblionumber); >+ } > } >+} > > # If it was a CSV export we change the format after the export so the file extension is fine > $format = "csv" if ($format =~ m/^\d+$/); >-- >1.7.2.2 >
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 5105
: 2604