]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - .inspircd.inc
Patch by satmd to support using IP addresses with cgiirc
[user/henk/code/inspircd.git] / .inspircd.inc
index f03595b42b7e0ab9cfa75756a0fe662a6e7f876a..969c80771115f015b36e6ba10dca93e6a6063b56 100644 (file)
@@ -361,13 +361,11 @@ sub validateconf
 #       push @newlines, "<!DOCTYPE config SYSTEM \"".$confpath."inspircd.dtd\">";
        push @newlines, "<config>";
 
-       foreach $i (@lines) {
+       foreach $i (@lines)
+       {
                # remove trailing newlines
                chomp($i);
 
-               # clean up
-               $i =~ s/[^=]+=\s(.*)/\1/;
-
                # convert tabs to spaces
                $i =~ s/\t/ /g;
 
@@ -380,11 +378,25 @@ sub validateconf
                # remove trailing #s
                $i =~ s/(.*)#$/\1/;
 
+               # remove trailing comments
+               my $line = "";
+               my $quote = 0;
+               for (my $j = 0; $j < length($i); $j++)
+               {
+                       if (substr($i,$j, 1) eq '"') { $quote = ($quote) ? 0 : 1; } elsif (substr($i,$j, 1) eq "#" && !$quote) { last; }
+                       $line .= substr($i,$j, 1);
+               }
+               $i = $line;
+
                # remove trailing spaces
                $i =~ s/ *$//;
 
+               # setup incf for include check and clean it up, since this breaks parsing use local var
+               my $incf = $i;
+               $incf =~ s/[^=]+=\s(.*)/\1/;
+
                # include file?
-               if (($i =~ s/\<include file=\"(.+?)\"\>//i) && ($i !~ /^#/))
+               if (($incf =~ s/\<include file=\"(.+?)\"\>//i) && ($incf !~ /^#/))
                {
                        # yes, process it
                        validateconf($1);