-# $Id: Utils.pm,v 1.38 2009-04-15 18:16:45 wosch Exp $
package ZOOM::IRSpy::Utils;
use strict;
use warnings;
+use Scalar::Util;
+
use Exporter 'import';
our @EXPORT_OK = qw(utf8param
+ trimField
+ utf8paramTrim
isodate
xml_encode
cql_quote
return $cooked;
}
-
# Utility functions follow, exported for use of web UI
sub utf8param_apache1 {
my($r, $key, $value) = @_;
$year+1900, $mon+1, $mday, $hour, $min, $sec);
}
+# strips whitespaces at start and ends of a field
+sub trimField {
+ my $field = shift;
+
+ $field =~ s/^\s+//;
+ $field =~ s/\s+$//;
+
+ return $field;
+}
+
+# utf8param() with trim
+sub utf8paramTrim {
+ my $result = utf8param(@_);
+
+ if (defined $result) {
+ $result = trimField($result);
+ }
+
+ return $result;
+}
# I can't -- just can't, can't, can't -- believe that this function
# isn't provided by one of the core XML modules. But the evidence all
if !defined $id;
my($protocol, $target) = ($id =~ /(.*?):(.*)/);
- if (uc($protocol) eq "Z39.50") {
+ if (uc($protocol) eq "Z39.50" || uc($protocol) eq "TCP") {
return "tcp:$target";
} elsif (uc($protocol) eq "SRU") {
return "sru=get,http:$target";