deal with spaces in name and value tags a lot better!
authorDaniel Stenberg <daniel@haxx.se>
Thu, 5 Dec 2002 12:54:08 +0000 (12:54 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 5 Dec 2002 12:54:08 +0000 (12:54 +0000)
perl/contrib/formfind

index 4425e6e..f3f3d41 100755 (executable)
@@ -28,7 +28,17 @@ sub namevalue {
     my ($tag)=@_;
     my $name=$tag;
     if($name =~ /name *=/i) {
-        $name=~ s/.*name *= *(\"|)([^ \">]*).*/$2/gi;
+        if($name =~ /name *= *([^\"]([^ \">]*))/) {
+            $name = $1;
+        }
+        elsif($name =~ /name *= *\"([^\"]*)\"/) {
+            $name=$1;
+        }
+        else {
+            # there is a tag but we didn't find the contents
+            $name="[weird]";
+        }
+
     }
     else {
         # no name given
@@ -37,7 +47,16 @@ sub namevalue {
     # get value tag
     my $value= $tag;
     if($value =~ /value *=/i) {
-        $value=~ s/.*value *= *(\"|)([^ \">]*).*/$2/gi;
+        if($value =~ /value *= *([^\"]([^ \">]*))/) {
+            $value = $1;
+        }
+        elsif($value =~ /value *= *\"([^\"]*)\"/) {
+            $value=$1;
+        }
+        else {
+            # there is a tag but we didn't find the contents
+            $value="[weird]";
+        }
     }
     else {
         $value="";
@@ -142,11 +161,11 @@ while($in =~ /[^<]*(<[^>]+>)/g ) {
                     push @alts, "$value";
                 }
                 else {
-                    $info="";
+                    print "Input: NAME=\"$name\"";
                     if($value ne "") {
-                        $info="=$value";
+                        print " VALUE=\"$value\"";
                     }
-                    print "Input: $name$info ($type)\n";
+                    print " ($type)\n";
                     push @vars, "$name";
                     # store default value:
                     $value{$name}=$value;