r5867 - trunk/misc/tools

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Feb 13 12:51:26 EST 2009


Author: div0
Date: 2009-02-13 12:51:26 -0500 (Fri, 13 Feb 2009)
New Revision: 5867

Modified:
   trunk/misc/tools/shader-checksums.pl
Log:
allow more glitchy shader files (matches DP)


Modified: trunk/misc/tools/shader-checksums.pl
===================================================================
--- trunk/misc/tools/shader-checksums.pl	2009-02-13 17:29:31 UTC (rev 5866)
+++ trunk/misc/tools/shader-checksums.pl	2009-02-13 17:51:26 UTC (rev 5867)
@@ -31,10 +31,24 @@
 	next if /^$/;
 
 	my @line = map { s/"//g; $_; } split /\s+/, $_;
+	my @nextline = ();
 
+nextline:
+	# allow trailing } token
+	my $brace_index = [grep { $line[$_] eq "}" } 0.. at line-1]->[0];
+	if(defined $brace_index)
+	{
+		@nextline = splice @line, $brace_index || 1;
+	}
+
+	# allow initial { token
+	if(@line >= 2 && $line[0] eq '{')
+	{
+		@nextline = splice @line, 1;
+	}
+
 	$shadertext .= "@line\n";
 
-again:
 	if($line[0] eq '{')
 	{
 		die "{ line without shader name"
@@ -42,11 +56,6 @@
 		die "{ line in level $level"
 			if $level >= 2;
 		++$level;
-		if(@line > 1)
-		{
-			shift @line;
-			goto again;
-		}
 	}
 	elsif($line[0] eq '}')
 	{
@@ -108,6 +117,13 @@
 		$curshader = normalize_path $line[0];
 		$shadertext = "";
 	}
+
+	if(@nextline)
+	{
+		@line = @nextline;
+		@nextline = ();
+		goto nextline;
+	}
 }
 
 if($level != 0)




More information about the nexuiz-commits mailing list