X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=.inspircd.inc;h=969c80771115f015b36e6ba10dca93e6a6063b56;hb=53d548355b6657e01bd6a296dc87c4abec271fef;hp=f03595b42b7e0ab9cfa75756a0fe662a6e7f876a;hpb=1f7f6c58d47246ed176a4af92a231660dfac644a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/.inspircd.inc b/.inspircd.inc index f03595b42..969c80771 100644 --- a/.inspircd.inc +++ b/.inspircd.inc @@ -361,13 +361,11 @@ sub validateconf # push @newlines, ""; push @newlines, ""; - 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/\//i) && ($i !~ /^#/)) + if (($incf =~ s/\//i) && ($incf !~ /^#/)) { # yes, process it validateconf($1);