From d04c833f9ed04858773d289cfbbc637290c78818 Mon Sep 17 00:00:00 2001 From: Mikhail Kochegarov Date: Tue, 20 Dec 2022 14:50:29 +1000 Subject: [PATCH] cleanup, add support for vxbuild-cross build system --- COPYRIGHT | 22 - bin/mingw32/winapi.a | Bin 0 -> 58746 bytes bin/mingw32/winapi.dll | Bin 0 -> 496128 bytes bin/mingw64/winapi.a | Bin 0 -> 64608 bytes bin/mingw64/winapi.dll | Bin 0 -> 537088 bytes build-docs.bat | 3 - build-gcc-52.bat | 6 - build-gcc-lfw.bat | 6 - build-gcc.bat | 8 - build-lc.bat | 1 - build-msvc.bat | 5 - build-readme.bat | 6 - clean.bat | 1 - config.ld | 18 - csrc/winapi/build-mingw32.sh | 3 + csrc/winapi/build-mingw64.sh | 3 + csrc/winapi/build.sh | 7 + winapi.c => csrc/winapi/winapi.c | 2027 +++++++++++++--------------- wutils.c => csrc/winapi/wutils.c | 44 + wutils.h => csrc/winapi/wutils.h | 12 + doc.css | 9 - event_callback.lua | 27 - examples/caption.lua | 6 - examples/drives.lua | 28 - examples/event.lua | 19 - examples/files.lua | 12 - examples/greek.txt | 3 - examples/input.lua | 12 - examples/message.lua | 10 - examples/multiple.lua | 16 - examples/pipe-server.lua | 72 - examples/process-wait.lua | 11 - examples/read-console.lua | 11 - examples/readserial.lua | 18 - examples/setenv.lua | 21 - examples/slow.lua | 4 - examples/start_time.lua | 4 - examples/test-processes.lua | 9 - examples/test-reg.lua | 29 - examples/test-sleep.lua | 17 - examples/test-spawn.lua | 10 - examples/test-timer.lua | 26 - examples/test-times.lua | 8 - examples/test-uninterrupted.lua | 33 - examples/test-watcher.lua | 41 - examples/testshort.lua | 17 - examples/testu.lua | 10 - examples/thread-test.lua | 32 - examples/with spaces/dir.txt | Bin 244 -> 0 bytes examples/without_spaces/dir.txt | Bin 346 -> 0 bytes lakefile | 9 - lc.lua | 351 ----- makefile | 4 - markdown.lua | 1388 ------------------- processt_callback.lua | 19 - winapi.l.c | 2164 ------------------------------ readme.md => winapi.md | 0 winapi_test.lua | 50 + 58 files changed, 1075 insertions(+), 5597 deletions(-) delete mode 100644 COPYRIGHT create mode 100644 bin/mingw32/winapi.a create mode 100755 bin/mingw32/winapi.dll create mode 100644 bin/mingw64/winapi.a create mode 100755 bin/mingw64/winapi.dll delete mode 100644 build-docs.bat delete mode 100644 build-gcc-52.bat delete mode 100644 build-gcc-lfw.bat delete mode 100644 build-gcc.bat delete mode 100644 build-lc.bat delete mode 100644 build-msvc.bat delete mode 100644 build-readme.bat delete mode 100644 clean.bat delete mode 100644 config.ld create mode 100755 csrc/winapi/build-mingw32.sh create mode 100755 csrc/winapi/build-mingw64.sh create mode 100755 csrc/winapi/build.sh rename winapi.c => csrc/winapi/winapi.c (56%) rename wutils.c => csrc/winapi/wutils.c (88%) rename wutils.h => csrc/winapi/wutils.h (75%) delete mode 100644 doc.css delete mode 100644 event_callback.lua delete mode 100644 examples/caption.lua delete mode 100644 examples/drives.lua delete mode 100644 examples/event.lua delete mode 100644 examples/files.lua delete mode 100644 examples/greek.txt delete mode 100644 examples/input.lua delete mode 100644 examples/message.lua delete mode 100644 examples/multiple.lua delete mode 100644 examples/pipe-server.lua delete mode 100644 examples/process-wait.lua delete mode 100644 examples/read-console.lua delete mode 100644 examples/readserial.lua delete mode 100644 examples/setenv.lua delete mode 100644 examples/slow.lua delete mode 100644 examples/start_time.lua delete mode 100644 examples/test-processes.lua delete mode 100644 examples/test-reg.lua delete mode 100644 examples/test-sleep.lua delete mode 100644 examples/test-spawn.lua delete mode 100644 examples/test-timer.lua delete mode 100644 examples/test-times.lua delete mode 100644 examples/test-uninterrupted.lua delete mode 100644 examples/test-watcher.lua delete mode 100644 examples/testshort.lua delete mode 100644 examples/testu.lua delete mode 100644 examples/thread-test.lua delete mode 100644 examples/with spaces/dir.txt delete mode 100644 examples/without_spaces/dir.txt delete mode 100644 lakefile delete mode 100644 lc.lua delete mode 100644 makefile delete mode 100644 markdown.lua delete mode 100644 processt_callback.lua delete mode 100644 winapi.l.c rename readme.md => winapi.md (100%) create mode 100644 winapi_test.lua diff --git a/COPYRIGHT b/COPYRIGHT deleted file mode 100644 index 753465a..0000000 --- a/COPYRIGHT +++ /dev/null @@ -1,22 +0,0 @@ -winapi License ------------ -Copyright (C) 2011 Steve Donovan. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/bin/mingw32/winapi.a b/bin/mingw32/winapi.a new file mode 100644 index 0000000000000000000000000000000000000000..969610f6bac539748d88bb8babc4d2fec50a02a2 GIT binary patch literal 58746 zcmd753w%`7wLg9$BaRwP)YL{z>!_myjUgy1*q{kX5Nd!(!b3%ekW3&YWYWxpM@tnN zXq`KzH?}@%>%9fF)mH1f7Oa&Z5!7qzvlU-gyww^CR;-Vr^~(Rd*4lfWbLM1P?Z3az z?>C=Mve)^pwbx#I?dRENpM8$2Z0>GZbk0FzBK}{6=Td0z|43x~xYLZp{DU0Fsc@VT z-}yiH_tyF2rSkt2Jcyp_(qBFiMmSW6_O>Xaq3uk70 z;o|rTq1!v#Q?Vsv1@!bZC%WRDv1RR@&0XzIY|hl_v8EXf(`Ga_>4gx}XZY|*Gn$%a zOtY+uX3VUun<-a~Q)bM8n%Wt2EVps$MRk^*HeiHgs1|uqDw7U$JBY-eqDzBGKWn%gGI~ z*7ojrOUl@?1jW+4Fiw6!8NyGAmc`a*$#|-#%U)P}jX$XXNt+XcR4m?!blW>&<3iun zvSg|oFqft=#zL@&jWgHK)763E>W(jLN2C=olp;(-O-Xbn$=C&8C3`wRwxAxMhIE-a z)!rHVN@9T{1zVo5tua?CJagPQZhdD|oH;?-;rxT@^G2c}I!@`ej&o5SQK7tYRGSo$ z_SZzHjnyn1N5dF>a03fTJih=S4$)p#J6nU?NUggXmDDU6-lB!4jLjOS1AeyK(jITDUE9L$m<_5NRJcwzNTm;coB#=Y3RxzPP!>dxui@|yrOfR0tykEuk%gF zHXyBipCh1mcXaJQ&*!Wis|U&8i!a^MmpaMGAd&R;q4)oH-#*2qawDjTkhzNOBr zIh5l{%JF^v9IuR4z!J%^$pKyO2QA1^`VsNLO8B5Gn%*K;wb3&2!nYv<*|39r^!_c6 zqLCwxdMRBQUHyj__x)wx>MfL0js&-qrRPQSjZ4bl5~{ml=%9kPSuR>TkUGM;a`hlt zjM{n07G$_Ay=N%I8CKNP*0z31n=)==?i%#hXH>J|%)DrXo) z^izYwkBzW#$pN5q#6wxa9xhANM^wk&-4!U2DvCj>5c*06^@SYHO@pk*bp#>##MYHU z^2s+57nLKLL6a-E{i%aC|LGtYQV7waS39DGYoA%(h=%dXyl9AxrFsO>(&0smy`sH? z6&t7-Q17^X|Etln@7iIiNWZ!MvAsq-R*yI&-tVbz!{$zN@xWB1(7QX-yLaTW12RQx z9rSuoMmaSKi=_|K4(xtJF!i$xy3u7tO!r4UmGw|0|8c8yGLpYUpGc3W@dWT$U#UeBJZ$#ye-l)Q3W1qK)n%)QyhwLhg%3fENatKe1ZoRZ$X`%;%^8NmGz;%=-%ulc14K=g+F1vjhNpgtZ@}!Xf+lait|FkOcd$(Q z3Gpo{gtJOB^LVII8)l15zFq@1YNY_1{Y8H9+HP?2$^d!A47OY;KHoc7n%*o!!rZ^= zkkF5cR{_?=J1H{yFDkvLDLt@|U+Z_OO2dxpnLs{Kv$ypQMp28XzbM6UP~y!a4FbT5 zp^(eiV=H>ToJPw~u{h=o(yrE!~){tK?6f4iw^s zHuGRKg21MMQ2bdby1h8nf%F!P?VM_QE6o2w-uy6?iFiG%`>KLzzp0 z%H6{ADz}-1p;)=A2gx?-Nlkr(e~L5c;nhAnRoo(Jxq2k=-ofIr0~g!a(%x3@E<BTZ-X-?yFbw{32m>fMc= z*o^lpdEyj?HC$j6!Udb(-jCH`WSibs`Kw>k(6%dI?AsEW@VC_X%m`H4cge`!Eg{<< zr%@z*bzDMpZ$!RCOJq%%j%dk*zx6zd$qTG;J=JgH3d8HFJ|3Up4^s%A&LKP;6lP@j z(;jX;<%=5+H%d0?0m|&E@tW^~+J{XKOU|;LS$^8qBp+3)7hE zrY> zTZu;UVtTL9*E^8c`*7YBQ}z|ye-LDP-rmXz$I&DJ9V2w>u(nFlD*SuHn)PJ~`hdOr z3f55e`#PfI&@55gJ(EOSAgfj!lY`VK5CM^FMhi`q{94FWdw2c`jngP>>o@J?3y^hC2s8tJpZdgSF_%kk!xaWT zT%|vx>xa{OdIt+(_0F|#oB4^9UrA;qcRBv@vjZG_C8LXNUt6tDLhw^UF8a!rg3T4( z=h&@qwTe>@L!FMTRmiE!!=xP=4namNM#WHWE(S|5j?oP;JV-u%%=JzQ-VbQ;+~ zXG^$DRLlel_x~FzkMj1nXu%BtpwXZAVMaqUO2Yn9E*5Vb9x1olYg8 zM(8#({fLbNwPkDH;)z7Xfnb!$Q~_3z!#HyK5p?J@)2KKMD7zudD?BQ&ZS4mlfHb5Q zWeIG>^r&?0GpQ1cGc?A89g?IHDUx~hZ(vPseSrz!Lf7STP& zQrt0?z`Tf6fl#Jxc3NaB-`D}Vw+xQIzVYU>8t5^78>LLOKuo7)BI#JI`T2hHsTGp_ zJfF)N?Vg7kaf>_JrL!|c?b+v$V$AaF`c@fg9nJ3$1UwV;JDJXv+m7~4Zmn4++hmYmpLM8DtGc**)?>(jEWVaNDibA+^SX2RC!D=C@s4C6lc=1 z&B|e`U!l6i;|k2?5Y-NP?t-V8kL0sb)Q7?REp7eY`YAOBn!Z4Wu^6g*|B)z-tyJ@D zQHITooh48csbjM9I;oFbQP-0eYap^6VPNQIJNNBlialW5Mty=6wNu51!%iFB4}~-H zqJ<{y!LZzt#i4}fb2<2Rmha797>TfJIkj9poc3Z;f!$oAGd>KtWdknV`G+ByAE54X zW8{98?=K#rl4~6MQt$4{Ol`CwS2mGdyQpgF398@feKhG^dgRXMU@B!W{cP{n{o2x# zKbi3A%Fecehibpz^fl&Hp3w8hzS_@W`gcOXn(N7TAC7*y_rnnd-+7QOP*&*QPC?Ax zE&EgYFi71?oUOIdG2Akc7<&YP3P@_-_%6zR=l^0&XrL`Ul8f5pM%G14djzISLA`^O zfm+wQWxow4K>5xyFbt!8S{;A%B#3x2f+4?_|9%d>+uvpPb8I42Yxf=l`t16OEHK&{ z&a%|V+%Zk&`QF0fF^y)=ES>f=-$!~s+Lt>z5Dj1%F+Bq0mgS#Rwfu0 zI6NMMxq3fAO)QVb6%?i{@$Pz@>I3R~DcVCtriK=nLzxk2+rvL_5UMp=%f$Tl)i%u>Wid2(v4NfBi2+!*dC>N-jmLKJ%>uwQ*YKg!>uin^Jy8LmG)IFnQLN zy0}^Fw)qb{|DrL)DkUQiK|zvAdU}UN7jsWRh`C4QbkJ-n(u>3Cnh>T)1?exL6}T0P zZgzX#qPeFmR8eH|E*kh@AZU>=KTR@^k&K5+#o=;q%i`u07Fw?DvZWcD97=u4@w^48 zM92nOpLtCB^mpia0`=D+RB+Sbr_EFw;#`k=2Se$1Ob@)7uX;6c5QvuwiM#$U-!B#aw9TAj4^jg%AEmIGccw)lj3y z8ZO0Zpjg21oEuh1oF)^;l@*nUfr?TOX`c~BTRwQhjaK`fr^#b}TY62DMi)pmA>(w9 zmxpWu9Tapf$VbVDHPI&!tbMCs?Hv@#l$_Sua!kqbT$D|Mvl04+7i4Y`y2275 zdmCf~VtN~FSHq3#eQqXyWX;%1=}Ff~WQ^(9R}WI{k(#@d4S>ud=vvdL z0jO6`;R+RC4HGaWzY73dvIBt=foAxZG6J=9A7kr5;s1Y6;K?iQUtC8-;Tv)W*+-@q z8)p<5XHfMeTq=Swi!iS5Xz|CRl-AILJdd5Bov#5f9n{#jP~IKVZ=_M{&{xp9UXzEO z%XE4>aq6Rs(D8Rc+tBfU|kkq4+)xog6z&Leqk=|-$#Hf^hUl&slSL)8<(>vFZ5dO5@zBIQ_l zyD(jZQtWFiL2B^2ZMP9YnNld z=5)^|nQfxD=N6P=$pa@&{Vw0nQjHw_F3n;#@7gcD{jdK+$(jc&`R+Kj_N9U~H$aqp z=6$BuJ6P|IUt^!)<+Et7Sw0)i`Q%RS&$qBDQzUKBi3Sg5lro382*@zmhTC;`o@=!*dKwlvk7i)b^Q(PC9^WhB~PZ(4K7-mD5OSvAjPNHTMUabMGrKL zX@+T^ht|Wb^Q|AKqrL`d(lr+`Pl|O7DuhW2b>>uxtPOJ9ccZ0!rx;04JR@WIVcLQ~ zIMnJ>m*K9_5fUG|D>QEPXO25g>|5rk70c2BrWrWB{-XUy8T4Iuemvp*o+mTVj&8pUWi6XdP}t^P z014ChQ3_#uk~uYMryEv4B!f}b*P8apD+?=!PNuawK#O+ zItHZp{wc8kXFMW9mv7$hvoF7QZ|h~qLEBA3s7RD7PydY{diU;^I*8gM%E#f^J}bio zNv=m|@@6Hx?a$s1ktoF{=id4;x)WL^YJ#s^KjA^{W0-`PnF;(`GW5{9{8(4-u6Vs9 zkiWUm=h1_XpGv_NqieajzYN4LMtsha$vn)&b4^eA(awmYO@ReXXa+8 zmB70{#?3!w4xApwIr0lR+mqhdXLvSxwPOmwir7@u8@ci`g=QvR`{~KRcDC@4=d~x7 z`(fYus9HD@8ccq<0&epznZaURGYe-9@cN0yL)Y(xT-WW?MADP_MP+6lPsKICYd-QP zXm;aC8{meCHpLDwW>JTSy-xDnni|{-E2HI9>;=DUik7eXEvEBmpf7Yp%U;4>JcQ-1 z)JBWx`qh=u2wh`1kHB8+Ve`6*p5c=k<7~5VW6BimD~J8R`|$r6`(eCW1l|QJzF*B@ z|L4^HFjesEm3m(}m|;&aDhIm`EQmbz@RpU?2qUAHlwY_C@u*_+XllzA)9X_1S3CH@ z1Z{+fqK^&Zk$(}2Q&xmVYK5a&Oo=Y8Ng3tH-x=86V``4+QIS4%Mq~rmFSADJ$(64T za<1$MY-|kESPun!H-bt-d-3u!e*22E>>Fl%?|N*%@ibS;l|0EnbsM(-SmclJkNP{i z9;A(}l=l0OJN^AHtwf`ZoI)A#Gy-5Hz>2(BuWq#&u77_N&m?o|&(@to@82CC7a{>E zyD*mvKjo)#m0E`)%_@a3-|V>eWAZ>o9rF2qvA%71L~HEhYUZ~OHO4m-r_D5)x}6+$ zyZsOR9T>mnBDrj(o(e^)UsA0-%XaiM$<(hv{Rl(f*k_;tTT7+X3u%X`ZY`zKm$|@j z^JCt)@Tumu6dB73eGDVt{`cg)&r7uY&yra%`;fW?e|bFsE*5aH z|0HuH>JfI$VWPkDCQMCme{aT5&;7xTq~TNLzxn?{{)h1w-R~gle6Nt@XS5slX#%D>YGDOQs!TGH8rzO&Y?1aL$oWI+@T?d7^`wzE1X7w1f zg2xj*JUic+#1vi&lSag#`v#|)epUB#0R*aP0=x~kpMTk;0yrx=L z6Ev{4+GvzD4GgELcW`cS`>5={nU5TIQ4>K0rVUM{uwdvfau-v@bzgE$Ii{Rbj>Dd& zgdAf_))d?Y(gfL7=P<2qV-EBK?=ExEchh}dxm8rxEdyrAl(3~;LKqJ zzcrlT>|q4298PfVFoONV30^de;5EYu&KpMX`fS18!TILq7Mm$-`x~Fhdf2%LcPsEZ zy=g=BtrVfZzR}7*mD%PYdS#;ICH#3SP+1NZp6g}Rh~fK}A-Z`n{nZg^+h3Wk1+z2m zwrFcV7pDrKxn^}=7?6h>->-oFm#V_BQmsZrGX&e4ZJ8oaeZ|&A%!O#{A_7VkUgi7l zD(InWnkhkG!%S%|7kTeb6PA(d{R$lb`) z+I>C8TVbl^NP#c0vk-!`G)5B+E3xZkDbHb~Bqt_cI$q;;ExPul)EF+xq}hEVz3R3a z=|J$@cf0MmdHWF3!)gM((a6cBx9r+X?;_xpGH9VjS_qmOEy8hBeKHN49gIE5k=Qy| zro#*Li9N6-gFaQ40F#CM79J<+GhgTLFue-TaN)%QtJ#>%wc~Jr(g&CfpwD_)>K_UWu7Z)kS+iDr2q%G%qpbl9}wAiVr73r3~j$B?_BRDpRHS1`k*YP}Erb z;7x~xG|pD~`Y#~TEukE^+HH|sV#$ObA^iuevi|UB+Dap8j`_wd6y;ORukL`PDZ_ty zeyQ~jKG24=kTU9a)Sqg;n4}#$zWrdTt{CckqeW;Ukjqm?Qu*29a$CG_xoKGYw(0n8 z*AJ=mNSo*Wf@TYzDk67CcE4%XgkdQZsspxqY^9nOB28#5hhZAP1!F3h)QYSMJ6!)( z4DBABbU!QiD^z7o0ebFN0{1`Lk?^ODFY5zknR(ILj7%MM%oUUO3A%40izM=A-b{{#xZ6&T={2wZ*!7CkFps7^ zdm*^(=#D!o3SP9}$%A<+5aOq#X3G^Mq*JGkcng)zy);Nw^0GBCX~PGp;Wfs_qV!^Y z1H^ss>^S>Dg!il<)SkdTtD(|?W;=B$NsplSu*%70aE*9o9zUO+4`b0mnirObmct)* zSpe)C`qe#`zu@v9UmVN6O zTc5=4$OI_;GAp&?+3YkPX8ji?l%$XCfZ0ap(37;vRgs>{qc^}k*rhvkkUu^epxv*l z9nf`DH?sRPs$lHs2T*&1_rFPix$ZBXf9JF7JK^u>yAHeAKdXJuqLK}Jf6i~)f2#50 zq0caWRMGt-y9?_R?oG3d|5^8=i;z{CFBW}ig#We^c^vvLEY6{?=et_Ze8X2gN0EYI z>P^_xo4bxi(H)Liv2^No$^do4KW};-zQSy9$9CSRb||!9NT-`fQ~@V5nU;@e@Zju$ zVW#9fpX2sgk;$5oe~T1mS14_{!jYj#mR))FPGy4oCsb_dic!HclZ!k(4Ba-;T-{?! zg?oD-^CGwZ$e8D~l!s3@UwGm(ly_jsK#E=Gd)k|zNU6L7KJRTx4)jF1in7b!OwE4$Tyjnmh@$iDq3=dgwSw^Fdr$8f^4u6MV%$`V_GkOlk zNRWPtHzk-lYxlEI+MKX8fFvKj_|o)Kcw^)r*6%mb1(G#3-`sENK4|86heOklsf7IV zCCqn^HI>_4x~WIgSgBlhTsx*p2hNhDIRKK2jOymg|Ie8_w>8roM@ z$UeqWEw1@q#^y9&e=+QDMjIO6yLUvYt#>G|cW>U(bJkOQyu*cdo4-uSLzz3(A?f6YRkcM9WFiCt(P7=L~oaPuES$; z$WcA_%AJ)%j!f{%RppS=nY%RJ@RS^K^jzMnuPKKdb;n-0`8njM0ej^-bI8#%Td&-z z9CC2GPwt8wa^Wnw@8yuo*7w64aZx!>iGqZd-Vet9K_93JZUEV+|&$n|8&RpgLc znk9E;4!LDna+NvcmS@RL$|1KROKwUIxvyo(&B!75^(?vBIpnhYwM%lyVL0&B=db0E z!*s_dcWn;2>~!zTA(x%*)*N!#{r!tMqCRCO-dUD9YJYPNN%^{aP?q_nyWtZ=DIpnhQ zdt(l{?EK!ILyqR@p8ha=Zw|Ta@*T*Q!+Mr^TG@|!gj&b-DNOmNdPUcEp1<>Z*o)Qg z{>WB2JlB!)d>uMe*XilR@u7)@o$X(Xw?^#YtPwh#by<6BJkqkLxjTX*T9?MVlkJJl z$bv-o;&`ibt|N!Ewvmc?^UCLSwRgqm;ka0H{4UaJY3}Syq$10j+fxxlOeP{rnmboS z%&D&Nq|=$`JT%F~(%u>Az^SmuIS!vG?8M@H%J7M;4j(t{Ea++PXl+R>ac~wb zf+Y?e_1n_X-nAgn+}-LV7CY^oZHewB%_-RE$eFZ}R3Z^s(7w=F(A*k1AreovG|b9eKScq-l1-jlMFcO8FORq2NafO&C9P#Wo$Ykq@aTgg5jwWH12thu68?xxj3kofI0`u4 zxwLdt&5UV{4Rtl6NUXgrVj@K@n;02o=uwf>qIf6RkqFcxw$)Q!J}NS%B{HhK960kO zorbbDNEwTgUCqln?Qy_l7bV0=QPDN9ZdBb=Pj_dev%LdRV_T5+A&vQk$wVrQvL<`=z7L z<|C7rtQt>5Su}+k> z$&Jsa?9v|Bt8{%%x(KV|GC|D0`Nmy}O-6)+ZMInPs#eb2+t5fz02|FTM&i&6^VyY0IrKnoEWLF zCCsfS)!idq9QAd!@>7?Mmc|MG-A09T?Mv~e`Lsrtj#{!9_^2{w4p&*E)1ZU#NkLf( z-y0Z4OZO5mX)KCFN=r#5(%jh^88xOcGUkF&qazqZ(NX74q!kDL7xdT~8dj($7N} zgg7(n8k=U!taE0cADdKNb3TPl)srZgS=Tgc=5(SO8>(wqqG9IL88Zo)UN^Ui!n*0T z6ik^hjrsL;lNp}XKrlEQChXJ z8TGZERE=KCoL)CanDq6K=`*z4MHdIfqrK_IK#hr;|opd7=cesnA`Kr^_ zz8tqJbe)PjEv?8`a<xcj!Pin2 z_O!zis7WPkv=nuy5;y52JL2&!C%FiE%$H4^1%$LDx>j)4>tJ@))su>~#uxM~jLEbL zcU()QV@Aw4<_t7)aE9G`NXkXl6+TRofQ@u(%Qu|(5=wV_bBDt>r;dCl#eSrOGu7V8 z&S>fB?xv6AbY)-52TfSUy$z5+uI3gG))`MN z!#zLWZaB+mM$5+XD2K&?&V|s&hM)rQH(kuvTkIt*N$9Tx5484Rui0pX{aC#?6JZ2f zt0vO*=N)G%T_c=@&_TEu;f^C6=Q4y9SiHFkVHK|bldci|1Ys9e4Ss>}si@;TjBpQ* zfqoQWA)bZ)4&eZvDZYrX3gPPr9fW%kuEVps{R*H5&%6#nScRh^k3l#Pfqe)aT%UpP zDLm{r8{sPaO~zjr;?@(6HZv39I&9xqKq0QX3CH!f5Dp-JS0k*z+W9RAt6VSr zsKj1By2j#BD?&Ox$Ns2IFKzDVk@6JEOjBruhYB8H(&2k7r>z5DDRN@5g)KIIcDM&V z*-_^>A0Zs5#dmPvy9$H_6xKLSF~U8Q9OsJ&??M8xUp?ItWScK$Yn0M`(Y^9;`;7JHlkMXGz>y+}_c_&AO|*J%OYohk8LR z4OJM;EjwMS?W+)M-@WK$2#QWPJ}y7L%l@UkC6Oc zfso2^$5@++<6t7V7*6L8T)C*@OhMaffZQ~M5rhX-~$MwkO+Z$izUE z>Q1bndPIdn&890s{V)b1JInyU$HwGqS~706V8sX@U+R?7ZKgh-$t8)_9t>I3MQY)@ zcigPq9WN!a85v?2_RNqKi^ad{X4p`V!XNYDhi4HMB77O)x^j%=2pbUo3891VeZo&g z|As!W3gICL9fZXQpDKe-5mq1^g|Oii#~FjL|76FhB>rgh!wBaioP#ieZ~?*rJY-yo zumRy(goOyNCL9kb*CDJxcpJhU^l;PsXkD5}TJNWB30;>{g+HSA!ymdU{8q&{z`yfq zYR-<7o;Q8g=*al;(@({qfBI>W(<;VJs2Ep)>gz;K#ry*!+u6taKlgS#ct_&zP$({P zjstZA{zlTL_nZR8szA}VK8l>BphRvpD3R+2C35RPiQEgIMDBG^BKIyRk)vI9BKLVv zhq2~`_)D6#oL zP@?4#Pd?WU=$yPFrwEj!TLNm7SOrSz zZab(_#=Z_}G*g>Foy^qJpiW_G2Pnzg8=$1deh5m^h~#7b#J12=dP$=i6rB-OQehqy^4n4&^m9-poh^<3YK#5!nD5*nhKuH=u2K5lz z@(Y#wBPdDt15i>jM<41qn^y=*RLQvAHbSszUydt+Al<4DmE$jO; zFwys+%7qK8zG6_KZ!DxKLM{jBVmbsTIwp^+2f)cB40`(-z-2+Nedk&QN;B`<^*LH&%%lV~Q#Zw$3 zgmGSCoB>MGy+ElpP@*LXO0-;|*fom%2$X34xl-FeiLYJ+B|Y$~itPpUG+QtN!~JP& zRRJg&1IB?mow3=VB<{ta#xb@4)U_P96Vx+IeFM}P%)J4W#JCyMnT-8hv0p0nB&f5P z`zKJ(vX+Bzr}`XI6G2Jcn4?rHsNXU7YEY8K{h-8a1E8cnZv!QLQ#tOC$8#DpKuut3 z5va47N`VqBD?!O9bcJ#^fD+#ifRbKsyJ9;O8-crS(|dyw&1WfgzEW{eVrd5`vF~zF z663p|#FpzoNxA(*x%Yq)`yNp2IZ$8XeEbm<9j;g8j652vQtY9FL5cOnN>ziB5v&)~ z^DMVVu@jH6+0YbY4?&5gw}O)X?*&lOv%UsOta=xe z^wc9tY|mN&YCETPA1LwZOQ2q0><^%1geb#(zt}egl+==oK*`wnAD~|37@I-8#MJLW zJ;2oHFJi9G)UQEFj-CZ2xqL~nQ;x-1UMzPGD9J}NsQ+f{$Dm$iY8xog@(L)?@`hsL zBaU+pduSS{dpX7;rJeyL{q7$@?Qm#ryBC!7wg((%Jy{4!dfTHwNiTX9s2ey&B`E1* zXDavGpw7*s8gUya@z7(Ssu=qNsMk2|9mhM)|1k9{P}R(R7L<(Bp%WZu5@Sb$67S9g zB{3F*62E*Ol-RNkl(dws%6%DB4QqK@<=z7&HTKY`f{_ylJmu&&f^$K zmFrcx@2T7^DtD*KZBn@>RqhWew@c;zrg8_LWYawsl%zXGsq;X|TyHKYxl>vON@jhV zK>dNs@^Mg7mR}f!l?1lF36#{%7^v4-E}_^mr7j00?RPyW@yky@NqM{p>J5%Nrqpr% z$kaKYB#jg(N#k-*Z!-5P#jXVMNjjaf}t9WF+1QN@Dy*-FrY8Euf4R#a;ttw2W0Ppgv$NOF>DWb0a9xatA2U@`PefgAy$x zPqSKzm71+oLaASZ`YWgLI4CKZg43*pgv;k15h7=Dsl?PS*uDwiPx$? z3HKu9wkdZrDADpeP=8~6J3)QSROk$Qul6}mVpRl`91yk%42RE)QOzh4?*q6 z*e?}(8x*bgjdb>_v~puWg&3Qp*cG7mXKWoPnLFMF>ITl+1E6G_ejHRG7{N4b&qIPxko@<%heXq6*-61Snfhlva*;0CFOBBC~0Ni0~O&Io0R)Jr~_GFeyyDu6@ijA z7y~8wNPrT3%Rou_ehbt=9QQv!O<~P%fRY^j6_k|f0d+R+=Rrx_6BL^a>R{H=qS!Y; zNl()UN_=&*a&HGEIl3Q|So)}Pp959Nwj49rT7MQOsRtK;5(}C^&1AWM110VJCQy>g z+f;4?sC>5XO;Gf{=1AuQP>me-knkI zm3jiy9Ogc!*vp{iGWNP+@2Om9ik)%igOb!rK*^X=21@3;~R|LwG7AVmdRcst6(N_yf^wleO9w^b*0ZQykDR(8P3%S0e zK}lV^9+YWEDt9+1(Xv^&Pbl{V?c+zHC9Rqh4KZB}lF za#tuft=y}XyI#3>EB8U=KBn9kl>54J-%)N}y|pHp?0A1P`OVl_ci72R_=$&J#f0Uxd@cld>kk#g|W)5RPI#e zUZ~tw<$hJUtCf4Da<5nJPnCP0ayKjYY307G+?~q(P`RNQ*5<=NiOt7>l2RyB?gZsd zRc@1Vo0a=j<*rn2TDjLN_h#kZt=!GZeL}e}D0ioF-&1a0gSGiEP^SHYGVNEn6O>!4 z+zXW3tlSReu261TxmPQ9y>jnX?t{vGOt~*8_jTpIqujg;tj+nLO#208+OKlQDYsg= z7bth0a@&==Lb+>{dzEt6EBAKgZdC4L%6(3`uPOH(<$kQ(17}*Bj{;@dFDTP~m0PXc zdgWfI+;-)rl)GBFS1I=f<^EK;8Bg9>9!NFy~O4-;h#arSg?3RH{g+Vx?9US}kip$vwmsie0H#zhYM_ z_I<@}P;8xIH!F6lVz(=HmtyxRwn4E66&p}&P%(NQDkc4dVoxddoMPJ*ds(p^ioLGb zkYc+P+oRZfitSbGW5sCyqu7G)bQ=HB6IsFX6)RM%NU>tYN)(GI7FDcNu`*R;d{6*A%&0#il4$uULa(O^VG`Y@TBC6>C*&kzyT+bt#rojGje{Eh`mUrPvz9 zu2Aes#rhSyTCwjdc7tN;6uVimTNS%qvAYzzPq7V(J*e1#VuOl3s@M~XJ*C)lifvcy zWyN+V_PSzpo{T9YP|^mcC|0jngJMmJ%~fokV)GSiRcw)B9g1}+mQrk;VmB*xt75k+ zc9&xJDYike2NfGoY)~;e|3~s01ts|{Rjf?03dP1LHeRtx#i|smRcwl4v~xhxXi%(4 zvAK%PQ*4J~w1+_A4k@-c$`_$=jofJ)ziBian>;cEw&+Y=>g6D>kIqZpHQ}_MT$2k3wwuSTWi_DOd=U*cVnT zU$H{PiWDnWtVFShVo}9P6)RJW_VG))w14AThgN{bD^{r(?fVzGTE(U)R3E5ndU#xHpX8Vm|&@1|jyk;BNqb zE>eZ7Dy$_45?i*Qr>)K5ua%7ehyJjNhCkZd@5Wj{2$(Li9LRhhawU*~kXPm=AnW$` zBEJAab1jIOv^Enm(kt^kfB_%!1|bJ{Wj+K#Z!fs^&`Kxf)275BV{W3XBM@%)LP9Z4(z6AU)_AT;zGu zqX=x~x0(hNfxPoNWazCHH`aSVsQtJIZL_A9B1kNW#SHqPh^aQwAD%)Wi~TA?NCe0Z zA95zS0ke5m^9&&LZjOswN_u?A5+L+`k1O*HiglD1`8LV;kZXZ79PO1^2ZWB^b@lul z2)*&*B3pqB_>k>D=xrQVW)~28AIC-ZBNu$ZiyQ%DAmT-$K)R0eB4+}*>jW<{1xQuY zi!=gRWe_BbUknJnmE@+L07CoYUF0$#v~%7?z6XT%)Vs(}fzWPy7kL;6?ZbDGmw?cZ z0wLc-KzsIGnf*}o@SUzMI#quEsq5r10eB4+^1EKeST;y~h^k$HYOansi47o@< z#quF5fb8)hR|26okla|e0-^6#6C(M#A4r1_835AnLw*Njz=ymFgpP4{HSYxCobA>8 zJ`j2j%ax%cQt3@C7dZk5y~E`qCj+6kyIiCi2)*~^A`KMFhcpABcg0+pB#;J!NKSi! z(EE9=%zpr(H~d`WZXomypo?q*LT?AU2)#W}h-a)W@+J^^^UOs)214&}xya!dlj$ug z7dZ(?Rh1xOVFi$WgGj$I5y*fKIUk5q?bUNBkOm*J7|1#wvI0oOByU=4fzaE4u02-+ zq4xw`>NheUwT zx)C}Q(~F)8gl6t8GLiIPTy_!qRQ-G(axoCP*K%b#fJA)AO44(52bzt5c`wba%upn3n1|T z(i=e52apW`b3ouTm+DP0fe4Z*`LI!3?PjGq%(k|1IUd5gw~AhPttlafc!Cld=x+mFl(?s z(L-y?_GfYtKpF!`X8>6hK(1HBdj4ktWP=aE`DPtB4ZxUVV?FMZA?7OqU8=JjzGw=XR$99F~1f-)&!7$ z4g#Q$g=rKf2?IKSgXv=*DF35Qt;;hvOngS^0T#< z*2`TahC_P%t%=X%u_BI*b+RuOu_pu&S{s+2jdfuFSrkCJ1IT3o!9UI3$>V)*GXJGQ>JNfJ_M>vjPac-zh(< zd6^Hn0#|Z>75&=RzUIW(n9lgJm>l5i0p{@eSRP<9J&nLxaMqDZKzt`I;aZNz@*S-u z2NB82xSL5-L{HIH##*O8MB+&L9IQQq~z#Ks|>{@dCd& ze9DuUdqNeTXw&UsnKQ1SW|#x8Op<)?7>>%ZCb)-Y83FG}TR1R<4~=fY=`JaX!HJtA zyR5u9(hHY##*2I27Xj|cV7PKm48z56M~VS<&m80Eo+HU{Z4Wa8={w|1uBe?aXl_|t zHQwee>#Q_HBd5FP#Msl&!0;ZvMk#sDWy2+9%5RksB!7kn@o6v&l1N=mP# zV(|IvHkw@6XmVu_twKBj_$aHGsnj;6y|i)dwVacNxE7#XxTkS>7}}|Mj_%50lYhK= z+;hLO7@qUNvN*n@#5_Dc2+ecNl};L{H^nZ~ex)*Zv@GEH2lY#^&0Gn^(~@SKZc8)2^|HdpXdTkKa z-+ol;uot7T-nx!y>o~s9ipN)!DRYJ$%u|Re6ko_OduD=RmCAG@X4RTYbLL-%71o3d zp9+YN2!w6}c@7YCL6Vd61zn6v(O~VJICXCcJ}a;sM)oxG(2O}tb62}V0~^8^&Z16Y zDOk=3#fJa}_W}px5jUy)qfF*WOu~_c&HwkH$f^GaC4GR=zZ6 zxf+%^vabE-~16NfKa&I}xE zXz146WuFnJ1w2dNgHr3>2w^6IHzi?noj97CsTFZ-HGlh&9EpZ+13VZA*uG{rY6zZ2}dYz zIE$)17B$kzv92wmnUs2b&=^nEbuMl1PINB8VScllaoj782lQli4o;7poakonc6G#O z@aIdCq9N9@XmK*NIJN}UR$PNT)yP?}rlL-5&CVKEXcU9`LG0rGA**z1@Zpoj6sn7x z(@FGQ6vAt3CRMvIvN4P>tZ7WOW|s-ovl=@QbKO(7q${<;#kD}r>qsnU?x?1_R5v{V z>v1Tgt3a?>oix6>C|PC`tHrY`S4Rz180EQcYNTm-oqUr76-?{pG#u$mmClpx8GQ0@ zEgk$T)znjsYj8fWh`X+yCWkpr^3@9qCeR?=#!-jw8A#WZbWMgsYvqJvVYx`hiT<99uX1|=DmGK8Je4O<;aroZq6fy|#W>!w5#M*A z!%<;-OLu!0x)L`fluwXd+uYLO@dae05>0i#x#O|HG%T4~%&8iuRYw?KPArgC4=zcM8=+UgCLAG})g2iI zPa)j)t34cy4wSK4#rER!9Mn5`Teqe+jn4?BLLH_fY~cF?x7ASXtD(b2Z3f&r+<@~! zO_lX_7vzCqVUt}%^K^~WmPECufuVZPnWzTWoJ~y%GFy&Lb&b@l%|x&4sZltMRbo`r zVZXyMJea>YyuRih(M@fp96rn4r;EadI-HGLgYWFv#-Tb)3*&k*6({L(sX^%Utfp9HU<~+z zo_P0)*>u7+O`u#mI#749M2qgnIt#*Zicb_1(HQO$uu>!2A82Mut1fNr@eW$dz*RDy z!fX)(6`c}HNIgdRc*|na&kIw@t`5v>yWOQd?Nv8B`%9Fg*Z#U*K-I^)M2Kxy(J zqG=AvI(!C>7S!2t7=ki@A;d@}{G~%_XiTarrmdiOg_FI$W_+({&Y2!hp|P9UDZZ;Fql)<7t~KF6 z@7Pxo3&h~|q_^Nw3C$m+Nfy}qDy@AzyjzEITTgd)p3>p-{MijCO!`X-FkoiJIR7!#3Sg$XGTTK=Co zZX9#YsyOX*5t)BbeID(2!n>DvqTIw(D9^h;iy+#4^D@F(v#(-4VNSz*?;b5cyvOKc z&psH!s+@`e?>;TUBDCo%>$l38Kj7V~MQl0+#KDe~ka^mTZGfb&YRov|y1xj>sAtay zaY)X7XFgLKjpEyp_;7t_hsMGoW;^2P*&`Q%4R z8#L|Oa<+w{4xXLw<7aM2bL%QPbezwvh59mUQ(M1C?7GPq*>Cf2zne*!^ZJ24xk*pi zFW%C}`I(IfMU)zT8Te@Ee56AWwu;+Q(U4WuJ6I%9FSW_Tf3q7`@22mfTNO7%Be?2I zMGJ@WNYgkfg8a;yXq1HPM?H~KQE$EmpY|lPdXV(ll-NGX1Q|!AavL1+8SIntqM{E` z(U1nps+JS+o1h(KzV?}(!%%cPcOnJj&bEF;uyOqnjl`@uWMLVstAdVNlBIf-Nktnn zE2H&Prq+Ldr9J*mPa^$(?;CkNv)ArReLlT18tQ!{&q|~##X4xAb9=I9Tz=$ajLAoIp+x2~e{F)UiyxQ0gL23ZC5{K&_+0Su-mt>{T zFZr!R{+f`#hD=9vZf0I|-s(?IM!iinla;&3%F3v%yJ6J*(P(~!$W1;9I!u{Phm>E` zJ6K7Xc({<-BLwF`a4rO!AlP7-`%a`%13yz!2$KslHTekgGc{oZ;Y>{kK`1iOTr^{5I(hk$|bi*7OjvQ$`6xdnsscB?u#gAuKVW+pGn5 zo3&hrsTYHM=r{_cu}K;kyu3l3O2tiN7evDIv8$CtKPE52OV9T1rmTk9aAL4~4WoB( zJQ{LV|FoWJI!SVMaUC5-<=%q&PN`6;BmzmlK}hW;LP@qSbrSV=tj|+mA?8V<{apPc zr~;L1UrLQaEn=Vdb>*SuGl>EXaj9>EiuB*4NY0@2*M5*{&S`6=Hd=+Kl=VW;;dwO@nzzAv-+YfKkt`bSMDO!=KhmN`V=|Z&n@#!fcTvw$V z!s#hgt@5pt!(<=%hiWyFlENb0g;ux8KWquzM7_DGPwRy?MY7aE{VIjbcz9?W6y{Tz zkYY*zDHefO!Ht88nBr<`y}OIo4s0N~g4*r9gQe;17jJ3P_BRjht_f|hBihhcd2zZa zT4p;Bz-4GTMbKUd@0gLsS5?`uP3~ypNi(u`pywDZJ7_meXXmpYqE|%wgq_@5mzm-< z#SAg-Q+?eL>JRc?jJ(qrhM%LtMkDuX|0Jhru%`j^$a>2!iWbN$NvJ?@gCcM;A_SVby)L$L4LVEh%v}m5Osi7O(!PB0~4ye%!!-k6O*=ifr-A|%ZzMF5|d^| z=|59)10_zuLj%2g^Nt!g5lwv6>Osn6w!8Z0Yy{KUbQ%85MoH$UfA2@^+3V>1Dkh*sKH}=Ky~SB*tg*ikm~(tv0fjMWtMX$`b)SAMJrE5)Fj&5Edhx+xsYuDbzlj5K@_PrzU5q&r&#y2hiBy$GiiX6KK0qR&o@Z(7a^r`3_wGv_3%0MQK_IGCtLjAO+PVtHa^VlER!cyczCj`Gu|D; z!xVgBjh}rsHdQxGt#PKDUx#lW;^T#lb&au^GiEdyWY$c4VX!GyGh_PXspt8zS@<-g zAoVk9s_XGx$(kusr`HKY%trdWc{9Gdo;nrZ!R%gfD!!qFwPm2EV%4)H-hr289p2Q`{w{0!7&mb*vg9#Xkoiv3lw6VOMU$1&z9bsZ?N zc_S!EV>75JEcZK5Q<-`L)R&pcN4=sv7da<@s$z=XADzV1m7vCe8tL2)irW52=LJw> znK~5JQ#2n3N<4HXs1uoc9;nlpx)zk=@;{Zj4bRI`_nV;VK@~ZDpr$dk9u$oSMb0gtPGq^eKp6`_NgD4e z_Aw~YSB!2;w9prQB*t7&<5^3OVyl(;_N`jQs)B1x)=F)J&%K4_l8HgKA{#bj2E!TB6jyDMfFvNooB_se=!+ zSea7vMIVvtR4Sv?tx7$j)GJESSAIsrs*z5SQY%2=B}QQMm7hwcXz0TWiNIb3bq-T+ zg2Ib~z(_+i{)+fqRMAH*PbfOY)}*0Su~Kx#sBj}n4RgYRtjn|@5znu{(0LAaRU-Cq zzoP(Bdtn(CI0^sf`w-&y`w+@C{m{htPueC;`dmF1gGXnUy2wHxT|OiQQpvuI0nGm!di4|MK zk4E^6VmH=)$z?ly z$VDWB7UgPQ1Z2R6tRw`j#FhCL5C=8XMXmxu{(;ksH*UaHL}k2dbrg9--jSGR&IjfG zyz6xA)lc;$!l;Yd$3SMg+xv$1lU1=m@8u)w~~79R67(KY$$LLxS&G1mDcT z*DIIk%MO}WnO{%f-3HR!vZ&i*&+u{_F-Cp4C?!r@_VK!?4l_&l6iOz+d?Hx6E)*}pZIQC@emXO+bo0sA4 zx6#K+veU$~w?iI0ODx*JHclUGH~N!z_elKRy)~jQunlYY{RKI8Tj*xHri9&r=Xn-w zq2V{>N&4n7rgytcb&|F?8%9&Y-4&x59{z#7KHoP{-3R>q6yDwcHQeJx`>eA**3)Te sdQ|}R(>#%-+Sh5G|8iBdPw%Wc?}J8ud~KiO`52@o@SxK^L_O&L1EfE6{Qv*} literal 0 HcmV?d00001 diff --git a/bin/mingw32/winapi.dll b/bin/mingw32/winapi.dll new file mode 100755 index 0000000000000000000000000000000000000000..c60afcdf59d0d1a9e344e3bc7ed99d5b84d4af6e GIT binary patch literal 496128 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ξ-lLY>G`Y%?KD-Mz#?&a*SLf&j=a$Mga((7=|GX2f9&-8CY%9 zp!JD^={t;0qYG=N2jrPB`><99%t3R=97Yc^3dSEdC(uMqnp5VqsaXNsH7^@$DaXpS z@~n`RkEW#1BIp5x$SSrZup5UW=jF0mPoIqXid9*KF04k>iaJp* zVxmDbiYC!4T0|@OFfQ6fhv*btqFeNcUXc)eq95(ipcoRvVg$X!m>9=uPKrq}C8mWY z12Riy%OD&(7t9}$`LaPa$|l(?ThMg1$+&En9kNq)p^xc-YbRu%?3V*_5G~NKtWmY9 zPSvXz{JT*#sb-xI9X1%6LfN%Tqn;7 zIr&b3Q|J(AhHxAwjFza_DRCm`ipre|^n#U6l~e81IJHh4+M^g+vqq=MX?9wiRwRu$ z`lJq|jV`C#>2Z3U1ae2eGvEw@tcQ`NN1ZVc_Jor}&o%|J)ZBoZILkewlo7`r%#cf4*6?fa+ z4)9wSI*}f?7rjWI+wTszgXpw|-4UeyF?ZaZaFcNLDYRVLae9#Fg}i+9jfEZoGYiiF z?-qH*=;R_^8GOIOi+Yu4m8!iOuhy&c>d}%kc#U3@*Njxt>a}@sq|y$r)9XUU>G67z zamKv~FNvHp1*g;efS=`O`$0bk4N#sR^7H)ybZf*n;DC-FMiMIaOZ*7hwsOD1kNTB< z6>>$5Ukl2q_hazKMmS`%-{QCWZAcpJeuv-bclq6ZkKgMj;G6yE=mz~Ef7l=KNBuGQ z=mh%PNx12BO81k{{S1630g^>h3YkN4(W`_=KAg1>O|wA+asHs25mH9VNd?Hgl2oDX zt3lGJLkAQ4Kd6`E$dXBYQlCOYsnGzoonHPL1eSu0ZMhkBdCa#8As|ZI{(;^;o@D!s@g7tpRHgiD=jwu|};iYuuW!lIRGh(CunGz_WNZ5AqzI%ky}M z=ko$y$O$))og5zKMZ6gOZ-kfea$bRKQ;9TH&1=vI*YSEDLndkDO}v@6@K$uhao&!0 z|5#_}~?_Eo)@0tV7<4eJY(Fk)v`< zj>`#|l#_BwPUEhy0hNVTS13n?(d`zi5*1Nps$5m5sH#*|s#?{|>JDuxuG&=x@?n?i zRz0fsIKLQHBeQr$z|OL>?Vz1w=h}I8$j-M5>_Rw6)p34ttQ*vRYNh}GspSb!P`@|e z4SGY~Fs_P>e&*C2?;Asw{c~u0_h&W*|7BGD!xY_52hiLP(P275N9hLH5TkV9c7hqqs6w#j05itHl+OdKP01AoM2iX$!cz4V2o>I@q5>b&Xjv z@$s7W*Ub07&3vDEoe1K6u;^4iUMHd;t{LA?IsPYg`58}7;L7dCd2sxHWUFcLR0srB za00i?Rza1ca#fxRseCjYDIe@s;aNE-VfWenxb8iOE8oNR2pFj1IF9K*hEL+3f*-Q~ zyG1yb5oSO4v*&m%g!e4ZdLD}ZK=rdLOxP$gij5My;-btbH!6&_9P#1lt9AO(5+IBI%5RVUyrj4eS~Ow}!y11iTsst46@7 zQ7~!^_%sGKZ3dUd!K7W_(F9m@5F9!R22G~g+%P`B0;f;|c?Ln5VKj3Q(4{~-R*Yt> z9IaRt8nHUGVU1|QTG4`apaJVa`;|a{HM{fv>8$i|YILG?p+%6ja47MQ^c{)g8V4|2Z`o<`#t$d>`Y-%uf@A;y literal 0 HcmV?d00001 diff --git a/bin/mingw64/winapi.a b/bin/mingw64/winapi.a new file mode 100644 index 0000000000000000000000000000000000000000..531a7940ef30575d8266aea7bc2bb3465c1cb054 GIT binary patch literal 64608 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ν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

