]> git.p6c8.net - selfforum.git/blobdiff - selfforum-cgi/shared/CheckRFC.pm
modified version check
[selfforum.git] / selfforum-cgi / shared / CheckRFC.pm
index 6f8fa49d61bfc5bc92f2b4c6a429b2667021cb1c..b43d723ff9e326d81a01712ae54d6756c416ec67 100644 (file)
@@ -4,7 +4,7 @@ package CheckRFC;
 #                                                                              #
 # File:        shared/CheckRFC.pm                                              #
 #                                                                              #
-# Authors:     Andre Malo       <nd@o3media.de>, 2001-04-14                    #
+# Authors:     André Malo <nd@o3media.de>                                      #
 #                                                                              #
 # Description: implement several string checks on RFC correctness              #
 #                                                                              #
@@ -26,6 +26,16 @@ $v56 = eval q[
 
 use Carp qw(croak);
 
+################################################################################
+#
+# Version check
+#
+# last modified:
+#    $Date$ (GMT)
+# by $Author$
+#
+sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
+
 ################################################################################
 #
 # Export
@@ -51,27 +61,30 @@ require Exporter;
 #
 # Return: Status code (Bool)
 #
-sub is_URL ($@) {
+sub is_URL (;$@) {
   my ($string, @schemes) = @_;
+  $string = $_ unless defined $string;
+  my $scheme;
 
   return unless (defined ($string) and length ($string));
 
   @schemes = qw(http) unless (@schemes);
   @schemes = keys %url if (@schemes == 1 and $schemes[0] eq ':ALL');
 
-  for (@schemes) {
-    croak "unknown url scheme '$_'" unless exists $url{$_};
-    unless (/mailto/) {
-      return 1 if ($string =~ /$url{$_}/);
+  for $scheme (@schemes) {
+    croak "unknown url scheme '$scheme'" unless exists $url{$scheme};
+    unless ($scheme =~ /mailto/) {
+      return 1 if ($string =~ /$url{$scheme}/);
     }
     else {
-      return unless ($string =~ /^mailto:(.+)/);
-
-      if ($_ eq 'mailto') {
-        return 1 if (is_email ($1));
-      }
-      elsif ($_ eq 'strict_mailto') {
-        return 1 if (is_email ($1,1));
+      if ($string =~ /^mailto:(.+)/) {
+
+        if ($scheme eq 'mailto') {
+          return 1 if (is_email ($1));
+        }
+        elsif ($scheme eq 'strict_mailto') {
+          return 1 if (is_email ($1,1));
+        }
       }
     }
   }
@@ -89,8 +102,11 @@ sub is_URL ($@) {
 #
 # Return: Status code (Bool)
 #
-sub is_email ($;$) {
+sub is_email (;$$) {
   my $string = shift;
+  $string = $_ unless defined $string;
+  return unless defined $string;
+
   my $strict = shift;
 
   # false if any non-ascii chars
@@ -99,8 +115,6 @@ sub is_email ($;$) {
 
   # remove nested comments
   1 while ($string =~ s/\([^()]*\)//g);
-  #$string =~ s/^\s+//;
-  #$string =~ s/\s+$//;
 
   return ($string =~ /^$email[0]$/) unless $strict;
 
@@ -300,7 +314,7 @@ BEGIN {
   }
 }
 
-# keeping require happy
+# keep 'require' happy
 1;
 
 #

patrick-canterino.de