diff options
| author | Jeija <norrepli@gmail.com> | 2012-08-08 19:40:39 +0200 | 
|---|---|---|
| committer | Jeija <norrepli@gmail.com> | 2012-08-08 19:40:39 +0200 | 
| commit | 0ee661d25d297da14c08248126e465e6fb30d2aa (patch) | |
| tree | 60e41973d85737efb4726ffdda512a96a643a406 | |
| parent | da6cccf332453be9d561505041af5b9aa33387fa (diff) | |
Fix a bug in long conditions
| -rw-r--r-- | mesecons_microcontroller/init.lua | 14 | 
1 files changed, 9 insertions, 5 deletions
| diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua index 56e45a3..2d0e134 100644 --- a/mesecons_microcontroller/init.lua +++ b/mesecons_microcontroller/init.lua @@ -189,23 +189,26 @@ function yc_command_if_parsecondition(cond, L)  	cond = string.gsub(cond, "!0", "1")  	cond = string.gsub(cond, "!1", "0") + +	print(cond)  	local i = 2  	local l = string.len(cond)  	while i<=l do  		local s = cond:sub(i,i)  		local b = tonumber(cond:sub(i-1, i-1))  		local a = tonumber(cond:sub(i+1, i+1)) -		if a == nil then break end +		if a == "" then print ("ERROR") break end  		if s == "=" then -			buf = (a == b) -			if buf == true  then buf = "1" end -			if buf == false then buf = "0" end +			print(b.."="..a.."?") +			if a == b  then buf = "1" end +			if a ~= b then buf = "0" end  			cond = string.gsub(cond, b..s..a, buf)  			i = 1  			l = string.len(cond)  		end  		i = i + 1  	end +	print(cond)  	local i = 2  	local l = string.len(cond) @@ -213,7 +216,7 @@ function yc_command_if_parsecondition(cond, L)  		local s = cond:sub(i,i)  		local b = tonumber(cond:sub(i-1, i-1))  		local a = tonumber(cond:sub(i+1, i+1)) -		if a == nil then break end +		if a == "" then break end  		if s == "&" then  			local buf = ((a==1) and (b==1))  			if buf == true  then buf = "1" end @@ -240,6 +243,7 @@ function yc_command_if_parsecondition(cond, L)  		end  		i = i + 1  	end +	print(cond)  	return cond  end | 
