new function utf8paramTrim()
[irspy-moved-to-github.git] / lib / ZOOM / IRSpy / Utils.pm
index dcf33ae..233222e 100644 (file)
@@ -1,4 +1,3 @@
-# $Id: Utils.pm,v 1.38 2009-04-15 18:16:45 wosch Exp $
 
 package ZOOM::IRSpy::Utils;
 
@@ -6,8 +5,12 @@ use 5.008;
 use strict;
 use warnings;
 
+use Scalar::Util;
+
 use Exporter 'import';
 our @EXPORT_OK = qw(utf8param
+                   trimField
+                   utf8paramTrim
                    isodate
                    xml_encode 
                    cql_quote
@@ -81,7 +84,6 @@ sub utf8param {
     return $cooked;
 }
 
-
 # Utility functions follow, exported for use of web UI
 sub utf8param_apache1 {
     my($r, $key, $value) = @_;
@@ -103,6 +105,26 @@ sub isodate {
                   $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
@@ -262,7 +284,7 @@ sub _irspy_identifier2target {
        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";