mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-11-01 00:36:04 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			728 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			728 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- trace assigments to global variables
 | |
| 
 | |
| do
 | |
|  -- a tostring that quotes strings. note the use of the original tostring.
 | |
|  local _tostring=tostring
 | |
|  local tostring=function(a)
 | |
|   if type(a)=="string" then
 | |
|    return string.format("%q",a)
 | |
|   else
 | |
|    return _tostring(a)
 | |
|   end
 | |
|  end
 | |
| 
 | |
|  local log=function (name,old,new)
 | |
|   local t=debug.getinfo(3,"Sl")
 | |
|   local line=t.currentline
 | |
|   io.write(t.short_src)
 | |
|   if line>=0 then io.write(":",line) end
 | |
|   io.write(": ",name," is now ",tostring(new)," (was ",tostring(old),")","\n")
 | |
|  end
 | |
| 
 | |
|  local g={}
 | |
|  local set=function (t,name,value)
 | |
|   log(name,g[name],value)
 | |
|   g[name]=value
 | |
|  end
 | |
|  setmetatable(getfenv(),{__index=g,__newindex=set})
 | |
| end
 | |
| 
 | |
| -- an example
 | |
| 
 | |
| a=1
 | |
| b=2
 | |
| a=10
 | |
| b=20
 | |
| b=nil
 | |
| b=200
 | |
| print(a,b,c)
 | 