W1> 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 x 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�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

J`);pMa+C<4)4RGgs2z@IE*f`SBsx z=_cw&;^Dif5TAsZH&Z`&FIi%@~8rmfB(EkAC#S2%W9ry?=*hqQt0r(=?E$QLV2RZ&odU(ad zM%Abb`D@NszaHrg5= zftNl>*(D8}_!MOq56{{`dGUUD+0*oMiHG-~&G;zHdWLf0y|6vng}2~GXg59y-+Gp^ z;1e*uljAC0c=PkLDLw+1y+E6ahZ~VPlkoy~A`dt2Vo6C%gp*zC!)t{ct}j#V29MSE&<81J8VoK9Bdo z%U`E{@IhFDqWBQ};tk4xPr)W{QU<&iZr(%v;A3#{TeLMk3{QERI>B2oA05Q|;1%c) zJ_v6?hw%~k0jkC);qZ5;lkW5-c*=X!1KxsHzR$MsA?V&q+3;TY;D?NTd<^~t1@TFE z{+}7|_yD{XEy0K3F%-tD{j?ogjTi3x3;ka_Jn66WdAtQrLovJ$R-kS8FifJIc;UC7 z(l_ub$uaCRmf!hWbT-VbM>9{3Qv z`b*jxABG=&McMI5c*@W8f4l{YQKh7Z527Xb80=8Zb%msX15pI;hmRbi?2-nadYrbF zH1L2YLv6#S;N=+^Y7agLQ<)iRzr@3-9WvBmiHDJn87jLcZ3+i=%22s@KMZ!xP(HkH zWS!>MOys02O;cccCI1ROFjLmj~T;Z1`m3qAseoWna+dJzw2otvTB;zMxM zkPKzv18~E68L9_93MUNBP=oP7cnjVLNc@1sUoPJ_tu% z$o}vF_!aW>rXAtaV<{s(4lf&*q4M!T_~iuJL(;$%g|q=a0)Ixucr}T2Q3xN0r(Kev zmf(HxX0%e$!}7_r9X|2T!5x@P7Cy+J;ZU>`OEF8ye+;SD@YaAZ+^^%80k% zZnPhtfQv4pU*f~?w96@%k37KCJ=85;IPMSBCq4jIppEzl{5RT+SNGC(Xb0Yc|3*6{ zK1!XTJ>u`nP`%N9ybnHr4&Y<(36#Re;VyI-pMZPO5quJU{6L1v?1P7QKa`=`?2k(P9kIssE82mN!}g4b@NJ|zvzeKJE;<1JYH6m{5_ef_WYt_3*G zt2*D+>al(#*(6RY(l8Z)20=|&j0@rwWLa`#;)IRl*e1iET}dnN#;e_(eK>LoREPkA zq^TyQRFgty-w&-`O$REdDQbXJrNF2zFq)E~ss}QfDa~jolTn$J_MCsu(H>vj-!_G5 zOR*-K@7{CoJ?Gr>x_2Mm1>Cm;`3UVcz-QpGAKI&c{|=81XsgdRt0s7KLfZ}a7I<_+ zyA$yKFF-s)dkV1se6u_cx*vi{R6b|0d4oUn$@lFa6^nCz6u^5Xd~VUk6vgacEBSB z?M}c7JYItKBH(A?vG0w*^V;A43k$%%98r$FEoyI<%hTd(jx~83mmA>U;W>6gtR86g zH2E51PH)4qqY*w6JOOl^&ySWy)pEe;Y4AB>4%v3W{iLhW%F zPKds(Q;%6E9EbPJZ*jCVT<6*A+Y{UE-36B0)>GQU;(v$Q=5N{H#<~sUT-|n-j8{7^ zk%4>YqCKErxSkJKA^O1kVz{(Iq05`@nk_EB!= z{p(%o`uL?0Y~@>D-Ba6slJd}QtdG>yt}WN<_TV^Rlsx2Kcw9$0N0)OoI%X+;kNN;)C~3T2>L}a17t%G}jmA$B1W!)Hx2ZEcwcItsdL^8|xkO z!u%i9@?ZB2>hLtklR97g{PXCb``6^F7C1K?r!PIvF`l#R1+W$Cz&>Y0x}ELy zJv296nzy=c(m&SS?8`gjgXQYH(QdbEKDP4Z?s_cY8q7(wfqs75-8H06y1wiy{r)6l zd>4HF4bEljyx{p*?+$47PS#1eH4GVwCpD9Gg-H=7qAb=3?JeSM-{07b92F**aTZ zRj+$2pM8XVX?NX5I4)&y93frq>q>ED%6-Y3WiaBH?YV)^U&QkZ>)w2ax-_a`J@UW@ z>Wuj*|BE~O?PG9H|uBGkI4ooQ_mSaXZ5~`H}3=U$rNiiF88PVk@aVkwS{Sn zy1piT*bXvwWLxs*xq3`99p_F^9-3t7_K|Y*F}-h>H@)prU|;b(S%;+E^u1he4Cm_ib6LB2AGmL>sce6%M(nHC2s>M#z8HTf>!LWHnYWBT zZcE$Q`9kiCb<+2)$Fs=~l8>$b**6k&A*2k{Yx7(MU4YBU^U0Qt|rdnvnSMEceOMHIn`m&E0oF(SUTz-7ja^P~oJj0~`D{Z*j=jqv`$9)tW1=xH z)4t{NW4TY}#c|2^a_hO&V>_Qqu?*clGS1O9rn{KM^S5{MyuqbzaJ=Ty`YLra?ML^W zo=5t)oxk*Xa$js?NyGi45Aklm5hkbTxkx@Ehv+BkkO?+Y{&O zmBvkWw4ST%+xc7t?J4hJy1mg>Tr1Ij7w8^)kzx+}IOj)(dTM7YlOK3*jM7JTd~l!o z>zHz#ot-3I?$6{OyIjRR#9{AN9eKshIwJLuZBuM@(eswe*+ufWnzr1dDIPE{bzj@f zLmQZCDChj;a?-NTn|IoW_sWR+%KS0iXXTzyw(O&h&lv8&(pD@>uaW2zS%+{ z>@hDLb)C8lI_WXMJnUjk>VtFpAntS?c6!SFb8a!RT<+_LJWcwW;soWy$!0nq?BjDj zoi1&qk4e4dykFY|-zg5CTO4atdx8)%&rt5j`MfWTksIJMAY<_FzTq`YD_<`shixn6 zF)tnE9G$10S3GXw!7;C|;kkBed7M%1pYxK}N?qkV9G8A!UW~k+`!4vm$&P)s_e_wd zo$mTNDc`QmGUT}R`uEG~uYcoNsXs@Q^Rdl3$$erRn`(nyz9Bt(6?tpY2jz0@K%Y*C z*EsCt>Ash`%l%ok^yZzl)S_p0()AiCd9l6ibdt8@IKeeodoFjkV!pV3LOa)ZOpgz} z&-2g@TvM24=NmgZuhZ+Lw8iDdq%Tm0DUKvB*~U7l-z{}tTfVz@r|<0iViyCZn#_LF zWg>k7YNH;j@?LF&uIMWzMmh2e{Y%oqZ(V(a9H};vy4|a2}v4_9Sh=^~7XL9z(?Eer!vfZi*c# zgWqG*_bcsvB_6sTB!9HE?CWx5KFE2pt@AgXeI^^RO;CocyItCAw^E0zU1OJPcJ&1L za!oYVJKate|6kvkv#g(PNA^3~N}hN6JZV?X1Llc+=EGx%xTirwjWpTZZm#_NnJJ!F z2OW`LmqE5=AH(alSF*po&!>Kz&Vj45`B{d(m=Y!`Uk5u`FpHJA24=x((&n z)vlNKXt`dtalg7fbvsGj^|hRP66GA7w;VIoO%n}ym|oYgYWHpR+Ko1ocQ@3@%JJ9i zJd1FTgD`Hrw{o=p-iq8S`wscw{0V`$j|p)$A}>3?pkC4!x^L~)p+y5+?9i)7eI`Fu4ZuRc`+>g{lj{%)0+tqsA@71+`7pLoF zs$Y_i6$5{~GX^aB(VcYE&veg_ddvNyKC)J#jpSU}=6qq4VL&9{D7+)et-4`SbsgN2R_I5!umb19{3%E zb&eZh9`H*7-(kRmz!%oOOabpM_$ewMe8s32ev|ia;I~0k<1Nam;0G#{cl$Yzv=Q1w zuM4}Ins#4kc3RO2d~Da@T6{>KBCjXK>&30RKho;le#XDtvf8xn+;r4+(Q|=gRF5US z&+`~r7ewg?_UF~2q%? z*A?LVbS@fX^Bi7hJzs_ITe$$WjmKVjoqFZuE_LgeOWhR2?=H}u6H5NrhR@A3W=RL# z&Qfn_Ym~)ntk2)TccFld_JEC=FH-FRTmCBjz2~mX5bpPY&sEC{Xk&h~Lw`R!Jn&fU zgWqTdRO;bS#2*XYIUEkFaLONz1tJ4A5{zB@`(?90I#&NKpYxA{pC5LqEkSF0!ll|F zAIpjQyn{end&H%d1a0aMTxtVo!L#*wvp}2v0DNbXpq&TWGSJe3_TDLw3pC^3@73sS zgm)5l5_$=Jgb~6I5NynehU_g2E!5_S+CA$*YVA;J$5K2G?j zg!6>Y5`K?xi_ra{n!MWyJ%pWv#|a-I94Gt~VUh4W;nxYDCwz&}JyDZ$2Vn={y9h@J zA0hk%VV-b_aE0(Ygx@FpF`@gzH975sZzViJ_+G+?2*(MZBAg}s3gIf@I^iZ^^P}V^ z!h?jpgeM3eB7B7KlZ0u)CBh4Y7YSb^-1m{1oZATZ6Lu2z5&8(W27Hp zE8*>g`w8Df*iCpJ;R(X`5snZ>2*(H?C48LllZ2lpEE3KWE)hOM_;tc>5k5!wJmCw3 zFB1Nguz8a9N7zbuJK=u9gM@bx9wGD+K1euB7$F=ZoFIIh@Kc0o!WqKP5iS#cjqn2D zbA-TX0b`#!5c#3e4Fi039e1z~(!Y2ryBINkZQ~wKu zUn5-C=51+x*C%TF-%7Zj@Ge3xp^q?5_))@75@rdXCVZCg9|<=JUm|orR+GD*@a=^6 z5k5rte!@=>P7@XhKS%g1;RV8rgf9~Ag|ip`+6X;_U4&l3LBbf}2MO8Eiq5Y#!fWSc z&92wZ%bFdootHH`TstpocDQz4*6eWYysX*bSM9t!+jKM%N{0O5&?ABVz)&h4N}lTu zB!=RlSTY)i*F2j00;dm$qlv&hfphAJ)r$xGN$mEFomBTDr8^J~Sd^3Mz1Z)Gq(*7n zhy5erR3eD$BiMU4yktV7zl;6*Q-S!o6aH{2fDF}RNb3(I>y*E3hVD+~y8T08^>TG6 zkqDiRc;nHbKq7HG`mX5Uy9XZ%3?<=bM^#rU6dpbt9UbjH+;vEOSXmqC^+$%o0X3}- zM9xpI3*ijrN=kM3RT#M+K-~8(k5-lj@t)+ZGP< zzeTirQ^~*>^w+4rEe>ekC0b4TMef!10=9U8D93}K%CLf01Z$=~3~mYy`NLq8WGEU@ zZ*cTPl7YBRRu4H)+vB0p!13s@C@kQvIwMB<&n1$9QJkez$#EnaAN42i1!MY8gBjGU z<48OZI2Ia=`{U=-w;gu}l4#NXBm{v{tqs^u#p7Tk@_~BUPTJ97^>RV2?FWeJwMgv_ zCC;Fb{+NFVg5Z#Py+w_O&IXR3i-8jFz<$qI2qX^&Sd1D(>M?&J*%OartcI+9^fX$g z8yEK{E2P;1zuw>kmfbNv}T{MDZupw=G(7n8H#0i`CzD#i7KuuNs`N zx@IzOJQT$gRV@}RG<4>0G!=nZ-|xIT93AwB4~4_gA@yeJfzQth`<>1ea?E$ z>mjq`JQnbu4d`Tb-gzwQAEqdU7OBVA&&$R{DDb@ez!>$WXxAP#~_})7a+^B_JGz0x>Jd zRj{!SvYT{)WYN)F@YB1{4hQ^+fR%Pi{R#9FDTsf{piejUCBxvw zBdLg$I>-HkuTJQe^{A8g1(L84Iwqjb0`+ZbU;xg?WIQzl1&QoN2aXrUhT)`)$0JdA z^ACEV=-|KzM4D3XgI+8Y4S^5U5VRA4WC~_Nr47P-rOv4V|7ha$KmdxIQeRX9#O3eR zzz763sB}6R487@~QWt6z5b<4TjY2_G@GU0;r$>`ehG4>Nj)4#y>EOsw^&!Uqq`V(e z(;89}R{xB83@{N0oI!@KY#10lLlgEl48(@;uvZ>v;d>hjeg$}dMpqgJQneEDgNA{# ziAW5pYjQ-X2b}{CqY0II)af6DBBws;^bbYB46CvR7nA4y11OAZ{l)(a}rkz8O zrg3ZUPeB_C(`THpC&8caB)9f7UrdD*gquQpq8;WMM-6rE|nOP|qWR-d{o-i>YPjNMgtz0ZCtmR*mb5 zbA)#HcTNxlx_<*P5IL*Vzd6Iv({J#o7oDTDua}&ofzhELc=SK4)@V$rpIWULRF40| z)+m%sr5d3H5|rBAh^k?|yr~hCvdnWcv})7#K`R31g;KXR!gR}<0reZ$K0BBiQMWbX z?Z+Qh>NlYk0eifnF+sb2O(VpqrORur7V5I!YN0N##}--BgY6M?vr=!sHpCmeJ&mo% z5G?zhS__tSV9R3qR&2q4aK2zG83i5QS!<=js;4nw9c5VI(e=Iff6(q|V{$Zx5v}gQ z7Hmza`x{eG$kDR>jc3_qYNYYup@gLe{9+_rDCr!jo#GH%Es_f7?+xm1KI6Nf{?`s! zbz_~12Lw{BTjp^`e=raZ_l&`vHwiVjO&tc)pM>%qeb_qa)qSBC;jWUP z+gNQD9)fw*9T<^|)Sm$btPwp|qpIgs&uA=pPH_3LrT5_=+)Qh8a4&FwOO0~(dbpcK zXz-AFops|1`x6ON{*ZcOtxsBYLt?>)2apDW&m^NU5)2<302&m>!09+#5s01o7*f5E zcyPFU2ivvj$D)zb-emlcdah2p^u7eO?|b#JJ}k&TsP~V69yN6lRLD4&uI0vOa z{|F1nB=>XWTjE8s(Y=u36xh z#R9AFTScJjN*?~V4!@lT;7NC+JJa5DI$cgLrkB&JX&}P$jai3M5cSedMm9mu8cd=nrX|lXFQpXOlPJy~eM`yP93gu4gy0o7t_b%DHmxTx+f^*Pip_I&z)4-ds9Y&MoGaa?81u z+-hzux1QU`ZRWOeD(}j7=6mzr{HeSzAI!({WBKv?WPUxrk>AX36!FQd1i5DX=Zt5WoC6|ZDxJOU2Uy)R(q@7s+x7p zx@TKw+h*HmJ+mFNowL2O-q};LzS-bxY<6sRe0FkH&AH~>bM14>b1QSJb8B4=byYDrPVu-*aVX<%*%({nxyjsAZd!|~opDt6I$D3KG_83+_o(#XVx_IxUiDNv z$bzS;zG|=U1?-Ems$-OV#D-N_DlmR$Z@dR6FN;=e_f%=6&tMhB~>+>7)oAX=qYQeSOUT9rtTWDYKEOabfYSXcW@rB8SsfFo<^g?-Iabam; zd0}N?bz!Y;ZEuU}1XH7}-RahJTe>}6s~x>iJx-;4>0mmR9!rlKYX+?I!M_1$0GIs& za@?CcmGk9-xma#2XZFzAC3)}8x8~dO?RihW!&n2R^3(ZrzMNmoFXfl>EBV#@+7;`9 zuMjN63S))w!en8pFkMI&%7w+kQenBUQdljl{mgYET`U(Di%XZ(kImv%QI%XJcd506 zwWJfOh_4ib44;DdT7>Lgh0NZBtad|2d&-?(W46b03!4Jt_| zR1qIkka4IU>B?edxw2YWuWVM-jC-bS#xv77EwlzDF&y~6r4zla2l<`Nwf*4 rkQ+`Q51c+;h{_m5RSVHi literal 0 HcmV?d00001 diff --git a/build-docs.bat b/build-docs.bat deleted file mode 100644 index 4d4d1d9..0000000 --- a/build-docs.bat +++ /dev/null @@ -1,3 +0,0 @@ -REM building documentation with ldoc -REM http://github.com/stevedonovan/LDoc -ldoc winapi.l.c -o api && lua markdown.lua readme.md -s doc.css -l diff --git a/build-gcc-52.bat b/build-gcc-52.bat deleted file mode 100644 index 9d401b3..0000000 --- a/build-gcc-52.bat +++ /dev/null @@ -1,6 +0,0 @@ -REM compiling for mingw against msvcrt -set LUA_DIR=D:\dev\lua\lua-5.2.0\src -set CFLAGS=-c -g -DPSAPI_VERSION=1 -I"%LUA_DIR%" -gcc %CFLAGS% winapi.c -gcc %CFLAGS% wutils.c -gcc -g -shared winapi.o wutils.o "%LUA_DIR%\lua52.dll" -lpsapi -lMpr -o winapi.dll \ No newline at end of file diff --git a/build-gcc-lfw.bat b/build-gcc-lfw.bat deleted file mode 100644 index 0d34660..0000000 --- a/build-gcc-lfw.bat +++ /dev/null @@ -1,6 +0,0 @@ -REM building with mingw for LfW -set LUA_DIR=C:\Program Files\Lua\5.1 -set CFLAGS=-Os -DPSAPI_VERSION=1 -I"%LUA_DIR%\include" -gcc -c %CFLAGS% winapi.c -gcc -c %CFLAGS% wutils.c -gcc -Wl,-s -shared winapi.o wutils.o -L"%LUA_DIR%/lib" -lpsapi -lMpr -llua5.1 -lmsvcr80 -o winapi.dll \ No newline at end of file diff --git a/build-gcc.bat b/build-gcc.bat deleted file mode 100644 index 09b826c..0000000 --- a/build-gcc.bat +++ /dev/null @@ -1,8 +0,0 @@ -REM compiling for mingw against msvcrt -# set LUA_DIR=D:\dev\lua\luajit-2.0\src -set LUA_INCLUDE=c:\users\steve\luadist\include -set LUA_LIB=c:\users\steve\luadist\lib\liblua51.dll.a -set CFLAGS=-c -O1 -DPSAPI_VERSION=1 -I"%LUA_INCLUDE%" -gcc %CFLAGS% winapi.c -gcc %CFLAGS% wutils.c -gcc -Wl,-s -shared winapi.o wutils.o "%LUA_LIB%" -lpsapi -lMpr -o winapi.dll \ No newline at end of file diff --git a/build-lc.bat b/build-lc.bat deleted file mode 100644 index 33e2c76..0000000 --- a/build-lc.bat +++ /dev/null @@ -1 +0,0 @@ -luam -C -llc winapi.l.c > winapi.c diff --git a/build-msvc.bat b/build-msvc.bat deleted file mode 100644 index a9aec0e..0000000 --- a/build-msvc.bat +++ /dev/null @@ -1,5 +0,0 @@ -set LUA_DIR=C:\Program Files\Lua\5.1 -set CFLAGS= /O1 /DPSAPI_VERSION=1 /I"%LUA_DIR%\include" -cl /nologo -c %CFLAGS% winapi.c -cl /nologo -c %CFLAGS% wutils.c -link /nologo winapi.obj wutils.obj /EXPORT:luaopen_winapi /LIBPATH:"%LUA_DIR%\lib" msvcrt.lib kernel32.lib user32.lib psapi.lib advapi32.lib shell32.lib Mpr.lib lua5.1.lib /DLL /OUT:winapi.dll diff --git a/build-readme.bat b/build-readme.bat deleted file mode 100644 index 7fb96b2..0000000 --- a/build-readme.bat +++ /dev/null @@ -1,6 +0,0 @@ -REM convert the markdown to HTML -lua markdown.lua readme.md -s doc.css -l -copy readme.html docs\index.html -copy doc.css docs\default.css -del readme.html - diff --git a/clean.bat b/clean.bat deleted file mode 100644 index 491ed7a..0000000 --- a/clean.bat +++ /dev/null @@ -1 +0,0 @@ -del *.manifest *.o *.obj *.exp *.lib *.d *.spec diff --git a/config.ld b/config.ld deleted file mode 100644 index b447178..0000000 --- a/config.ld +++ /dev/null @@ -1,18 +0,0 @@ --- ldoc configuration file -file = "winapi.l.c" -output = "api" -title = "Winapi documentation" -project = "winapi" -readme = "readme.md" ---one = true --- no_summary = true -examples = {'examples', exclude = {'examples/slow.lua'}} -description = [[ -A minimal but useful binding to the Windows API. -]] - ---manual_url 'file:///D:/dev/lua/projects/lua-5.1.4/doc/manual.html' - -format = 'discount' - - diff --git a/csrc/winapi/build-mingw32.sh b/csrc/winapi/build-mingw32.sh new file mode 100755 index 0000000..df9c9d4 --- /dev/null +++ b/csrc/winapi/build-mingw32.sh @@ -0,0 +1,3 @@ +[ `uname` = Linux ] && { export X=i686-w64-mingw32-; } +P=mingw32 C="-DPSAPI_VERSION=1 -fPIC" L="-s -static-libgcc -lpsapi -lmpr ../../bin/$P/luajit.a" \ + D=winapi.dll A=winapi.a ./build.sh diff --git a/csrc/winapi/build-mingw64.sh b/csrc/winapi/build-mingw64.sh new file mode 100755 index 0000000..810ac63 --- /dev/null +++ b/csrc/winapi/build-mingw64.sh @@ -0,0 +1,3 @@ +[ `uname` = Linux ] && { export X=x86_64-w64-mingw32-; } +P=mingw64 C="-DPSAPI_VERSION=1 -fPIC" L="-s -static-libgcc -lpsapi -lmpr ../../bin/$P/luajit.a" \ + D=winapi.dll A=winapi.a ./build.sh diff --git a/csrc/winapi/build.sh b/csrc/winapi/build.sh new file mode 100755 index 0000000..6961946 --- /dev/null +++ b/csrc/winapi/build.sh @@ -0,0 +1,7 @@ +[ "$CC" ] || CC=gcc +mkdir -p ../../bin/$P +${X}${CC} -c -O2 $C *.c -Wall -I. -I../lua-headers +${X}${CC} *.o -shared -o ../../bin/$P/$D $L +rm -f ../../bin/$P/$A +${X}ar rcs ../../bin/$P/$A *.o +rm *.o diff --git a/winapi.c b/csrc/winapi/winapi.c similarity index 56% rename from winapi.c rename to csrc/winapi/winapi.c index dadae2e..054af0a 100644 --- a/winapi.c +++ b/csrc/winapi/winapi.c @@ -13,14 +13,13 @@ A useful set of Windows API functions. @license MIT/X11 @module winapi */ -#line 16 "winapi.l.c" #define WINDOWS_LEAN_AND_MEAN #include #include #ifdef __GNUC__ #include /* GNU GCC specific */ #endif -#include "Winnetwk.h" +#include #include @@ -57,7 +56,6 @@ typedef double Number; typedef int Boolean; -#line 43 "winapi.l.c" #include "wutils.h" @@ -73,8 +71,7 @@ static WStr wstring(Str text) { // @function set_encoding static int l_set_encoding(lua_State *L) { int e = luaL_checkinteger(L,1); - #line 56 "winapi.l.c" - set_encoding(e); + set_encoding(e); return 0; } @@ -96,8 +93,7 @@ static int l_encode(lua_State *L) { int e_in = luaL_checkinteger(L,1); int e_out = luaL_checkinteger(L,2); const char *text = luaL_checklstring(L,3,NULL); - #line 75 "winapi.l.c" - int ce = get_encoding(); + int ce = get_encoding(); LPCWSTR ws; if (e_in != -1) { set_encoding(e_in); @@ -122,7 +118,6 @@ static int l_encode(lua_State *L) { // @function utf8_expand static int l_utf8_expand(lua_State *L) { const char *text = luaL_checklstring(L,1,NULL); - #line 99 "winapi.l.c" int len = strlen(text), i = 0, enc = get_encoding(); WCHAR wch; LPWSTR P = wbuff; @@ -158,7 +153,7 @@ static int l_utf8_expand(lua_State *L) { } // forward reference to Process constructor -static int push_new_Process(lua_State *L,Int pid, HANDLE ph); +static int push_new_Process(lua_State *L,Int pid, HANDLE ph, HANDLE jh); const DWORD_PTR WIN_NOACTIVATE = (DWORD_PTR)SWP_NOACTIVATE, WIN_NOMOVE = (DWORD_PTR)SWP_NOMOVE, @@ -173,15 +168,12 @@ const DWORD_PTR WIN_NOACTIVATE = (DWORD_PTR)SWP_NOACTIVATE, /// a class representing a Window. // @type Window -#line 152 "winapi.l.c" typedef struct { HWND hwnd; - } Window; - #define Window_MT "Window" Window * Window_arg(lua_State *L,int idx) { @@ -200,307 +192,283 @@ static int push_new_Window(lua_State *L,HWND h) { return 1; } - static void Window_ctor(lua_State *L, Window *this, HWND h) { - #line 153 "winapi.l.c" - this->hwnd = h; - } + this->hwnd = h; +} - static lua_State *sL; +static lua_State *sL; - static BOOL CALLBACK enum_callback(HWND hwnd,LPARAM data) { - push_ref(sL,(Ref)data); - push_new_Window(sL,hwnd); - lua_call(sL,1,0); - return TRUE; - } +static BOOL CALLBACK enum_callback(HWND hwnd,LPARAM data) { + push_ref(sL,(Ref)data); + push_new_Window(sL,hwnd); + lua_call(sL,1,0); + return TRUE; +} - /// the handle of this window. - // @function get_handle - static int l_Window_get_handle(lua_State *L) { - Window *this = Window_arg(L,1); - #line 168 "winapi.l.c" - lua_pushnumber(L,(DWORD_PTR)this->hwnd); - return 1; - } +/// the handle of this window. +// @function get_handle +static int l_Window_get_handle(lua_State *L) { + Window *this = Window_arg(L,1); + lua_pushnumber(L,(DWORD_PTR)this->hwnd); + return 1; +} - /// get the window text. - // @function get_text - static int l_Window_get_text(lua_State *L) { - Window *this = Window_arg(L,1); - #line 175 "winapi.l.c" - GetWindowTextW(this->hwnd,wbuff,sizeof(wbuff)); - return push_wstring(L,wbuff); - } +/// get the window text. +// @function get_text +static int l_Window_get_text(lua_State *L) { + Window *this = Window_arg(L,1); + GetWindowTextW(this->hwnd,wbuff,sizeof(wbuff)); + return push_wstring(L,wbuff); +} - /// set the window text. - // @function set_text - static int l_Window_set_text(lua_State *L) { - Window *this = Window_arg(L,1); - const char *text = luaL_checklstring(L,2,NULL); - #line 182 "winapi.l.c" - SetWindowTextW(this->hwnd,wstring(text)); - return 0; - } +/// set the window text. +// @function set_text +static int l_Window_set_text(lua_State *L) { + Window *this = Window_arg(L,1); + const char *text = luaL_checklstring(L,2,NULL); + SetWindowTextW(this->hwnd,wstring(text)); + return 0; +} - /// change the visibility, state etc +/// change the visibility, state etc +// @param flags one of `SW_SHOW`, `SW_MAXIMIZE`, etc +// @function show +static int l_Window_show(lua_State *L) { + Window *this = Window_arg(L,1); + int flags = luaL_optinteger(L,2,SW_SHOW); + ShowWindow(this->hwnd,flags); + return 0; +} + + /// change the visibility without blocking. // @param flags one of `SW_SHOW`, `SW_MAXIMIZE`, etc - // @function show - static int l_Window_show(lua_State *L) { + // @function show_async + static int l_Window_show_async(lua_State *L) { Window *this = Window_arg(L,1); int flags = luaL_optinteger(L,2,SW_SHOW); - #line 190 "winapi.l.c" - ShowWindow(this->hwnd,flags); + ShowWindowAsync(this->hwnd,flags); return 0; } - /// change the visibility without blocking. - // @param flags one of `SW_SHOW`, `SW_MAXIMIZE`, etc - // @function show_async - static int l_Window_show_async(lua_State *L) { - Window *this = Window_arg(L,1); - int flags = luaL_optinteger(L,2,SW_SHOW); - #line 198 "winapi.l.c" - ShowWindowAsync(this->hwnd,flags); - return 0; - } +/// get the position in pixels +// @return left position +// @return top position +// @function get_position +static int l_Window_get_position(lua_State *L) { + Window *this = Window_arg(L,1); + RECT rect; + GetWindowRect(this->hwnd,&rect); + lua_pushinteger(L,rect.left); + lua_pushinteger(L,rect.top); + return 2; +} - /// get the position in pixels - // @return left position - // @return top position - // @function get_position - static int l_Window_get_position(lua_State *L) { - Window *this = Window_arg(L,1); - #line 207 "winapi.l.c" - RECT rect; - GetWindowRect(this->hwnd,&rect); - lua_pushinteger(L,rect.left); - lua_pushinteger(L,rect.top); - return 2; - } +/// get the bounds in pixels +// @return width +// @return height +// @function get_bounds +static int l_Window_get_bounds(lua_State *L) { + Window *this = Window_arg(L,1); + RECT rect; + GetWindowRect(this->hwnd,&rect); + lua_pushinteger(L,rect.right - rect.left); + lua_pushinteger(L,rect.bottom - rect.top); + return 2; +} - /// get the bounds in pixels - // @return width - // @return height - // @function get_bounds - static int l_Window_get_bounds(lua_State *L) { - Window *this = Window_arg(L,1); - #line 219 "winapi.l.c" - RECT rect; - GetWindowRect(this->hwnd,&rect); - lua_pushinteger(L,rect.right - rect.left); - lua_pushinteger(L,rect.bottom - rect.top); - return 2; - } +/// is this window visible? +// @function is_visible +static int l_Window_is_visible(lua_State *L) { + Window *this = Window_arg(L,1); + lua_pushboolean(L,IsWindowVisible(this->hwnd)); + return 1; +} - /// is this window visible? - // @function is_visible - static int l_Window_is_visible(lua_State *L) { - Window *this = Window_arg(L,1); - #line 229 "winapi.l.c" - lua_pushboolean(L,IsWindowVisible(this->hwnd)); - return 1; - } +/// destroy this window. +// @function destroy +static int l_Window_destroy(lua_State *L) { + Window *this = Window_arg(L,1); + DestroyWindow(this->hwnd); + return 0; +} - /// destroy this window. - // @function destroy - static int l_Window_destroy(lua_State *L) { - Window *this = Window_arg(L,1); - #line 236 "winapi.l.c" - DestroyWindow(this->hwnd); - return 0; - } +/// resize this window. +// @param x0 left +// @param y0 top +// @param w width +// @param h height +// @function resize +static int l_Window_resize(lua_State *L) { + Window *this = Window_arg(L,1); + int x0 = luaL_checkinteger(L,2); + int y0 = luaL_checkinteger(L,3); + int w = luaL_checkinteger(L,4); + int h = luaL_checkinteger(L,5); + MoveWindow(this->hwnd,x0,y0,w,h,TRUE); + return 0; +} - /// resize this window. - // @param x0 left - // @param y0 top - // @param w width - // @param h height - // @function resize - static int l_Window_resize(lua_State *L) { - Window *this = Window_arg(L,1); - int x0 = luaL_checkinteger(L,2); - int y0 = luaL_checkinteger(L,3); - int w = luaL_checkinteger(L,4); - int h = luaL_checkinteger(L,5); - #line 247 "winapi.l.c" - MoveWindow(this->hwnd,x0,y0,w,h,TRUE); - return 0; - } +/// resize or move a window. +// see [API](http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx) +// @param w window _handle_ to insert after, or one of: +// WINWIN_BOTTOM, WIN_NOTOPMOST, WIN_TOP (default), WIN_TOPMOST +// @param x0 left (ignore if flags has WIN_NOMOVE) +// @param y0 top +// @param w width (ignore if flags has WIN_NOSIZE) +// @param h height +// @param flags one of +// WIN_NOACTIVATE, WIN_NOMOVE, WIN_NOSIZE, WIN_SHOWWINDOW (default), WIN_NOZORDER +static int l_Window_set_pos(lua_State *L) { + Window *this = Window_arg(L,1); + int wafter = luaL_optinteger(L,2,WIN_TOP); + int x0 = luaL_checkinteger(L,3); + int y0 = luaL_checkinteger(L,4); + int w = luaL_checkinteger(L,5); + int h = luaL_checkinteger(L,6); + int flags = luaL_optinteger(L,7,WIN_SHOWWINDOW); + SetWindowPos(this->hwnd,(HWND)(DWORD_PTR)wafter,x0,y0,w,h,flags); + return 0; +} - /// resize or move a window. - // see [API](http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx) - // @param w window _handle_ to insert after, or one of: - // WINWIN_BOTTOM, WIN_NOTOPMOST, WIN_TOP (default), WIN_TOPMOST - // @param x0 left (ignore if flags has WIN_NOMOVE) - // @param y0 top - // @param w width (ignore if flags has WIN_NOSIZE) - // @param h height - // @param flags one of - // WIN_NOACTIVATE, WIN_NOMOVE, WIN_NOSIZE, WIN_SHOWWINDOW (default), WIN_NOZORDER - static int l_Window_set_pos(lua_State *L) { - Window *this = Window_arg(L,1); - int wafter = luaL_optinteger(L,2,WIN_TOP); - int x0 = luaL_checkinteger(L,3); - int y0 = luaL_checkinteger(L,4); - int w = luaL_checkinteger(L,5); - int h = luaL_checkinteger(L,6); - int flags = luaL_optinteger(L,7,WIN_SHOWWINDOW); - #line 262 "winapi.l.c" - SetWindowPos(this->hwnd,(HWND)(DWORD_PTR)wafter,x0,y0,w,h,flags); - return 0; - } +/// send a message. +// @param msg the message +// @param wparam +// @param lparam +// @return the result +// @function send_message +static int l_Window_send_message(lua_State *L) { + Window *this = Window_arg(L,1); + int msg = luaL_checkinteger(L,2); + double wparam = luaL_checknumber(L,3); + double lparam = luaL_checknumber(L,4); + lua_pushinteger(L,SendMessage(this->hwnd,msg,(WPARAM)wparam,(LPARAM)lparam)); + return 1; +} - /// send a message. + /// send a message asynchronously. // @param msg the message // @param wparam // @param lparam // @return the result - // @function send_message - static int l_Window_send_message(lua_State *L) { - Window *this = Window_arg(L,1); - int msg = luaL_checkinteger(L,2); - double wparam = luaL_checknumber(L,3); - double lparam = luaL_checknumber(L,4); - #line 273 "winapi.l.c" - lua_pushinteger(L,SendMessage(this->hwnd,msg,(WPARAM)wparam,(LPARAM)lparam)); + // @function post_message +static int l_Window_post_message(lua_State *L) { + Window *this = Window_arg(L,1); + int msg = luaL_checkinteger(L,2); + double wparam = luaL_checknumber(L,3); + double lparam = luaL_checknumber(L,4); + return push_bool(L,PostMessage(this->hwnd,msg,(WPARAM)wparam,(LPARAM)lparam)); +} + + +/// enumerate all child windows. +// @param a callback which to receive each window object +// @function enum_children +static int l_Window_enum_children(lua_State *L) { + Window *this = Window_arg(L,1); + int callback = 2; + Ref ref; + sL = L; + ref = make_ref(L,callback); + EnumChildWindows(this->hwnd,&enum_callback,ref); + release_ref(L,ref); + return 0; +} + +/// get the parent window. +// @function get_parent +static int l_Window_get_parent(lua_State *L) { + Window *this = Window_arg(L,1); + return push_new_Window(L,GetParent(this->hwnd)); +} + +/// get the name of the program owning this window. +// @function get_module_filename +static int l_Window_get_module_filename(lua_State *L) { + Window *this = Window_arg(L,1); + int sz = GetWindowModuleFileNameW(this->hwnd,wbuff,sizeof(wbuff)); + wbuff[sz] = 0; + return push_wstring(L,wbuff); +} + +/// get the window class name. +// Useful to find all instances of a running program, when you +// know the class of the top level window. +// @function get_class_name +static int l_Window_get_class_name(lua_State *L) { + Window *this = Window_arg(L,1); + static char buff[1024]; + int n = GetClassName(this->hwnd,buff,sizeof(buff)); + if (n > 0) { + lua_pushstring(L,buff); return 1; + } else { + return push_error(L); } +} - /// send a message asynchronously. - // @param msg the message - // @param wparam - // @param lparam - // @return the result - // @function post_message - static int l_Window_post_message(lua_State *L) { - Window *this = Window_arg(L,1); - int msg = luaL_checkinteger(L,2); - double wparam = luaL_checknumber(L,3); - double lparam = luaL_checknumber(L,4); - #line 284 "winapi.l.c" - return push_bool(L,PostMessage(this->hwnd,msg,(WPARAM)wparam,(LPARAM)lparam)); +/// bring this window to the foreground. +// @function set_foreground +static int l_Window_set_foreground(lua_State *L) { + Window *this = Window_arg(L,1); + lua_pushboolean(L,SetForegroundWindow(this->hwnd)); + return 1; +} + +/// get the associated process of this window +// @function get_process +static int l_Window_get_process(lua_State *L) { + Window *this = Window_arg(L,1); + DWORD pid; + GetWindowThreadProcessId(this->hwnd,&pid); + return push_new_Process(L,pid,NULL,NULL); +} + +/// this window as string (up to 100 chars). +// @function __tostring +static int l_Window___tostring(lua_State *L) { + Window *this = Window_arg(L,1); + int ret; + int sz = GetWindowTextW(this->hwnd,wbuff,sizeof(wbuff)); + if (sz > MAX_SHOW) { + wbuff[MAX_SHOW] = '\0'; } - - - /// enumerate all child windows. - // @param a callback which to receive each window object - // @function enum_children - static int l_Window_enum_children(lua_State *L) { - Window *this = Window_arg(L,1); - int callback = 2; - #line 292 "winapi.l.c" - Ref ref; - sL = L; - ref = make_ref(L,callback); - EnumChildWindows(this->hwnd,&enum_callback,ref); - release_ref(L,ref); - return 0; + ret = push_wstring(L,wbuff); + if (ret == 2) { // we had a conversion error + lua_pushliteral(L,""); } + return 1; +} - /// get the parent window. - // @function get_parent - static int l_Window_get_parent(lua_State *L) { - Window *this = Window_arg(L,1); - #line 303 "winapi.l.c" - return push_new_Window(L,GetParent(this->hwnd)); - } +static int l_Window___eq(lua_State *L) { + Window *this = Window_arg(L,1); + Window *other = Window_arg(L,2); + lua_pushboolean(L,this->hwnd == other->hwnd); + return 1; +} - /// get the name of the program owning this window. - // @function get_module_filename - static int l_Window_get_module_filename(lua_State *L) { - Window *this = Window_arg(L,1); - #line 309 "winapi.l.c" - int sz = GetWindowModuleFileNameW(this->hwnd,wbuff,sizeof(wbuff)); - wbuff[sz] = 0; - return push_wstring(L,wbuff); - } - - /// get the window class name. - // Useful to find all instances of a running program, when you - // know the class of the top level window. - // @function get_class_name - static int l_Window_get_class_name(lua_State *L) { - Window *this = Window_arg(L,1); - #line 319 "winapi.l.c" - static char buff[1024]; - int n = GetClassName(this->hwnd,buff,sizeof(buff)); - if (n > 0) { - lua_pushstring(L,buff); - return 1; - } else { - return push_error(L); - } - } - - /// bring this window to the foreground. - // @function set_foreground - static int l_Window_set_foreground(lua_State *L) { - Window *this = Window_arg(L,1); - #line 332 "winapi.l.c" - lua_pushboolean(L,SetForegroundWindow(this->hwnd)); - return 1; - } - - /// get the associated process of this window - // @function get_process - static int l_Window_get_process(lua_State *L) { - Window *this = Window_arg(L,1); - #line 339 "winapi.l.c" - DWORD pid; - GetWindowThreadProcessId(this->hwnd,&pid); - return push_new_Process(L,pid,NULL); - } - - /// this window as string (up to 100 chars). - // @function __tostring - static int l_Window___tostring(lua_State *L) { - Window *this = Window_arg(L,1); - #line 347 "winapi.l.c" - int ret; - int sz = GetWindowTextW(this->hwnd,wbuff,sizeof(wbuff)); - if (sz > MAX_SHOW) { - wbuff[MAX_SHOW] = '\0'; - } - ret = push_wstring(L,wbuff); - if (ret == 2) { // we had a conversion error - lua_pushliteral(L,""); - } - return 1; - } - - static int l_Window___eq(lua_State *L) { - Window *this = Window_arg(L,1); - Window *other = Window_arg(L,2); - #line 360 "winapi.l.c" - lua_pushboolean(L,this->hwnd == other->hwnd); - return 1; - } - -#line 364 "winapi.l.c" static const struct luaL_Reg Window_methods [] = { - {"get_handle",l_Window_get_handle}, - {"get_text",l_Window_get_text}, - {"set_text",l_Window_set_text}, - {"show",l_Window_show}, - {"show_async",l_Window_show_async}, - {"get_position",l_Window_get_position}, - {"get_bounds",l_Window_get_bounds}, - {"is_visible",l_Window_is_visible}, - {"destroy",l_Window_destroy}, - {"resize",l_Window_resize}, - {"set_pos",l_Window_set_pos}, - {"send_message",l_Window_send_message}, - {"post_message",l_Window_post_message}, - {"enum_children",l_Window_enum_children}, - {"get_parent",l_Window_get_parent}, - {"get_module_filename",l_Window_get_module_filename}, - {"get_class_name",l_Window_get_class_name}, - {"set_foreground",l_Window_set_foreground}, - {"get_process",l_Window_get_process}, - {"__tostring",l_Window___tostring}, - {"__eq",l_Window___eq}, + {"get_handle",l_Window_get_handle}, + {"get_text",l_Window_get_text}, + {"set_text",l_Window_set_text}, + {"show",l_Window_show}, + {"show_async",l_Window_show_async}, + {"get_position",l_Window_get_position}, + {"get_bounds",l_Window_get_bounds}, + {"is_visible",l_Window_is_visible}, + {"destroy",l_Window_destroy}, + {"resize",l_Window_resize}, + {"set_pos",l_Window_set_pos}, + {"send_message",l_Window_send_message}, + {"post_message",l_Window_post_message}, + {"enum_children",l_Window_enum_children}, + {"get_parent",l_Window_get_parent}, + {"get_module_filename",l_Window_get_module_filename}, + {"get_class_name",l_Window_get_class_name}, + {"set_foreground",l_Window_set_foreground}, + {"get_process",l_Window_get_process}, + {"__tostring",l_Window___tostring}, + {"__eq",l_Window___eq}, {NULL, NULL} /* sentinel */ }; @@ -517,7 +485,6 @@ static void Window_register (lua_State *L) { } -#line 366 "winapi.l.c" /// Manipulating Windows. // @section Windows @@ -530,7 +497,6 @@ static void Window_register (lua_State *L) { static int l_find_window(lua_State *L) { const char *cname = lua_tostring(L,1); const char *wname = lua_tostring(L,2); - #line 375 "winapi.l.c" HWND hwnd = FindWindow(cname,wname); if (hwnd == NULL) { return push_error(L); @@ -584,7 +550,6 @@ static int l_get_desktop_window(lua_State *L) { // @function window_from_handle static int l_window_from_handle(lua_State *L) { int hwnd = luaL_checkinteger(L,1); - #line 427 "winapi.l.c" return push_new_Window(L, (HWND)hwnd); } @@ -593,7 +558,6 @@ static int l_window_from_handle(lua_State *L) { // @function enum_windows static int l_enum_windows(lua_State *L) { int callback = 1; - #line 434 "winapi.l.c" Ref ref; sL = L; ref = make_ref(L,callback); @@ -686,17 +650,16 @@ static int l_tile_windows(lua_State *L) { int horiz = lua_toboolean(L,2); int kids = 3; int bounds = 4; - #line 522 "winapi.l.c" RECT rt; HWND *kids_arr; int i,n_kids; LPRECT lpRect = NULL; if (! lua_isnoneornil(L,bounds)) { lua_pushvalue(L,bounds); - lua_getfield(L,-1,"left"); rt.left=lua_tointeger(L,-1); lua_pop(L,1); - lua_getfield(L,-1,"top"); rt.top=lua_tointeger(L,-1); lua_pop(L,1); - lua_getfield(L,-1,"right"); rt.right=lua_tointeger(L,-1); lua_pop(L,1); - lua_getfield(L,-1,"bottom"); rt.bottom=lua_tointeger(L,-1); lua_pop(L,1); + lua_getfield(L,-1,"left"); rt.left=lua_tointeger(L,-1); lua_pop(L,1); + lua_getfield(L,-1,"top"); rt.top=lua_tointeger(L,-1); lua_pop(L,1); + lua_getfield(L,-1,"right"); rt.right=lua_tointeger(L,-1); lua_pop(L,1); + lua_getfield(L,-1,"bottom"); rt.bottom=lua_tointeger(L,-1); lua_pop(L,1); lua_pop(L,1); lpRect = &rt; } @@ -723,7 +686,6 @@ static int push_new_File(lua_State *L,HANDLE hread, HANDLE hwrite); // @function sleep static int l_sleep(lua_State *L) { int millisec = luaL_checkinteger(L,1); - #line 557 "winapi.l.c" release_mutex(); Sleep(millisec); lock_mutex(); @@ -745,7 +707,6 @@ static int l_show_message(lua_State *L) { const char *msg = luaL_checklstring(L,2,NULL); const char *btns = luaL_optlstring(L,3,"ok",NULL); const char *icon = luaL_optlstring(L,4,"information",NULL); - #line 574 "winapi.l.c" int res, type; WCHAR capb [512]; type = mb_const(btns) | mb_const(icon); @@ -760,7 +721,6 @@ static int l_show_message(lua_State *L) { // @function beep static int l_beep(lua_State *L) { const char *icon = luaL_optlstring(L,1,"ok",NULL); - #line 587 "winapi.l.c" return push_bool(L, MessageBeep(mb_const(icon))); } @@ -773,7 +733,6 @@ static int l_copy_file(lua_State *L) { const char *src = luaL_checklstring(L,1,NULL); const char *dest = luaL_checklstring(L,2,NULL); int fail_if_exists = luaL_optinteger(L,3,0); - #line 596 "winapi.l.c" return push_bool(L, CopyFile(src,dest,fail_if_exists)); } @@ -783,10 +742,9 @@ static int l_copy_file(lua_State *L) { // @param str text // @function output_debug_string static int l_output_debug_string(lua_State *L) { - const char *str = luaL_checklstring(L,1,NULL); - #line 605 "winapi.l.c" - OutputDebugString(str); - return 0; + const char *str = luaL_checklstring(L,1,NULL); + OutputDebugString(str); + return 0; } /// move a file. @@ -796,7 +754,6 @@ static int l_output_debug_string(lua_State *L) { static int l_move_file(lua_State *L) { const char *src = luaL_checklstring(L,1,NULL); const char *dest = luaL_checklstring(L,2,NULL); - #line 614 "winapi.l.c" return push_bool(L, MoveFile(src,dest)); } @@ -815,7 +772,6 @@ static int l_shell_exec(lua_State *L) { const char *parms = lua_tostring(L,3); const char *dir = lua_tostring(L,4); int show = luaL_optinteger(L,5,SW_SHOWNORMAL); - #line 627 "winapi.l.c" WCHAR wverb[128], wfile[MAX_WPATH], wdir[MAX_WPATH], wparms[MAX_WPATH]; int res = (DWORD_PTR)ShellExecuteW(NULL,wconv(verb),wconv(file),wconv(parms),wconv(dir),show) > 32; return push_bool(L, res); @@ -826,7 +782,6 @@ static int l_shell_exec(lua_State *L) { // @function set_clipboard static int l_set_clipboard(lua_State *L) { const char *text = luaL_checklstring(L,1,NULL); - #line 636 "winapi.l.c" HGLOBAL glob; LPWSTR p; int bufsize = 3*strlen(text); @@ -893,7 +848,6 @@ static int l_pipe(lua_State *L) { // @function open_serial static int l_open_serial(lua_State *L) { const char *defn = luaL_checklstring(L,1,NULL); - #line 701 "winapi.l.c" DCB dcb = {0}; char port[20]; HANDLE hSerial; @@ -905,7 +859,7 @@ static int l_open_serial(lua_State *L) { *q = '\0'; dcb.DCBlength = sizeof(dcb); hSerial = CreateFile(port,GENERIC_READ | GENERIC_WRITE, 0, 0, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (hSerial == INVALID_HANDLE_VALUE) { return push_perror(L,"createfile"); } @@ -949,17 +903,15 @@ static int push_wait(lua_State *L, HANDLE h, int timeout) { static int push_wait_async(lua_State *L, HANDLE h, int timeout, int callback); + /// The Event class. // @type Event -#line 761 "winapi.l.c" typedef struct { HANDLE hEvent; - } Event; - #define Event_MT "Event" Event * Event_arg(lua_State *L,int idx) { @@ -978,58 +930,51 @@ static int push_new_Event(lua_State *L,HANDLE h) { return 1; } - static void Event_ctor(lua_State *L, Event *this, HANDLE h) { - #line 762 "winapi.l.c" - this->hEvent = h; - } + this->hEvent = h; +} - /// wait for this event to be signalled. - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this event object - // @return either "OK" or "TIMEOUT" - // @function wait - static int l_Event_wait(lua_State *L) { - Event *this = Event_arg(L,1); - int timeout = luaL_optinteger(L,2,0); - #line 771 "winapi.l.c" - return push_wait(L,this->hEvent, TIMEOUT(timeout)); - } +/// wait for this event to be signalled. +// @param timeout optional timeout in millisec; defaults to waiting indefinitely. +// @return this event object +// @return either "OK" or "TIMEOUT" +// @function wait +static int l_Event_wait(lua_State *L) { + Event *this = Event_arg(L,1); + int timeout = luaL_optinteger(L,2,0); + return push_wait(L,this->hEvent, TIMEOUT(timeout)); +} - /// run callback when this process is finished. - // @param callback the callback - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this process object - // @return either "OK" or "TIMEOUT" - // @function wait_async - static int l_Event_wait_async(lua_State *L) { - Event *this = Event_arg(L,1); - int callback = 2; - int timeout = luaL_optinteger(L,3,0); - #line 781 "winapi.l.c" - return push_wait_async(L,this->hEvent, TIMEOUT(timeout), callback); - } +/// run callback when this process is finished. +// @param callback the callback +// @param timeout optional timeout in millisec; defaults to waiting indefinitely. +// @return this process object +// @return either "OK" or "TIMEOUT" +// @function wait_async +static int l_Event_wait_async(lua_State *L) { + Event *this = Event_arg(L,1); + int callback = 2; + int timeout = luaL_optinteger(L,3,0); + return push_wait_async(L,this->hEvent, TIMEOUT(timeout), callback); +} - static int l_Event_signal(lua_State *L) { - Event *this = Event_arg(L,1); - #line 785 "winapi.l.c" - SetEvent(this->hEvent); - return 0; - } +static int l_Event_signal(lua_State *L) { + Event *this = Event_arg(L,1); + SetEvent(this->hEvent); + return 0; +} - static int l_Event___gc(lua_State *L) { - Event *this = Event_arg(L,1); - #line 790 "winapi.l.c" - CloseHandle(this->hEvent); - return 0; - } -#line 793 "winapi.l.c" +static int l_Event___gc(lua_State *L) { + Event *this = Event_arg(L,1); + CloseHandle(this->hEvent); + return 0; +} static const struct luaL_Reg Event_methods [] = { - {"wait",l_Event_wait}, - {"wait_async",l_Event_wait_async}, - {"signal",l_Event_signal}, - {"__gc",l_Event___gc}, + {"wait",l_Event_wait}, + {"wait_async",l_Event_wait_async}, + {"signal",l_Event_signal}, + {"__gc",l_Event___gc}, {NULL, NULL} /* sentinel */ }; @@ -1046,19 +991,14 @@ static void Event_register (lua_State *L) { } -#line 795 "winapi.l.c" - /// The Mutex class. // @type Mutex -#line 800 "winapi.l.c" typedef struct { HANDLE hMutex; - } Mutex; - #define Mutex_MT "Mutex" Mutex * Mutex_arg(lua_State *L,int idx) { @@ -1079,36 +1019,31 @@ static int push_new_Mutex(lua_State *L,HANDLE h) { static void Mutex_ctor(lua_State *L, Mutex *this, HANDLE h) { - #line 801 "winapi.l.c" - this->hMutex = h; - } + this->hMutex = h; +} - static int l_Mutex_lock(lua_State *L) { - Mutex *this = Mutex_arg(L,1); - #line 805 "winapi.l.c" - WaitForSingleObject(this->hMutex,INFINITE); - return 0; - } +static int l_Mutex_lock(lua_State *L) { + Mutex *this = Mutex_arg(L,1); + WaitForSingleObject(this->hMutex,INFINITE); + return 0; +} - static int l_Mutex_release(lua_State *L) { - Mutex *this = Mutex_arg(L,1); - #line 810 "winapi.l.c" - ReleaseMutex(this->hMutex); - return 0; - } +static int l_Mutex_release(lua_State *L) { + Mutex *this = Mutex_arg(L,1); + ReleaseMutex(this->hMutex); + return 0; +} - static int l_Mutex___gc(lua_State *L) { - Mutex *this = Mutex_arg(L,1); - #line 815 "winapi.l.c" - CloseHandle(this->hMutex); - return 0; - } -#line 818 "winapi.l.c" +static int l_Mutex___gc(lua_State *L) { + Mutex *this = Mutex_arg(L,1); + CloseHandle(this->hMutex); + return 0; +} static const struct luaL_Reg Mutex_methods [] = { - {"lock",l_Mutex_lock}, - {"release",l_Mutex_release}, - {"__gc",l_Mutex___gc}, + {"lock",l_Mutex_lock}, + {"release",l_Mutex_release}, + {"__gc",l_Mutex___gc}, {NULL, NULL} /* sentinel */ }; @@ -1125,8 +1060,6 @@ static void Mutex_register (lua_State *L) { } -#line 820 "winapi.l.c" - static int _event_count = 1; /// create a new @{Event} object. @@ -1134,7 +1067,6 @@ static int _event_count = 1; // @return @{Event}, or nil, error. static int l_event(lua_State *L) { const char *name = luaL_optlstring(L,1,"?",NULL); - #line 826 "winapi.l.c" HANDLE hEvent; char buff[MAX_PATH]; if (strcmp(name,"?")==0) { @@ -1154,23 +1086,21 @@ static int l_event(lua_State *L) { // @return @{Mutex}, or nil, error. static int l_mutex(lua_State *L) { const char *name = luaL_optlstring(L,1,"",NULL); - #line 844 "winapi.l.c" return push_new_Mutex(L,CreateMutex(NULL,FALSE,*name==0 ? NULL : name)); } + /// A class representing a Windows process. // this example was [helpful](http://msdn.microsoft.com/en-us/library/ms682623%28VS.85%29.aspx) // @type Process -#line 854 "winapi.l.c" typedef struct { HANDLE hProcess; + HANDLE hJob; int pid; - } Process; - #define Process_MT "Process" Process * Process_arg(lua_State *L,int idx) { @@ -1179,222 +1109,221 @@ Process * Process_arg(lua_State *L,int idx) { return this; } -static void Process_ctor(lua_State *L, Process *this, Int pid, HANDLE ph); +static void Process_ctor(lua_State *L, Process *this, Int pid, HANDLE ph, HANDLE jh); -static int push_new_Process(lua_State *L,Int pid, HANDLE ph) { +static int push_new_Process(lua_State *L,Int pid, HANDLE ph, HANDLE jh) { Process *this = (Process *)lua_newuserdata(L,sizeof(Process)); luaL_getmetatable(L,Process_MT); lua_setmetatable(L,-2); - Process_ctor(L,this,pid,ph); + Process_ctor(L,this,pid,ph,jh); return 1; } +static void Process_ctor(lua_State *L, Process *this, Int pid, HANDLE ph, HANDLE jh) { + this->pid = pid; + this->hJob = jh; + if (ph) { + this->hProcess = ph; + } + if (!this->hProcess) + this->hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | + PROCESS_VM_READ | PROCESS_TERMINATE, + FALSE, pid); + if (!this->hProcess) + this->hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | + PROCESS_VM_READ, + FALSE, pid); + if (!this->hProcess) + this->hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION | + PROCESS_TERMINATE | SYNCHRONIZE, + FALSE, pid); +} -static void Process_ctor(lua_State *L, Process *this, Int pid, HANDLE ph) { - #line 855 "winapi.l.c" - if (ph) { - this->pid = pid; - this->hProcess = ph; +/// get the name of the process. +// @param full true if you want the full path; otherwise returns the base name. +// @function get_process_name +static int l_Process_get_process_name(lua_State *L) { + Process *this = Process_arg(L,1); + int full = lua_toboolean(L,2); + HMODULE hMod; + DWORD cbNeeded; + wchar_t modname[MAX_PATH]; + + if (EnumProcessModules(this->hProcess, &hMod, sizeof(hMod), &cbNeeded)) { + if (full) { + GetModuleFileNameExW(this->hProcess, hMod, modname, sizeof(modname)); } else { - this->pid = pid; - this->hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | - PROCESS_VM_READ | PROCESS_TERMINATE, - FALSE, pid ); - if (!this->hProcess) { - this->hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | - PROCESS_VM_READ, - FALSE, pid ); - } + GetModuleBaseNameW(this->hProcess, hMod, modname, sizeof(modname)); } + return push_wstring(L,modname); + } else { + return push_error(L); } +} - /// get the name of the process. - // @param full true if you want the full path; otherwise returns the base name. - // @function get_process_name - static int l_Process_get_process_name(lua_State *L) { - Process *this = Process_arg(L,1); - int full = lua_toboolean(L,2); - #line 875 "winapi.l.c" - HMODULE hMod; - DWORD cbNeeded; - wchar_t modname[MAX_PATH]; +/// get the the pid of the process. +// @function get_pid +static int l_Process_get_pid(lua_State *L) { + Process *this = Process_arg(L,1); + lua_pushnumber(L, this->pid); + return 1; +} - if (EnumProcessModules(this->hProcess, &hMod, sizeof(hMod), &cbNeeded)) { - if (full) { - GetModuleFileNameExW(this->hProcess, hMod, modname, sizeof(modname)); - } else { - GetModuleBaseNameW(this->hProcess, hMod, modname, sizeof(modname)); - } - return push_wstring(L,modname); - } else { - return push_error(L); - } +/// kill the process. +// @{test-spawn.lua} kills a launched process after a certain amount of output. +// @function kill +static int l_Process_kill(lua_State *L) { + Process *this = Process_arg(L,1); + if (this->hJob) { + CloseHandle(this->hJob); + this->hJob = NULL; } - - /// get the the pid of the process. - // @function get_pid - static int l_Process_get_pid(lua_State *L) { - Process *this = Process_arg(L,1); - #line 894 "winapi.l.c" - lua_pushnumber(L, this->pid); - return 1; - } - - /// kill the process. - // @{test-spawn.lua} kills a launched process after a certain amount of output. - // @function kill - static int l_Process_kill(lua_State *L) { - Process *this = Process_arg(L,1); - #line 902 "winapi.l.c" + if (this->hProcess) TerminateProcess(this->hProcess,0); - return 0; - } + return 0; +} - /// get the working size of the process. - // @return minimum working set size - // @return maximum working set size. - // @function get_working_size - static int l_Process_get_working_size(lua_State *L) { - Process *this = Process_arg(L,1); - #line 911 "winapi.l.c" - SIZE_T minsize, maxsize; - GetProcessWorkingSetSize(this->hProcess,&minsize,&maxsize); - lua_pushnumber(L,minsize/1024); - lua_pushnumber(L,maxsize/1024); - return 2; - } +/// get the working size of the process. +// @return minimum working set size +// @return maximum working set size. +// @function get_working_size +static int l_Process_get_working_size(lua_State *L) { + Process *this = Process_arg(L,1); + SIZE_T minsize, maxsize; + GetProcessWorkingSetSize(this->hProcess,&minsize,&maxsize); + lua_pushnumber(L,minsize/1024); + lua_pushnumber(L,maxsize/1024); + return 2; +} - /// get the start time of this process. - // @return a table in the same format as os.time() and os.date() expects. - // @function get_start_time - static int l_Process_get_start_time(lua_State *L) { - Process *this = Process_arg(L,1); - #line 922 "winapi.l.c" - FILETIME create,exit,kernel,user,local; - SYSTEMTIME time; - GetProcessTimes(this->hProcess,&create,&exit,&kernel,&user); - FileTimeToLocalFileTime(&create,&local); - FileTimeToSystemTime(&local,&time); - #define set(name,val) lua_pushinteger(L,val); lua_setfield(L,-2,#name); - lua_newtable(L); - set(year,time.wYear); - set(month,time.wMonth); - set(day,time.wDay); - set(hour,time.wHour); - set(min,time.wMinute); - set(sec,time.wSecond); - #undef set - return 1; - } +/// get the start time of this process. +// @return a table in the same format as os.time() and os.date() expects. +// @function get_start_time +static int l_Process_get_start_time(lua_State *L) { + Process *this = Process_arg(L,1); + FILETIME create,exit,kernel,user,local; + SYSTEMTIME time; + GetProcessTimes(this->hProcess,&create,&exit,&kernel,&user); + FileTimeToLocalFileTime(&create,&local); + FileTimeToSystemTime(&local,&time); + #define set(name,val) lua_pushinteger(L,val); lua_setfield(L,-2,#name); + lua_newtable(L); + set(year,time.wYear); + set(month,time.wMonth); + set(day,time.wDay); + set(hour,time.wHour); + set(min,time.wMinute); + set(sec,time.wSecond); + #undef set + return 1; +} - // MS likes to be different: the 64-bit value encoded in FILETIME - // is defined as the number of 100-nsec intervals since Jan 1, 1601 UTC - static double fileTimeToMillisec(FILETIME *ft) { - ULARGE_INTEGER ui; - ui.LowPart = ft->dwLowDateTime; - ui.HighPart = ft->dwHighDateTime; - return (double) (ui.QuadPart/10000); - } +// MS likes to be different: the 64-bit value encoded in FILETIME +// is defined as the number of 100-nsec intervals since Jan 1, 1601 UTC +static double fileTimeToMillisec(FILETIME *ft) { + ULARGE_INTEGER ui; + ui.LowPart = ft->dwLowDateTime; + ui.HighPart = ft->dwHighDateTime; + return (double) (ui.QuadPart/10000); +} - /// elapsed run time of this process. - // @return user time in msec - // @return system time in msec - // @function get_run_times - static int l_Process_get_run_times(lua_State *L) { - Process *this = Process_arg(L,1); - #line 953 "winapi.l.c" - FILETIME create,exit,kernel,user; - GetProcessTimes(this->hProcess,&create,&exit,&kernel,&user); - lua_pushnumber(L,fileTimeToMillisec(&user)); - lua_pushnumber(L,fileTimeToMillisec(&kernel)); - return 2; - } +/// elapsed run time of this process. +// @return user time in msec +// @return system time in msec +// @function get_run_times +static int l_Process_get_run_times(lua_State *L) { + Process *this = Process_arg(L,1); + FILETIME create,exit,kernel,user; + GetProcessTimes(this->hProcess,&create,&exit,&kernel,&user); + lua_pushnumber(L,fileTimeToMillisec(&user)); + lua_pushnumber(L,fileTimeToMillisec(&kernel)); + return 2; +} - /// wait for this process to finish. - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this process object - // @return either "OK" or "TIMEOUT" - // @function wait - static int l_Process_wait(lua_State *L) { - Process *this = Process_arg(L,1); - int timeout = luaL_optinteger(L,2,0); - #line 966 "winapi.l.c" - return push_wait(L,this->hProcess, TIMEOUT(timeout)); - } +/// wait for this process to finish. +// @param timeout optional timeout in millisec; defaults to waiting indefinitely. +// @return this process object +// @return either "OK" or "TIMEOUT" +// @function wait +static int l_Process_wait(lua_State *L) { + Process *this = Process_arg(L,1); + int timeout = luaL_optinteger(L,2,0); + return push_wait(L,this->hProcess, TIMEOUT(timeout)); +} - /// run callback when this process is finished. - // @param callback the callback - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this process object - // @return either "OK" or "TIMEOUT" - // @function wait_async - static int l_Process_wait_async(lua_State *L) { - Process *this = Process_arg(L,1); - int callback = 2; - int timeout = luaL_optinteger(L,3,0); - #line 976 "winapi.l.c" - return push_wait_async(L,this->hProcess, TIMEOUT(timeout), callback); - } +/// run callback when this process is finished. +// @param callback the callback +// @param timeout optional timeout in millisec; defaults to waiting indefinitely. +// @return this process object +// @return either "OK" or "TIMEOUT" +// @function wait_async +static int l_Process_wait_async(lua_State *L) { + Process *this = Process_arg(L,1); + int callback = 2; + int timeout = luaL_optinteger(L,3,0); + return push_wait_async(L,this->hProcess, TIMEOUT(timeout), callback); +} - /// wait for this process to become idle and ready for input. - // Only makes sense for processes with windows (will return immediately if not) - // @param timeout optional timeout in millisec - // @return this process object - // @return either "OK" or "TIMEOUT" - // @function wait_for_input_idle - static int l_Process_wait_for_input_idle(lua_State *L) { - Process *this = Process_arg(L,1); - int timeout = luaL_optinteger(L,2,0); - #line 987 "winapi.l.c" - return push_wait_result(L, WaitForInputIdle(this->hProcess, TIMEOUT(timeout))); - } +/// wait for this process to become idle and ready for input. +// Only makes sense for processes with windows (will return immediately if not) +// @param timeout optional timeout in millisec +// @return this process object +// @return either "OK" or "TIMEOUT" +// @function wait_for_input_idle +static int l_Process_wait_for_input_idle(lua_State *L) { + Process *this = Process_arg(L,1); + int timeout = luaL_optinteger(L,2,0); + return push_wait_result(L, WaitForInputIdle(this->hProcess, TIMEOUT(timeout))); +} - /// exit code of this process. - // (Only makes sense if the process has in fact finished.) - // @return exit code - // @function get_exit_code - static int l_Process_get_exit_code(lua_State *L) { - Process *this = Process_arg(L,1); - #line 995 "winapi.l.c" - DWORD code; - GetExitCodeProcess(this->hProcess, &code); - lua_pushinteger(L,code); - return 1; - } +/// exit code of this process. +// (Only makes sense if the process has in fact finished.) +// @return exit code +// @function get_exit_code +static int l_Process_get_exit_code(lua_State *L) { + Process *this = Process_arg(L,1); + DWORD code; + GetExitCodeProcess(this->hProcess, &code); + lua_pushinteger(L,code); + return 1; +} - /// close this process handle. - // @function close - static int l_Process_close(lua_State *L) { - Process *this = Process_arg(L,1); - #line 1004 "winapi.l.c" +/// close this process handle. +// @function close +static int l_Process_close(lua_State *L) { + Process *this = Process_arg(L,1); + if (this->hJob) + CloseHandle(this->hJob); + this->hJob = NULL; + if (this->hProcess) CloseHandle(this->hProcess); - this->hProcess = NULL; - return 0; - } + this->hProcess = NULL; + return 0; +} - static int l_Process___gc(lua_State *L) { - Process *this = Process_arg(L,1); - #line 1010 "winapi.l.c" - if (this->hProcess != NULL) - CloseHandle(this->hProcess); - return 0; - } -#line 1014 "winapi.l.c" +static int l_Process___gc(lua_State *L) { + Process *this = Process_arg(L,1); + if (this->hJob != NULL) + CloseHandle(this->hJob); + if (this->hProcess != NULL) + CloseHandle(this->hProcess); + return 0; +} static const struct luaL_Reg Process_methods [] = { - {"get_process_name",l_Process_get_process_name}, - {"get_pid",l_Process_get_pid}, - {"kill",l_Process_kill}, - {"get_working_size",l_Process_get_working_size}, - {"get_start_time",l_Process_get_start_time}, - {"get_run_times",l_Process_get_run_times}, - {"wait",l_Process_wait}, - {"wait_async",l_Process_wait_async}, - {"wait_for_input_idle",l_Process_wait_for_input_idle}, - {"get_exit_code",l_Process_get_exit_code}, - {"close",l_Process_close}, - {"__gc",l_Process___gc}, + {"get_process_name",l_Process_get_process_name}, + {"get_pid",l_Process_get_pid}, + {"kill",l_Process_kill}, + {"get_working_size",l_Process_get_working_size}, + {"get_start_time",l_Process_get_start_time}, + {"get_run_times",l_Process_get_run_times}, + {"wait",l_Process_wait}, + {"wait_async",l_Process_wait_async}, + {"wait_for_input_idle",l_Process_wait_for_input_idle}, + {"get_exit_code",l_Process_get_exit_code}, + {"close",l_Process_close}, + {"__gc",l_Process___gc}, {NULL, NULL} /* sentinel */ }; @@ -1411,8 +1340,6 @@ static void Process_register (lua_State *L) { } -#line 1016 "winapi.l.c" - /// Working with processes. // @{readme.md.Creating_and_working_with_Processes} // @section Processes @@ -1423,8 +1350,7 @@ static void Process_register (lua_State *L) { // @function process_from_id static int l_process_from_id(lua_State *L) { int pid = luaL_checkinteger(L,1); - #line 1025 "winapi.l.c" - return push_new_Process(L,pid,NULL); + return push_new_Process(L,pid,NULL,NULL); } /// process id of current process. @@ -1439,7 +1365,7 @@ static int l_get_current_pid(lua_State *L) { // @return @{Process} // @function get_current_process static int l_get_current_process(lua_State *L) { - return push_new_Process(L,0,GetCurrentProcess()); + return push_new_Process(L,GetCurrentProcessId(),GetCurrentProcess(),NULL); } /// get all process ids in the system. @@ -1477,7 +1403,6 @@ static int l_wait_for_processes(lua_State *L) { int processes = 1; int all = lua_toboolean(L,2); int timeout = luaL_optinteger(L,3,0); - #line 1075 "winapi.l.c" int status, i; void *p; int n = lua_objlen(L,processes); @@ -1564,20 +1489,18 @@ void lcb_free(void *data) { #define lcb_bufsz(data) ((LuaCallback *)data)->bufsz #define lcb_handle(data) ((LuaCallback *)data)->handle + /// Thread object. This is returned by the @{File:read_async} method and the @{make_timer}, // @{make_pipe_server} and @{watch_for_file_changes} functions. Useful to kill a thread // and free associated resources. // @type Thread -#line 1169 "winapi.l.c" typedef struct { HANDLE thread; LuaCallback *lcb; - } Thread; - #define Thread_MT "Thread" Thread * Thread_arg(lua_State *L,int idx) { @@ -1596,109 +1519,97 @@ static int push_new_Thread(lua_State *L,PLuaCallback lcb, HANDLE thread) { return 1; } - static void Thread_ctor(lua_State *L, Thread *this, PLuaCallback lcb, HANDLE thread) { - #line 1170 "winapi.l.c" - this->lcb = lcb; - this->thread = thread; - } + this->lcb = lcb; + this->thread = thread; +} - /// suspend this thread. - // @function suspend - static int l_Thread_suspend(lua_State *L) { - Thread *this = Thread_arg(L,1); - #line 1177 "winapi.l.c" - return push_bool(L, SuspendThread(this->thread) >= 0); - } +/// suspend this thread. +// @function suspend +static int l_Thread_suspend(lua_State *L) { + Thread *this = Thread_arg(L,1); + return push_bool(L, SuspendThread(this->thread) >= 0); +} - /// resume a suspended thread. - // @function resume - static int l_Thread_resume(lua_State *L) { - Thread *this = Thread_arg(L,1); - #line 1183 "winapi.l.c" - return push_bool(L, ResumeThread(this->thread) >= 0); - } +/// resume a suspended thread. +// @function resume +static int l_Thread_resume(lua_State *L) { + Thread *this = Thread_arg(L,1); + return push_bool(L, ResumeThread(this->thread) >= 0); +} - /// kill this thread. Generally considered a 'nuclear' option, but - // this implementation will free any associated callback references, buffers - // and handles. @{test-timer.lua} shows how a timer can be terminated. - // @function kill - static int l_Thread_kill(lua_State *L) { - Thread *this = Thread_arg(L,1); - #line 1191 "winapi.l.c" - BOOL ret = TerminateThread(this->thread,1); - lcb_free(this->lcb); - return push_bool(L,ret); - } +/// kill this thread. Generally considered a 'nuclear' option, but +// this implementation will free any associated callback references, buffers +// and handles. @{test-timer.lua} shows how a timer can be terminated. +// @function kill +static int l_Thread_kill(lua_State *L) { + Thread *this = Thread_arg(L,1); + BOOL ret = TerminateThread(this->thread,1); + lcb_free(this->lcb); + return push_bool(L,ret); +} - /// set a thread's priority - // @param p positive integer to increase thread priority - // @function set_priority - static int l_Thread_set_priority(lua_State *L) { - Thread *this = Thread_arg(L,1); - int p = luaL_checkinteger(L,2); - #line 1200 "winapi.l.c" - return push_bool(L, SetThreadPriority(this->thread,p)); - } +/// set a thread's priority +// @param p positive integer to increase thread priority +// @function set_priority +static int l_Thread_set_priority(lua_State *L) { + Thread *this = Thread_arg(L,1); + int p = luaL_checkinteger(L,2); + return push_bool(L, SetThreadPriority(this->thread,p)); +} - /// get a thread's priority - // @function get_priority - static int l_Thread_get_priority(lua_State *L) { - Thread *this = Thread_arg(L,1); - #line 1206 "winapi.l.c" - int res = GetThreadPriority(this->thread); - if (res != THREAD_PRIORITY_ERROR_RETURN) { - lua_pushinteger(L,res); - return 1; - } else { - return push_error(L); - } - } - /// wait for this thread to finish. - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this thread object - // @return either "OK" or "TIMEOUT" - // @function wait - static int l_Thread_wait(lua_State *L) { - Thread *this = Thread_arg(L,1); - int timeout = luaL_optinteger(L,2,0); - #line 1220 "winapi.l.c" - return push_wait(L,this->thread, TIMEOUT(timeout)); +/// get a thread's priority +// @function get_priority +static int l_Thread_get_priority(lua_State *L) { + Thread *this = Thread_arg(L,1); + int res = GetThreadPriority(this->thread); + if (res != THREAD_PRIORITY_ERROR_RETURN) { + lua_pushinteger(L,res); + return 1; + } else { + return push_error(L); } +} +/// wait for this thread to finish. +// @param timeout optional timeout in millisec; defaults to waiting indefinitely. +// @return this thread object +// @return either "OK" or "TIMEOUT" +// @function wait +static int l_Thread_wait(lua_State *L) { + Thread *this = Thread_arg(L,1); + int timeout = luaL_optinteger(L,2,0); + return push_wait(L,this->thread, TIMEOUT(timeout)); +} - /// run callback when this thread is finished. - // @param callback the callback - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this thread object - // @return either "OK" or "TIMEOUT" - // @function wait_async - static int l_Thread_wait_async(lua_State *L) { - Thread *this = Thread_arg(L,1); - int callback = 2; - int timeout = luaL_optinteger(L,3,0); - #line 1230 "winapi.l.c" - return push_wait_async(L,this->thread, TIMEOUT(timeout), callback); - } +/// run callback when this thread is finished. +// @param callback the callback +// @param timeout optional timeout in millisec; defaults to waiting indefinitely. +// @return this thread object +// @return either "OK" or "TIMEOUT" +// @function wait_async +static int l_Thread_wait_async(lua_State *L) { + Thread *this = Thread_arg(L,1); + int callback = 2; + int timeout = luaL_optinteger(L,3,0); + return push_wait_async(L,this->thread, TIMEOUT(timeout), callback); +} - - static int l_Thread___gc(lua_State *L) { - Thread *this = Thread_arg(L,1); - #line 1235 "winapi.l.c" - // lcb_free(this->lcb); concerned that this cd kick in prematurely! - CloseHandle(this->thread); - return 0; - } -#line 1239 "winapi.l.c" +static int l_Thread___gc(lua_State *L) { + Thread *this = Thread_arg(L,1); + // lcb_free(this->lcb); concerned that this cd kick in prematurely! + CloseHandle(this->thread); + return 0; +} static const struct luaL_Reg Thread_methods [] = { - {"suspend",l_Thread_suspend}, - {"resume",l_Thread_resume}, - {"kill",l_Thread_kill}, - {"set_priority",l_Thread_set_priority}, - {"get_priority",l_Thread_get_priority}, - {"wait",l_Thread_wait}, - {"wait_async",l_Thread_wait_async}, - {"__gc",l_Thread___gc}, + {"suspend",l_Thread_suspend}, + {"resume",l_Thread_resume}, + {"kill",l_Thread_kill}, + {"set_priority",l_Thread_set_priority}, + {"get_priority",l_Thread_get_priority}, + {"wait",l_Thread_wait}, + {"wait_async",l_Thread_wait_async}, + {"__gc",l_Thread___gc}, {NULL, NULL} /* sentinel */ }; @@ -1715,8 +1626,6 @@ static void Thread_register (lua_State *L) { } -#line 1241 "winapi.l.c" - typedef LPTHREAD_START_ROUTINE TCB; int lcb_new_thread(TCB fun, void *data) { @@ -1737,19 +1646,17 @@ static int push_wait_async(lua_State *L, HANDLE h, int timeout, int callback) { return lcb_new_thread((TCB)handle_waiter,lcb); } + /// this represents a raw Windows file handle. // The write handle may be distinct from the read handle. // @type File -#line 1268 "winapi.l.c" typedef struct { callback_data_ HANDLE hWrite; - } File; - #define File_MT "File" File * File_arg(lua_State *L,int idx) { @@ -1770,96 +1677,88 @@ static int push_new_File(lua_State *L,HANDLE hread, HANDLE hwrite) { static void File_ctor(lua_State *L, File *this, HANDLE hread, HANDLE hwrite) { - #line 1269 "winapi.l.c" - lcb_handle(this) = hread; - this->hWrite = hwrite; - this->L = L; - lcb_allocate_buffer(this,FILE_BUFF_SIZE); - } + lcb_handle(this) = hread; + this->hWrite = hwrite; + this->L = L; + lcb_allocate_buffer(this,FILE_BUFF_SIZE); +} - /// write to a file. - // @param s text - // @return number of bytes written. - // @function write - static int l_File_write(lua_State *L) { - File *this = File_arg(L,1); - const char *s = luaL_checklstring(L,2,NULL); - #line 1280 "winapi.l.c" - DWORD bytesWrote; - WriteFile(this->hWrite, s, lua_objlen(L,2), &bytesWrote, NULL); - lua_pushinteger(L,bytesWrote); +/// write to a file. +// @param s text +// @return number of bytes written. +// @function write +static int l_File_write(lua_State *L) { + File *this = File_arg(L,1); + const char *s = luaL_checklstring(L,2,NULL); + DWORD bytesWrote; + WriteFile(this->hWrite, s, lua_objlen(L,2), &bytesWrote, NULL); + lua_pushinteger(L,bytesWrote); + return 1; +} + +static BOOL raw_read (File *this) { + DWORD bytesRead = 0; + BOOL res = ReadFile(lcb_handle(this), lcb_buf(this), lcb_bufsz(this), &bytesRead, NULL); + lcb_buf(this)[bytesRead] = '\0'; + return res && bytesRead; +} + +/// read from a file. +// Please note that this is not buffered, and you will have to +// split into lines, etc yourself. +// @return text if successful, nil plus error otherwise. +// @function read +static int l_File_read(lua_State *L) { + File *this = File_arg(L,1); + if (raw_read(this)) { + lua_pushstring(L,lcb_buf(this)); return 1; + } else { + return push_error(L); } +} - static BOOL raw_read (File *this) { - DWORD bytesRead = 0; - BOOL res = ReadFile(lcb_handle(this), lcb_buf(this), lcb_bufsz(this), &bytesRead, NULL); - lcb_buf(this)[bytesRead] = '\0'; - return res && bytesRead; - } +static void file_reader (File *this) { // background reader thread + int n; + do { + n = raw_read(this); + // empty buffer is passed at end - we can discard the callback then. + lcb_call (this,0,lcb_buf(this),n == 0 ? DISCARD : 0); + } while (n); +} - /// read from a file. - // Please note that this is not buffered, and you will have to - // split into lines, etc yourself. - // @return text if successful, nil plus error otherwise. - // @function read - static int l_File_read(lua_State *L) { - File *this = File_arg(L,1); - #line 1299 "winapi.l.c" - if (raw_read(this)) { - lua_pushstring(L,lcb_buf(this)); - return 1; - } else { - return push_error(L); - } - } +/// asynchronous read. +// @param callback function that will receive each chunk of text +// as it comes in. +// @return @{Thread} +// @function read_async +static int l_File_read_async(lua_State *L) { + File *this = File_arg(L,1); + int callback = 2; + this->callback = make_ref(L,callback); + return lcb_new_thread((TCB)&file_reader,this); +} - static void file_reader (File *this) { // background reader thread - int n; - do { - n = raw_read(this); - // empty buffer is passed at end - we can discard the callback then. - lcb_call (this,0,lcb_buf(this),n == 0 ? DISCARD : 0); - } while (n); +static int l_File_close(lua_State *L) { + File *this = File_arg(L,1); + if (this->hWrite != lcb_handle(this)) + CloseHandle(this->hWrite); + lcb_free(this); + return 0; +} - } - - /// asynchronous read. - // @param callback function that will receive each chunk of text - // as it comes in. - // @return @{Thread} - // @function read_async - static int l_File_read_async(lua_State *L) { - File *this = File_arg(L,1); - int callback = 2; - #line 1323 "winapi.l.c" - this->callback = make_ref(L,callback); - return lcb_new_thread((TCB)&file_reader,this); - } - - static int l_File_close(lua_State *L) { - File *this = File_arg(L,1); - #line 1328 "winapi.l.c" - if (this->hWrite != lcb_handle(this)) - CloseHandle(this->hWrite); - lcb_free(this); - return 0; - } - - static int l_File___gc(lua_State *L) { - File *this = File_arg(L,1); - #line 1335 "winapi.l.c" - free(this->buf); - return 0; - } -#line 1338 "winapi.l.c" +static int l_File___gc(lua_State *L) { + File *this = File_arg(L,1); + free(this->buf); + return 0; +} static const struct luaL_Reg File_methods [] = { - {"write",l_File_write}, - {"read",l_File_read}, - {"read_async",l_File_read_async}, - {"close",l_File_close}, - {"__gc",l_File___gc}, + {"write",l_File_write}, + {"read",l_File_read}, + {"read_async",l_File_read_async}, + {"close",l_File_close}, + {"__gc",l_File___gc}, {NULL, NULL} /* sentinel */ }; @@ -1876,10 +1775,6 @@ static void File_register (lua_State *L) { } - -#line 1341 "winapi.l.c" - - /// Launching processes. // @section Launch @@ -1895,7 +1790,6 @@ static void File_register (lua_State *L) { static int l_setenv(lua_State *L) { const char *name = luaL_checklstring(L,1,NULL); const char *value = luaL_checklstring(L,2,NULL); - #line 1354 "winapi.l.c" WCHAR wname[256],wvalue[MAX_WPATH]; return push_bool(L, SetEnvironmentVariableW(wconv(name),wconv(value))); } @@ -1903,19 +1797,21 @@ static int l_setenv(lua_State *L) { /// Spawn a process. // @param program the command-line (program + parameters) // @param dir the working directory for the process (optional) +// @param isjob start process in the windows job and waiting parent process exit // @return @{Process} // @return @{File} // @function spawn_process static int l_spawn_process(lua_State *L) { const char *program = luaL_checklstring(L,1,NULL); const char *dir = lua_tostring(L,2); - #line 1365 "winapi.l.c" + int isjob = lua_toboolean(L,3); + HANDLE hJob = NULL; WCHAR wdir [MAX_WPATH]; SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), 0, 0}; SECURITY_DESCRIPTOR sd; STARTUPINFOW si = { - sizeof(STARTUPINFOW), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; + sizeof(STARTUPINFOW), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; HANDLE hPipeRead,hWriteSubProcess; HANDLE hRead2,hPipeWrite; BOOL running; @@ -1947,7 +1843,16 @@ static int l_spawn_process(lua_State *L) { si.hStdOutput = hPipeWrite; si.hStdError = hPipeWrite; - running = CreateProcessW( + if (isjob) { + hJob = CreateJobObject(NULL, NULL); + JOBOBJECT_EXTENDED_LIMIT_INFORMATION info = { }; + info.BasicLimitInformation.LimitFlags = + JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; + SetInformationJobObject(hJob, + JobObjectExtendedLimitInformation, + &info, sizeof(info)); + running = create_process_in_job( + hJob, NULL, (LPWSTR)wstring(program), NULL, NULL, @@ -1955,15 +1860,27 @@ static int l_spawn_process(lua_State *L) { NULL, wconv(dir), &si, &pi); + } else { + running = CreateProcessW( + NULL, + (LPWSTR)wstring(program), + NULL, NULL, + TRUE, CREATE_NEW_PROCESS_GROUP, + NULL, + wconv(dir), + &si, &pi); + } if (running) { CloseHandle(pi.hThread); CloseHandle(hRead2); CloseHandle(hPipeWrite); - push_new_Process(L,pi.dwProcessId,pi.hProcess); + push_new_Process(L,pi.dwProcessId,pi.hProcess,hJob); push_new_File(L,hPipeRead,hWriteSubProcess); return 2; } else { + if (hJob) + CloseHandle(hJob); return push_error(L); } } @@ -2000,12 +1917,12 @@ static void launcher(LuaCallback *lcb) { static int l_thread(lua_State *L) { int fun = 1; int data = 2; - #line 1453 "winapi.l.c" LuaCallback *lcb = lcb_callback(NULL, L, fun); lcb->bufsz = make_ref(L,data); return lcb_new_thread((TCB)launcher,lcb); } + // Timer support ////////// typedef struct { callback_data_ @@ -2035,7 +1952,6 @@ static void timer_thread(TimerData *data) { // background timer thread static int l_make_timer(lua_State *L) { int msec = luaL_checkinteger(L,1); int callback = 2; - #line 1485 "winapi.l.c" TimerData *data = (TimerData *)malloc(sizeof(TimerData)); data->msec = msec; lcb_callback(data,L,callback); @@ -2073,7 +1989,7 @@ static void pipe_server_thread(PipeServerParms *parms) { // returns zero, GetLastError returns ERROR_PIPE_CONNECTED. connected = ConnectNamedPipe(hPipe, NULL) ? - TRUE : (GetLastError() == ERROR_PIPE_CONNECTED); + TRUE : (GetLastError() == ERROR_PIPE_CONNECTED); if (connected) { push_new_File(parms->L,hPipe,hPipe); @@ -2092,16 +2008,15 @@ static void pipe_server_thread(PipeServerParms *parms) { // @function open_pipe static int l_open_pipe(lua_State *L) { const char *pipename = luaL_optlstring(L,1,"\\\\.\\pipe\\luawinapi",NULL); - #line 1540 "winapi.l.c" HANDLE hPipe = CreateFile( - pipename, - GENERIC_READ | // read and write access - GENERIC_WRITE, - 0, // no sharing - NULL, // default security attributes - OPEN_EXISTING, // opens existing pipe - 0, // default attributes - NULL); // no template file + pipename, + GENERIC_READ | // read and write access + GENERIC_WRITE, + 0, // no sharing + NULL, // default security attributes + OPEN_EXISTING, // opens existing pipe + 0, // default attributes + NULL); // no template file if (hPipe == INVALID_HANDLE_VALUE) { return push_error(L); } else { @@ -2121,7 +2036,6 @@ static int l_open_pipe(lua_State *L) { static int l_make_pipe_server(lua_State *L) { int callback = 1; const char *pipename = luaL_optlstring(L,2,"\\\\.\\pipe\\luawinapi",NULL); - #line 1566 "winapi.l.c" PipeServerParms *psp = (PipeServerParms*)malloc(sizeof(PipeServerParms)); lcb_callback(psp,L,callback); psp->pipename = pipename; @@ -2141,7 +2055,6 @@ static int l_make_pipe_server(lua_State *L) { // @function short_path static int l_short_path(lua_State *L) { const char *path = luaL_checklstring(L,1,NULL); - #line 1584 "winapi.l.c" WCHAR wpath[MAX_WPATH]; HANDLE hFile; int res; @@ -2227,7 +2140,6 @@ static int l_get_logical_drives(lua_State *L) { // @function get_drive_type static int l_get_drive_type(lua_State *L) { const char *root = luaL_checklstring(L,1,NULL); - #line 1668 "winapi.l.c" UINT res = GetDriveType(root); const char *type = "?"; switch(res) { @@ -2250,7 +2162,6 @@ static int l_get_drive_type(lua_State *L) { // @function get_disk_free_space static int l_get_disk_free_space(lua_State *L) { const char *root = luaL_checklstring(L,1,NULL); - #line 1689 "winapi.l.c" ULARGE_INTEGER freebytes, totalbytes; if (! GetDiskFreeSpaceEx(root,&freebytes,&totalbytes,NULL)) { return push_error(L); @@ -2266,7 +2177,6 @@ static int l_get_disk_free_space(lua_State *L) { // @function get_disk_network_name static int l_get_disk_network_name(lua_State *L) { const char *root = luaL_checklstring(L,1,NULL); - #line 1703 "winapi.l.c" DWORD size = sizeof(wbuff); DWORD res = WNetGetConnectionW(wstring(root),wbuff,&size); if (res == NO_ERROR) { @@ -2291,9 +2201,9 @@ static void file_change_thread(FileChangeParms *fc) { // background file monitor // This fills in some gaps: // http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw_19.html if (! ReadDirectoryChangesW(lcb_handle(fc),lcb_buf(fc),lcb_bufsz(fc), - fc->subdirs, fc->how, &bytes,NULL,NULL)) { - lcb_call(fc,-1,last_error(0),INTEGER | DISCARD); - break; + fc->subdirs, fc->how, &bytes,NULL,NULL)) { + lcb_call(fc,-1,last_error(0),INTEGER | DISCARD); + break; } next = 0; offset = 0; @@ -2346,7 +2256,6 @@ static int l_watch_for_file_changes(lua_State *L) { int how = luaL_checkinteger(L,2); int subdirs = lua_toboolean(L,3); int callback = 4; - #line 1778 "winapi.l.c" FileChangeParms *fc = (FileChangeParms*)malloc(sizeof(FileChangeParms)); lcb_callback(fc,L,callback); fc->how = how; @@ -2358,7 +2267,7 @@ static int l_watch_for_file_changes(lua_State *L) { OPEN_ALWAYS, FILE_FLAG_BACKUP_SEMANTICS, NULL - ); + ); if (lcb_handle(fc) == INVALID_HANDLE_VALUE) { return push_error(L); } @@ -2366,17 +2275,15 @@ static int l_watch_for_file_changes(lua_State *L) { return lcb_new_thread((TCB)&file_change_thread,fc); } + /// Class representing Windows registry keys. // @type Regkey -#line 1802 "winapi.l.c" typedef struct { HKEY key; - } Regkey; - #define Regkey_MT "Regkey" Regkey * Regkey_arg(lua_State *L,int idx) { @@ -2395,159 +2302,149 @@ static int push_new_Regkey(lua_State *L,HKEY k) { return 1; } - static void Regkey_ctor(lua_State *L, Regkey *this, HKEY k) { - #line 1803 "winapi.l.c" - this->key = k; - } + this->key = k; +} - /// set the string value of a name. - // @param name the name - // @param val the string value - // @param type one of `REG_BINARY`,`REG_DWORD`,`REG_SZ`,`REG_MULTI_SZ`,`REG_EXPAND_SZ` - // @function set_value - static int l_Regkey_set_value(lua_State *L) { - Regkey *this = Regkey_arg(L,1); - const char *name = luaL_checklstring(L,2,NULL); - int val = 3; - int type = luaL_optinteger(L,4,REG_SZ); - #line 1812 "winapi.l.c" - int sz; - DWORD ival; - LONG res; - const char *str; - const BYTE *data; - WCHAR wname[MAX_KEYS]; - wstring_buff(name,wname,sizeof(wname)); - if (lua_isstring(L,val)) { - if (type == REG_DWORD) { - return push_error_msg(L, "parameter must be a number for REG_DWORD"); - } - str = lua_tostring(L,val); - if (type != REG_BINARY) { - WStr res = wstring(str); - sz = (lstrlenW(res)+1)*sizeof(WCHAR); - data = (const BYTE *)res; - } else { - sz = lua_objlen(L,val); - data = (const BYTE *)str; - } +/// set the string value of a name. +// @param name the name +// @param val the string value +// @param type one of `REG_BINARY`,`REG_DWORD`,`REG_SZ`,`REG_MULTI_SZ`,`REG_EXPAND_SZ` +// @function set_value +static int l_Regkey_set_value(lua_State *L) { + Regkey *this = Regkey_arg(L,1); + const char *name = luaL_checklstring(L,2,NULL); + int val = 3; + int type = luaL_optinteger(L,4,REG_SZ); + int sz; + DWORD ival; + LONG res; + const char *str; + const BYTE *data; + WCHAR wname[MAX_KEYS]; + wstring_buff(name,wname,sizeof(wname)); + if (lua_isstring(L,val)) { + if (type == REG_DWORD) { + return push_error_msg(L, "parameter must be a number for REG_DWORD"); + } + str = lua_tostring(L,val); + if (type != REG_BINARY) { + WStr res = wstring(str); + sz = (lstrlenW(res)+1)*sizeof(WCHAR); + data = (const BYTE *)res; } else { - ival = (DWORD)lua_tonumber(L,val); - data = (const BYTE *)&ival; - sz = sizeof(DWORD); - } - res = RegSetValueExW(this->key,wname,0,type,data,sz); - if (res == ERROR_SUCCESS) { - return push_ok(L); - } else { - return push_error_code(L, res); + sz = lua_objlen(L,val); + data = (const BYTE *)str; } + } else { + ival = (DWORD)lua_tonumber(L,val); + data = (const BYTE *)&ival; + sz = sizeof(DWORD); } - - /// get the value and type of a name. - // @param name the name (can be empty for the default value) - // @return the value (either a string or a number) - // @return the type - // @function get_value - static int l_Regkey_get_value(lua_State *L) { - Regkey *this = Regkey_arg(L,1); - const char *name = luaL_optlstring(L,2,"",NULL); - #line 1851 "winapi.l.c" - DWORD type,size = sizeof(wbuff); - void *data = wbuff; - if (RegQueryValueExW(this->key,wstring(name),0,&type,data,&size) != ERROR_SUCCESS) { - return push_error(L); - } - if (type == REG_BINARY) { - lua_pushlstring(L,(const char *)data,size); - } else if (type == REG_EXPAND_SZ || type == REG_SZ) { - push_wstring(L,wbuff); //,size); - } else { - lua_pushnumber(L,*(unsigned long *)data); - } - lua_pushinteger(L,type); - return 2; - + res = RegSetValueExW(this->key,wname,0,type,data,sz); + if (res == ERROR_SUCCESS) { + return push_ok(L); + } else { + return push_error_code(L, res); } +} - static int l_Regkey_delete_key(lua_State *L) { - Regkey *this = Regkey_arg(L,1); - const char *name = luaL_checklstring(L,2,NULL); - #line 1869 "winapi.l.c" - if (RegDeleteKeyW(this->key,wstring(name)) == ERROR_SUCCESS) { - lua_pushboolean(L,1); - } else { - return push_error(L); - } - return 1; +/// get the value and type of a name. +// @param name the name (can be empty for the default value) +// @return the value (either a string or a number) +// @return the type +// @function get_value +static int l_Regkey_get_value(lua_State *L) { + Regkey *this = Regkey_arg(L,1); + const char *name = luaL_optlstring(L,2,"",NULL); + DWORD type,size = sizeof(wbuff); + void *data = wbuff; + if (RegQueryValueExW(this->key,wstring(name),0,&type,data,&size) != ERROR_SUCCESS) { + return push_error(L); } - - /// enumerate the subkeys of a key. - // @return a table of key names - // @function get_keys - static int l_Regkey_get_keys(lua_State *L) { - Regkey *this = Regkey_arg(L,1); - #line 1881 "winapi.l.c" - int i = 0; - LONG res; - DWORD size; - lua_newtable(L); - while (1) { - size = sizeof(wbuff); - res = RegEnumKeyExW(this->key,i,wbuff,&size,NULL,NULL,NULL,NULL); - if (res != ERROR_SUCCESS) break; - push_wstring(L,wbuff); - lua_rawseti(L,-2,i+1); - ++i; - } - if (res != ERROR_NO_MORE_ITEMS) { - lua_pop(L,1); - return push_error(L); - } - return 1; + if (type == REG_BINARY) { + lua_pushlstring(L,(const char *)data,size); + } else if (type == REG_EXPAND_SZ || type == REG_SZ) { + push_wstring(L,wbuff); //,size); + } else { + lua_pushnumber(L,*(unsigned long *)data); } + lua_pushinteger(L,type); + return 2; - /// close this key. - // Although this will happen when garbage collection happens, it - // is good practice to call this explicitly. - // @function close - static int l_Regkey_close(lua_State *L) { - Regkey *this = Regkey_arg(L,1); - #line 1905 "winapi.l.c" +} + +static int l_Regkey_delete_key(lua_State *L) { + Regkey *this = Regkey_arg(L,1); + const char *name = luaL_checklstring(L,2,NULL); + if (RegDeleteKeyW(this->key,wstring(name)) == ERROR_SUCCESS) { + lua_pushboolean(L,1); + } else { + return push_error(L); + } + return 1; +} + +/// enumerate the subkeys of a key. +// @return a table of key names +// @function get_keys +static int l_Regkey_get_keys(lua_State *L) { + Regkey *this = Regkey_arg(L,1); + int i = 0; + LONG res; + DWORD size; + lua_newtable(L); + while (1) { + size = sizeof(wbuff); + res = RegEnumKeyExW(this->key,i,wbuff,&size,NULL,NULL,NULL,NULL); + if (res != ERROR_SUCCESS) break; + push_wstring(L,wbuff); + lua_rawseti(L,-2,i+1); + ++i; + } + if (res != ERROR_NO_MORE_ITEMS) { + lua_pop(L,1); + return push_error(L); + } + return 1; +} + +/// close this key. +// Although this will happen when garbage collection happens, it +// is good practice to call this explicitly. +// @function close +static int l_Regkey_close(lua_State *L) { + Regkey *this = Regkey_arg(L,1); + RegCloseKey(this->key); + this->key = NULL; + return 0; +} + +/// flush the key. +// Considered an expensive function; use it only when you have +// to guarantee modification. +// @function flush +static int l_Regkey_flush(lua_State *L) { + Regkey *this = Regkey_arg(L,1); + return push_bool(L,RegFlushKey(this->key)); +} + +static int l_Regkey___gc(lua_State *L) { + Regkey *this = Regkey_arg(L,1); + if (this->key != NULL) RegCloseKey(this->key); - this->key = NULL; - return 0; - } + return 0; +} - /// flush the key. - // Considered an expensive function; use it only when you have - // to guarantee modification. - // @function flush - static int l_Regkey_flush(lua_State *L) { - Regkey *this = Regkey_arg(L,1); - #line 1915 "winapi.l.c" - return push_bool(L,RegFlushKey(this->key)); - } - - static int l_Regkey___gc(lua_State *L) { - Regkey *this = Regkey_arg(L,1); - #line 1919 "winapi.l.c" - if (this->key != NULL) - RegCloseKey(this->key); - return 0; - } - -#line 1924 "winapi.l.c" static const struct luaL_Reg Regkey_methods [] = { - {"set_value",l_Regkey_set_value}, - {"get_value",l_Regkey_get_value}, - {"delete_key",l_Regkey_delete_key}, - {"get_keys",l_Regkey_get_keys}, - {"close",l_Regkey_close}, - {"flush",l_Regkey_flush}, - {"__gc",l_Regkey___gc}, + {"set_value",l_Regkey_set_value}, + {"get_value",l_Regkey_get_value}, + {"delete_key",l_Regkey_delete_key}, + {"get_keys",l_Regkey_get_keys}, + {"close",l_Regkey_close}, + {"flush",l_Regkey_flush}, + {"__gc",l_Regkey___gc}, {NULL, NULL} /* sentinel */ }; @@ -2564,7 +2461,6 @@ static void Regkey_register (lua_State *L) { } -#line 1926 "winapi.l.c" /// Registry Functions. // @section Registry @@ -2579,7 +2475,6 @@ static void Regkey_register (lua_State *L) { static int l_open_reg_key(lua_State *L) { const char *path = luaL_checklstring(L,1,NULL); int writeable = lua_toboolean(L,2); - #line 1937 "winapi.l.c" HKEY hKey; DWORD access; char kbuff[1024]; @@ -2601,7 +2496,6 @@ static int l_open_reg_key(lua_State *L) { // @function create_reg_key static int l_create_reg_key(lua_State *L) { const char *path = luaL_checklstring(L,1,NULL); - #line 1957 "winapi.l.c" char kbuff[1024]; HKEY hKey = split_registry_key(path,kbuff); if (hKey == NULL) { @@ -2614,7 +2508,6 @@ static int l_create_reg_key(lua_State *L) { } } -#line 2040 "winapi.l.c" static const char *lua_code_block = ""\ "function winapi.execute(cmd,unicode)\n"\ " local comspec = os.getenv('COMSPEC')\n"\ @@ -2692,14 +2585,12 @@ static void load_lua_code (lua_State *L) { } -#line 2045 "winapi.l.c" int init_mutex(lua_State *L) { -setup_mutex(); + setup_mutex(); return 0; } -#line 2047 "winapi.l.c" /*** Constants. The following constants are available: @@ -2748,150 +2639,144 @@ The following constants are available: * FILE\_ACTION\_RENAMED\_NEW\_NAME @section constants - */#line 2094 "winapi.l.c" - - - #line 2096 "winapi.l.c" + */ + /// useful Windows API constants // @table constants #define CP_UTF16 -1 -#line 2162 "winapi.l.c" static void set_winapi_constants(lua_State *L) { - lua_pushinteger(L,CP_ACP); lua_setfield(L,-2,"CP_ACP"); - lua_pushinteger(L,CP_UTF8); lua_setfield(L,-2,"CP_UTF8"); - lua_pushinteger(L,CP_UTF16); lua_setfield(L,-2,"CP_UTF16"); - lua_pushinteger(L,SW_HIDE); lua_setfield(L,-2,"SW_HIDE"); - lua_pushinteger(L,SW_MAXIMIZE); lua_setfield(L,-2,"SW_MAXIMIZE"); - lua_pushinteger(L,SW_MINIMIZE); lua_setfield(L,-2,"SW_MINIMIZE"); - lua_pushinteger(L,SW_SHOWNORMAL); lua_setfield(L,-2,"SW_SHOWNORMAL"); - lua_pushinteger(L,SW_SHOWNOACTIVATE); lua_setfield(L,-2,"SW_SHOWNOACTIVATE"); - lua_pushinteger(L,SW_SHOW); lua_setfield(L,-2,"SW_SHOW"); - lua_pushinteger(L,SW_RESTORE); lua_setfield(L,-2,"SW_RESTORE"); - lua_pushinteger(L,VK_BACK); lua_setfield(L,-2,"VK_BACK"); - lua_pushinteger(L,VK_TAB); lua_setfield(L,-2,"VK_TAB"); - lua_pushinteger(L,VK_RETURN); lua_setfield(L,-2,"VK_RETURN"); - lua_pushinteger(L,VK_SPACE); lua_setfield(L,-2,"VK_SPACE"); - lua_pushinteger(L,VK_PRIOR); lua_setfield(L,-2,"VK_PRIOR"); - lua_pushinteger(L,VK_NEXT); lua_setfield(L,-2,"VK_NEXT"); - lua_pushinteger(L,VK_END); lua_setfield(L,-2,"VK_END"); - lua_pushinteger(L,VK_HOME); lua_setfield(L,-2,"VK_HOME"); - lua_pushinteger(L,VK_LEFT); lua_setfield(L,-2,"VK_LEFT"); - lua_pushinteger(L,VK_UP); lua_setfield(L,-2,"VK_UP"); - lua_pushinteger(L,VK_RIGHT); lua_setfield(L,-2,"VK_RIGHT"); - lua_pushinteger(L,VK_DOWN); lua_setfield(L,-2,"VK_DOWN"); - lua_pushinteger(L,VK_INSERT); lua_setfield(L,-2,"VK_INSERT"); - lua_pushinteger(L,VK_DELETE); lua_setfield(L,-2,"VK_DELETE"); - lua_pushinteger(L,VK_ESCAPE); lua_setfield(L,-2,"VK_ESCAPE"); - lua_pushinteger(L,VK_F1); lua_setfield(L,-2,"VK_F1"); - lua_pushinteger(L,VK_F2); lua_setfield(L,-2,"VK_F2"); - lua_pushinteger(L,VK_F3); lua_setfield(L,-2,"VK_F3"); - lua_pushinteger(L,VK_F4); lua_setfield(L,-2,"VK_F4"); - lua_pushinteger(L,VK_F5); lua_setfield(L,-2,"VK_F5"); - lua_pushinteger(L,VK_F6); lua_setfield(L,-2,"VK_F6"); - lua_pushinteger(L,VK_F7); lua_setfield(L,-2,"VK_F7"); - lua_pushinteger(L,VK_F8); lua_setfield(L,-2,"VK_F8"); - lua_pushinteger(L,VK_F9); lua_setfield(L,-2,"VK_F9"); - lua_pushinteger(L,VK_F10); lua_setfield(L,-2,"VK_F10"); - lua_pushinteger(L,VK_F11); lua_setfield(L,-2,"VK_F11"); - lua_pushinteger(L,VK_F12); lua_setfield(L,-2,"VK_F12"); - lua_pushinteger(L,FILE_NOTIFY_CHANGE_FILE_NAME); lua_setfield(L,-2,"FILE_NOTIFY_CHANGE_FILE_NAME"); - lua_pushinteger(L,FILE_NOTIFY_CHANGE_DIR_NAME); lua_setfield(L,-2,"FILE_NOTIFY_CHANGE_DIR_NAME"); - lua_pushinteger(L,FILE_NOTIFY_CHANGE_LAST_WRITE); lua_setfield(L,-2,"FILE_NOTIFY_CHANGE_LAST_WRITE"); - lua_pushinteger(L,FILE_ACTION_ADDED); lua_setfield(L,-2,"FILE_ACTION_ADDED"); - lua_pushinteger(L,FILE_ACTION_REMOVED); lua_setfield(L,-2,"FILE_ACTION_REMOVED"); - lua_pushinteger(L,FILE_ACTION_MODIFIED); lua_setfield(L,-2,"FILE_ACTION_MODIFIED"); - lua_pushinteger(L,FILE_ACTION_RENAMED_OLD_NAME); lua_setfield(L,-2,"FILE_ACTION_RENAMED_OLD_NAME"); - lua_pushinteger(L,FILE_ACTION_RENAMED_NEW_NAME); lua_setfield(L,-2,"FILE_ACTION_RENAMED_NEW_NAME"); - lua_pushinteger(L,WIN_NOACTIVATE); lua_setfield(L,-2,"WIN_NOACTIVATE"); - lua_pushinteger(L,WIN_NOMOVE); lua_setfield(L,-2,"WIN_NOMOVE"); - lua_pushinteger(L,WIN_NOSIZE); lua_setfield(L,-2,"WIN_NOSIZE"); - lua_pushinteger(L,WIN_SHOWWINDOW); lua_setfield(L,-2,"WIN_SHOWWINDOW"); - lua_pushinteger(L,WIN_NOZORDER); lua_setfield(L,-2,"WIN_NOZORDER"); - lua_pushinteger(L,WIN_BOTTOM); lua_setfield(L,-2,"WIN_BOTTOM"); - lua_pushinteger(L,WIN_NOTOPMOST); lua_setfield(L,-2,"WIN_NOTOPMOST"); - lua_pushinteger(L,WIN_TOP); lua_setfield(L,-2,"WIN_TOP"); - lua_pushinteger(L,WIN_TOPMOST); lua_setfield(L,-2,"WIN_TOPMOST"); - lua_pushinteger(L,REG_BINARY); lua_setfield(L,-2,"REG_BINARY"); - lua_pushinteger(L,REG_DWORD); lua_setfield(L,-2,"REG_DWORD"); - lua_pushinteger(L,REG_SZ); lua_setfield(L,-2,"REG_SZ"); - lua_pushinteger(L,REG_MULTI_SZ); lua_setfield(L,-2,"REG_MULTI_SZ"); - lua_pushinteger(L,REG_EXPAND_SZ); lua_setfield(L,-2,"REG_EXPAND_SZ"); + lua_pushinteger(L,CP_ACP); lua_setfield(L,-2,"CP_ACP"); + lua_pushinteger(L,CP_UTF8); lua_setfield(L,-2,"CP_UTF8"); + lua_pushinteger(L,CP_UTF16); lua_setfield(L,-2,"CP_UTF16"); + lua_pushinteger(L,SW_HIDE); lua_setfield(L,-2,"SW_HIDE"); + lua_pushinteger(L,SW_MAXIMIZE); lua_setfield(L,-2,"SW_MAXIMIZE"); + lua_pushinteger(L,SW_MINIMIZE); lua_setfield(L,-2,"SW_MINIMIZE"); + lua_pushinteger(L,SW_SHOWNORMAL); lua_setfield(L,-2,"SW_SHOWNORMAL"); + lua_pushinteger(L,SW_SHOWNOACTIVATE); lua_setfield(L,-2,"SW_SHOWNOACTIVATE"); + lua_pushinteger(L,SW_SHOW); lua_setfield(L,-2,"SW_SHOW"); + lua_pushinteger(L,SW_RESTORE); lua_setfield(L,-2,"SW_RESTORE"); + lua_pushinteger(L,VK_BACK); lua_setfield(L,-2,"VK_BACK"); + lua_pushinteger(L,VK_TAB); lua_setfield(L,-2,"VK_TAB"); + lua_pushinteger(L,VK_RETURN); lua_setfield(L,-2,"VK_RETURN"); + lua_pushinteger(L,VK_SPACE); lua_setfield(L,-2,"VK_SPACE"); + lua_pushinteger(L,VK_PRIOR); lua_setfield(L,-2,"VK_PRIOR"); + lua_pushinteger(L,VK_NEXT); lua_setfield(L,-2,"VK_NEXT"); + lua_pushinteger(L,VK_END); lua_setfield(L,-2,"VK_END"); + lua_pushinteger(L,VK_HOME); lua_setfield(L,-2,"VK_HOME"); + lua_pushinteger(L,VK_LEFT); lua_setfield(L,-2,"VK_LEFT"); + lua_pushinteger(L,VK_UP); lua_setfield(L,-2,"VK_UP"); + lua_pushinteger(L,VK_RIGHT); lua_setfield(L,-2,"VK_RIGHT"); + lua_pushinteger(L,VK_DOWN); lua_setfield(L,-2,"VK_DOWN"); + lua_pushinteger(L,VK_INSERT); lua_setfield(L,-2,"VK_INSERT"); + lua_pushinteger(L,VK_DELETE); lua_setfield(L,-2,"VK_DELETE"); + lua_pushinteger(L,VK_ESCAPE); lua_setfield(L,-2,"VK_ESCAPE"); + lua_pushinteger(L,VK_F1); lua_setfield(L,-2,"VK_F1"); + lua_pushinteger(L,VK_F2); lua_setfield(L,-2,"VK_F2"); + lua_pushinteger(L,VK_F3); lua_setfield(L,-2,"VK_F3"); + lua_pushinteger(L,VK_F4); lua_setfield(L,-2,"VK_F4"); + lua_pushinteger(L,VK_F5); lua_setfield(L,-2,"VK_F5"); + lua_pushinteger(L,VK_F6); lua_setfield(L,-2,"VK_F6"); + lua_pushinteger(L,VK_F7); lua_setfield(L,-2,"VK_F7"); + lua_pushinteger(L,VK_F8); lua_setfield(L,-2,"VK_F8"); + lua_pushinteger(L,VK_F9); lua_setfield(L,-2,"VK_F9"); + lua_pushinteger(L,VK_F10); lua_setfield(L,-2,"VK_F10"); + lua_pushinteger(L,VK_F11); lua_setfield(L,-2,"VK_F11"); + lua_pushinteger(L,VK_F12); lua_setfield(L,-2,"VK_F12"); + lua_pushinteger(L,FILE_NOTIFY_CHANGE_FILE_NAME); lua_setfield(L,-2,"FILE_NOTIFY_CHANGE_FILE_NAME"); + lua_pushinteger(L,FILE_NOTIFY_CHANGE_DIR_NAME); lua_setfield(L,-2,"FILE_NOTIFY_CHANGE_DIR_NAME"); + lua_pushinteger(L,FILE_NOTIFY_CHANGE_LAST_WRITE); lua_setfield(L,-2,"FILE_NOTIFY_CHANGE_LAST_WRITE"); + lua_pushinteger(L,FILE_ACTION_ADDED); lua_setfield(L,-2,"FILE_ACTION_ADDED"); + lua_pushinteger(L,FILE_ACTION_REMOVED); lua_setfield(L,-2,"FILE_ACTION_REMOVED"); + lua_pushinteger(L,FILE_ACTION_MODIFIED); lua_setfield(L,-2,"FILE_ACTION_MODIFIED"); + lua_pushinteger(L,FILE_ACTION_RENAMED_OLD_NAME); lua_setfield(L,-2,"FILE_ACTION_RENAMED_OLD_NAME"); + lua_pushinteger(L,FILE_ACTION_RENAMED_NEW_NAME); lua_setfield(L,-2,"FILE_ACTION_RENAMED_NEW_NAME"); + lua_pushinteger(L,WIN_NOACTIVATE); lua_setfield(L,-2,"WIN_NOACTIVATE"); + lua_pushinteger(L,WIN_NOMOVE); lua_setfield(L,-2,"WIN_NOMOVE"); + lua_pushinteger(L,WIN_NOSIZE); lua_setfield(L,-2,"WIN_NOSIZE"); + lua_pushinteger(L,WIN_SHOWWINDOW); lua_setfield(L,-2,"WIN_SHOWWINDOW"); + lua_pushinteger(L,WIN_NOZORDER); lua_setfield(L,-2,"WIN_NOZORDER"); + lua_pushinteger(L,WIN_BOTTOM); lua_setfield(L,-2,"WIN_BOTTOM"); + lua_pushinteger(L,WIN_NOTOPMOST); lua_setfield(L,-2,"WIN_NOTOPMOST"); + lua_pushinteger(L,WIN_TOP); lua_setfield(L,-2,"WIN_TOP"); + lua_pushinteger(L,WIN_TOPMOST); lua_setfield(L,-2,"WIN_TOPMOST"); + lua_pushinteger(L,REG_BINARY); lua_setfield(L,-2,"REG_BINARY"); + lua_pushinteger(L,REG_DWORD); lua_setfield(L,-2,"REG_DWORD"); + lua_pushinteger(L,REG_SZ); lua_setfield(L,-2,"REG_SZ"); + lua_pushinteger(L,REG_MULTI_SZ); lua_setfield(L,-2,"REG_MULTI_SZ"); + lua_pushinteger(L,REG_EXPAND_SZ); lua_setfield(L,-2,"REG_EXPAND_SZ"); } -#line 2164 "winapi.l.c" static const luaL_Reg winapi_funs[] = { - {"set_encoding",l_set_encoding}, - {"get_encoding",l_get_encoding}, - {"encode",l_encode}, - {"utf8_expand",l_utf8_expand}, - {"find_window",l_find_window}, - {"get_foreground_window",l_get_foreground_window}, - {"get_desktop_window",l_get_desktop_window}, - {"window_from_handle",l_window_from_handle}, - {"enum_windows",l_enum_windows}, - {"use_gui",l_use_gui}, - {"send_to_window",l_send_to_window}, - {"tile_windows",l_tile_windows}, - {"sleep",l_sleep}, - {"show_message",l_show_message}, - {"beep",l_beep}, - {"copy_file",l_copy_file}, - {"output_debug_string",l_output_debug_string}, - {"move_file",l_move_file}, - {"shell_exec",l_shell_exec}, - {"set_clipboard",l_set_clipboard}, - {"get_clipboard",l_get_clipboard}, - {"get_console",l_get_console}, - {"pipe",l_pipe}, - {"open_serial",l_open_serial}, - {"event",l_event}, - {"mutex",l_mutex}, - {"process_from_id",l_process_from_id}, - {"get_current_pid",l_get_current_pid}, - {"get_current_process",l_get_current_process}, - {"get_processes",l_get_processes}, - {"wait_for_processes",l_wait_for_processes}, - {"setenv",l_setenv}, - {"spawn_process",l_spawn_process}, - {"thread",l_thread}, - {"make_timer",l_make_timer}, - {"open_pipe",l_open_pipe}, - {"make_pipe_server",l_make_pipe_server}, - {"short_path",l_short_path}, - {"get_logical_drives",l_get_logical_drives}, - {"get_drive_type",l_get_drive_type}, - {"get_disk_free_space",l_get_disk_free_space}, - {"get_disk_network_name",l_get_disk_network_name}, - {"watch_for_file_changes",l_watch_for_file_changes}, - {"open_reg_key",l_open_reg_key}, - {"create_reg_key",l_create_reg_key}, - {NULL,NULL} + {"set_encoding",l_set_encoding}, + {"get_encoding",l_get_encoding}, + {"encode",l_encode}, + {"utf8_expand",l_utf8_expand}, + {"find_window",l_find_window}, + {"get_foreground_window",l_get_foreground_window}, + {"get_desktop_window",l_get_desktop_window}, + {"window_from_handle",l_window_from_handle}, + {"enum_windows",l_enum_windows}, + {"use_gui",l_use_gui}, + {"send_to_window",l_send_to_window}, + {"tile_windows",l_tile_windows}, + {"sleep",l_sleep}, + {"show_message",l_show_message}, + {"beep",l_beep}, + {"copy_file",l_copy_file}, + {"output_debug_string",l_output_debug_string}, + {"move_file",l_move_file}, + {"shell_exec",l_shell_exec}, + {"set_clipboard",l_set_clipboard}, + {"get_clipboard",l_get_clipboard}, + {"get_console",l_get_console}, + {"pipe",l_pipe}, + {"open_serial",l_open_serial}, + {"event",l_event}, + {"mutex",l_mutex}, + {"process_from_id",l_process_from_id}, + {"get_current_pid",l_get_current_pid}, + {"get_current_process",l_get_current_process}, + {"get_processes",l_get_processes}, + {"wait_for_processes",l_wait_for_processes}, + {"setenv",l_setenv}, + {"spawn_process",l_spawn_process}, + {"thread",l_thread}, + {"make_timer",l_make_timer}, + {"open_pipe",l_open_pipe}, + {"make_pipe_server",l_make_pipe_server}, + {"short_path",l_short_path}, + {"get_logical_drives",l_get_logical_drives}, + {"get_drive_type",l_get_drive_type}, + {"get_disk_free_space",l_get_disk_free_space}, + {"get_disk_network_name",l_get_disk_network_name}, + {"watch_for_file_changes",l_watch_for_file_changes}, + {"open_reg_key",l_open_reg_key}, + {"create_reg_key",l_create_reg_key}, + {NULL,NULL} }; EXPORT int luaopen_winapi (lua_State *L) { #if LUA_VERSION_NUM > 501 - lua_newtable(L); - luaL_setfuncs (L,winapi_funs,0); - lua_pushvalue(L,-1); - lua_setglobal(L,"winapi"); + lua_newtable(L); + luaL_setfuncs (L,winapi_funs,0); + lua_pushvalue(L,-1); + lua_setglobal(L,"winapi"); #else - luaL_register(L,"winapi",winapi_funs); + luaL_register(L,"winapi",winapi_funs); #endif - Window_register(L); -Event_register(L); -Mutex_register(L); -Process_register(L); -Thread_register(L); -File_register(L); -Regkey_register(L); -load_lua_code(L); -init_mutex(L); -set_winapi_constants(L); - return 1; + Window_register(L); + Event_register(L); + Mutex_register(L); + Process_register(L); + Thread_register(L); + File_register(L); + Regkey_register(L); + load_lua_code(L); + init_mutex(L); + set_winapi_constants(L); + return 1; } - - diff --git a/wutils.c b/csrc/winapi/wutils.c similarity index 88% rename from wutils.c rename to csrc/winapi/wutils.c index 2c9e08b..92774f2 100644 --- a/wutils.c +++ b/csrc/winapi/wutils.c @@ -392,3 +392,47 @@ LPCSTR mb_result (int res) { } } + +/// create job for child process control. +// @param hJob handle to the windows job +// @param ... looks like CreateProcessW +// @return a boolean (is it was successful?) +// @function create_process_in_job +BOOL create_process_in_job( + HANDLE hJob, + LPCWSTR lpApplicationName, + LPWSTR lpCommandLine, + LPSECURITY_ATTRIBUTES lpProcessAttributes, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + BOOL bInheritHandles, + DWORD dwCreationFlags, + LPVOID lpEnvironment, + LPCWSTR lpCurrentDirectory, + LPSTARTUPINFOW lpStartupInfo, + LPPROCESS_INFORMATION ppi) +{ + BOOL fRc = CreateProcessW( + lpApplicationName, + lpCommandLine, + lpProcessAttributes, + lpThreadAttributes, + bInheritHandles, + dwCreationFlags | CREATE_SUSPENDED, + lpEnvironment, + lpCurrentDirectory, + lpStartupInfo, + ppi); + if (fRc) { + fRc = AssignProcessToJobObject(hJob, ppi->hProcess); + if (fRc && !(dwCreationFlags & CREATE_SUSPENDED)) { + fRc = ResumeThread(ppi->hThread) != (DWORD)-1; + } + if (!fRc) { + TerminateProcess(ppi->hProcess, 0); + CloseHandle(ppi->hProcess); + CloseHandle(ppi->hThread); + ppi->hProcess = ppi->hThread = NULL; + } + } + return fRc; +} diff --git a/wutils.h b/csrc/winapi/wutils.h similarity index 75% rename from wutils.h rename to csrc/winapi/wutils.h index 9365576..c646d72 100644 --- a/wutils.h +++ b/csrc/winapi/wutils.h @@ -39,5 +39,17 @@ int push_wstring(lua_State *L, LPCWSTR us); HKEY split_registry_key(LPCSTR path, char *keypath); int mb_const (LPCSTR name); LPCSTR mb_result (int res); +BOOL create_process_in_job( + HANDLE hJob, + LPCWSTR lpApplicationName, + LPWSTR lpCommandLine, + LPSECURITY_ATTRIBUTES lpProcessAttributes, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + BOOL bInheritHandles, + DWORD dwCreationFlags, + LPVOID lpEnvironment, + LPCWSTR lpCurrentDirectory, + LPSTARTUPINFOW lpStartupInfo, + LPPROCESS_INFORMATION ppi); #endif diff --git a/doc.css b/doc.css deleted file mode 100644 index 300e340..0000000 --- a/doc.css +++ /dev/null @@ -1,9 +0,0 @@ -body { - padding-left: 2em; - } -pre { - background-color: #eeeeff - } -a:link { font-weight:bold; color: #004080; text-decoration: none; } -a:visited { font-weight:bold; color: #006699; text-decoration: none; } -a:link:hover { text-decoration:underline; } diff --git a/event_callback.lua b/event_callback.lua deleted file mode 100644 index 2d4f070..0000000 --- a/event_callback.lua +++ /dev/null @@ -1,27 +0,0 @@ -require 'winapi' - -fprintf = require 'pl.utils'.fprintf -stderr = io.stderr - -e = winapi.event() - -winapi.make_timer(500,function() - fprintf(stderr,'signal!\n') - e:signal() -end) - ---[[ -while true do - e:wait() - print 'ok' -end ---]] - -e:wait_async(function(s) - fprintf (stderr,'finis %s\n',s) - os.exit() -end) - -fprintf(stderr,'sleeping\n') - -winapi.sleep(-1) diff --git a/examples/caption.lua b/examples/caption.lua deleted file mode 100644 index 12abccb..0000000 --- a/examples/caption.lua +++ /dev/null @@ -1,6 +0,0 @@ -local W = require 'winapi' -local console = W.get_foreground_window() -console:set_text 'e???????' -W.set_clipboard 'e???????' -print 'Press enter' -io.read() diff --git a/examples/drives.lua b/examples/drives.lua deleted file mode 100644 index ac8cd72..0000000 --- a/examples/drives.lua +++ /dev/null @@ -1,28 +0,0 @@ -require 'winapi' - -drives = winapi.get_logical_drives() -for _,drive in ipairs(drives) do - local free,avail = winapi.get_disk_free_space(drive) - if not free then -- call failed, avail is error - free = '('..avail..')' - else - free = math.ceil(free/1024) -- get Mb - end - local rname = '' - local dtype = winapi.get_drive_type(drive) - if dtype == 'remote' then - rname = winapi.get_disk_network_name(drive:gsub('\\$','')) - end - print(drive,dtype,free,rname) -end - ---[[ output: -C:\ fixed 1785 -D:\ fixed 49916 -E:\ cdrom (The device is not ready.) -G:\ remote 33823 \\CARL-VFILE\SYS -I:\ remote 433682 \\CARL-VFILE\GROUPS -X:\ remote 12160 \\CARL-VFILE\APPS -Y:\ remote 33823 \\CARL-VFILE\SYS\PUBLIC -Z:\ remote 33823 \\CARL-VFILE\SYS\PUBLIC -]] diff --git a/examples/event.lua b/examples/event.lua deleted file mode 100644 index 2ea09b6..0000000 --- a/examples/event.lua +++ /dev/null @@ -1,19 +0,0 @@ -local W = require 'winapi' -local e = W.event() -local count = 1 -local finished - -W.make_timer(500,function() - print 'tick' - if count == 5 then - print 'finished!' - finished = true - end - e:signal() - count = count + 1 -end) - -while not finished do - e:wait() - print 'gotcha' -end diff --git a/examples/files.lua b/examples/files.lua deleted file mode 100644 index 6eddee2..0000000 --- a/examples/files.lua +++ /dev/null @@ -1,12 +0,0 @@ --- iterating over all files matching some pattern. --- (this handles Unicode file names correctly) -require 'winapi' -winapi.set_encoding(winapi.CP_UTF8) - -files,err = winapi.files ('*.txt',false) -if not files then return print(err) end - -for f in files do - print(f) -end - diff --git a/examples/greek.txt b/examples/greek.txt deleted file mode 100644 index 4acb4c2..0000000 --- a/examples/greek.txt +++ /dev/null @@ -1,3 +0,0 @@ -Τη γλώσσα μου έδωσαν ελληνική -το σπίτι φτωχικό στις αμμουδιές του Ομήρου. -Μονάχη έγνοια η γλώσσα μου στις αμμουδιές του Ομήρου. diff --git a/examples/input.lua b/examples/input.lua deleted file mode 100644 index 37d1698..0000000 --- a/examples/input.lua +++ /dev/null @@ -1,12 +0,0 @@ --- this shows how @{Process:wait_for_input_idle} means that there's no need for --- a random wait until an application is ready to go. --- Note, if we use @{spawn_process} then the window is initially invisible, --- and needs to be shown explicitly. -require 'winapi' -P = winapi.spawn_process 'notepad' -P:wait_for_input_idle() -w = winapi.find_window_match 'Untitled' -w:show() -w:set_foreground() -winapi.send_to_window 'hello dammit' - diff --git a/examples/message.lua b/examples/message.lua deleted file mode 100644 index 77467f2..0000000 --- a/examples/message.lua +++ /dev/null @@ -1,10 +0,0 @@ - -local W = require 'winapi' - - -print(W.show_message("Message","stuff")) -print(W.show_message("Message","stuff\nand nonsense","yes-no","warning")) - - - - diff --git a/examples/multiple.lua b/examples/multiple.lua deleted file mode 100644 index 37b29df..0000000 --- a/examples/multiple.lua +++ /dev/null @@ -1,16 +0,0 @@ -require 'winapi' - -function printer(msec,msg) - local i = 1 - return winapi.make_timer(500,function() - print (msg,i) - i = i + 1 - end) -end - -printer(500,'bob') -printer(500,'june') -printer(500,'alice') -printer(500,'jim') - -winapi.sleep(-1) diff --git a/examples/pipe-server.lua b/examples/pipe-server.lua deleted file mode 100644 index aaaf596..0000000 --- a/examples/pipe-server.lua +++ /dev/null @@ -1,72 +0,0 @@ -require 'winapi' - ---[[ -- blocking version -winapi.make_pipe_server(function(f) - local res = f:read() - f:write(res:upper()) -end) --- ]] - ---[[ 'node.js' style -winapi.make_pipe_server(function(f) - f:read_async(function(res) - f:write(res:upper()) - end) -end) ---]] - -local wrap, yield, resume = coroutine.wrap, coroutine.yield, coroutine.resume - ---[[ -winapi.make_pipe_server(function(f) - local fun = function(f) - while true do - local res = f:read() - if res == 'close' then break end - f:write(res:upper()) - end - end - local co = coroutine.create(fun) - resume(co,fwrap(f,co)) -end) -]] - ---~ f:read_async(function(txt) ---~ resume(co,txt) ---~ end) - -function fwrap (f,co) - local obj = {} - local started - function obj:read () - if not started then - f:read_async(co) - started = true - end - return yield() - end - function obj:write (s) - return f:write(s) - end - return obj -end - -function winapi.make_pipe_server_async(fun) - winapi.make_pipe_server(function(f) - local co = coroutine.wrap(fun) - co(fwrap(f,co)) - end) -end - -winapi.make_pipe_server_async(function(f) - while true do - local res = f:read() - if res == 'close' then break end - f:write(res:upper()) - end - print 'finis' -end) - - -winapi.sleep(-1) - diff --git a/examples/process-wait.lua b/examples/process-wait.lua deleted file mode 100644 index 0c958be..0000000 --- a/examples/process-wait.lua +++ /dev/null @@ -1,11 +0,0 @@ -require 'winapi' -t = os.clock() -n = tonumber(arg[1] or 2) -local P = {} -for i = 1,n do - P[i],f = winapi.spawn_process ('lua slow.lua '..i) - f:read_async(print) -end -winapi.wait_for_processes(P,true) -print(os.clock() - t) - diff --git a/examples/read-console.lua b/examples/read-console.lua deleted file mode 100644 index 9bf621e..0000000 --- a/examples/read-console.lua +++ /dev/null @@ -1,11 +0,0 @@ -require 'winapi' - -f = winapi.get_console() -f:read_async(function(line) - f:write(line) - if line:match '^quit' then - os.exit() - end -end) - -winapi.sleep(-1) diff --git a/examples/readserial.lua b/examples/readserial.lua deleted file mode 100644 index 4da2151..0000000 --- a/examples/readserial.lua +++ /dev/null @@ -1,18 +0,0 @@ -require 'winapi' -local f,e = winapi.open_serial 'COM4 baud=19' -if not f then return print('error',e) end -local sub = f:read() -local line = {} -local append = table.insert -while sub ~= '+' do - f:write(sub) - append(line,sub) - if sub == '\r' then - f:write '\n' - print('gotcha',table.concat(line)) - line = {} - end - --print(sub,sub:byte(1)) - sub = f:read() -end -f:close() diff --git a/examples/setenv.lua b/examples/setenv.lua deleted file mode 100644 index 713cd1b..0000000 --- a/examples/setenv.lua +++ /dev/null @@ -1,21 +0,0 @@ --- You will only get nice output from this script (like other unicode examples) --- if executed in a properly multilingual environment like SciTE. --- To get UTF-8 support in SciTE, edit your global properties like so: --- # Internationalisation --- # Japanese input code page 932 and ShiftJIS character set 128 --- #code.page=932 --- #character.set=128 --- # Unicode --- code.page=65001 # uncomment out this line --- #code.page=0 # and comment out this line --- --- And restart SciTE. - -require 'winapi' - -winapi.setenv('greek','ελληνική') - -print(os.getenv 'greek') -- this will still be nil - --- but child processes can see this variable ... -os.execute [[lua -e "print(os.getenv('greek'))"]] diff --git a/examples/slow.lua b/examples/slow.lua deleted file mode 100644 index 5a6d3f5..0000000 --- a/examples/slow.lua +++ /dev/null @@ -1,4 +0,0 @@ -print(arg[1]) -for i = 1,1e8 do end - - diff --git a/examples/start_time.lua b/examples/start_time.lua deleted file mode 100644 index a96f91e..0000000 --- a/examples/start_time.lua +++ /dev/null @@ -1,4 +0,0 @@ -require 'winapi' -p = winapi.get_current_process() -print(os.date('%c',os.time(p:get_start_time()))) - diff --git a/examples/test-processes.lua b/examples/test-processes.lua deleted file mode 100644 index 5fcf64e..0000000 --- a/examples/test-processes.lua +++ /dev/null @@ -1,9 +0,0 @@ -require 'winapi' -pids = winapi.get_processes() - -for _,pid in ipairs(pids) do - local P = winapi.process_from_id(pid) - local name = P:get_process_name(true) - if name then print(pid,name) end - P:close() -end diff --git a/examples/test-reg.lua b/examples/test-reg.lua deleted file mode 100644 index 973e3b0..0000000 --- a/examples/test-reg.lua +++ /dev/null @@ -1,29 +0,0 @@ -require 'winapi' -k,err = winapi.open_reg_key [[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers]] -if not k then return print('bad key',err) end - -print(k:get_value("1")) -k:close() - -k,err = winapi.open_reg_key [[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]] - -t = k:get_keys() ---for _,k in ipairs(t) do print(_,k) end -k:close() - -k,err = winapi.open_reg_key ([[HKEY_CURRENT_USER\Environment]],true) -path = k:get_value("PATH") -print(path) -print(k:get_value("TEMP")) -if #arg > 0 then - local type = winapi.REG_SZ - if arg[3] then - type = winapi[arg[3]] - end - k:set_value(arg[1],arg[2],type) - print(k:get_value(arg[1],type)) -end -k:close() - - - diff --git a/examples/test-sleep.lua b/examples/test-sleep.lua deleted file mode 100644 index c234058..0000000 --- a/examples/test-sleep.lua +++ /dev/null @@ -1,17 +0,0 @@ -require 'winapi' - -l = 1 -winapi.make_timer(400,function() - print 'bonzo' - l = l + 1 - if l > 10 then os.exit() end -end) - -k = 1 -winapi.make_timer(300,function() - print 'alice' - k = k +1 - if k > 5 then return true end -end) - -winapi.sleep(-1) diff --git a/examples/test-spawn.lua b/examples/test-spawn.lua deleted file mode 100644 index 4fb3de9..0000000 --- a/examples/test-spawn.lua +++ /dev/null @@ -1,10 +0,0 @@ -require 'winapi' -P,W = winapi.spawn_process 'lua test-timer.lua' -stuff = W:read() -k = 1 -while stuff do - io.write(stuff); - stuff = W:read() - k = k + 1 - if k > 15 then P:kill() end -end diff --git a/examples/test-timer.lua b/examples/test-timer.lua deleted file mode 100644 index ed8ca4f..0000000 --- a/examples/test-timer.lua +++ /dev/null @@ -1,26 +0,0 @@ -require 'winapi' -io.stdout:setvbuf 'no' -local t1,t2 -t1 = winapi.make_timer(500,function() - print 'gotcha' -end) - -local k = 1 -t2 = winapi.make_timer(400,function() - k = k + 1 - print(k) - if k > 5 then - print 'killing' - t1:kill() -- kill the first timer - t2 = nil - return true -- and we will end now - end -end) - -winapi.make_timer(1000,function() - print 'doo' - if not t2 then os.exit(0) end -- we all finish -end) - --- sleep forever... -winapi.sleep(-1) diff --git a/examples/test-times.lua b/examples/test-times.lua deleted file mode 100644 index 7c233a9..0000000 --- a/examples/test-times.lua +++ /dev/null @@ -1,8 +0,0 @@ -require 'winapi' -t = os.clock() -winapi.sleep(200) -for i = 1,1e8 do end -P = winapi.get_current_process() -print(P:get_working_size()) -print(P:get_run_times()) -print((os.clock() - t)*1000) diff --git a/examples/test-uninterrupted.lua b/examples/test-uninterrupted.lua deleted file mode 100644 index b503167..0000000 --- a/examples/test-uninterrupted.lua +++ /dev/null @@ -1,33 +0,0 @@ -require 'winapi' - -l = 1 -winapi.make_timer(400,function() - print 'bonzo' - l = l + 1 - --if l > 10 then os.exit() end -end) - -winapi.make_timer(300,function() - print 'woo' -end) - -function protected(val) - print(val) -end - --- --[[ -while true do - winapi.sleep(200,true) - print 'gotcha' -end ---]] - ---[[ -while true do - winapi.sleep(200) - winapi.locked_eval(protected,'hello') - --protected 'hello' --> this will cause nonsense -end ---]] - - diff --git a/examples/test-watcher.lua b/examples/test-watcher.lua deleted file mode 100644 index 1c303e7..0000000 --- a/examples/test-watcher.lua +++ /dev/null @@ -1,41 +0,0 @@ -require 'winapi' -io.stdout:setvbuf 'no' -local dir = '.' -local dir2 = dir .. '\\without_spaces' -local LAST_WRITE,FILE_NAME = - winapi.FILE_NOTIFY_CHANGE_LAST_WRITE, - winapi.FILE_NOTIFY_CHANGE_FILE_NAME - -w1,err = winapi.watch_for_file_changes(dir,LAST_WRITE+FILE_NAME,false,print) -if not w1 then return print(err) end -w2,err = winapi.watch_for_file_changes(dir2,LAST_WRITE+FILE_NAME,false,print) -if not w2 then return print(err) end - --- ok, our watchers are in the background -winapi.sleep(200) - -function writefile (name,text) - local f = io.open(name,'w') - f:write(text) - f:close() -end - -writefile('without_spaces/out.txt','hello') - -os.execute 'cd without_spaces && del frodo.txt && ren out.txt frodo.txt' - -writefile ('mobo.txt','freaky') - -winapi.sleep(200) - --- can stop a watcher by killing its thread -w1:kill() - -writefile ('doof.txt','freaky') - -winapi.sleep(200) - - - - - diff --git a/examples/testshort.lua b/examples/testshort.lua deleted file mode 100644 index 1b4dedd..0000000 --- a/examples/testshort.lua +++ /dev/null @@ -1,17 +0,0 @@ -require 'winapi' -local U = winapi.uexpand -local encode = winapi.encode -local UTF8 = winapi.CP_UTF8 - -winapi.set_encoding(UTF8) - -local short = winapi.short_path -local name = short 'ελληνική.txt' -os.remove(name) -print(name) -local f,err = io.open(name,'w') -if not f then return print(err) end -f:write 'a new file\n' -f:close() - - diff --git a/examples/testu.lua b/examples/testu.lua deleted file mode 100644 index f19887e..0000000 --- a/examples/testu.lua +++ /dev/null @@ -1,10 +0,0 @@ -require 'winapi' -local U = winapi.utf8_expand -local UTF8 = winapi.CP_UTF8 - -winapi.set_encoding(UTF8) - -txt = U '#03BB + #03BC + C' -print(txt) - -print(U '#03BD') diff --git a/examples/thread-test.lua b/examples/thread-test.lua deleted file mode 100644 index 7a04ab3..0000000 --- a/examples/thread-test.lua +++ /dev/null @@ -1,32 +0,0 @@ -local W = require 'winapi' -local r,w = W.pipe() -local m = W.mutex() - -function lprint(...) - m:lock() - print(...) - m:release() -end - -function long(name) - lprint('hello',name) - for i = 1,2 do - m:lock() - w:write(name..i) - m:release() - for i = 1,1e8 do end - end -end - -r:read_async(function(s) - lprint(s) -end) - -T = {} -T[1] = W.thread(long,'john') -T[2] = W.thread(long,'jane') -T[3] = W.thread(long,'june') - -W.wait_for_processes(T,true) -print 'finish' - diff --git a/examples/with spaces/dir.txt b/examples/with spaces/dir.txt deleted file mode 100644 index 7aabb059b0fff6f7c79f13a82ee2ae083a1931fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmZ=^uwsZ|NMT52CN6RN81xuQ pfHEZvybN3nE@YXL4m2ed2(zhR7Rb#d3>gdxKo=GO-J6WltpHN6RN81xuQ zfHEZvybN3nE@YXL4m2ed2(zhR7Rb#d3>gdxKo=GO-J48hx5CWN2Zm7zLp(uS0P?&- AEdT%j diff --git a/lakefile b/lakefile deleted file mode 100644 index 4ae3f9d..0000000 --- a/lakefile +++ /dev/null @@ -1,9 +0,0 @@ -c.shared{'examples/winapi',src='winapi wutils',needs='lua', - defines='PSAPI_VERSION=1', - libs = 'kernel32 user32 psapi advapi32 shell32 Mpr', - dynamic = true, - strip = true -} - -target('winapi.c',{'winapi.l.c'},'luam -C -llc winapi.l.c 1>winapi.c') - diff --git a/lc.lua b/lc.lua deleted file mode 100644 index 7cd73d8..0000000 --- a/lc.lua +++ /dev/null @@ -1,351 +0,0 @@ --- Simplifying writing C extensions for Lua --- Adds new module and class constructs; --- see class1.lc and str.lc for examples. -local M = require 'macro' - -function dollar_subst(s,tbl) - return (s:gsub('%$%((%a+)%)',tbl)) -end - --- reuse some machinery from the C-skin experiments -local push,pop = table.insert,table.remove -local bstack,btop = {},{} - -local function push_brace_stack (newv) - newv = newv or {} - newv.lev = 0 - push(bstack,btop) - btop = newv -end - -M.define('{',function() - if btop.lev then - btop.lev = btop.lev + 1 - end - return nil,true --> pass-through macro -end) - -M.define('}',function(get,put) - if not btop.lev then - return nil,true - elseif btop.lev == 0 then - local res - if btop.handler then res = btop.handler(get,put) end - if not res then res = put:space() '}' end - btop = pop(bstack) - return res - else - btop.lev = btop.lev - 1 - return nil,true --> pass-through macro - end -end) - ---------- actual implementation begins ------- - -local append = table.insert -local module - -local function register_functions (names,cnames) - local out = {} - for i = 1,#names do - append(out,(' {"%s",l_%s},'):format(names[i],cnames[i])) - end - return table.concat(out,'\n') -end - -local function finalizers (names) - local out = {} - for i = 1,#names do - append(out,names[i].."(L);") - end - return table.concat(out,'\n') -end - -local typedefs - -local preamble = [[ -#include -#include -#include -#ifdef WIN32 -#define EXPORT __declspec(dllexport) -#else -#define EXPORT -#endif -#if LUA_VERSION_NUM > 501 -#define lua_objlen lua_rawlen -#endif -]] - -local finis = [[ -static const luaL_Reg $(cname)_funs[] = { - $(funs) - {NULL,NULL} -}; - -EXPORT int luaopen_$(cname) (lua_State *L) { -#if LUA_VERSION_NUM > 501 - lua_newtable(L); - luaL_setfuncs (L,$(cname)_funs,0); - lua_pushvalue(L,-1); - lua_setglobal(L,"$(cname)"); -#else - luaL_register(L,"$(cname)",$(cname)_funs); -#endif - $(finalizers) - return 1; -} -]] - -M.define('module',function(get) - local name = get:string() - local cname = name:gsub('%.','_') - get:expecting '{' - local out = preamble .. typedefs - push_brace_stack{ - name = name, cname = cname, - names = {}, cnames = {}, finalizers = {}, - handler = function() - local out = {} - local funs = register_functions(btop.names,btop.cnames) - local final = finalizers(btop.finalizers) - append(out,dollar_subst(finis, { - cname = cname, - name = name, - funs = funs, - finalizers = final - })) - return table.concat(out,'\n') - end } - module = btop - return out -end) - - -M.define('def',function(get) - local fname = get:name() - local cname = (btop.ns and btop.ns..'_' or '')..fname - append(btop.names,fname) - append(btop.cnames,cname) - get:expecting '(' - local args = get:list():strip_spaces() - get:expecting '{' - local t,space = get() - indent = space:gsub('^%s*[\n\r]',''):gsub('%s$','') - local out = {"static int l_"..cname.."(lua_State *L) {"} - if btop.massage_arg then - btop.massage_arg(args) - end - for i,arg in ipairs(args) do - local mac = arg[1][2]..'_init' - if arg[3] and arg[3][1] == '=' then - mac = mac .. 'o' - i = i .. ',' .. arg[4][2] - end - if not arg[2] then M.error("parameter must be TYPE NAME [= VALUE]") end - append(out,indent..mac..'('..arg[2][2]..','..i..');') - end - --append(out,space) - return table.concat(out,'\n')..space -end) - -M.define('constants',function(get,put) - get:expecting '{' - local consts = get:list '}' :strip_spaces() - --for k,v in pairs(btop) do io.stderr:write(k,'=',tostring(v),'\n') end - -- os.exit() - local fname = 'set_'..btop.cname..'_constants' - local out = { 'static void '..fname..'(lua_State *L) {'} - if not btop.finalizers then M.error("not inside a module") end - append(btop.finalizers,fname) - for _,c in ipairs(consts) do - local type,value,name - if #c == 1 then -- a simple int constant: CONST - name = c:pick(1) - type = 'Int' - value = name - else -- Type CONST [ = VALUE ] - type = c:pick(1) - name = c:pick(2) - if #c == 2 then - value = name - else - value = c:pick(4) - end - end - append(out,('%s_set("%s",%s);'):format(type,name,value )) - end - append(out,'}') - return table.concat(out,'\n') -end) - -M.define('assign',function(get) - get:expecting '{' - local asses = get:list '}' :strip_spaces() - local out = {} - for _,c in ipairs(asses) do - append(out,('%s_set("%s",%s);\n'):format(c:pick(1),c:pick(2),c:pick(4)) ) - end - return table.concat(out,'\n') -end) - -local load_lua = [[ -static void load_lua_code (lua_State *L) { - luaL_dostring(L,lua_code_block); -} -]] - -M.define('lua',function(get) - get:expecting '{' - local block = tostring(get:upto '}') - local code_name = 'lua_code_block' - local out = {'static const char *'.. code_name .. ' = ""\\'} - for line in block:gmatch('([^\r\n]+)') do - line = line:gsub('\\','\\\\'):gsub('"','\\"') - append(out,' "'..line..'\\n"\\') - end - append(out,';') - append(out,load_lua) - out = table.concat(out,'\n') - append(module.finalizers,'load_lua_code') - return out -end) - -M.define('initial',function(get) - local name = get:name() - append(module.finalizers,name) - get:expecting '{' - local body = tostring(get:upto '}') - return ('int %s(lua_State *L) {\n%s}\n'):format(name,body) -end) - -typedefs = [[ -typedef const char *Str; -typedef const char *StrNil; -typedef int Int; -typedef double Number; -typedef int Boolean; -]] - - -M.define 'Str_init(var,idx) const char *var = luaL_checklstring(L,idx,NULL)' -M.define 'Str_inito(var,idx,val) const char *var = luaL_optlstring(L,idx,val,NULL)' -M.define 'Str_set(name,value) lua_pushstring(L,value); lua_setfield(L,-2,name)' -M.define 'Str_get(var,name) lua_getfield(L,-1,name); var=lua_tostring(L,-1); lua_pop(L,1)' -M.define 'Str_geti(var,idx) lua_rawgeti(L,-1,idx); var=lua_tostring(L,-1); lua_pop(L,1)' - -M.define 'StrNil_init(var,idx) const char *var = lua_tostring(L,idx)' - -M.define 'Int_init(var,idx) int var = luaL_checkinteger(L,idx)' -M.define 'Int_inito(var,idx,val) int var = luaL_optinteger(L,idx,val)' -M.define 'Int_set(name,value) lua_pushinteger(L,value); lua_setfield(L,-2,name)' -M.define 'Int_get(var,name) lua_getfield(L,-1,name); var=lua_tointeger(L,-1); lua_pop(L,1)' -M.define 'Int_geti(var,idx) lua_rawgeti(L,-1,idx); var=lua_tointeger(L,-1); lua_pop(L,1)' - -M.define 'Number_init(var,idx) double var = luaL_checknumber(L,idx)' -M.define 'Number_inito(var,idx,val) double var = luaL_optnumber(L,idx,val)' -M.define 'NUmber_set(name,value) lua_pushnumber(L,value); lua_setfield(L,-2,name)' -M.define 'Number_get(var,name) lua_getfield(L,-1,name); var=lua_tonumber(L,-1); lua_pop(L,1)' -M.define 'Number_geti(var,idx) lua_rawgeti(L,-1,idx); var=lua_tonumber(L,-1); lua_pop(L,1)' - -M.define 'Boolean_init(var,idx) int var = lua_toboolean(L,idx)' -M.define 'Boolean_set(name,value) lua_pushboolean(L,value); lua_setfield(L,-2,name)' -M.define 'Boolean_get(var,name) lua_getfield(L,-1,name); var=lua_toboolean(L,-1); lua_pop(L,1)' -M.define 'Boolean_geti(var,idx) lua_rawgeti(L,-1,idx); var=lua_toboolean(L,-1); lua_pop(L,1)' - -M.define 'Value_init(var,idx) int var = idx' - -M.define('lua_tests',function(get) - get:expecting '{' - local body = get:upto '}' - local f = io.open(M.filename..'.lua','w') - f:write(tostring(body)) - f:close() -end) - ------- class support ---------------------- - -local klass_ctor = "static void $(klass)_ctor(lua_State *L, $(klass) *this, $(fargs))" - -local begin_klass = [[ - -typedef struct { - $(fields) -} $(klass); - -define_ $(klass)_init(var,idx) $(klass) *var = $(klass)_arg(L,idx) - -#define $(klass)_MT "$(klass)" - -$(klass) * $(klass)_arg(lua_State *L,int idx) { - $(klass) *this = ($(klass) *)luaL_checkudata(L,idx,$(klass)_MT); - luaL_argcheck(L, this != NULL, idx, "$(klass) expected"); - return this; -} - -$(ctor); - -static int push_new_$(klass)(lua_State *L,$(fargs)) { - $(klass) *this = ($(klass) *)lua_newuserdata(L,sizeof($(klass))); - luaL_getmetatable(L,$(klass)_MT); - lua_setmetatable(L,-2); - $(klass)_ctor(L,this,$(aargs)); - return 1; -} - -]] - -local end_klass = [[ - -static const struct luaL_Reg $(klass)_methods [] = { - $(methods) - {NULL, NULL} /* sentinel */ -}; - -static void $(klass)_register (lua_State *L) { - luaL_newmetatable(L,$(klass)_MT); -#if LUA_VERSION_NUM > 501 - luaL_setfuncs(L,$(klass)_methods,0); -#else - luaL_register(L,NULL,$(klass)_methods); -#endif - lua_pushvalue(L,-1); - lua_setfield(L,-2,"__index"); - lua_pop(L,1); -} -]] - -M.define('class',function(get) - local name = get:name() - get:expecting '{' - local fields = get:upto (function(t,v) - return t == 'iden' and v == 'constructor' - end) - fields = tostring(fields):gsub('%s+$','\n') - get:expecting '(' - local out = {} - local args = get:list() - local f_args = args:strip_spaces() - local a_args = f_args:pick(2) - f_args = table.concat(args:__tostring(),',') - a_args = table.concat(a_args,',') - local subst = {klass=name,fields=fields,fargs=f_args,aargs=a_args } - local proto = dollar_subst(klass_ctor,subst) - subst.ctor = proto - append(out,dollar_subst(begin_klass,subst)) - append(out,proto) - local pp = {{'iden',name},{'iden','this'}} - push_brace_stack{ - names = {}, cnames = {}, ns = name, cname = name, - massage_arg = function(args) - table.insert(args,1,pp) - end, - handler = function(get,put) - append(module.finalizers,name.."_register") - local methods = register_functions(btop.names,btop.cnames) - return dollar_subst(end_klass,{methods=methods,klass=name,fargs=f_args,aargs=a_args}) - end - } - return table.concat(out,'\n') -end) - diff --git a/makefile b/makefile deleted file mode 100644 index af3a54d..0000000 --- a/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: build - lake -build: - build-lc diff --git a/markdown.lua b/markdown.lua deleted file mode 100644 index f23954f..0000000 --- a/markdown.lua +++ /dev/null @@ -1,1388 +0,0 @@ -#!/usr/bin/env lua - ---[[ -# markdown.lua -- version 0.32 - - - -**Author:** Niklas Frykholm, -**Date:** 31 May 2008 - -This is an implementation of the popular text markup language Markdown in pure Lua. -Markdown can convert documents written in a simple and easy to read text format -to well-formatted HTML. For a more thourough description of Markdown and the Markdown -syntax, see . - -The original Markdown source is written in Perl and makes heavy use of advanced -regular expression techniques (such as negative look-ahead, etc) which are not available -in Lua's simple regex engine. Therefore this Lua port has been rewritten from the ground -up. It is probably not completely bug free. If you notice any bugs, please report them to -me. A unit test that exposes the error is helpful. - -## Usage - - require "markdown" - markdown(source) - -``markdown.lua`` exposes a single global function named ``markdown(s)`` which applies the -Markdown transformation to the specified string. - -``markdown.lua`` can also be used directly from the command line: - - lua markdown.lua test.md - -Creates a file ``test.html`` with the converted content of ``test.md``. Run: - - lua markdown.lua -h - -For a description of the command-line options. - -``markdown.lua`` uses the same license as Lua, the MIT license. - -## License - -Copyright © 2008 Niklas Frykholm. - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons -to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies -or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -## Version history - -- **0.32** -- 31 May 2008 - - Fix for links containing brackets -- **0.31** -- 1 Mar 2008 - - Fix for link definitions followed by spaces -- **0.30** -- 25 Feb 2008 - - Consistent behavior with Markdown when the same link reference is reused -- **0.29** -- 24 Feb 2008 - - Fix for

 blocks with spaces in them
--	**0.28** -- 18 Feb 2008
-	-	Fix for link encoding
--	**0.27** -- 14 Feb 2008
-	-	Fix for link database links with ()
--	**0.26** -- 06 Feb 2008
-	-	Fix for nested italic and bold markers
--	**0.25** -- 24 Jan 2008
-	-	Fix for encoding of naked <
--	**0.24** -- 21 Jan 2008
-	-	Fix for link behavior.
--	**0.23** -- 10 Jan 2008
-	-	Fix for a regression bug in longer expressions in italic or bold.
--	**0.22** -- 27 Dec 2007
-	-	Fix for crash when processing blocks with a percent sign in them.
--	**0.21** -- 27 Dec 2007
-	- 	Fix for combined strong and emphasis tags
--	**0.20** -- 13 Oct 2007
-	-	Fix for < as well in image titles, now matches Dingus behavior
--	**0.19** -- 28 Sep 2007
-	-	Fix for quotation marks " and ampersands & in link and image titles.
--	**0.18** -- 28 Jul 2007
-	-	Does not crash on unmatched tags (behaves like standard markdown)
--	**0.17** -- 12 Apr 2007
-	-	Fix for links with %20 in them.
--	**0.16** -- 12 Apr 2007
-	-	Do not require arg global to exist.
--	**0.15** -- 28 Aug 2006
-	-	Better handling of links with underscores in them.
--	**0.14** -- 22 Aug 2006
-	-	Bug for *`foo()`*
--	**0.13** -- 12 Aug 2006
-	-	Added -l option for including stylesheet inline in document.
-	-	Fixed bug in -s flag.
-	-	Fixed emphasis bug.
--	**0.12** -- 15 May 2006
-	-	Fixed several bugs to comply with MarkdownTest 1.0 
--	**0.11** -- 12 May 2006
-	-	Fixed bug for escaping `*` and `_` inside code spans.
-	-	Added license terms.
-	-	Changed join() to table.concat().
--	**0.10** -- 3 May 2006
-	-	Initial public release.
-
-// Niklas
-]]
-
-
--- Set up a table for holding local functions to avoid polluting the global namespace
-local M = {}
-local MT = {__index = _G}
-setmetatable(M, MT)
-setfenv(1, M)
-
-----------------------------------------------------------------------
--- Utility functions
-----------------------------------------------------------------------
-
--- Locks table t from changes, writes an error if someone attempts to change the table.
--- This is useful for detecting variables that have "accidently" been made global. Something
--- I tend to do all too much.
-function lock(t)
-	function lock_new_index(t, k, v)
-		error("module has been locked -- " .. k .. " must be declared local", 2)
-	end
-
-	local mt = {__newindex = lock_new_index}
-	if getmetatable(t) then mt.__index = getmetatable(t).__index end
-	setmetatable(t, mt)
-end
-
--- Returns the result of mapping the values in table t through the function f
-function map(t, f)
-	local out = {}
-	for k,v in pairs(t) do out[k] = f(v,k) end
-	return out
-end
-
--- The identity function, useful as a placeholder.
-function identity(text) return text end
-
--- Functional style if statement. (NOTE: no short circuit evaluation)
-function iff(t, a, b) if t then return a else return b end end
-
--- Splits the text into an array of separate lines.
-function split(text, sep)
-	sep = sep or "\n"
-	local lines = {}
-	local pos = 1
-	while true do
-		local b,e = text:find(sep, pos)
-		if not b then table.insert(lines, text:sub(pos)) break end
-		table.insert(lines, text:sub(pos, b-1))
-		pos = e + 1
-	end
-	return lines
-end
-
--- Converts tabs to spaces
-function detab(text)
-	local tab_width = 4
-	local function rep(match)
-		local spaces = -match:len()
-		while spaces<1 do spaces = spaces + tab_width end
-		return match .. string.rep(" ", spaces)
-	end
-	text = text:gsub("([^\n]-)\t", rep)
-	return text
-end
-
--- Applies string.find for every pattern in the list and returns the first match
-function find_first(s, patterns, index)
-	local res = {}
-	for _,p in ipairs(patterns) do
-		local match = {s:find(p, index)}
-		if #match>0 and (#res==0 or match[1] < res[1]) then res = match end
-	end
-	return unpack(res)
-end
-
--- If a replacement array is specified, the range [start, stop] in the array is replaced
--- with the replacement array and the resulting array is returned. Without a replacement
--- array the section of the array between start and stop is returned.
-function splice(array, start, stop, replacement)
-	if replacement then
-		local n = stop - start + 1
-		while n > 0 do
-			table.remove(array, start)
-			n = n - 1
-		end
-		for i,v in ipairs(replacement) do
-			table.insert(array, start, v)
-		end
-		return array
-	else
-		local res = {}
-		for i = start,stop do
-			table.insert(res, array[i])
-		end
-		return res
-	end
-end
-
--- Outdents the text one step.
-function outdent(text)
-	text = "\n" .. text
-	text = text:gsub("\n  ? ? ?", "\n")
-	text = text:sub(2)
-	return text
-end
-
--- Indents the text one step.
-function indent(text)
-	text = text:gsub("\n", "\n    ")
-	return text
-end
-
--- Does a simple tokenization of html data. Returns the data as a list of tokens. 
--- Each token is a table with a type field (which is either "tag" or "text") and
--- a text field (which contains the original token data).
-function tokenize_html(html)
-	local tokens = {}
-	local pos = 1
-	while true do
-		local start = find_first(html, {"", start)
-		elseif html:match("^<%?", start) then
-			_,stop = html:find("?>", start)
-		else
-			_,stop = html:find("%b<>", start)
-		end
-		if not stop then
-			-- error("Could not match html tag " .. html:sub(start,start+30)) 
-		 	table.insert(tokens, {type="text", text=html:sub(start, start)})
-			pos = start + 1
-		else
-			table.insert(tokens, {type="tag", text=html:sub(start, stop)})
-			pos = stop + 1
-		end
-	end
-	return tokens
-end
-
-----------------------------------------------------------------------
--- Hash
-----------------------------------------------------------------------
-
--- This is used to "hash" data into alphanumeric strings that are unique
--- in the document. (Note that this is not cryptographic hash, the hash
--- function is not one-way.) The hash procedure is used to protect parts
--- of the document from further processing.
-
-local HASH = {
-	-- Has the hash been inited.
-	inited = false,
-	
-	-- The unique string prepended to all hash values. This is to ensure
-	-- that hash values do not accidently coincide with an actual existing
-	-- string in the document.
-	identifier = "",
-	
-	-- Counter that counts up for each new hash instance.
-	counter = 0,
-	
-	-- Hash table.
-	table = {}
-}
-
--- Inits hashing. Creates a hash_identifier that doesn't occur anywhere
--- in the text.
-function init_hash(text)
-	HASH.inited = true
-	HASH.identifier = ""
-	HASH.counter = 0
-	HASH.table = {}
-	
-	local s = "HASH"
-	local counter = 0
-	local id
-	while true do
-		id  = s .. counter
-		if not text:find(id, 1, true) then break end
-		counter = counter + 1
-	end
-	HASH.identifier = id
-end
-
--- Returns the hashed value for s.
-function hash(s)
-	assert(HASH.inited)
-	if not HASH.table[s] then
-		HASH.counter = HASH.counter + 1
-		local id = HASH.identifier .. HASH.counter .. "X"
-		HASH.table[s] = id
-	end
-	return HASH.table[s]
-end
-
-----------------------------------------------------------------------
--- Protection
-----------------------------------------------------------------------
-
--- The protection module is used to "protect" parts of a document
--- so that they are not modified by subsequent processing steps. 
--- Protected parts are saved in a table for later unprotection
-
--- Protection data
-local PD = {
-	-- Saved blocks that have been converted
-	blocks = {},
-
-	-- Block level tags that will be protected
-	tags = {"p", "div", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote",
-	"pre", "table", "dl", "ol", "ul", "script", "noscript", "form", "fieldset",
-	"iframe", "math", "ins", "del"}
-}
-
--- Pattern for matching a block tag that begins and ends in the leftmost
--- column and may contain indented subtags, i.e.
--- 
--- A nested block. ---
--- Nested data. ---
---
-function block_pattern(tag) - return "\n<" .. tag .. ".-\n[ \t]*\n" -end - --- Pattern for matching a block tag that begins and ends with a newline -function line_pattern(tag) - return "\n<" .. tag .. ".-[ \t]*\n" -end - --- Protects the range of characters from start to stop in the text and --- returns the protected string. -function protect_range(text, start, stop) - local s = text:sub(start, stop) - local h = hash(s) - PD.blocks[h] = s - text = text:sub(1,start) .. h .. text:sub(stop) - return text -end - --- Protect every part of the text that matches any of the patterns. The first --- matching pattern is protected first, etc. -function protect_matches(text, patterns) - while true do - local start, stop = find_first(text, patterns) - if not start then break end - text = protect_range(text, start, stop) - end - return text -end - --- Protects blocklevel tags in the specified text -function protect(text) - -- First protect potentially nested block tags - text = protect_matches(text, map(PD.tags, block_pattern)) - -- Then protect block tags at the line level. - text = protect_matches(text, map(PD.tags, line_pattern)) - -- Protect
and comment tags - text = protect_matches(text, {"\n]->[ \t]*\n"}) - text = protect_matches(text, {"\n[ \t]*\n"}) - return text -end - --- Returns true if the string s is a hash resulting from protection -function is_protected(s) - return PD.blocks[s] -end - --- Unprotects the specified text by expanding all the nonces -function unprotect(text) - for k,v in pairs(PD.blocks) do - v = v:gsub("%%", "%%%%") - text = text:gsub(k, v) - end - return text -end - - ----------------------------------------------------------------------- --- Block transform ----------------------------------------------------------------------- - --- The block transform functions transform the text on the block level. --- They work with the text as an array of lines rather than as individual --- characters. - --- Returns true if the line is a ruler of (char) characters. --- The line must contain at least three char characters and contain only spaces and --- char characters. -function is_ruler_of(line, char) - if not line:match("^[ %" .. char .. "]*$") then return false end - if not line:match("%" .. char .. ".*%" .. char .. ".*%" .. char) then return false end - return true -end - --- Identifies the block level formatting present in the line -function classify(line) - local info = {line = line, text = line} - - if line:match("^ ") then - info.type = "indented" - info.outdented = line:sub(5) - return info - end - - for _,c in ipairs({'*', '-', '_', '='}) do - if is_ruler_of(line, c) then - info.type = "ruler" - info.ruler_char = c - return info - end - end - - if line == "" then - info.type = "blank" - return info - end - - if line:match("^(#+)[ \t]*(.-)[ \t]*#*[ \t]*$") then - local m1, m2 = line:match("^(#+)[ \t]*(.-)[ \t]*#*[ \t]*$") - info.type = "header" - info.level = m1:len() - info.text = m2 - return info - end - - if line:match("^ ? ? ?(%d+)%.[ \t]+(.+)") then - local number, text = line:match("^ ? ? ?(%d+)%.[ \t]+(.+)") - info.type = "list_item" - info.list_type = "numeric" - info.number = 0 + number - info.text = text - return info - end - - if line:match("^ ? ? ?([%*%+%-])[ \t]+(.+)") then - local bullet, text = line:match("^ ? ? ?([%*%+%-])[ \t]+(.+)") - info.type = "list_item" - info.list_type = "bullet" - info.bullet = bullet - info.text= text - return info - end - - if line:match("^>[ \t]?(.*)") then - info.type = "blockquote" - info.text = line:match("^>[ \t]?(.*)") - return info - end - - if is_protected(line) then - info.type = "raw" - info.html = unprotect(line) - return info - end - - info.type = "normal" - return info -end - --- Find headers constisting of a normal line followed by a ruler and converts them to --- header entries. -function headers(array) - local i = 1 - while i <= #array - 1 do - if array[i].type == "normal" and array[i+1].type == "ruler" and - (array[i+1].ruler_char == "-" or array[i+1].ruler_char == "=") then - local info = {line = array[i].line} - info.text = info.line - info.type = "header" - info.level = iff(array[i+1].ruler_char == "=", 1, 2) - table.remove(array, i+1) - array[i] = info - end - i = i + 1 - end - return array -end - --- Find list blocks and convert them to protected data blocks -function lists(array, sublist) - local function process_list(arr) - local function any_blanks(arr) - for i = 1, #arr do - if arr[i].type == "blank" then return true end - end - return false - end - - local function split_list_items(arr) - local acc = {arr[1]} - local res = {} - for i=2,#arr do - if arr[i].type == "list_item" then - table.insert(res, acc) - acc = {arr[i]} - else - table.insert(acc, arr[i]) - end - end - table.insert(res, acc) - return res - end - - local function process_list_item(lines, block) - while lines[#lines].type == "blank" do - table.remove(lines) - end - - local itemtext = lines[1].text - for i=2,#lines do - itemtext = itemtext .. "\n" .. outdent(lines[i].line) - end - if block then - itemtext = block_transform(itemtext, true) - if not itemtext:find("
") then itemtext = indent(itemtext) end
-				return "    
  • " .. itemtext .. "
  • " - else - local lines = split(itemtext) - lines = map(lines, classify) - lines = lists(lines, true) - lines = blocks_to_html(lines, true) - itemtext = table.concat(lines, "\n") - if not itemtext:find("
    ") then itemtext = indent(itemtext) end
    -				return "    
  • " .. itemtext .. "
  • " - end - end - - local block_list = any_blanks(arr) - local items = split_list_items(arr) - local out = "" - for _, item in ipairs(items) do - out = out .. process_list_item(item, block_list) .. "\n" - end - if arr[1].list_type == "numeric" then - return "
      \n" .. out .. "
    " - else - return "
      \n" .. out .. "
    " - end - end - - -- Finds the range of lines composing the first list in the array. A list - -- starts with (^ list_item) or (blank list_item) and ends with - -- (blank* $) or (blank normal). - -- - -- A sublist can start with just (list_item) does not need a blank... - local function find_list(array, sublist) - local function find_list_start(array, sublist) - if array[1].type == "list_item" then return 1 end - if sublist then - for i = 1,#array do - if array[i].type == "list_item" then return i end - end - else - for i = 1, #array-1 do - if array[i].type == "blank" and array[i+1].type == "list_item" then - return i+1 - end - end - end - return nil - end - local function find_list_end(array, start) - local pos = #array - for i = start, #array-1 do - if array[i].type == "blank" and array[i+1].type ~= "list_item" - and array[i+1].type ~= "indented" and array[i+1].type ~= "blank" then - pos = i-1 - break - end - end - while pos > start and array[pos].type == "blank" do - pos = pos - 1 - end - return pos - end - - local start = find_list_start(array, sublist) - if not start then return nil end - return start, find_list_end(array, start) - end - - while true do - local start, stop = find_list(array, sublist) - if not start then break end - local text = process_list(splice(array, start, stop)) - local info = { - line = text, - type = "raw", - html = text - } - array = splice(array, start, stop, {info}) - end - - -- Convert any remaining list items to normal - for _,line in ipairs(array) do - if line.type == "list_item" then line.type = "normal" end - end - - return array -end - --- Find and convert blockquote markers. -function blockquotes(lines) - local function find_blockquote(lines) - local start - for i,line in ipairs(lines) do - if line.type == "blockquote" then - start = i - break - end - end - if not start then return nil end - - local stop = #lines - for i = start+1, #lines do - if lines[i].type == "blank" or lines[i].type == "blockquote" then - elseif lines[i].type == "normal" then - if lines[i-1].type == "blank" then stop = i-1 break end - else - stop = i-1 break - end - end - while lines[stop].type == "blank" do stop = stop - 1 end - return start, stop - end - - local function process_blockquote(lines) - local raw = lines[1].text - for i = 2,#lines do - raw = raw .. "\n" .. lines[i].text - end - local bt = block_transform(raw) - if not bt:find("
    ") then bt = indent(bt) end
    -		return "
    \n " .. bt .. - "\n
    " - end - - while true do - local start, stop = find_blockquote(lines) - if not start then break end - local text = process_blockquote(splice(lines, start, stop)) - local info = { - line = text, - type = "raw", - html = text - } - lines = splice(lines, start, stop, {info}) - end - return lines -end - --- Find and convert codeblocks. -function codeblocks(lines) - local function find_codeblock(lines) - local start - for i,line in ipairs(lines) do - if line.type == "indented" then start = i break end - end - if not start then return nil end - - local stop = #lines - for i = start+1, #lines do - if lines[i].type ~= "indented" and lines[i].type ~= "blank" then - stop = i-1 - break - end - end - while lines[stop].type == "blank" do stop = stop - 1 end - return start, stop - end - - local function process_codeblock(lines) - local raw = detab(encode_code(outdent(lines[1].line))) - for i = 2,#lines do - raw = raw .. "\n" .. detab(encode_code(outdent(lines[i].line))) - end - return "
    " .. raw .. "\n
    " - end - - while true do - local start, stop = find_codeblock(lines) - if not start then break end - local text = process_codeblock(splice(lines, start, stop)) - local info = { - line = text, - type = "raw", - html = text - } - lines = splice(lines, start, stop, {info}) - end - return lines -end - -local idcount = 1 -local list_of_headers = {} -local first_header - --- Convert lines to html code -function blocks_to_html(lines, no_paragraphs) - local out = {} - local i = 1 - while i <= #lines do - local line = lines[i] - if line.type == "ruler" then - table.insert(out, "
    ") - elseif line.type == "raw" then - table.insert(out, line.html) - elseif line.type == "normal" then - local s = line.line - - while i+1 <= #lines and lines[i+1].type == "normal" do - i = i + 1 - s = s .. "\n" .. lines[i].line - end - - if no_paragraphs then - table.insert(out, span_transform(s)) - else - table.insert(out, "

    " .. span_transform(s) .. "

    ") - end - elseif line.type == "header" then - local txt = span_transform(line.text) - local id = "T" .. idcount - local s = "' .. txt .. "" - if not first_header then - first_header = {line=s,text=txt} - else - table.insert(out, s) - table.insert(list_of_headers, {level=line.level,text=txt,id=id}) - end - idcount = idcount + 1 - else - table.insert(out, line.line) - end - i = i + 1 - end - return out -end - --- Perform all the block level transforms -function block_transform(text, sublist) - local lines = split(text) - lines = map(lines, classify) - lines = headers(lines) - lines = lists(lines, sublist) - lines = codeblocks(lines) - lines = blockquotes(lines) - lines = blocks_to_html(lines) - local text = table.concat(lines, "\n") - return text -end - --- Debug function for printing a line array to see the result --- of partial transforms. -function print_lines(lines) - for i, line in ipairs(lines) do - print(i, line.type, line.text or line.line) - end -end - ----------------------------------------------------------------------- --- Span transform ----------------------------------------------------------------------- - --- Functions for transforming the text at the span level. - --- These characters may need to be escaped because they have a special --- meaning in markdown. -escape_chars = "'\\`*_{}[]()>#+-.!'" -escape_table = {} - -function init_escape_table() - escape_table = {} - for i = 1,#escape_chars do - local c = escape_chars:sub(i,i) - escape_table[c] = hash(c) - end -end - --- Adds a new escape to the escape table. -function add_escape(text) - if not escape_table[text] then - escape_table[text] = hash(text) - end - return escape_table[text] -end - --- Escape characters that should not be disturbed by markdown. -function escape_special_chars(text) - local tokens = tokenize_html(text) - - local out = "" - for _, token in ipairs(tokens) do - local t = token.text - if token.type == "tag" then - -- In tags, encode * and _ so they don't conflict with their use in markdown. - t = t:gsub("%*", escape_table["*"]) - t = t:gsub("%_", escape_table["_"]) - else - t = encode_backslash_escapes(t) - end - out = out .. t - end - return out -end - --- Encode backspace-escaped characters in the markdown source. -function encode_backslash_escapes(t) - for i=1,escape_chars:len() do - local c = escape_chars:sub(i,i) - t = t:gsub("\\%" .. c, escape_table[c]) - end - return t -end - --- Unescape characters that have been encoded. -function unescape_special_chars(t) - local tin = t - for k,v in pairs(escape_table) do - k = k:gsub("%%", "%%%%") - t = t:gsub(v,k) - end - if t ~= tin then t = unescape_special_chars(t) end - return t -end - --- Encode/escape certain characters inside Markdown code runs. --- The point is that in code, these characters are literals, --- and lose their special Markdown meanings. -function encode_code(s) - s = s:gsub("%&", "&") - s = s:gsub("<", "<") - s = s:gsub(">", ">") - for k,v in pairs(escape_table) do - s = s:gsub("%"..k, v) - end - return s -end - --- Handle backtick blocks. -function code_spans(s) - s = s:gsub("\\\\", escape_table["\\"]) - s = s:gsub("\\`", escape_table["`"]) - - local pos = 1 - while true do - local start, stop = s:find("`+", pos) - if not start then return s end - local count = stop - start + 1 - -- Find a matching numbert of backticks - local estart, estop = s:find(string.rep("`", count), stop+1) - local brstart = s:find("\n", stop+1) - if estart and (not brstart or estart < brstart) then - local code = s:sub(stop+1, estart-1) - code = code:gsub("^[ \t]+", "") - code = code:gsub("[ \t]+$", "") - code = code:gsub(escape_table["\\"], escape_table["\\"] .. escape_table["\\"]) - code = code:gsub(escape_table["`"], escape_table["\\"] .. escape_table["`"]) - code = "" .. encode_code(code) .. "" - code = add_escape(code) - s = s:sub(1, start-1) .. code .. s:sub(estop+1) - pos = start + code:len() - else - pos = stop + 1 - end - end - return s -end - --- Encode alt text... enodes &, and ". -function encode_alt(s) - if not s then return s end - s = s:gsub('&', '&') - s = s:gsub('"', '"') - s = s:gsub('<', '<') - return s -end - --- Handle image references -function images(text) - local function reference_link(alt, id) - alt = encode_alt(alt:match("%b[]"):sub(2,-2)) - id = id:match("%[(.*)%]"):lower() - if id == "" then id = text:lower() end - link_database[id] = link_database[id] or {} - if not link_database[id].url then return nil end - local url = link_database[id].url or id - url = encode_alt(url) - local title = encode_alt(link_database[id].title) - if title then title = " title=\"" .. title .. "\"" else title = "" end - return add_escape ('' .. alt .. '") - end - - local function inline_link(alt, link) - alt = encode_alt(alt:match("%b[]"):sub(2,-2)) - local url, title = link:match("%(?[ \t]*['\"](.+)['\"]") - url = url or link:match("%(?%)") - url = encode_alt(url) - title = encode_alt(title) - if title then - return add_escape('' .. alt .. '') - else - return add_escape('' .. alt .. '') - end - end - - text = text:gsub("!(%b[])[ \t]*\n?[ \t]*(%b[])", reference_link) - text = text:gsub("!(%b[])(%b())", inline_link) - return text -end - --- Handle anchor references -function anchors(text) - local function reference_link(text, id) - text = text:match("%b[]"):sub(2,-2) - id = id:match("%b[]"):sub(2,-2):lower() - if id == "" then id = text:lower() end - link_database[id] = link_database[id] or {} - if not link_database[id].url then return nil end - local url = link_database[id].url or id - url = encode_alt(url) - local title = encode_alt(link_database[id].title) - if title then title = " title=\"" .. title .. "\"" else title = "" end - return add_escape("
    ") .. text .. add_escape("") - end - - local function inline_link(text, link) - text = text:match("%b[]"):sub(2,-2) - local url, title = link:match("%(?[ \t]*['\"](.+)['\"]") - title = encode_alt(title) - url = url or link:match("%(?%)") or "" - url = encode_alt(url) - if title then - return add_escape("") .. text .. "" - else - return add_escape("") .. text .. add_escape("") - end - end - - text = text:gsub("(%b[])[ \t]*\n?[ \t]*(%b[])", reference_link) - text = text:gsub("(%b[])(%b())", inline_link) - return text -end - --- Handle auto links, i.e. . -function auto_links(text) - local function link(s) - return add_escape("") .. s .. "" - end - -- Encode chars as a mix of dec and hex entitites to (perhaps) fool - -- spambots. - local function encode_email_address(s) - -- Use a deterministic encoding to make unit testing possible. - -- Code 45% hex, 45% dec, 10% plain. - local hex = {code = function(c) return "&#x" .. string.format("%x", c:byte()) .. ";" end, count = 1, rate = 0.45} - local dec = {code = function(c) return "&#" .. c:byte() .. ";" end, count = 0, rate = 0.45} - local plain = {code = function(c) return c end, count = 0, rate = 0.1} - local codes = {hex, dec, plain} - local function swap(t,k1,k2) local temp = t[k2] t[k2] = t[k1] t[k1] = temp end - - local out = "" - for i = 1,s:len() do - for _,code in ipairs(codes) do code.count = code.count + code.rate end - if codes[1].count < codes[2].count then swap(codes,1,2) end - if codes[2].count < codes[3].count then swap(codes,2,3) end - if codes[1].count < codes[2].count then swap(codes,1,2) end - - local code = codes[1] - local c = s:sub(i,i) - -- Force encoding of "@" to make email address more invisible. - if c == "@" and code == plain then code = codes[2] end - out = out .. code.code(c) - code.count = code.count - 1 - end - return out - end - local function mail(s) - s = unescape_special_chars(s) - local address = encode_email_address("mailto:" .. s) - local text = encode_email_address(s) - return add_escape("") .. text .. "" - end - -- links - text = text:gsub("<(https?:[^'\">%s]+)>", link) - text = text:gsub("<(ftp:[^'\">%s]+)>", link) - - -- mail - text = text:gsub("%s]+)>", mail) - text = text:gsub("<([-.%w]+%@[-.%w]+)>", mail) - return text -end - --- Encode free standing amps (&) and angles (<)... note that this does not --- encode free >. -function amps_and_angles(s) - -- encode amps not part of &..; expression - local pos = 1 - while true do - local amp = s:find("&", pos) - if not amp then break end - local semi = s:find(";", amp+1) - local stop = s:find("[ \t\n&]", amp+1) - if not semi or (stop and stop < semi) or (semi - amp) > 15 then - s = s:sub(1,amp-1) .. "&" .. s:sub(amp+1) - pos = amp+1 - else - pos = amp+1 - end - end - - -- encode naked <'s - s = s:gsub("<([^a-zA-Z/?$!])", "<%1") - s = s:gsub("<$", "<") - - -- what about >, nothing done in the original markdown source to handle them - return s -end - --- Handles emphasis markers (* and _) in the text. -function emphasis(text) - for _, s in ipairs {"%*%*", "%_%_"} do - text = text:gsub(s .. "([^%s][%*%_]?)" .. s, "%1") - text = text:gsub(s .. "([^%s][^<>]-[^%s][%*%_]?)" .. s, "%1") - end - for _, s in ipairs {"%*", "%_"} do - text = text:gsub(s .. "([^%s_])" .. s, "%1") - text = text:gsub(s .. "([^%s_])" .. s, "%1") - text = text:gsub(s .. "([^%s_][^<>_]-[^%s_])" .. s, "%1") - text = text:gsub(s .. "([^<>_]-[^<>_]-[^<>_]-)" .. s, "%1") - end - return text -end - --- Handles line break markers in the text. -function line_breaks(text) - return text:gsub(" +\n", "
    \n") -end - --- Perform all span level transforms. -function span_transform(text) - text = code_spans(text) - text = escape_special_chars(text) - text = images(text) - text = anchors(text) - text = auto_links(text) - text = amps_and_angles(text) - text = emphasis(text) - text = line_breaks(text) - return text -end - ----------------------------------------------------------------------- --- Markdown ----------------------------------------------------------------------- - --- Cleanup the text by normalizing some possible variations to make further --- processing easier. -function cleanup(text) - -- Standardize line endings - text = text:gsub("\r\n", "\n") -- DOS to UNIX - text = text:gsub("\r", "\n") -- Mac to UNIX - - -- Convert all tabs to spaces - text = detab(text) - - -- Strip lines with only spaces and tabs - while true do - local subs - text, subs = text:gsub("\n[ \t]+\n", "\n\n") - if subs == 0 then break end - end - - return "\n" .. text .. "\n" -end - --- Strips link definitions from the text and stores the data in a lookup table. -function strip_link_definitions(text) - local linkdb = {} - - local function link_def(id, url, title) - id = id:match("%[(.+)%]"):lower() - linkdb[id] = linkdb[id] or {} - linkdb[id].url = url or linkdb[id].url - linkdb[id].title = title or linkdb[id].title - return "" - end - - local def_no_title = "\n ? ? ?(%b[]):[ \t]*\n?[ \t]*]+)>?[ \t]*" - local def_title1 = def_no_title .. "[ \t]+\n?[ \t]*[\"'(]([^\n]+)[\"')][ \t]*" - local def_title2 = def_no_title .. "[ \t]*\n[ \t]*[\"'(]([^\n]+)[\"')][ \t]*" - local def_title3 = def_no_title .. "[ \t]*\n?[ \t]+[\"'(]([^\n]+)[\"')][ \t]*" - - text = text:gsub(def_title1, link_def) - text = text:gsub(def_title2, link_def) - text = text:gsub(def_title3, link_def) - text = text:gsub(def_no_title, link_def) - return text, linkdb -end - -link_database = {} - --- Main markdown processing function -function markdown(text) - init_hash(text) - init_escape_table() - - text = cleanup(text) - text = protect(text) - text, link_database = strip_link_definitions(text) - text = block_transform(text) - text = unescape_special_chars(text) - return text -end - ----------------------------------------------------------------------- --- End of module ----------------------------------------------------------------------- - -setfenv(1, _G) -M.lock(M) - --- Expose markdown function to the world -markdown = M.markdown - --- Class for parsing command-line options -local OptionParser = {} -OptionParser.__index = OptionParser - --- Creates a new option parser -function OptionParser:new() - local o = {short = {}, long = {}} - setmetatable(o, self) - return o -end - --- Calls f() whenever a flag with specified short and long name is encountered -function OptionParser:flag(short, long, f) - local info = {type = "flag", f = f} - if short then self.short[short] = info end - if long then self.long[long] = info end -end - --- Calls f(param) whenever a parameter flag with specified short and long name is encountered -function OptionParser:param(short, long, f) - local info = {type = "param", f = f} - if short then self.short[short] = info end - if long then self.long[long] = info end -end - --- Calls f(v) for each non-flag argument -function OptionParser:arg(f) - self.arg = f -end - --- Runs the option parser for the specified set of arguments. Returns true if all arguments --- where successfully parsed and false otherwise. -function OptionParser:run(args) - local pos = 1 - while pos <= #args do - local arg = args[pos] - if arg == "--" then - for i=pos+1,#args do - if self.arg then self.arg(args[i]) end - return true - end - end - if arg:match("^%-%-") then - local info = self.long[arg:sub(3)] - if not info then print("Unknown flag: " .. arg) return false end - if info.type == "flag" then - info.f() - pos = pos + 1 - else - param = args[pos+1] - if not param then print("No parameter for flag: " .. arg) return false end - info.f(param) - pos = pos+2 - end - elseif arg:match("^%-") then - for i=2,arg:len() do - local c = arg:sub(i,i) - local info = self.short[c] - if not info then print("Unknown flag: -" .. c) return false end - if info.type == "flag" then - info.f() - else - if i == arg:len() then - param = args[pos+1] - if not param then print("No parameter for flag: -" .. c) return false end - info.f(param) - pos = pos + 1 - else - param = arg:sub(i+1) - info.f(param) - end - break - end - end - pos = pos + 1 - else - if self.arg then self.arg(arg) end - pos = pos + 1 - end - end - return true -end - --- Handles the case when markdown is run from the command line -local function run_command_line(arg) - -- Generate output for input s given options - local function run(s, options) - s = markdown(s) - if not options.wrap_header then return s end - local header = "" - if options.header then - local f = io.open(options.header) or error("Could not open file: " .. options.header) - header = f:read("*a") - f:close() - else - header = [[ - - - - - TITLE - - - -]] - local title = options.title or (first_header and first_header.text) or "Untitled" - header = header:gsub("TITLE", title) - if options.inline_style then - local style = "" - local f = io.open(options.stylesheet) - if f then - style = f:read("*a") f:close() - else - error("Could not include style sheet " .. options.stylesheet .. ": File not found") - end - header = header:gsub('', - "") - else - header = header:gsub("STYLESHEET", options.stylesheet) - end - header = header:gsub("CHARSET", options.charset) - end - local footer = "" - if options.footer then - local f = io.open(options.footer) or error("Could not open file: " .. options.footer) - footer = f:read("*a") - f:close() - end - if first_header then - header = header .. first_header.line ..'\n' - -- Build TOC if required! - local txt = '' - local indent = 0 - local last_level - for i,h in ipairs(list_of_headers) do - if i > 1 then - local diff = h.level - last_level - if diff > 0 then indent = indent + 1 - elseif diff < 0 then indent = indent - 1 - end - end - txt = txt..string.rep('\t',indent)..'* ['..h.text..'](#'..h.id..')\n' - last_level = h.level - end - header = header .. markdown(txt) - end - return header .. s .. footer - end - - -- Generate output path name from input path name given options. - local function outpath(path, options) - if options.append then return path .. ".html" end - local m = path:match("^(.+%.html)[^/\\]+$") if m then return m end - m = path:match("^(.+%.)[^/\\]*$") if m and path ~= m .. "html" then return m .. "html" end - return path .. ".html" - end - - -- Default commandline options - local options = { - wrap_header = true, - header = nil, - footer = nil, - charset = "utf-8", - title = nil, - stylesheet = "default.css", - inline_style = false - } - local help = [[ -Usage: markdown.lua [OPTION] [FILE] -Runs the markdown text markup to HTML converter on each file specified on the -command line. If no files are specified, runs on standard input. - -No header: - -n, --no-wrap Don't wrap the output in ... tags. -Custom header: - -e, --header FILE Use content of FILE for header. - -f, --footer FILE Use content of FILE for footer. -Generated header: - -c, --charset SET Specifies charset (default utf-8). - -i, --title TITLE Specifies title (default from first

    tag). - -s, --style STYLE Specifies style sheet file (default default.css). - -l, --inline-style Include the style sheet file inline in the header. -Generated files: - -a, --append Append .html extension (instead of replacing). -Other options: - -h, --help Print this help text. - -t, --test Run the unit tests. -]] - - local run_stdin = true - local op = OptionParser:new() - op:flag("n", "no-wrap", function () options.wrap_header = false end) - op:param("e", "header", function (x) options.header = x end) - op:param("f", "footer", function (x) options.footer = x end) - op:param("c", "charset", function (x) options.charset = x end) - op:param("i", "title", function(x) options.title = x end) - op:param("s", "style", function(x) options.stylesheet = x end) - op:flag("l", "inline-style", function(x) options.inline_style = true end) - op:flag("a", "append", function() options.append = true end) - op:flag("t", "test", function() - local n = arg[0]:gsub("markdown.lua", "markdown-tests.lua") - local f = io.open(n) - if f then - f:close() dofile(n) - else - error("Cannot find markdown-tests.lua") - end - run_stdin = false - end) - op:flag("h", "help", function() print(help) run_stdin = false end) - op:arg(function(path) - local file = io.open(path) or error("Could not open file: " .. path) - local s = file:read("*a") - file:close() - s = run(s, options) - file = io.open(outpath(path, options), "w") or error("Could not open output file: " .. outpath(path, options)) - file:write(s) - file:close() - run_stdin = false - end - ) - - if not op:run(arg) then - print(help) - run_stdin = false - end - - if run_stdin then - local s = io.read("*a") - s = run(s, options) - io.write(s) - end -end - --- If we are being run from the command-line, act accordingly -if arg and arg[0]:find("markdown%.lua$") then - run_command_line(arg) -else - return markdown -end diff --git a/processt_callback.lua b/processt_callback.lua deleted file mode 100644 index 102e023..0000000 --- a/processt_callback.lua +++ /dev/null @@ -1,19 +0,0 @@ -require 'winapi' - --- run the program: 'fire and forget' -p,f = winapi.spawn_process 'lua52 process-wait.lua' - --- echo process output to stdout -f:read_async(print) - --- call this function when we're finished -p:wait_async(function(s) - print ('finis',s,p:get_exit_code()) - os.exit() -end) - -a = 0 - ---print 'sleeping' - -winapi.sleep(-1) diff --git a/winapi.l.c b/winapi.l.c deleted file mode 100644 index 67ca25d..0000000 --- a/winapi.l.c +++ /dev/null @@ -1,2164 +0,0 @@ -/*** -A useful set of Windows API functions. - - * Enumerating and accessing windows, including sending keys. - * Enumerating processes and querying their program name, memory used, etc. - * Reading and Writing to the Registry - * Copying and moving files, and showing drive information. - * Launching processes and opening documents. - * Monitoring filesystem changes. - -@author Steve Donovan (steve.j.donovan@gmail.com) -@copyright 2011 -@license MIT/X11 -@module winapi -*/ -#define WINDOWS_LEAN_AND_MEAN -#include -#include -#ifdef __GNUC__ -#include /* GNU GCC specific */ -#endif -#include "Winnetwk.h" -#include - - -#define WBUFF 2048 -#define MAX_SHOW 100 -#define THREAD_STACK_SIZE (1024 * 1024) -#define MAX_PROCESSES 1024 -#define MAX_KEYS 512 -#define FILE_BUFF_SIZE 2048 -#define MAX_WATCH 20 -#define MAX_WPATH 1024 - -#define TIMEOUT(timeout) timeout == 0 ? INFINITE : timeout - -static wchar_t wbuff[WBUFF]; - -typedef LPCWSTR WStr; - -module "winapi" { - -#include "wutils.h" - -static WStr wstring(Str text) { - return wstring_buff(text,wbuff,sizeof(wbuff)); -} - -/// Text encoding. -// @section encoding - -/// set the current text encoding. -// @param e one of `CP_ACP` (Windows code page; default) and `CP_UTF8` -// @function set_encoding -def set_encoding (Int e) { - set_encoding(e); - return 0; -} - -/// get the current text encoding. -// @return either `CP_ACP` or `CP_UTF8` -// @function get_encoding -def get_encoding () { - lua_pushinteger(L, get_encoding()); - return 1; -} - -/// encode a string in another encoding. -// Note: currently there's a limit of about 2K on the string buffer. -// @param e_in `CP_ACP`, `CP_UTF8` or `CP_UTF16` -// @param e_out likewise -// @param text the string -// @function encode -def encode(Int e_in, Int e_out, Str text) { - int ce = get_encoding(); - LPCWSTR ws; - if (e_in != -1) { - set_encoding(e_in); - ws = wstring(text); - } else { - ws = (LPCWSTR)text; - } - if (e_out != -1) { - set_encoding(e_out); - push_wstring(L,ws); - } else { - lua_pushlstring(L,(LPCSTR)ws,wcslen(ws)*sizeof(WCHAR)); - } - set_encoding(ce); - return 1; -} - -/// expand # unicode escapes in a string. -// @param text ASCII text with #XXXX, where XXXX is four hex digits. ## means # itself. -// @return text as UTF-8 -// @see testu.lua -// @function utf8_expand -def utf8_expand(Str text) { - int len = strlen(text), i = 0, enc = get_encoding(); - WCHAR wch; - LPWSTR P = wbuff; - if (len > sizeof(wbuff)) { - return push_error_msg(L,"string too big"); - } - while (i <= len) { - if (text[i] == '#') { - ++i; - if (text[i] == '#') { - wch = '#'; - } else - if (len-i >= 4) { - char hexnum[5]; - strncpy(hexnum,text+i,4); - hexnum[4] = '\0'; - wch = strtol(hexnum,NULL,16); - i += 3; - } else { - return push_error_msg(L,"bad # escape"); - } - } else { - wch = (WCHAR)text[i]; - } - *P++ = wch; - ++i; - } - *P++ = 0; - set_encoding(CP_UTF8); - push_wstring(L,wbuff); - set_encoding(enc); - return 1; -} - -// forward reference to Process constructor -static int push_new_Process(lua_State *L,Int pid, HANDLE ph); - -const DWORD_PTR WIN_NOACTIVATE = (DWORD_PTR)SWP_NOACTIVATE, - WIN_NOMOVE = (DWORD_PTR)SWP_NOMOVE, - WIN_NOSIZE = (DWORD_PTR)SWP_NOSIZE, - WIN_SHOWWINDOW = (DWORD_PTR)SWP_SHOWWINDOW, - WIN_NOZORDER = (DWORD_PTR)SWP_NOZORDER, - WIN_BOTTOM = (DWORD_PTR)HWND_BOTTOM, - WIN_NOTOPMOST = (DWORD_PTR)HWND_NOTOPMOST, - WIN_TOP = (DWORD_PTR)HWND_TOP, - WIN_TOPMOST = (DWORD_PTR)HWND_TOPMOST; - - -/// a class representing a Window. -// @type Window -class Window { - HWND hwnd; - - constructor (HWND h) { - this->hwnd = h; - } - - static lua_State *sL; - - static BOOL CALLBACK enum_callback(HWND hwnd,LPARAM data) { - push_ref(sL,(Ref)data); - push_new_Window(sL,hwnd); - lua_call(sL,1,0); - return TRUE; - } - - /// the handle of this window. - // @function get_handle - def get_handle() { - lua_pushnumber(L,(DWORD_PTR)this->hwnd); - return 1; - } - - /// get the window text. - // @function get_text - def get_text() { - GetWindowTextW(this->hwnd,wbuff,sizeof(wbuff)); - return push_wstring(L,wbuff); - } - - /// set the window text. - // @function set_text - def set_text(Str text) { - SetWindowTextW(this->hwnd,wstring(text)); - return 0; - } - - /// change the visibility, state etc - // @param flags one of `SW_SHOW`, `SW_MAXIMIZE`, etc - // @function show - def show(Int flags = SW_SHOW) { - ShowWindow(this->hwnd,flags); - return 0; - } - - /// change the visibility without blocking. - // @param flags one of `SW_SHOW`, `SW_MAXIMIZE`, etc - // @function show_async - def show_async(Int flags = SW_SHOW) { - ShowWindowAsync(this->hwnd,flags); - return 0; - } - - /// get the position in pixels - // @return left position - // @return top position - // @function get_position - def get_position() { - RECT rect; - GetWindowRect(this->hwnd,&rect); - lua_pushinteger(L,rect.left); - lua_pushinteger(L,rect.top); - return 2; - } - - /// get the bounds in pixels - // @return width - // @return height - // @function get_bounds - def get_bounds() { - RECT rect; - GetWindowRect(this->hwnd,&rect); - lua_pushinteger(L,rect.right - rect.left); - lua_pushinteger(L,rect.bottom - rect.top); - return 2; - } - - /// is this window visible? - // @function is_visible - def is_visible() { - lua_pushboolean(L,IsWindowVisible(this->hwnd)); - return 1; - } - - /// destroy this window. - // @function destroy - def destroy () { - DestroyWindow(this->hwnd); - return 0; - } - - /// resize this window. - // @param x0 left - // @param y0 top - // @param w width - // @param h height - // @function resize - def resize(Int x0, Int y0, Int w, Int h) { - MoveWindow(this->hwnd,x0,y0,w,h,TRUE); - return 0; - } - - /// resize or move a window. - // see [API](http://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx) - // @param w window _handle_ to insert after, or one of: - // WINWIN_BOTTOM, WIN_NOTOPMOST, WIN_TOP (default), WIN_TOPMOST - // @param x0 left (ignore if flags has WIN_NOMOVE) - // @param y0 top - // @param w width (ignore if flags has WIN_NOSIZE) - // @param h height - // @param flags one of - // WIN_NOACTIVATE, WIN_NOMOVE, WIN_NOSIZE, WIN_SHOWWINDOW (default), WIN_NOZORDER - def set_pos (Int wafter = WIN_TOP, Int x0, Int y0, Int w, Int h, Int flags = WIN_SHOWWINDOW) { - SetWindowPos(this->hwnd,(HWND)(DWORD_PTR)wafter,x0,y0,w,h,flags); - return 0; - } - - /// send a message. - // @param msg the message - // @param wparam - // @param lparam - // @return the result - // @function send_message - def send_message(Int msg, Number wparam, Number lparam) { - lua_pushinteger(L,SendMessage(this->hwnd,msg,(WPARAM)wparam,(LPARAM)lparam)); - return 1; - } - - /// send a message asynchronously. - // @param msg the message - // @param wparam - // @param lparam - // @return the result - // @function post_message - def post_message(Int msg, Number wparam, Number lparam) { - return push_bool(L,PostMessage(this->hwnd,msg,(WPARAM)wparam,(LPARAM)lparam)); - } - - - /// enumerate all child windows. - // @param a callback which to receive each window object - // @function enum_children - def enum_children(Value callback) { - Ref ref; - sL = L; - ref = make_ref(L,callback); - EnumChildWindows(this->hwnd,&enum_callback,ref); - release_ref(L,ref); - return 0; - } - - /// get the parent window. - // @function get_parent - def get_parent() { - return push_new_Window(L,GetParent(this->hwnd)); - } - - /// get the name of the program owning this window. - // @function get_module_filename - def get_module_filename() { - int sz = GetWindowModuleFileNameW(this->hwnd,wbuff,sizeof(wbuff)); - wbuff[sz] = 0; - return push_wstring(L,wbuff); - } - - /// get the window class name. - // Useful to find all instances of a running program, when you - // know the class of the top level window. - // @function get_class_name - def get_class_name() { - static char buff[1024]; - int n = GetClassName(this->hwnd,buff,sizeof(buff)); - if (n > 0) { - lua_pushstring(L,buff); - return 1; - } else { - return push_error(L); - } - } - - /// bring this window to the foreground. - // @function set_foreground - def set_foreground () { - lua_pushboolean(L,SetForegroundWindow(this->hwnd)); - return 1; - } - - /// get the associated process of this window - // @function get_process - def get_process() { - DWORD pid; - GetWindowThreadProcessId(this->hwnd,&pid); - return push_new_Process(L,pid,NULL); - } - - /// this window as string (up to 100 chars). - // @function __tostring - def __tostring() { - int ret; - int sz = GetWindowTextW(this->hwnd,wbuff,sizeof(wbuff)); - if (sz > MAX_SHOW) { - wbuff[MAX_SHOW] = '\0'; - } - ret = push_wstring(L,wbuff); - if (ret == 2) { // we had a conversion error - lua_pushliteral(L,""); - } - return 1; - } - - def __eq(Window other) { - lua_pushboolean(L,this->hwnd == other->hwnd); - return 1; - } - -} - -/// Manipulating Windows. -// @section Windows - -/// find a window based on classname and caption -// @param cname class name (may be nil) -// @param wname caption (may be nil) -// @return @{Window} -// @function find_window -def find_window(StrNil cname, StrNil wname) { - HWND hwnd = FindWindow(cname,wname); - if (hwnd == NULL) { - return push_error(L); - } else { - return push_new_Window(L,hwnd); - } -} - -/// makes a function that matches against window text -// @param text -// @function make_name_matcher - -/// makes a function that matches against window class name -// @param text -// @function make_class_matcher - -/// find a window using a condition function. -// @param match will return true when its argument is the desired window -// @return @{Window} -// @function find_window_ex - -/// return all windows matching a condition. -// @param match will return true when its argument is the desired window -// @return a list of window objects -// @function find_all_windows - -/// find a window matching the given text. -// @param text the pattern to match against the caption -// @return a window object. -// @function find_window_match - -/// current foreground window. -// An example of setting the caption is @{caption.lua} -// @return @{Window} -// @function get_foreground_window -def get_foreground_window() { - return push_new_Window(L, GetForegroundWindow()); -} - -/// the desktop window. -// @usage winapi.get_desktop_window():get_bounds() -// @return @{Window} -// @function get_desktop_window -def get_desktop_window() { - return push_new_Window(L, GetDesktopWindow()); -} - -/// a Window object from a handle -// @param a Windows nandle -// @return @{Window} -// @function window_from_handle -def window_from_handle(Int hwnd) { - return push_new_Window(L, (HWND)hwnd); -} - -/// enumerate over all top-level windows. -// @param callback a function to receive each window object -// @function enum_windows -def enum_windows(Value callback) { - Ref ref; - sL = L; - ref = make_ref(L,callback); - EnumWindows(&enum_callback,ref); - release_ref(L,ref); - return 0; -} - -/// route callback dispatch through a message window. -// You need to do this when using Winapi in a GUI application, -// since it ensures that Lua callbacks happen in the GUI thread. -// @function use_gui -def use_gui() { - make_message_window(); - return 0; -} - -static INPUT *add_input(INPUT *pi, WORD vkey, BOOL up) { - pi->type = INPUT_KEYBOARD; - pi->ki.dwFlags = up ? KEYEVENTF_KEYUP : 0; - pi->ki.wVk = vkey; - return pi+1; -} - -// The Windows SendInput() is a low-level function, and you have to -// simulate things like uppercase directly. Repeated characters need -// an explicit 'key up' keystroke to work. -// see http://stackoverflow.com/questions/2167156/sendinput-isnt-sending-the-correct-shifted-characters -// this is a case where we have to convert the parameter directly, since -// it may be an integer (virtual key code) or string of characters. - -/// send a string or virtual key to the active window. -// @{input.lua} shows launching a process, waiting for it to be -// ready, and sending it some keys -// @param text either a key (like winapi.VK_SHIFT) or a string -// @return number of keys sent, or nil if an error -// @return any error string -// @function send_to_window -def send_to_window () { - const char *text; - int vkey, len = MAX_KEYS; - UINT res; - SHORT last_vk = 0; - INPUT *input, *pi; - if (lua_isnumber(L,1)) { - INPUT inp; - ZeroMemory(&inp,sizeof(INPUT)); - vkey = lua_tointeger(L,1); - add_input(&inp,vkey,lua_toboolean(L,2)); - SendInput(1,&inp,sizeof(INPUT)); - return 0; - } else { - text = lua_tostring(L,1); - if (text == NULL) { - return push_error_msg(L,"not a string or number"); - } - } - input = (INPUT *)malloc(sizeof(INPUT)*len); - pi = input; - ZeroMemory(input, sizeof(INPUT)*len); - for(; *text; ++text) { - SHORT vk = VkKeyScan(*text); - if (last_vk == vk) { - pi = add_input(pi,last_vk & 0xFF,TRUE); - } - if (vk & 0x100) pi = add_input(pi,VK_SHIFT,FALSE); - pi = add_input(pi,vk & 0xFF,FALSE); - if (vk & 0x100) pi = add_input(pi,VK_SHIFT,TRUE); - last_vk = vk; - } - res = SendInput(((DWORD_PTR)pi-(DWORD_PTR)input)/sizeof(INPUT), input, sizeof(INPUT)); - free(input); - if (res > 0) { - lua_pushinteger(L,res); - return 1; - } else { - return push_error(L); - } - return 0; -} - -/// tile a group of windows. -// @param parent @{Window} (can use the desktop) -// @param horiz tile vertically by default -// @param kids a table of window objects -// @param bounds a bounds table (left,top,right,bottom) - can be nil -// @function tile_windows -def tile_windows(Window parent, Boolean horiz, Value kids, Value bounds) { - RECT rt; - HWND *kids_arr; - int i,n_kids; - LPRECT lpRect = NULL; - if (! lua_isnoneornil(L,bounds)) { - lua_pushvalue(L,bounds); - Int_get(rt.left,"left"); - Int_get(rt.top,"top"); - Int_get(rt.right,"right"); - Int_get(rt.bottom,"bottom"); - lua_pop(L,1); - lpRect = &rt; - } - n_kids = lua_objlen(L,kids); - kids_arr = (HWND *)malloc(sizeof(HWND)*n_kids); - for (i = 0; i < n_kids; ++i) { - Window *w; - lua_rawgeti(L,kids,i+1); - w = Window_arg(L,-1); - kids_arr[i] = w->hwnd; - } - TileWindows(parent->hwnd,horiz ? MDITILE_HORIZONTAL : MDITILE_VERTICAL, lpRect, n_kids, kids_arr); - free(kids_arr); - return 0; -} - -/// Miscellaneous functions. -// @section miscellaneous - -static int push_new_File(lua_State *L,HANDLE hread, HANDLE hwrite); - -/// sleep and use no processing time. -// @param millisec sleep period -// @function sleep -def sleep(Int millisec) { - release_mutex(); - Sleep(millisec); - lock_mutex(); - return 0; -} - -/// show a message box. -// @param caption for dialog -// @param msg the message -// @param btns (default 'ok') one of 'ok','ok-cancel','yes','yes-no', -// "abort-retry-ignore", "retry-cancel", "yes-no-cancel" -// @param icon (default 'information') one of 'information','question','warning','error' -// @return a string giving the pressed button: one of 'ok','yes','no','cancel', -// 'try','abort' and 'retry' -// @see message.lua -// @function show_message -def show_message(Str caption, Str msg, Str btns = "ok", Str icon = "information") { - int res, type; - WCHAR capb [512]; - type = mb_const(btns) | mb_const(icon); - wstring_buff(caption,capb,sizeof(capb)); - res = MessageBoxW( NULL, wstring(msg), capb, type); - lua_pushstring(L,mb_result(res)); - return 1; -} - -/// make a beep sound. -// @param type (default 'ok'); one of 'information','question','warning','error' -// @function beep -def beep (Str icon = "ok") { - return push_bool(L, MessageBeep(mb_const(icon))); -} - -/// copy a file. -// @param src source file -// @param dest destination file -// @param fail_if_exists if true, then cannot copy onto existing file -// @function copy_file -def copy_file(Str src, Str dest, Int fail_if_exists = 0) { - return push_bool(L, CopyFile(src,dest,fail_if_exists)); -} - -/// output text to the system debugger. -// A uility such as [DebugView](http://technet.microsoft.com/en-us/sysinternals/bb896647) -// can show the output -// @param str text -// @function output_debug_string -def output_debug_string(Str str) { - OutputDebugString(str); - return 0; -} - -/// move a file. -// @param src source file -// @param dest destination file -// @function move_file -def move_file(Str src, Str dest) { - return push_bool(L, MoveFile(src,dest)); -} - -#define wconv(name) (name ? wstring_buff(name,w##name,sizeof(w##name)) : NULL) - -/// execute a shell command. -// @param verb the action (e.g. 'open' or 'edit') can be nil. -// @param file the command -// @param parms any parameters (optional) -// @param dir the working directory (optional) -// @param show the window show flags (default is SW_SHOWNORMAL) -// @function shell_exec -def shell_exec(StrNil verb, Str file, StrNil parms, StrNil dir, Int show=SW_SHOWNORMAL) { - WCHAR wverb[128], wfile[MAX_WPATH], wdir[MAX_WPATH], wparms[MAX_WPATH]; - int res = (DWORD_PTR)ShellExecuteW(NULL,wconv(verb),wconv(file),wconv(parms),wconv(dir),show) > 32; - return push_bool(L, res); -} - -/// copy text onto the clipboard. -// @param text the text -// @function set_clipboard -def set_clipboard(Str text) { - HGLOBAL glob; - LPWSTR p; - int bufsize = 3*strlen(text); - if (! OpenClipboard(NULL)) { - return push_perror(L,"openclipboard"); - } - EmptyClipboard(); - glob = GlobalAlloc(GMEM_MOVEABLE, bufsize); - p = (LPWSTR)GlobalLock(glob); - wstring_buff(text,p,bufsize); - GlobalUnlock(glob); - if (SetClipboardData(CF_UNICODETEXT,glob) == NULL) { - CloseClipboard(); - return push_error(L); - } - CloseClipboard(); - return 0; -} - -/// get the text on the clipboard. -// @return the text -// @function get_clipboard -def get_clipboard() { - HGLOBAL glob; - LPCWSTR p; - if (! OpenClipboard(NULL)) { - return push_perror(L,"openclipboard"); - } - glob = GetClipboardData(CF_UNICODETEXT); - if (glob == NULL) { - CloseClipboard(); - return push_error(L); - } - p = GlobalLock(glob); - push_wstring(L,p); - GlobalUnlock(glob); - CloseClipboard(); - return 1; -} - -/// open console i/o. -// @return @{File} -// @function get_console -def get_console() { - HANDLE w = GetStdHandle(STD_OUTPUT_HANDLE); - HANDLE r = GetStdHandle(STD_INPUT_HANDLE); - return push_new_File(L,r,w); -} - -def pipe() { - HANDLE hRead, hWrite; - if (CreatePipe(&hRead,&hWrite,NULL,0) != 0) { - push_new_File(L,hRead,NULL); - push_new_File(L,NULL,hWrite); - return 2; - } else { - return push_error(L); - } -} - -/// open a serial port for reading and writing. -// @param defn a string as used by the [mode command](http://technet.microsoft.com/en-us/library/cc732236%28WS.10%29.aspx) -// @return @{File} -// @function open_serial -def open_serial(Str defn) { - DCB dcb = {0}; - char port[20]; - HANDLE hSerial; - const char *p = defn; - char *q = port; - for (; *p != ' '; p++) { - *q++ = *p; - } - *q = '\0'; - dcb.DCBlength = sizeof(dcb); - hSerial = CreateFile(port,GENERIC_READ | GENERIC_WRITE, 0, 0, - OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - if (hSerial == INVALID_HANDLE_VALUE) { - return push_perror(L,"createfile"); - } - GetCommState(hSerial,&dcb); - if (! BuildCommDCB(defn,&dcb)) { - CloseHandle(hSerial); - return push_perror(L,"buildcom"); - } - if (! SetCommState(hSerial,&dcb)) { - CloseHandle(hSerial); - return push_perror(L,"setcomm"); - } - return push_new_File(L,hSerial,hSerial); -} - -static int push_wait_result(lua_State *L, DWORD res) { - if (res == WAIT_OBJECT_0) { - lua_pushvalue(L,1); - lua_pushliteral(L,"OK"); - return 2; - } else if (res == WAIT_TIMEOUT) { - lua_pushvalue(L,1); - lua_pushliteral(L,"TIMEOUT"); - return 2; - } else { - return push_error(L); - } -} - -static int wait_single(HANDLE h, int timeout) { - DWORD res; - release_mutex(); - res = WaitForSingleObject (h, timeout); - lock_mutex(); - return res; -} - -static int push_wait(lua_State *L, HANDLE h, int timeout) { - return push_wait_result(L,wait_single(h,timeout)); -} - -static int push_wait_async(lua_State *L, HANDLE h, int timeout, int callback); - -/// The Event class. -// @type Event -class Event { - HANDLE hEvent; - - constructor(HANDLE h) { - this->hEvent = h; - } - - /// wait for this event to be signalled. - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this event object - // @return either "OK" or "TIMEOUT" - // @function wait - def wait(Int timeout=0) { - return push_wait(L,this->hEvent, TIMEOUT(timeout)); - } - - /// run callback when this process is finished. - // @param callback the callback - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this process object - // @return either "OK" or "TIMEOUT" - // @function wait_async - def wait_async(Value callback, Int timeout = 0) { - return push_wait_async(L,this->hEvent, TIMEOUT(timeout), callback); - } - - def signal() { - SetEvent(this->hEvent); - return 0; - } - - def __gc() { - CloseHandle(this->hEvent); - return 0; - } -} - -/// The Mutex class. -// @type Mutex -class Mutex { - HANDLE hMutex; - - constructor (HANDLE h) { - this->hMutex = h; - } - - def lock() { - WaitForSingleObject(this->hMutex,INFINITE); - return 0; - } - - def release() { - ReleaseMutex(this->hMutex); - return 0; - } - - def __gc() { - CloseHandle(this->hMutex); - return 0; - } -} - -static int _event_count = 1; - -/// create a new @{Event} object. -// @param name string (optional) -// @return @{Event}, or nil, error. -def event (Str name="?") { - HANDLE hEvent; - char buff[MAX_PATH]; - if (strcmp(name,"?")==0) { - sprintf(buff,"_event_%d",_event_count++); - name = buff; - } - hEvent = CreateEvent (NULL,0,0,name); - if (hEvent == NULL) { - return push_error(L); - } else { - return push_new_Event(L,hEvent); - } -} - -/// create a new @{Mutex} object. -// @param name string (optional) -// @return @{Mutex}, or nil, error. -def mutex(Str name="") { - return push_new_Mutex(L,CreateMutex(NULL,FALSE,*name==0 ? NULL : name)); -} - -/// A class representing a Windows process. -// this example was [helpful](http://msdn.microsoft.com/en-us/library/ms682623%28VS.85%29.aspx) -// @type Process -class Process { - HANDLE hProcess; - int pid; - - constructor(Int pid, HANDLE ph) { - if (ph) { - this->pid = pid; - this->hProcess = ph; - } else { - this->pid = pid; - this->hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | - PROCESS_VM_READ | PROCESS_TERMINATE, - FALSE, pid ); - if (!this->hProcess) { - this->hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | - PROCESS_VM_READ, - FALSE, pid ); - } - } - } - - /// get the name of the process. - // @param full true if you want the full path; otherwise returns the base name. - // @function get_process_name - def get_process_name(Boolean full) { - HMODULE hMod; - DWORD cbNeeded; - wchar_t modname[MAX_PATH]; - - if (EnumProcessModules(this->hProcess, &hMod, sizeof(hMod), &cbNeeded)) { - if (full) { - GetModuleFileNameExW(this->hProcess, hMod, modname, sizeof(modname)); - } else { - GetModuleBaseNameW(this->hProcess, hMod, modname, sizeof(modname)); - } - return push_wstring(L,modname); - } else { - return push_error(L); - } - } - - /// get the the pid of the process. - // @function get_pid - def get_pid() { - lua_pushnumber(L, this->pid); - return 1; - } - - /// kill the process. - // @{test-spawn.lua} kills a launched process after a certain amount of output. - // @function kill - def kill() { - TerminateProcess(this->hProcess,0); - return 0; - } - - /// get the working size of the process. - // @return minimum working set size - // @return maximum working set size. - // @function get_working_size - def get_working_size() { - SIZE_T minsize, maxsize; - GetProcessWorkingSetSize(this->hProcess,&minsize,&maxsize); - lua_pushnumber(L,minsize/1024); - lua_pushnumber(L,maxsize/1024); - return 2; - } - - /// get the start time of this process. - // @return a table in the same format as os.time() and os.date() expects. - // @function get_start_time - def get_start_time() { - FILETIME create,exit,kernel,user,local; - SYSTEMTIME time; - GetProcessTimes(this->hProcess,&create,&exit,&kernel,&user); - FileTimeToLocalFileTime(&create,&local); - FileTimeToSystemTime(&local,&time); - #define set(name,val) lua_pushinteger(L,val); lua_setfield(L,-2,#name); - lua_newtable(L); - set(year,time.wYear); - set(month,time.wMonth); - set(day,time.wDay); - set(hour,time.wHour); - set(min,time.wMinute); - set(sec,time.wSecond); - #undef set - return 1; - } - - // MS likes to be different: the 64-bit value encoded in FILETIME - // is defined as the number of 100-nsec intervals since Jan 1, 1601 UTC - static double fileTimeToMillisec(FILETIME *ft) { - ULARGE_INTEGER ui; - ui.LowPart = ft->dwLowDateTime; - ui.HighPart = ft->dwHighDateTime; - return (double) (ui.QuadPart/10000); - } - - /// elapsed run time of this process. - // @return user time in msec - // @return system time in msec - // @function get_run_times - def get_run_times() { - FILETIME create,exit,kernel,user; - GetProcessTimes(this->hProcess,&create,&exit,&kernel,&user); - lua_pushnumber(L,fileTimeToMillisec(&user)); - lua_pushnumber(L,fileTimeToMillisec(&kernel)); - return 2; - } - - /// wait for this process to finish. - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this process object - // @return either "OK" or "TIMEOUT" - // @function wait - def wait(Int timeout = 0) { - return push_wait(L,this->hProcess, TIMEOUT(timeout)); - } - - /// run callback when this process is finished. - // @param callback the callback - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this process object - // @return either "OK" or "TIMEOUT" - // @function wait_async - def wait_async(Value callback, Int timeout = 0) { - return push_wait_async(L,this->hProcess, TIMEOUT(timeout), callback); - } - - - /// wait for this process to become idle and ready for input. - // Only makes sense for processes with windows (will return immediately if not) - // @param timeout optional timeout in millisec - // @return this process object - // @return either "OK" or "TIMEOUT" - // @function wait_for_input_idle - def wait_for_input_idle (Int timeout = 0) { - return push_wait_result(L, WaitForInputIdle(this->hProcess, TIMEOUT(timeout))); - } - - /// exit code of this process. - // (Only makes sense if the process has in fact finished.) - // @return exit code - // @function get_exit_code - def get_exit_code() { - DWORD code; - GetExitCodeProcess(this->hProcess, &code); - lua_pushinteger(L,code); - return 1; - } - - /// close this process handle. - // @function close - def close() { - CloseHandle(this->hProcess); - this->hProcess = NULL; - return 0; - } - - def __gc () { - if (this->hProcess != NULL) - CloseHandle(this->hProcess); - return 0; - } -} - -/// Working with processes. -// @{readme.md.Creating_and_working_with_Processes} -// @section Processes - -/// create a process object from the id. -// @param pid the process id -// @return @{Process} -// @function process_from_id -def process_from_id(Int pid) { - return push_new_Process(L,pid,NULL); -} - -/// process id of current process. -// @return integer id -// @function get_current_pid -def get_current_pid() { - lua_pushinteger(L,GetCurrentProcessId()); - return 1; -} - -/// process object of the current process. -// @return @{Process} -// @function get_current_process -def get_current_process() { - return push_new_Process(L,0,GetCurrentProcess()); -} - -/// get all process ids in the system. -// @{test-processes.lua} is a simple `ps` equivalent. -// @return an array of process ids. -// @function get_processes -def get_processes() { - DWORD processes[MAX_PROCESSES], cbNeeded, nProcess; - int i, k = 1; - - if (! EnumProcesses (processes,sizeof(processes),&cbNeeded)) { - return push_error(L); - } - - nProcess = cbNeeded/sizeof (DWORD); - lua_newtable(L); - for (i = 0; i < nProcess; i++) { - if (processes[i] != 0) { - lua_pushinteger(L,processes[i]); - lua_rawseti(L,-2,k++); - } - } - return 1; -} - -/// wait for a group of processes. -// Note that this will work with @{Event} and @{Thread} objects as well. -// @{process-wait.lua} shows a number of processes launched -// in parallel -// @param processes an array of @{Process} objects -// @param all wait for all processes to finish (default false) -// @param timeout wait upto this time in msec (default infinite) -// @function wait_for_processes -def wait_for_processes(Value processes, Boolean all, Int timeout = 0) { - int status, i; - void *p; - int n = lua_objlen(L,processes); - HANDLE handles[MAXIMUM_WAIT_OBJECTS]; - if (n > MAXIMUM_WAIT_OBJECTS) { - return push_error_msg(L,"cannot wait on so many processes"); - } - - for (i = 0; i < n; i++) { - lua_rawgeti(L,processes,i+1); - // any user data with a handle as the first field will work here - p = lua_touserdata(L,-1); - if (p == NULL) { - return push_error_msg(L,"non-object in list!"); - } - handles[i] = *(HANDLE*)p; - } - release_mutex(); - status = WaitForMultipleObjects(n, handles, all, TIMEOUT(timeout)); - lock_mutex(); - status = status - WAIT_OBJECT_0 + 1; - if (status < 1 || status > n) { - return push_error(L); - } else { - lua_pushinteger(L,status); - return 1; - } -} - -// These functions are all run in background threads, and a little bit of poor man's -// OOP helps here. This is the base struct for describing threads with callbacks, -// which may have an associated buffer and handle. - -#define callback_data_ \ - HANDLE handle; \ - lua_State *L; \ - Ref callback; \ - char *buf; \ - int bufsz; - -typedef struct { - callback_data_ -} LuaCallback, *PLuaCallback; - -LuaCallback *lcb_callback(void *lcb, lua_State *L, int idx) { - LuaCallback *data; - if (lcb == NULL) { - lcb = malloc(sizeof(LuaCallback)); - } - data = (LuaCallback*) lcb; - data->L = L; - data->callback = make_ref(L,idx); - data->buf = NULL; - data->handle = NULL; - return data; -} - -BOOL lcb_call(void *data, int idx, Str text, int flags) { - LuaCallback *lcb = (LuaCallback*)data; - return call_lua(lcb->L,lcb->callback,idx,text,flags); -} - -void lcb_allocate_buffer(void *data, int size) { - LuaCallback *lcb = (LuaCallback*)data; - lcb->buf = malloc(size); - lcb->bufsz = size; -} - -void lcb_free(void *data) { - LuaCallback *lcb = (LuaCallback*)data; - if (! lcb) return; - if (lcb->buf) { - free(lcb->buf); - lcb->buf = NULL; - } - if (lcb->handle) { - CloseHandle(lcb->handle); - lcb->handle = NULL; - } - release_ref(lcb->L,lcb->callback); -} - -#define lcb_buf(data) ((LuaCallback *)data)->buf -#define lcb_bufsz(data) ((LuaCallback *)data)->bufsz -#define lcb_handle(data) ((LuaCallback *)data)->handle - -/// Thread object. This is returned by the @{File:read_async} method and the @{make_timer}, -// @{make_pipe_server} and @{watch_for_file_changes} functions. Useful to kill a thread -// and free associated resources. -// @type Thread -class Thread { - HANDLE thread; - LuaCallback *lcb; - - constructor (PLuaCallback lcb, HANDLE thread) { - this->lcb = lcb; - this->thread = thread; - } - - /// suspend this thread. - // @function suspend - def suspend() { - return push_bool(L, SuspendThread(this->thread) >= 0); - } - - /// resume a suspended thread. - // @function resume - def resume() { - return push_bool(L, ResumeThread(this->thread) >= 0); - } - - /// kill this thread. Generally considered a 'nuclear' option, but - // this implementation will free any associated callback references, buffers - // and handles. @{test-timer.lua} shows how a timer can be terminated. - // @function kill - def kill() { - BOOL ret = TerminateThread(this->thread,1); - lcb_free(this->lcb); - return push_bool(L,ret); - } - - /// set a thread's priority - // @param p positive integer to increase thread priority - // @function set_priority - def set_priority(Int p) { - return push_bool(L, SetThreadPriority(this->thread,p)); - } - - /// get a thread's priority - // @function get_priority - def get_priority() { - int res = GetThreadPriority(this->thread); - if (res != THREAD_PRIORITY_ERROR_RETURN) { - lua_pushinteger(L,res); - return 1; - } else { - return push_error(L); - } - } - /// wait for this thread to finish. - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this thread object - // @return either "OK" or "TIMEOUT" - // @function wait - def wait(Int timeout = 0) { - return push_wait(L,this->thread, TIMEOUT(timeout)); - } - - /// run callback when this thread is finished. - // @param callback the callback - // @param timeout optional timeout in millisec; defaults to waiting indefinitely. - // @return this thread object - // @return either "OK" or "TIMEOUT" - // @function wait_async - def wait_async(Value callback, Int timeout = 0) { - return push_wait_async(L,this->thread, TIMEOUT(timeout), callback); - } - - - def __gc() { - // lcb_free(this->lcb); concerned that this cd kick in prematurely! - CloseHandle(this->thread); - return 0; - } -} - -typedef LPTHREAD_START_ROUTINE TCB; - -int lcb_new_thread(TCB fun, void *data) { - LuaCallback *lcb = (LuaCallback*)data; - HANDLE thread = CreateThread(NULL,THREAD_STACK_SIZE,fun,data,0,NULL); - return push_new_Thread(lcb->L,lcb,thread); -} - -static void handle_waiter (LuaCallback *lcb) { - DWORD res = WaitForSingleObject(lcb->handle,lcb->bufsz); - lcb_call(lcb,0,res == WAIT_TIMEOUT ? "TIMEOUT" : "OK",0); -} - -static int push_wait_async(lua_State *L, HANDLE h, int timeout, int callback) { - LuaCallback *lcb = lcb_callback(NULL,L,callback); - lcb->handle = h; - lcb->bufsz = timeout; - return lcb_new_thread((TCB)handle_waiter,lcb); -} - -/// this represents a raw Windows file handle. -// The write handle may be distinct from the read handle. -// @type File -class File { - callback_data_ - HANDLE hWrite; - - constructor (HANDLE hread, HANDLE hwrite) { - lcb_handle(this) = hread; - this->hWrite = hwrite; - this->L = L; - lcb_allocate_buffer(this,FILE_BUFF_SIZE); - } - - /// write to a file. - // @param s text - // @return number of bytes written. - // @function write - def write(Str s) { - DWORD bytesWrote; - WriteFile(this->hWrite, s, lua_objlen(L,2), &bytesWrote, NULL); - lua_pushinteger(L,bytesWrote); - return 1; - } - - static BOOL raw_read (File *this) { - DWORD bytesRead = 0; - BOOL res = ReadFile(lcb_handle(this), lcb_buf(this), lcb_bufsz(this), &bytesRead, NULL); - lcb_buf(this)[bytesRead] = '\0'; - return res && bytesRead; - } - - /// read from a file. - // Please note that this is not buffered, and you will have to - // split into lines, etc yourself. - // @return text if successful, nil plus error otherwise. - // @function read - def read() { - if (raw_read(this)) { - lua_pushstring(L,lcb_buf(this)); - return 1; - } else { - return push_error(L); - } - } - - static void file_reader (File *this) { // background reader thread - int n; - do { - n = raw_read(this); - // empty buffer is passed at end - we can discard the callback then. - lcb_call (this,0,lcb_buf(this),n == 0 ? DISCARD : 0); - } while (n); - - } - - /// asynchronous read. - // @param callback function that will receive each chunk of text - // as it comes in. - // @return @{Thread} - // @function read_async - def read_async (Value callback) { - this->callback = make_ref(L,callback); - return lcb_new_thread((TCB)&file_reader,this); - } - - def close() { - if (this->hWrite != lcb_handle(this)) - CloseHandle(this->hWrite); - lcb_free(this); - return 0; - } - - def __gc () { - free(this->buf); - return 0; - } -} - - -/// Launching processes. -// @section Launch - -/// set an environment variable for any child processes. -// @{setenv.lua} shows how this also affects processes -// launched with @{os.execute} -// Note that this can't affect any system environment variables, see -// [here](http://msdn.microsoft.com/en-us/library/ms682653%28VS.85%29.aspx) -// for how to set these. -// @param name name of variable -// @param value value to set -// @function setenv -def setenv(Str name, Str value) { - WCHAR wname[256],wvalue[MAX_WPATH]; - return push_bool(L, SetEnvironmentVariableW(wconv(name),wconv(value))); -} - -/// Spawn a process. -// @param program the command-line (program + parameters) -// @param dir the working directory for the process (optional) -// @return @{Process} -// @return @{File} -// @function spawn_process -def spawn_process(Str program, StrNil dir) { - WCHAR wdir [MAX_WPATH]; - SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), 0, 0}; - SECURITY_DESCRIPTOR sd; - STARTUPINFOW si = { - sizeof(STARTUPINFOW), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - HANDLE hPipeRead,hWriteSubProcess; - HANDLE hRead2,hPipeWrite; - BOOL running; - PROCESS_INFORMATION pi; - sa.bInheritHandle = TRUE; - sa.lpSecurityDescriptor = NULL; - InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION); - SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE); - sa.nLength = sizeof(SECURITY_ATTRIBUTES); - sa.lpSecurityDescriptor = &sd; - - // Create pipe for output redirection - CreatePipe(&hPipeRead, &hPipeWrite, &sa, 0); - - // Create pipe for input redirection. In this code, you do not - // redirect the output of the child process, but you need a handle - // to set the hStdInput field in the STARTUP_INFO struct. For safety, - // you should not set the handles to an invalid handle. - - hRead2 = NULL; - CreatePipe(&hRead2, &hWriteSubProcess, &sa, 0); - - SetHandleInformation(hPipeRead, HANDLE_FLAG_INHERIT, 0); - SetHandleInformation(hWriteSubProcess, HANDLE_FLAG_INHERIT, 0); - - si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; - si.wShowWindow = SW_HIDE; - si.hStdInput = hRead2; - si.hStdOutput = hPipeWrite; - si.hStdError = hPipeWrite; - - running = CreateProcessW( - NULL, - (LPWSTR)wstring(program), - NULL, NULL, - TRUE, CREATE_NEW_PROCESS_GROUP, - NULL, - wconv(dir), - &si, &pi); - - if (running) { - CloseHandle(pi.hThread); - CloseHandle(hRead2); - CloseHandle(hPipeWrite); - push_new_Process(L,pi.dwProcessId,pi.hProcess); - push_new_File(L,hPipeRead,hWriteSubProcess); - return 2; - } else { - return push_error(L); - } -} - -/// execute a system command. -// This is like `os.execute()`, except that it works without ugly -// console flashing in Windows GUI applications. It additionally -// returns all text read from stdout and stderr. -// @param cmd a shell command (may include redirection, etc) -// @param unicode if 'unicode' force built-in commands to output in unicode; -// in this case the result is always UTF-8 -// @return return code -// @return program output -// @function execute - -static void launcher(LuaCallback *lcb) { - lua_State *L = lcb->L; - lua_State *Lnew = lua_newthread(L); - push_ref(L,lcb->callback); - lua_xmove(L,Lnew,1); - push_ref(L, (int)lcb->bufsz); - lua_xmove(L, Lnew,1); - if (lua_pcall(Lnew,1,0,0) != 0) { - fprintf(stderr,"error %s\n",lua_tostring(Lnew,-1)); - } - lcb_free(lcb); -} - -/// launch a function in a new thread. -// @param fun a Lua function -// @param data any Lua value to be passed to function -// @return @{Thread} object -// @function thread -def thread(Value fun, Value data) { - LuaCallback *lcb = lcb_callback(NULL, L, fun); - lcb->bufsz = make_ref(L,data); - return lcb_new_thread((TCB)launcher,lcb); -} - -// Timer support ////////// -typedef struct { - callback_data_ - int msec; -} TimerData; - -static void timer_thread(TimerData *data) { // background timer thread - while (1) { - Sleep(data->msec); - // no parameters passed, but if we return true then we exit! - if (lcb_call(data,0,0,0)) - break; - } -} - -/// Asynchronous Timers. -// @section Timers - -/// Create an asynchronous timer. -// The callback can return true if it wishes to cancel the timer. -// @{test-sleep.lua} shows how you need to call @{sleep} at the end of -// a console application for these timers to work in the background. -// @param msec interval in millisec -// @param callback a function to be called at each interval. -// @return @{Thread} -// @function make_timer -def make_timer(Int msec, Value callback) { - TimerData *data = (TimerData *)malloc(sizeof(TimerData)); - data->msec = msec; - lcb_callback(data,L,callback); - return lcb_new_thread((TCB)&timer_thread,data); -} - -#define PSIZE 512 - -typedef struct { - callback_data_ - const char *pipename; -} PipeServerParms; - -static void pipe_server_thread(PipeServerParms *parms) { - while (1) { - BOOL connected; - HANDLE hPipe = CreateNamedPipe( - parms->pipename, // pipe named - PIPE_ACCESS_DUPLEX, // read/write access - PIPE_WAIT, // blocking mode - 255, - PSIZE, // output buffer size - PSIZE, // input buffer size - 0, // client time-out - NULL); // default security attribute - - if (hPipe == INVALID_HANDLE_VALUE) { - // could not create named pipe - callback is passed nil, err msg. - lua_pushnil(parms->L); - lcb_call(parms,-1,last_error(0),REF_IDX | DISCARD); - return; - } - // Wait for the client to connect; if it succeeds, - // the function returns a nonzero value. If the function - // returns zero, GetLastError returns ERROR_PIPE_CONNECTED. - - connected = ConnectNamedPipe(hPipe, NULL) ? - TRUE : (GetLastError() == ERROR_PIPE_CONNECTED); - - if (connected) { - push_new_File(parms->L,hPipe,hPipe); - lcb_call(parms,-1,0,REF_IDX); // pass it a new File reference - } else { - CloseHandle(hPipe); - } - } -} - -/// Dealing with named pipes. -// @section Pipes - -/// open a pipe for reading and writing. -// @param pipename the pipename (default is "\\\\.\\pipe\\luawinapi") -// @function open_pipe -def open_pipe(Str pipename = "\\\\.\\pipe\\luawinapi") { - HANDLE hPipe = CreateFile( - pipename, - GENERIC_READ | // read and write access - GENERIC_WRITE, - 0, // no sharing - NULL, // default security attributes - OPEN_EXISTING, // opens existing pipe - 0, // default attributes - NULL); // no template file - if (hPipe == INVALID_HANDLE_VALUE) { - return push_error(L); - } else { - return push_new_File(L,hPipe,hPipe); - } -} - -/// create a named pipe server. -// This goes into a background loop, and accepts client connections. -// For each new connection, the callback will be called with a File -// object for reading and writing to the client. -// @param callback a function that will be passed a File object -// @param pipename Must be of the form \\.\pipe\name, defaults to -// \\.\pipe\luawinapi. -// @return @{Thread}. -// @function make_pipe_server -def make_pipe_server(Value callback, Str pipename = "\\\\.\\pipe\\luawinapi") { - PipeServerParms *psp = (PipeServerParms*)malloc(sizeof(PipeServerParms)); - lcb_callback(psp,L,callback); - psp->pipename = pipename; - return lcb_new_thread((TCB)&pipe_server_thread,psp); -} - - -/// Drive information and directories. -// @section Directories - -/// the short path name of a directory or file. -// This is always in ASCII, 8.3 format. This function will create the -// file first if it does not exist; the result can be used to open -// files with unicode names (see @{testshort.lua}) -// @param path multibyte encoded file path -// @return ASCII 8.3 format file path -// @function short_path -def short_path(Str path) { - WCHAR wpath[MAX_WPATH]; - HANDLE hFile; - int res; - wconv(path); - // if the file doesn't exist, then force its creation - hFile = CreateFileW(wpath, - GENERIC_WRITE, - FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, - CREATE_NEW, - FILE_ATTRIBUTE_NORMAL, - NULL); - if (hFile == INVALID_HANDLE_VALUE) { - if (GetLastError() != ERROR_FILE_EXISTS) // that error is fine! - return push_perror(L,"createfile"); - } else { // if we created it successfully, then close. - CloseHandle(hFile); - } - res = GetShortPathNameW(wpath,wbuff,sizeof(wbuff)); - if (res > 0) { - return push_wstring(L,wbuff); - } else { - return push_error(L); - } -} - -/// get a temporary filename. -// (Don't use os.tmpname) -// @return full path within temporary files directory. -// @function temp_name - -/// delete a file or directory. -// @param file may be a wildcard -// @function delete_file_or_dir - -/// make a directory. -// Will make necessary subpaths if command extensions are enabled. -// @function make_dir - -/// remove a directory. -// @param dir the directory -// @param tree if true, clean out the directory tree -// @function remove_dir - -/// iterator over directory contents. -// @usage for f in winapi.files 'dir\\*.txt' do print(f) end -// @param mask a file mask like "*.txt" -// @param subdirs iterate over subdirectories (default no) -// @param attrib iterate over items with given attribute (as in dir /A:) -// @see files.lua -// @function files - -/// iterate over subdirectories -// @param file mask like "mydirs\\t*" -// @param subdirs iterate over subdirectories (default no) -// @see files -// @function dirs - -/// get all the drives on this computer. -// An example is @{drives.lua} -// @return a table of drive names -// @function get_logical_drives -def get_logical_drives() { - int i, lasti = 0, k = 1; - WCHAR dbuff[MAX_WPATH]; - LPWSTR p = dbuff; - DWORD size = GetLogicalDriveStringsW(sizeof(dbuff),dbuff); - lua_newtable(L); - for (i = 0; i < size; i++) { - if (dbuff[i] == '\0') { - push_wstring_l(L,p, i - lasti); - lua_rawseti(L,-2,k++); - p = dbuff + i+1; - lasti = i+1; - } - } - return 1; -} - -/// get the type of the given drive. -// @param root root of drive (e.g. 'c:\\') -// @return one of the following: unknown, none, removable, fixed, remote, -// cdrom, ramdisk. -// @function get_drive_type -def get_drive_type(Str root) { - UINT res = GetDriveType(root); - const char *type = "?"; - switch(res) { - case DRIVE_UNKNOWN: type = "unknown"; break; - case DRIVE_NO_ROOT_DIR: type = "none"; break; - case DRIVE_REMOVABLE: type = "removable"; break; - case DRIVE_FIXED: type = "fixed"; break; - case DRIVE_REMOTE: type = "remote"; break; - case DRIVE_CDROM: type = "cdrom"; break; - case DRIVE_RAMDISK: type = "ramdisk"; break; - } - lua_pushstring(L,type); - return 1; -} - -/// get the free disk space. -// @param root the root of the drive (e.g. 'd:\\') -// @return free space in kB -// @return total space in kB -// @function get_disk_free_space -def get_disk_free_space(Str root) { - ULARGE_INTEGER freebytes, totalbytes; - if (! GetDiskFreeSpaceEx(root,&freebytes,&totalbytes,NULL)) { - return push_error(L); - } - lua_pushnumber(L,freebytes.QuadPart/1024); - lua_pushnumber(L,totalbytes.QuadPart/1024); - return 2; -} - -/// get the network resource associated with this drive. -// @param root drive name in the form 'X:' -// @return UNC name -// @function get_disk_network_name -def get_disk_network_name(Str root) { - DWORD size = sizeof(wbuff); - DWORD res = WNetGetConnectionW(wstring(root),wbuff,&size); - if (res == NO_ERROR) { - return push_wstring(L,wbuff); - } else { - return push_error(L); - } -} - -// Directory change notification /////// - -typedef struct { - callback_data_ - DWORD how; - DWORD subdirs; -} FileChangeParms; - -static void file_change_thread(FileChangeParms *fc) { // background file monitor thread - while (1) { - int next, offset; - DWORD bytes; - // This fills in some gaps: - // http://qualapps.blogspot.com/2010/05/understanding-readdirectorychangesw_19.html - if (! ReadDirectoryChangesW(lcb_handle(fc),lcb_buf(fc),lcb_bufsz(fc), - fc->subdirs, fc->how, &bytes,NULL,NULL)) { - lcb_call(fc,-1,last_error(0),INTEGER | DISCARD); - break; - } - next = 0; - offset = 0; - do { - int outchars; - char outbuff[MAX_PATH]; - PFILE_NOTIFY_INFORMATION pni = (PFILE_NOTIFY_INFORMATION)(lcb_buf(fc)+offset); - outchars = WideCharToMultiByte( - get_encoding(), 0, - pni->FileName, - pni->FileNameLength/2, // it's bytes, not number of characters! - outbuff,sizeof(outbuff), - NULL,NULL); - if (outchars == 0) { - lcb_call(fc,-1,"wide char conversion borked",INTEGER | DISCARD); - break; - } - outbuff[outchars] = '\0'; // not null-terminated! - // pass the action that occurred and the file name - lcb_call(fc,pni->Action,outbuff,INTEGER); - next = pni->NextEntryOffset; - offset += next; - } while (next != 0); - } -} - -//// start watching a directory. -// @param dir the directory -// @param how what events to monitor. Can be a sum of these flags: -// -// * `FILE_NOTIFY_CHANGE_FILE_NAME` -// * `FILE_NOTIFY_CHANGE_DIR_NAME` -// * `FILE_NOTIFY_CHANGE_LAST_WRITE` -// -// @param subdirs whether subdirectories should be monitored -// @param callback a function which will receive the kind of change -// plus the filename that changed. The change will be one of these: -// -// * `FILE_ACTION_ADDED` -// * `FILE_ACTION_REMOVED` -// * `FILE_ACTION_MODIFIED` -// * `FILE_ACTION_RENAMED_OLD_NAME` -// * `FILE_ACTION_RENAMED_NEW_NAME` -// -// @return a thread object. -// @see test-watcher.lua -// @function watch_for_file_changes -def watch_for_file_changes (Str dir, Int how, Boolean subdirs, Value callback) { - FileChangeParms *fc = (FileChangeParms*)malloc(sizeof(FileChangeParms)); - lcb_callback(fc,L,callback); - fc->how = how; - fc->subdirs = subdirs; - lcb_handle(fc) = CreateFileW(wstring(dir), - FILE_LIST_DIRECTORY, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - NULL, - OPEN_ALWAYS, - FILE_FLAG_BACKUP_SEMANTICS, - NULL - ); - if (lcb_handle(fc) == INVALID_HANDLE_VALUE) { - return push_error(L); - } - lcb_allocate_buffer(fc,2048); - return lcb_new_thread((TCB)&file_change_thread,fc); -} - -/// Class representing Windows registry keys. -// @type Regkey -class Regkey { - HKEY key; - - constructor (HKEY k) { - this->key = k; - } - - /// set the string value of a name. - // @param name the name - // @param val the string value - // @param type one of `REG_BINARY`,`REG_DWORD`,`REG_SZ`,`REG_MULTI_SZ`,`REG_EXPAND_SZ` - // @function set_value - def set_value(Str name, Value val, Int type=REG_SZ) { - int sz; - DWORD ival; - LONG res; - const char *str; - const BYTE *data; - WCHAR wname[MAX_KEYS]; - wstring_buff(name,wname,sizeof(wname)); - if (lua_isstring(L,val)) { - if (type == REG_DWORD) { - return push_error_msg(L, "parameter must be a number for REG_DWORD"); - } - str = lua_tostring(L,val); - if (type != REG_BINARY) { - WStr res = wstring(str); - sz = (lstrlenW(res)+1)*sizeof(WCHAR); - data = (const BYTE *)res; - } else { - sz = lua_objlen(L,val); - data = (const BYTE *)str; - } - } else { - ival = (DWORD)lua_tonumber(L,val); - data = (const BYTE *)&ival; - sz = sizeof(DWORD); - } - res = RegSetValueExW(this->key,wname,0,type,data,sz); - if (res == ERROR_SUCCESS) { - return push_ok(L); - } else { - return push_error_code(L, res); - } - } - - /// get the value and type of a name. - // @param name the name (can be empty for the default value) - // @return the value (either a string or a number) - // @return the type - // @function get_value - def get_value(Str name = "") { - DWORD type,size = sizeof(wbuff); - void *data = wbuff; - if (RegQueryValueExW(this->key,wstring(name),0,&type,data,&size) != ERROR_SUCCESS) { - return push_error(L); - } - if (type == REG_BINARY) { - lua_pushlstring(L,(const char *)data,size); - } else if (type == REG_EXPAND_SZ || type == REG_SZ) { - push_wstring(L,wbuff); //,size); - } else { - lua_pushnumber(L,*(unsigned long *)data); - } - lua_pushinteger(L,type); - return 2; - - } - - def delete_key(Str name) { - if (RegDeleteKeyW(this->key,wstring(name)) == ERROR_SUCCESS) { - lua_pushboolean(L,1); - } else { - return push_error(L); - } - return 1; - } - - /// enumerate the subkeys of a key. - // @return a table of key names - // @function get_keys - def get_keys() { - int i = 0; - LONG res; - DWORD size; - lua_newtable(L); - while (1) { - size = sizeof(wbuff); - res = RegEnumKeyExW(this->key,i,wbuff,&size,NULL,NULL,NULL,NULL); - if (res != ERROR_SUCCESS) break; - push_wstring(L,wbuff); - lua_rawseti(L,-2,i+1); - ++i; - } - if (res != ERROR_NO_MORE_ITEMS) { - lua_pop(L,1); - return push_error(L); - } - return 1; - } - - /// close this key. - // Although this will happen when garbage collection happens, it - // is good practice to call this explicitly. - // @function close - def close() { - RegCloseKey(this->key); - this->key = NULL; - return 0; - } - - /// flush the key. - // Considered an expensive function; use it only when you have - // to guarantee modification. - // @function flush - def flush() { - return push_bool(L,RegFlushKey(this->key)); - } - - def __gc() { - if (this->key != NULL) - RegCloseKey(this->key); - return 0; - } - -} - -/// Registry Functions. -// @section Registry - -/// Open a registry key. -// @{test-reg.lua} shows reading a registry value and enumerating subkeys. -// @param path the full registry key -// e.g `[[HKEY\_LOCAL\_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]]` -// @param writeable true if you want to set values -// @return @{Regkey} -// @function open_reg_key -def open_reg_key(Str path, Boolean writeable) { - HKEY hKey; - DWORD access; - char kbuff[1024]; - hKey = split_registry_key(path,kbuff); - if (hKey == NULL) { - return push_error_msg(L,"unrecognized registry key"); - } - access = writeable ? KEY_ALL_ACCESS : (KEY_READ | KEY_ENUMERATE_SUB_KEYS); - if (RegOpenKeyExW(hKey,wstring(kbuff),0,access,&hKey) == ERROR_SUCCESS) { - return push_new_Regkey(L,hKey); - } else { - return push_error(L); - } -} - -/// Create a registry key. -// @param path the full registry key -// @return @{Regkey} -// @function create_reg_key -def create_reg_key (Str path) { - char kbuff[1024]; - HKEY hKey = split_registry_key(path,kbuff); - if (hKey == NULL) { - return push_error_msg(L,"unrecognized registry key"); - } - if (RegCreateKeyExW(hKey,wstring(kbuff),0,NULL,0,KEY_ALL_ACCESS,NULL,&hKey,NULL)) { - return push_new_Regkey(L,hKey); - } else { - return push_error(L); - } -} - -lua { -function winapi.execute(cmd,unicode) - local comspec = os.getenv('COMSPEC') - if unicode ~= 'unicode' then - cmd = comspec ..' /c '..cmd - local P,f = winapi.spawn_process(cmd) - if not P then return nil,f end - local txt = f:read() - local out = {} - while txt do - table.insert(out,txt) - txt = f:read() - end - return P:wait():get_exit_code(),table.concat(out,'') - else - local tmpfile,res,f,out = winapi.temp_name() - cmd = comspec..' /u /c '..cmd..' > "'..tmpfile..'"' - local P,err = winapi.spawn_process(cmd) - if not P then return nil,err end - res = P:wait():get_exit_code() - f = io.open(tmpfile) - out = f:read '*a' - f:close() - os.remove(tmpfile) - out, err = winapi.encode(winapi.CP_UTF16,winapi.CP_UTF8,out) - if err then return nil,err end - return res,out - end -end -function winapi.make_name_matcher(text) - return function(w) return tostring(w):match(text) end -end -function winapi.make_class_matcher(classname) - return function(w) return w:get_class_name():match(classname) end -end -function winapi.find_window_ex(match) - local res - winapi.enum_windows(function(w) - if match(w) then res = w end - end) - return res -end -function winapi.find_all_windows(match) - local res = {} - winapi.enum_windows(function(w) - if match(w) then res[#res+1] = w end - end) - return res -end -function winapi.find_window_match(text) - return winapi.find_window_ex(winapi.make_name_matcher(text)) -end -function winapi.temp_name () return os.getenv('TEMP')..os.tmpname() end -local function exec_cmd (cmd,arg) - local res,err = winapi.execute(cmd..' "'..arg..'"') - if res == 0 then return true - else return nil,err - end -end -function winapi.make_dir(dir) return exec_cmd('mkdir',dir) end -function winapi.remove_dir(dir,tree) return exec_cmd('rmdir '.. ((tree and '/S /Q') or ''),dir) end -function winapi.delete_file_or_dir(file) return exec_cmd('del',file) end -function winapi.files(mask,subdirs,attrib) - local flags = '/B ' - if subdirs then flags = flags..' /S' end - if attrib then flags = flags..' /A:'..attrib end - local ret, text = winapi.execute('dir '..flags..' "'..mask..'"','unicode') - if ret ~= 0 then return nil,text end - return text:gmatch('[^\r\n]+') -end -function winapi.dirs(mask,subdirs) return winapi.files(mask,subdirs,'D') end -} - -initial init_mutex { - setup_mutex(); - return 0; -} - -/*** Constants. -The following constants are available: - - * CP_ACP, (valid values for encoding) - * CP_UTF8, - * CP_UTF16, - * SW_HIDE, (Window operations for Window.show) - * SW_MAXIMIZE, - * SW_MINIMIZE, - * SW_SHOWNORMAL, - * VK_BACK, - * VK_TAB, - * VK_RETURN, - * VK_SPACE, - * VK_PRIOR, - * VK_NEXT, - * VK_END, - * VK_HOME, - * VK_LEFT, - * VK_UP, - * VK_RIGHT, - * VK_DOWN, - * VK_INSERT, - * VK_DELETE, - * VK_ESCAPE, - * VK_F1, - * VK_F2, - * VK_F3, - * VK_F4, - * VK_F5, - * VK_F6, - * VK_F7, - * VK_F8, - * VK_F9, - * VK_F10, - * VK_F11, - * VK_F12, - * FILE\_NOTIFY\_CHANGE\_FILE\_NAME (these are input flags for watch\_for\_file\_changes) - * FILE\_NOTIFY\_CHANGE\_DIR\_NAME - * FILE\_NOTIFY\_CHANGE\_LAST\_WRITE - * FILE\_ACTION\_ADDED (these describe the change: first argument of callback) - * FILE\_ACTION\_REMOVED - * FILE\_ACTION\_MODIFIED - * FILE\_ACTION\_RENAMED\_OLD\_NAME - * FILE\_ACTION\_RENAMED\_NEW\_NAME - - @section constants - */ - - /// useful Windows API constants - // @table constants - -#define CP_UTF16 -1 - - -constants { - CP_ACP, - CP_UTF8, - CP_UTF16, - SW_HIDE, - SW_MAXIMIZE, - SW_MINIMIZE, - SW_SHOWNORMAL, - SW_SHOWNOACTIVATE, - SW_SHOW, - SW_RESTORE, - VK_BACK, - VK_TAB, - VK_RETURN, - VK_SPACE, - VK_PRIOR, - VK_NEXT, - VK_END, - VK_HOME, - VK_LEFT, - VK_UP, - VK_RIGHT, - VK_DOWN, - VK_INSERT, - VK_DELETE, - VK_ESCAPE, - VK_F1, - VK_F2, - VK_F3, - VK_F4, - VK_F5, - VK_F6, - VK_F7, - VK_F8, - VK_F9, - VK_F10, - VK_F11, - VK_F12, - FILE_NOTIFY_CHANGE_FILE_NAME, - FILE_NOTIFY_CHANGE_DIR_NAME, - FILE_NOTIFY_CHANGE_LAST_WRITE, - FILE_ACTION_ADDED, - FILE_ACTION_REMOVED, - FILE_ACTION_MODIFIED, - FILE_ACTION_RENAMED_OLD_NAME, - FILE_ACTION_RENAMED_NEW_NAME, - WIN_NOACTIVATE, - WIN_NOMOVE, - WIN_NOSIZE, - WIN_SHOWWINDOW, - WIN_NOZORDER, - WIN_BOTTOM, - WIN_NOTOPMOST, - WIN_TOP, - WIN_TOPMOST, - REG_BINARY, - REG_DWORD, - REG_SZ, - REG_MULTI_SZ, - REG_EXPAND_SZ -} - -} diff --git a/readme.md b/winapi.md similarity index 100% rename from readme.md rename to winapi.md diff --git a/winapi_test.lua b/winapi_test.lua new file mode 100644 index 0000000..a0518fb --- /dev/null +++ b/winapi_test.lua @@ -0,0 +1,50 @@ +require 'winapi' +local r,w = winapi.pipe() +local m = winapi.mutex() + +local function lprint(...) + m:lock() + print(...) + m:release() +end + +local function long(name) + lprint('hello',name) + for i = 1,2 do + m:lock() + w:write(name..tostring(i)) + m:release() + end +end + +r:read_async(function(s) + lprint(s) +end) + +local T = {} +T[1] = winapi.thread(long, 'john') +T[2] = winapi.thread(long, 'jane') +T[3] = winapi.thread(long, 'june') + +winapi.wait_for_processes(T, true) +print 'thread test was finished' + +local e = winapi.event() +local count = 1 +local finished + +winapi.make_timer(500, function() + print 'tick' + if count == 5 then + print 'finished!' + finished = true + end + e:signal() + count = count + 1 +end) + +while not finished do + e:wait() + print 'gotcha' +end +print 'events test was finished'