From 89670ba25049d5252ee6ad19f95bf4329188230f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Sat, 4 Nov 2000 23:57:22 +0100
Subject: [PATCH] Now doesn't allow keywords as variables anymore. Fixes [bug
 660].

Rev: lib/modules/Tools.pmod/Hilfe.pmod:1.17
---
 lib/modules/Tools.pmod/Hilfe.pmod | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/lib/modules/Tools.pmod/Hilfe.pmod b/lib/modules/Tools.pmod/Hilfe.pmod
index 30c22377d0..0c75813c3b 100644
--- a/lib/modules/Tools.pmod/Hilfe.pmod
+++ b/lib/modules/Tools.pmod/Hilfe.pmod
@@ -29,6 +29,16 @@ import Getopt;
   array(string) function_names=({});
   array(string) imports_and_inherits=({});
 
+  constant keywords = (< "array", "break", "case", "catch", "class",
+			 "constant", "continue", "default", "do", "else",
+			 "extern", "final", "float", "for", "foreach",
+			 "function", "gauge", "if", "import", "int",
+			 "inherit", "inline", "lambda", "local", "mapping",
+			 "mixed", "multiset", "nomask", "object", "optional",
+			 "program", "predef", "private", "protected", "public",
+			 "return", "sscanf", "string", "static", "switch",
+			 "typeof", "variant", "void", "while", >);
+
   mapping query_variables() { return variables; }
 /* do nothing */
   
@@ -537,6 +547,12 @@ import Getopt;
 	  return 1;
 	}else{
 	  string f;
+
+	  if (keywords[name]) {
+	    werror(sprintf("%s is a reserved word\n", name));
+	    return 1;
+	  }
+
 	  variables[name]=0;
 	  
 	  if(sscanf(c,"=%s",c))
-- 
GitLab