|  |  |  | @ -548,4 +548,61 @@ function invert(tab) | 
		
	
		
			
				|  |  |  |  |     return result | 
		
	
		
			
				|  |  |  |  | end | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | return _ENV | 
		
	
		
			
				|  |  |  |  | function processArgs(...) | 
		
	
		
			
				|  |  |  |  |     --[[ | 
		
	
		
			
				|  |  |  |  |     standardized argument processing for scripts | 
		
	
		
			
				|  |  |  |  |     -argName value | 
		
	
		
			
				|  |  |  |  |     -argName [list of values] | 
		
	
		
			
				|  |  |  |  |     -argName [list of [nested values] -that can be [whatever] format of matched square brackets] | 
		
	
		
			
				|  |  |  |  |     -arg1 \-arg3 | 
		
	
		
			
				|  |  |  |  |         escape sequences | 
		
	
		
			
				|  |  |  |  |     --]] | 
		
	
		
			
				|  |  |  |  |     local result = {} | 
		
	
		
			
				|  |  |  |  |     local args = {...} | 
		
	
		
			
				|  |  |  |  |     local argName | 
		
	
		
			
				|  |  |  |  |     local bracketDepth = 0 | 
		
	
		
			
				|  |  |  |  |     for i,arg in ipairs(args) do | 
		
	
		
			
				|  |  |  |  |         if argName then | 
		
	
		
			
				|  |  |  |  |             if arg == '[' then | 
		
	
		
			
				|  |  |  |  |                 if bracketDepth > 0 then | 
		
	
		
			
				|  |  |  |  |                     table.insert(result[argName], arg) | 
		
	
		
			
				|  |  |  |  |                 end | 
		
	
		
			
				|  |  |  |  |                 bracketDepth = bracketDepth+1 | 
		
	
		
			
				|  |  |  |  |             elseif arg == ']' then | 
		
	
		
			
				|  |  |  |  |                 bracketDepth = bracketDepth-1 | 
		
	
		
			
				|  |  |  |  |                 if bracketDepth > 0 then | 
		
	
		
			
				|  |  |  |  |                     table.insert(result[argName], arg) | 
		
	
		
			
				|  |  |  |  |                 else | 
		
	
		
			
				|  |  |  |  |                     argName = nil | 
		
	
		
			
				|  |  |  |  |                 end | 
		
	
		
			
				|  |  |  |  |             elseif string.sub(arg,1,1) == '\\' then | 
		
	
		
			
				|  |  |  |  |                 if bracketDepth == 0 then | 
		
	
		
			
				|  |  |  |  |                     result[argName] = string.sub(arg,2) | 
		
	
		
			
				|  |  |  |  |                     argName = nil | 
		
	
		
			
				|  |  |  |  |                 else | 
		
	
		
			
				|  |  |  |  |                     table.insert(result[argName], string.sub(arg,2)) | 
		
	
		
			
				|  |  |  |  |                 end | 
		
	
		
			
				|  |  |  |  |             else | 
		
	
		
			
				|  |  |  |  |                 if bracketDepth == 0 then | 
		
	
		
			
				|  |  |  |  |                     result[argName] = arg | 
		
	
		
			
				|  |  |  |  |                     argName = nil | 
		
	
		
			
				|  |  |  |  |                 else | 
		
	
		
			
				|  |  |  |  |                     table.insert(result[argName], arg) | 
		
	
		
			
				|  |  |  |  |                 end | 
		
	
		
			
				|  |  |  |  |             end | 
		
	
		
			
				|  |  |  |  |         elseif string.sub(arg,1,1) == '-' then | 
		
	
		
			
				|  |  |  |  |             argName = string.sub(arg,2) | 
		
	
		
			
				|  |  |  |  |             if i+1 > #args or string.sub(args[i+1],1,1) == '-' then | 
		
	
		
			
				|  |  |  |  |                 result[argName] = '' | 
		
	
		
			
				|  |  |  |  |                 argName = nil | 
		
	
		
			
				|  |  |  |  |             else | 
		
	
		
			
				|  |  |  |  |                 result[argName] = {} | 
		
	
		
			
				|  |  |  |  |             end | 
		
	
		
			
				|  |  |  |  |         else | 
		
	
		
			
				|  |  |  |  |             error('error parsing arg ' .. i .. ': ' .. arg) | 
		
	
		
			
				|  |  |  |  |         end | 
		
	
		
			
				|  |  |  |  |     end | 
		
	
		
			
				|  |  |  |  |     return result | 
		
	
		
			
				|  |  |  |  | end | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | return _ENV | 
		
	
	
		
			
				
					|  |  |  | 
 |