comparison LibFarmbuyer.lua @ 45:1001dd95dbeb

If tekDebug is found, feed debugging messages there instead of print(); 'alsolog' functionality unchanged.
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Fri, 20 Jan 2012 11:48:38 +0000
parents 8f7ec6ccf5e3
children 7af58a7dce7d
comparison
equal deleted inserted replaced
44:a561a967b5e6 45:1001dd95dbeb
8 Evaluates to true if I'm hacking on something. 8 Evaluates to true if I'm hacking on something.
9 9
10 - tableprint(t[,f]) 10 - tableprint(t[,f])
11 A single print() call to the contents of T, including nils; strings are 11 A single print() call to the contents of T, including nils; strings are
12 cleaned up with respect to embedded '|'/control chars. If a function F is 12 cleaned up with respect to embedded '|'/control chars. If a function F is
13 passed, calls that instead of print(). Returns the results of F, or the 13 passed, calls that instead of print(). Returns the accumulated string and
14 text string passed to print(), depending on which was used. 14 either T or the returned values of F, depending on which was used.
15 15
16 - safeprint(...) 16 - safeprint(...)
17 Same as tableprint() on the argument list. Returns the results of tableprint. 17 Same as tableprint() on the argument list. Returns the results of tableprint.
18 Generates some garbage.
18 19
19 - safeiprint(...) 20 - safeiprint(...)
20 Same as safeprint() but with <index> numbers inserted. Returns the results 21 Same as safeprint() but with <index> numbers inserted. Returns the results
21 of tableprint. 22 of tableprint. Generates some garbage.
22 Ex: safeiprint(a,b,c) --> <1>,a,<2>,b,<3>,c 23 Ex: safeiprint(a,b,c) --> <1>,a,<2>,b,<3>,c
24
25 - safefprint/safefiprint(f,...)
26 Takes a function F as first parameter, for passing to tableprint().
23 27
24 - t = StaticPopup(t) 28 - t = StaticPopup(t)
25 Fills out "typical" settings inside T, especially if T contains any kind 29 Fills out "typical" settings inside T, especially if T contains any kind
26 of editbox: 30 of editbox:
27 + cannot accept an empty editbox 31 + cannot accept an empty editbox
48 52
49 - new(...), del(t), copy(t), clear() 53 - new(...), del(t), copy(t), clear()
50 Ditto for table recycling. 54 Ditto for table recycling.
51 ]] 55 ]]
52 56
53 local MAJOR, MINOR = "LibFarmbuyer", 13 57 local MAJOR, MINOR = "LibFarmbuyer", 14
54 assert(LibStub,MAJOR.." requires LibStub") 58 assert(LibStub,MAJOR.." requires LibStub")
55 local lib = LibStub:NewLibrary(MAJOR, MINOR) 59 local lib = LibStub:NewLibrary(MAJOR, MINOR)
56 if not lib then return end 60 if not lib then return end
57 61
58 _G[MAJOR] = lib 62 _G[MAJOR] = lib
104 end 108 end
105 function lib.safeprint(...) 109 function lib.safeprint(...)
106 local args = { n=select('#',...), ... } 110 local args = { n=select('#',...), ... }
107 return lib.tableprint(args) 111 return lib.tableprint(args)
108 end 112 end
113 function lib.safefprint(f,...)
114 local args = { n=select('#',...), ... }
115 return lib.tableprint(args,f)
116 end
109 function lib.safeiprint(...) 117 function lib.safeiprint(...)
110 local args = { n=select('#',...), ... } 118 local args = { n=select('#',...), ... }
111 local last = args.n 119 local last = args.n
112 while last > 0 do 120 while last > 0 do
113 table.insert (args, last, "<"..last..">") 121 table.insert (args, last, "<"..last..">")
114 last = last - 1 122 last = last - 1
115 end 123 end
116 args.n = 2 * args.n 124 args.n = 2 * args.n
117 return lib.tableprint(args) 125 return lib.tableprint(args)
118 end 126 end
127 function lib.safefiprint(f,...)
128 local args = { n=select('#',...), ... }
129 local last = args.n
130 while last > 0 do
131 table.insert (args, last, "<"..last..">")
132 last = last - 1
133 end
134 args.n = 2 * args.n
135 return lib.tableprint(args,f)
136 end
119 function lib.tableprint(t,f) 137 function lib.tableprint(t,f)
120 for i = 1, (tonumber(t.n) or #t) do 138 for i = 1, (tonumber(t.n) or #t) do
121 t[i] = tostring(t[i]):gsub('\124','\124\124') 139 t[i] = tostring(t[i]):gsub('\124','\124\124')
122 :gsub('(%c)', undocontrol) 140 :gsub('(%c)', undocontrol)
123 end 141 end
124 local msg = tconcat(t,' ', i, tonumber(t.n) or #t) 142 local msg = tconcat(t,' ', i, tonumber(t.n) or #t)
125 if f then 143 if type(f) == 'function' then
126 return f(msg) 144 return msg,f(msg)
127 else 145 else
128 print(msg) 146 print(msg)
129 return msg,t 147 return msg,t
130 end 148 end
131 end 149 end