; Dynamic Link Libraries
-dll\3rdparty\freetype\freetype.dll 1
-dll\3rdparty\mesa32\mesa32.dll 1
-dll\3rdparty\dxtn\dxtn.dll 1 optional
-
-dll\cpl\access\access.cpl 1
-dll\cpl\appwiz\appwiz.cpl 1
-dll\cpl\console\console.dll 1
-dll\cpl\desk\desk.cpl 1
-dll\cpl\intl\intl.cpl 1
-dll\cpl\main\main.cpl 1
-dll\cpl\mmsys\mmsys.cpl 1
-dll\cpl\ncpa\ncpa.cpl 1
-dll\cpl\powercfg\powercfg.cpl 1
-dll\cpl\sysdm\sysdm.cpl 1
-dll\cpl\timedate\timedate.cpl 1
-dll\cpl\input\input.dll 1
-dll\cpl\joy\joy.cpl 1
-
-dll\directx\dinput\dinput.dll 1
-dll\directx\dinput8\dinput8.dll 1
-dll\directx\dplay\dplay.dll 1
-dll\directx\dplayx\dplayx.dll 1
-dll\directx\dsound\dsound.dll 1
-dll\directx\dxdiagn\dxdiagn.dll 1
-dll\directx\ddraw\ddraw.dll 1
-dll\directx\d3d8thk\d3d8thk.dll 1
-dll\directx\devenum\devenum.dll 1
-dll\directx\ksproxy\ksproxy.ax 1
-dll\directx\ksuser\ksuser.dll 1
-dll\directx\msdmo\msdmo.dll 1
-dll\directx\quartz\quartz.dll 1
-dll\directx\qedit\qedit.dll 1
-dll\directx\wine\d3d8\d3d8.dll 1
-dll\directx\wine\wined3d\wined3d.dll 1
-dll\directx\wine\d3d9\d3d9.dll 1
-
-dll\keyboard\kbda1\kbda1.dll 1
-dll\keyboard\kbda2\kbda2.dll 1
-dll\keyboard\kbda3\kbda3.dll 1
-dll\keyboard\kbdal\kbdal.dll 1
-dll\keyboard\kbdarme\kbdarme.dll 1
-dll\keyboard\kbdarmw\kbdarmw.dll 1
-dll\keyboard\kbdaze\kbdaze.dll 1
-dll\keyboard\kbdazel\kbdazel.dll 1
-dll\keyboard\kbdbgm\kbdbgm.dll 1
-dll\keyboard\kbdbgt\kbdbgt.dll 1
-dll\keyboard\kbdblr\kbdblr.dll 1
-dll\keyboard\kbdbr\kbdbr.dll 1
-dll\keyboard\kbdbga\kbdbga.dll 1
-dll\keyboard\kbdbe\kbdbe.dll 1
-dll\keyboard\kbdbur\kbdbur.dll 1
-dll\keyboard\kbdcan\kbdcan.dll 1
-dll\keyboard\kbdcr\kbdcr.dll 1
-dll\keyboard\kbdcz1\kbdcz1.dll 1
-dll\keyboard\kbdda\kbdda.dll 1
-dll\keyboard\kbddv\kbddv.dll 1
-dll\keyboard\kbdes\kbdes.dll 1
-dll\keyboard\kbdest\kbdest.dll 1
-dll\keyboard\kbdfc\kbdfc.dll 1
-dll\keyboard\kbdfi\kbdfi.dll 1
-dll\keyboard\kbdfr\kbdfr.dll 1
-dll\keyboard\kbdgeo\kbdgeo.dll 1
-dll\keyboard\kbdgerg\kbdgerg.dll 1
-dll\keyboard\kbdgneo\kbdgneo.dll 1
-dll\keyboard\kbdgrist\kbdgrist.dll 1
-dll\keyboard\kbdgr\kbdgr.dll 1
-dll\keyboard\kbdhe\kbdhe.dll 1
-dll\keyboard\kbdheb\kbdheb.dll 1
-dll\keyboard\kbdhu\kbdhu.dll 1
-dll\keyboard\kbdic\kbdic.dll 1
-dll\keyboard\kbdinasa\kbdinasa.dll 1
-dll\keyboard\kbdinben\kbdinben.dll 1
-dll\keyboard\kbdindev\kbdindev.dll 1
-dll\keyboard\kbdinguj\kbdinguj.dll 1
-dll\keyboard\kbdinmal\kbdinmal.dll 1
-dll\keyboard\kbdir\kbdir.dll 1
-dll\keyboard\kbdit\kbdit.dll 1
-dll\keyboard\kbdja\kbdja.dll 1
-dll\keyboard\kbdkaz\kbdkaz.dll 1
-dll\keyboard\kbdla\kbdla.dll 1
-dll\keyboard\kbdlt\kbdlt.dll 1
-dll\keyboard\kbdlv\kbdlv.dll 1
-dll\keyboard\kbdmac\kbdmac.dll 1
-dll\keyboard\kbdne\kbdne.dll 1
-dll\keyboard\kbdno\kbdno.dll 1
-dll\keyboard\kbdpl1\kbdpl1.dll 1
-dll\keyboard\kbdpo\kbdpo.dll 1
-dll\keyboard\kbdro\kbdro.dll 1
-dll\keyboard\kbdru\kbdru.dll 1
-dll\keyboard\kbdru1\kbdru1.dll 1
-dll\keyboard\kbdsg\kbdsg.dll 1
-dll\keyboard\kbdsk\kbdsk.dll 1
-dll\keyboard\kbdsk1\kbdsk1.dll 1
-dll\keyboard\kbdsw\kbdsw.dll 1
-dll\keyboard\kbdtat\kbdtat.dll 1
-dll\keyboard\kbdth0\kbdth0.dll 1
-dll\keyboard\kbdth1\kbdth1.dll 1
-dll\keyboard\kbdth2\kbdth2.dll 1
-dll\keyboard\kbdth3\kbdth3.dll 1
-dll\keyboard\kbdtuf\kbdtuf.dll 1
-dll\keyboard\kbdtuq\kbdtuq.dll 1
-dll\keyboard\kbduk\kbduk.dll 1
-dll\keyboard\kbdur\kbdur.dll 1
-dll\keyboard\kbdurs\kbdurs.dll 1
-dll\keyboard\kbdus\kbdus.dll 1
-dll\keyboard\kbdusa\kbdusa.dll 1
-dll\keyboard\kbdusl\kbdusl.dll 1
-dll\keyboard\kbdusr\kbdusr.dll 1
-dll\keyboard\kbdusx\kbdusx.dll 1
-dll\keyboard\kbduzb\kbduzb.dll 1
-dll\keyboard\kbdvntc\kbdvntc.dll 1
-dll\keyboard\kbdycc\kbdycc.dll 1
-dll\keyboard\kbdycl\kbdycl.dll 1
-dll\keyboard\kbdko\kbdko.dll 1
-
-dll\ntdll\ntdll.dll 1
-
-dll\win32\acledit\acledit.dll 1
-dll\win32\aclui\aclui.dll 1
-dll\win32\advapi32\advapi32.dll 1
-dll\win32\advpack\advpack.dll 1
-dll\win32\atl\atl.dll 1
-dll\win32\authz\authz.dll 1
-dll\win32\avifil32\avifil32.dll 1
-dll\win32\beepmidi\beepmidi.dll 1
-dll\win32\browseui\browseui.dll 1
-dll\win32\cabinet\cabinet.dll 1
-dll\win32\cards\cards.dll 1
-dll\win32\cfgmgr32\cfgmgr32.dll 1
-dll\win32\clusapi\clusapi.dll 1
-dll\win32\comcat\comcat.dll 1
-dll\win32\comctl32\comctl32.dll 1
-dll\win32\comdlg32\comdlg32.dll 1
-dll\win32\compstui\compstui.dll 1
-dll\win32\crtdll\crtdll.dll 1
-dll\win32\crypt32\crypt32.dll 1
-dll\win32\cryptdll\cryptdll.dll 1
-dll\win32\cryptnet\cryptnet.dll 1
-dll\win32\cryptui\cryptui.dll 1
-dll\win32\dbghelp\dbghelp.dll 1
-dll\win32\dciman32\dciman32.dll 1
-dll\win32\devmgr\devmgr.dll 1
-dll\win32\dhcpcsvc\dhcpcsvc.dll 1
-dll\win32\dnsapi\dnsapi.dll 1
-dll\win32\fmifs\fmifs.dll 1
-dll\win32\fusion\fusion.dll 1
-dll\win32\gdi32\gdi32.dll 1
-dll\win32\gdiplus\gdiplus.dll 1
-dll\win32\glu32\glu32.dll 1
-dll\win32\hhctrl.ocx\hhctrl.ocx 1
-dll\win32\hid\hid.dll 1
-dll\win32\hlink\hlink.dll 1
-dll\win32\icmp\icmp.dll 1
-dll\win32\imagehlp\imagehlp.dll 1
-dll\win32\imm32\imm32.dll 1
-dll\win32\inetcomm\inetcomm.dll 1
-dll\win32\inetmib1\inetmib1.dll 1
-dll\win32\iphlpapi\iphlpapi.dll 1
-dll\win32\jscript\jscript.dll 1
-dll\win32\kernel32\kernel32.dll 1
-dll\win32\lsasrv\lsasrv.dll 1
-dll\win32\lz32\lz32.dll 1
-dll\win32\mapi32\mapi32.dll 1
-dll\win32\mlang\mlang.dll 1
-dll\win32\mmdrv\mmdrv.dll 1
-dll\win32\modemui\modemui.dll 1
-dll\win32\mpr\mpr.dll 1
-dll\win32\mprapi\mprapi.dll 1
-dll\win32\msacm32\msacm32.dll 1
-dll\win32\msafd\msafd.dll 1
-dll\win32\mscoree\mscoree.dll 1
-dll\win32\msgina\msgina.dll 1
-dll\win32\mshtml\mshtml.dll 1
-dll\win32\mshtml.tlb\mshtml.tlb 1
-dll\win32\msi\msi.dll 1
-dll\win32\msimg32\msimg32.dll 1
-dll\win32\mstask\mstask.dll 1
-dll\win32\msvcrt\msvcrt.dll 1
-dll\win32\msvcrt20\msvcrt20.dll 1
-dll\win32\msvcrt40\msvcrt40.dll 1
-dll\win32\msvfw32\msvfw32.dll 1
-dll\win32\mswsock\mswsock.dll 1
-dll\win32\msxml3\msxml3.dll 1
-dll\win32\nddeapi\nddeapi.dll 1
-dll\win32\netapi32\netapi32.dll 1
-dll\win32\netcfgx\netcfgx.dll 1
-dll\win32\netid\netid.dll 1
-dll\win32\netshell\netshell.dll 1
-dll\win32\newdev\newdev.dll 1
-dll\win32\ntdsapi\ntdsapi.dll 1
-dll\win32\ntmarta\ntmarta.dll 1
-dll\win32\objsel\objsel.dll 1
-dll\win32\odbc32\odbc32.dll 1
-dll\win32\odbccp32\odbccp32.dll 1
-dll\win32\ole32\ole32.dll 1
-dll\win32\oleacc\oleacc.dll 1
-dll\win32\oleaut32\oleaut32.dll 1
-dll\win32\oledlg\oledlg.dll 1
-dll\win32\olepro32\olepro32.dll 1
-dll\win32\opengl32\opengl32.dll 1
-dll\win32\pdh\pdh.dll 1
-dll\win32\powrprof\powrprof.dll 1
-dll\win32\printui\printui.dll 1
-dll\win32\psapi\psapi.dll 1
-dll\win32\pstorec\pstorec.dll 1
-dll\win32\rasapi32\rasapi32.dll 1
-dll\win32\rasdlg\rasdlg.dll 1
-dll\win32\rasman\rasman.dll 1
-dll\win32\riched20\riched20.dll 1
-dll\win32\riched32\riched32.dll 1
-dll\win32\rpcrt4\rpcrt4.dll 1
-dll\win32\rsabase\rsabase.dll 1
-dll\win32\rsaenh\rsaenh.dll 1
-dll\win32\samlib\samlib.dll 1
-dll\win32\samsrv\samsrv.dll 1
-dll\win32\schannel\schannel.dll 1
-dll\win32\secur32\secur32.dll 1
-dll\win32\security\security.dll 1
-dll\win32\sensapi\sensapi.dll 1
-dll\win32\serialui\serialui.dll 1
-dll\win32\setupapi\setupapi.dll 1
-dll\win32\sfc\sfc.dll 1
-dll\win32\sfc_os\sfc_os.dll 1
-dll\win32\shdocvw\shdocvw.dll 1
-dll\win32\shell32\shell32.dll 1
-dll\win32\shfolder\shfolder.dll 1
-dll\win32\shimgvw\shimgvw.dll 1
-dll\win32\shlwapi\shlwapi.dll 1
-dll\win32\smdll\smdll.dll 1
-dll\win32\snmpapi\snmpapi.dll 1
-dll\win32\stdole2.tlb\stdole2.tlb 1
-dll\win32\stdole32.tlb\stdole32.tlb 1
-dll\win32\sxs\sxs.dll 1
-dll\win32\syssetup\syssetup.dll 1
-dll\win32\tapi32\tapi32.dll 1
-dll\win32\tapiui\tapiui.dll 1
-dll\win32\twain_32\twain_32.dll 1
-dll\win32\uext2\uext2.dll 1
-dll\win32\ufat\ufat.dll 1
-dll\win32\ufatx\ufatx.dll 1 optional
-dll\win32\untfs\untfs.dll 1
-dll\win32\urlmon\urlmon.dll 1
-dll\win32\user32\user32.dll 1
-dll\win32\userenv\userenv.dll 1
-dll\win32\usp10\usp10.dll 1
-dll\win32\uxtheme\uxtheme.dll 1
-dll\win32\vdmdbg\vdmdbg.dll 1
-dll\win32\version\version.dll 1
-dll\win32\winfax\winfax.dll 1
-dll\win32\winhttp\winhttp.dll 1
-dll\win32\wininet\wininet.dll 1
-dll\win32\winmm\winmm.dll 1
-dll\win32\winspool\winspool.drv 1
-dll\win32\winsta\winsta.dll 1
-dll\win32\wintrust\wintrust.dll 1
-dll\win32\wldap32\wldap32.dll 1
-dll\win32\ws2_32\ws2_32.dll 1
-dll\win32\ws2help\ws2help.dll 1
-dll\win32\wshirda\wshirda.dll 1
-dll\win32\wshtcpip\wshtcpip.dll 1
-dll\win32\wsock32\wsock32.dll 1
-dll\win32\wtsapi32\wtsapi32.dll 1
-dll\win32\winmm\midimap\midimap.dll 1
-dll\win32\winmm\wavemap\msacm32.drv 1 optional
+;dll\3rdparty\freetype\freetype.dll 1
+;dll\3rdparty\mesa32\mesa32.dll 1
+;dll\3rdparty\dxtn\dxtn.dll 1 optional
+
+;dll\cpl\access\access.cpl 1
+;dll\cpl\appwiz\appwiz.cpl 1
+;dll\cpl\console\console.dll 1
+;dll\cpl\desk\desk.cpl 1
+;dll\cpl\intl\intl.cpl 1
+;dll\cpl\main\main.cpl 1
+;dll\cpl\mmsys\mmsys.cpl 1
+;dll\cpl\ncpa\ncpa.cpl 1
+;dll\cpl\powercfg\powercfg.cpl 1
+;dll\cpl\sysdm\sysdm.cpl 1
+;dll\cpl\timedate\timedate.cpl 1
+;dll\cpl\input\input.dll 1
+;dll\cpl\joy\joy.cpl 1
+
+;dll\directx\dinput\dinput.dll 1
+;dll\directx\dinput8\dinput8.dll 1
+;dll\directx\dplay\dplay.dll 1
+;dll\directx\dplayx\dplayx.dll 1
+;dll\directx\dsound\dsound.dll 1
+;dll\directx\dxdiagn\dxdiagn.dll 1
+;dll\directx\ddraw\ddraw.dll 1
+;dll\directx\d3d8thk\d3d8thk.dll 1
+;dll\directx\devenum\devenum.dll 1
+;dll\directx\ksproxy\ksproxy.ax 1
+;dll\directx\ksuser\ksuser.dll 1
+;dll\directx\msdmo\msdmo.dll 1
+;dll\directx\quartz\quartz.dll 1
+;dll\directx\qedit\qedit.dll 1
+;dll\directx\wine\d3d8\d3d8.dll 1
+;dll\directx\wine\wined3d\wined3d.dll 1
+;dll\directx\wine\d3d9\d3d9.dll 1
+
+;dll\keyboard\kbda1\kbda1.dll 1
+;dll\keyboard\kbda2\kbda2.dll 1
+;dll\keyboard\kbda3\kbda3.dll 1
+;dll\keyboard\kbdal\kbdal.dll 1
+;dll\keyboard\kbdarme\kbdarme.dll 1
+;dll\keyboard\kbdarmw\kbdarmw.dll 1
+;dll\keyboard\kbdaze\kbdaze.dll 1
+;dll\keyboard\kbdazel\kbdazel.dll 1
+;dll\keyboard\kbdbgm\kbdbgm.dll 1
+;dll\keyboard\kbdbgt\kbdbgt.dll 1
+;dll\keyboard\kbdblr\kbdblr.dll 1
+;dll\keyboard\kbdbr\kbdbr.dll 1
+;dll\keyboard\kbdbga\kbdbga.dll 1
+;dll\keyboard\kbdbe\kbdbe.dll 1
+;dll\keyboard\kbdbur\kbdbur.dll 1
+;dll\keyboard\kbdcan\kbdcan.dll 1
+;dll\keyboard\kbdcr\kbdcr.dll 1
+;dll\keyboard\kbdcz1\kbdcz1.dll 1
+;dll\keyboard\kbdda\kbdda.dll 1
+;dll\keyboard\kbddv\kbddv.dll 1
+;dll\keyboard\kbdes\kbdes.dll 1
+;dll\keyboard\kbdest\kbdest.dll 1
+;dll\keyboard\kbdfc\kbdfc.dll 1
+;dll\keyboard\kbdfi\kbdfi.dll 1
+;dll\keyboard\kbdfr\kbdfr.dll 1
+;dll\keyboard\kbdgeo\kbdgeo.dll 1
+;dll\keyboard\kbdgerg\kbdgerg.dll 1
+;dll\keyboard\kbdgneo\kbdgneo.dll 1
+;dll\keyboard\kbdgrist\kbdgrist.dll 1
+;dll\keyboard\kbdgr\kbdgr.dll 1
+;dll\keyboard\kbdhe\kbdhe.dll 1
+;dll\keyboard\kbdheb\kbdheb.dll 1
+;dll\keyboard\kbdhu\kbdhu.dll 1
+;dll\keyboard\kbdic\kbdic.dll 1
+;dll\keyboard\kbdinasa\kbdinasa.dll 1
+;dll\keyboard\kbdinben\kbdinben.dll 1
+;dll\keyboard\kbdindev\kbdindev.dll 1
+;dll\keyboard\kbdinguj\kbdinguj.dll 1
+;dll\keyboard\kbdinmal\kbdinmal.dll 1
+;dll\keyboard\kbdir\kbdir.dll 1
+;dll\keyboard\kbdit\kbdit.dll 1
+;dll\keyboard\kbdja\kbdja.dll 1
+;dll\keyboard\kbdkaz\kbdkaz.dll 1
+;dll\keyboard\kbdla\kbdla.dll 1
+;dll\keyboard\kbdlt\kbdlt.dll 1
+;dll\keyboard\kbdlv\kbdlv.dll 1
+;dll\keyboard\kbdmac\kbdmac.dll 1
+;dll\keyboard\kbdne\kbdne.dll 1
+;dll\keyboard\kbdno\kbdno.dll 1
+;dll\keyboard\kbdpl1\kbdpl1.dll 1
+;dll\keyboard\kbdpo\kbdpo.dll 1
+;dll\keyboard\kbdro\kbdro.dll 1
+;dll\keyboard\kbdru\kbdru.dll 1
+;dll\keyboard\kbdru1\kbdru1.dll 1
+;dll\keyboard\kbdsg\kbdsg.dll 1
+;dll\keyboard\kbdsk\kbdsk.dll 1
+;dll\keyboard\kbdsk1\kbdsk1.dll 1
+;dll\keyboard\kbdsw\kbdsw.dll 1
+;dll\keyboard\kbdtat\kbdtat.dll 1
+;dll\keyboard\kbdth0\kbdth0.dll 1
+;dll\keyboard\kbdth1\kbdth1.dll 1
+;dll\keyboard\kbdth2\kbdth2.dll 1
+;dll\keyboard\kbdth3\kbdth3.dll 1
+;dll\keyboard\kbdtuf\kbdtuf.dll 1
+;dll\keyboard\kbdtuq\kbdtuq.dll 1
+;dll\keyboard\kbduk\kbduk.dll 1
+;dll\keyboard\kbdur\kbdur.dll 1
+;dll\keyboard\kbdurs\kbdurs.dll 1
+;dll\keyboard\kbdus\kbdus.dll 1
+;dll\keyboard\kbdusa\kbdusa.dll 1
+;dll\keyboard\kbdusl\kbdusl.dll 1
+;dll\keyboard\kbdusr\kbdusr.dll 1
+;dll\keyboard\kbdusx\kbdusx.dll 1
+;dll\keyboard\kbduzb\kbduzb.dll 1
+;dll\keyboard\kbdvntc\kbdvntc.dll 1
+;dll\keyboard\kbdycc\kbdycc.dll 1
+;dll\keyboard\kbdycl\kbdycl.dll 1
+;dll\keyboard\kbdko\kbdko.dll 1
+
+;dll\nt;dll\ntdll.dll 1
+
+;dll\win32\acledit\acledit.dll 1
+;dll\win32\aclui\aclui.dll 1
+;dll\win32\advapi32\advapi32.dll 1
+;dll\win32\advpack\advpack.dll 1
+;dll\win32\atl\atl.dll 1
+;dll\win32\authz\authz.dll 1
+;dll\win32\avifil32\avifil32.dll 1
+;dll\win32\beepmidi\beepmidi.dll 1
+;dll\win32\browseui\browseui.dll 1
+;dll\win32\cabinet\cabinet.dll 1
+;dll\win32\cards\cards.dll 1
+;dll\win32\cfgmgr32\cfgmgr32.dll 1
+;dll\win32\clusapi\clusapi.dll 1
+;dll\win32\comcat\comcat.dll 1
+;dll\win32\comctl32\comctl32.dll 1
+;dll\win32\comdlg32\comdlg32.dll 1
+;dll\win32\compstui\compstui.dll 1
+;dll\win32\crtdll\crtdll.dll 1
+;dll\win32\crypt32\crypt32.dll 1
+;dll\win32\cryptdll\cryptdll.dll 1
+;dll\win32\cryptnet\cryptnet.dll 1
+;dll\win32\cryptui\cryptui.dll 1
+;dll\win32\dbghelp\dbghelp.dll 1
+;dll\win32\dciman32\dciman32.dll 1
+;dll\win32\devmgr\devmgr.dll 1
+;dll\win32\dhcpcsvc\dhcpcsvc.dll 1
+;dll\win32\dnsapi\dnsapi.dll 1
+;dll\win32\fmifs\fmifs.dll 1
++;dll\win32\fusion\fusion.dll 1
+;dll\win32\gdi32\gdi32.dll 1
+;dll\win32\gdiplus\gdiplus.dll 1
+;dll\win32\glu32\glu32.dll 1
+;dll\win32\hhctrl.ocx\hhctrl.ocx 1
+;dll\win32\hid\hid.dll 1
+;dll\win32\hlink\hlink.dll 1
+;dll\win32\icmp\icmp.dll 1
+;dll\win32\imagehlp\imagehlp.dll 1
+;dll\win32\imm32\imm32.dll 1
+;dll\win32\inetcomm\inetcomm.dll 1
+;dll\win32\inetmib1\inetmib1.dll 1
+;dll\win32\iphlpapi\iphlpapi.dll 1
++;dll\win32\jscript\jscript.dll 1
+;dll\win32\kernel32\kernel32.dll 1
+;dll\win32\lsasrv\lsasrv.dll 1
+;dll\win32\lz32\lz32.dll 1
+;dll\win32\mapi32\mapi32.dll 1
+;dll\win32\mlang\mlang.dll 1
+;dll\win32\mmdrv\mmdrv.dll 1
+;dll\win32\modemui\modemui.dll 1
+;dll\win32\mpr\mpr.dll 1
++;dll\win32\mprapi\mprapi.dll 1
+;dll\win32\msacm32\msacm32.dll 1
+;dll\win32\msafd\msafd.dll 1
+;dll\win32\mscoree\mscoree.dll 1
+;dll\win32\msgina\msgina.dll 1
+;dll\win32\mshtml\mshtml.dll 1
++;dll\win32\mshtml.tlb\mshtml.tlb 1
+;dll\win32\msi\msi.dll 1
+;dll\win32\msimg32\msimg32.dll 1
+;dll\win32\mstask\mstask.dll 1
+;dll\win32\msvcrt\msvcrt.dll 1
+;dll\win32\msvcrt20\msvcrt20.dll 1
+;dll\win32\msvcrt40\msvcrt40.dll 1
+;dll\win32\msvfw32\msvfw32.dll 1
+;dll\win32\mswsock\mswsock.dll 1
+;dll\win32\msxml3\msxml3.dll 1
+;dll\win32\nddeapi\nddeapi.dll 1
+;dll\win32\netapi32\netapi32.dll 1
+;dll\win32\netcfgx\netcfgx.dll 1
+;dll\win32\netid\netid.dll 1
+;dll\win32\netshell\netshell.dll 1
+;dll\win32\newdev\newdev.dll 1
+;dll\win32\ntdsapi\ntdsapi.dll 1
+;dll\win32\ntmarta\ntmarta.dll 1
+;dll\win32\objsel\objsel.dll 1
+;dll\win32\odbc32\odbc32.dll 1
+;dll\win32\odbccp32\odbccp32.dll 1
+;dll\win32\ole32\ole32.dll 1
+;dll\win32\oleacc\oleacc.dll 1
+;dll\win32\oleaut32\oleaut32.dll 1
+;dll\win32\oledlg\oledlg.dll 1
+;dll\win32\olepro32\olepro32.dll 1
+;dll\win32\opengl32\opengl32.dll 1
+;dll\win32\pdh\pdh.dll 1
+;dll\win32\powrprof\powrprof.dll 1
+;dll\win32\printui\printui.dll 1
+;dll\win32\psapi\psapi.dll 1
+;dll\win32\pstorec\pstorec.dll 1
+;dll\win32\rasapi32\rasapi32.dll 1
+;dll\win32\rasdlg\rasdlg.dll 1
+;dll\win32\rasman\rasman.dll 1
+;dll\win32\riched20\riched20.dll 1
+;dll\win32\riched32\riched32.dll 1
+;dll\win32\rpcrt4\rpcrt4.dll 1
+;dll\win32\rsabase\rsabase.dll 1
+;dll\win32\rsaenh\rsaenh.dll 1
+;dll\win32\samlib\samlib.dll 1
+;dll\win32\samsrv\samsrv.dll 1
+;dll\win32\schannel\schannel.dll 1
+;dll\win32\secur32\secur32.dll 1
+;dll\win32\security\security.dll 1
+;dll\win32\sensapi\sensapi.dll 1
+;dll\win32\serialui\serialui.dll 1
+;dll\win32\setupapi\setupapi.dll 1
+;dll\win32\sfc\sfc.dll 1
+;dll\win32\sfc_os\sfc_os.dll 1
+;dll\win32\shdocvw\shdocvw.dll 1
+;dll\win32\shell32\shell32.dll 1
+;dll\win32\shfolder\shfolder.dll 1
+;dll\win32\shimgvw\shimgvw.dll 1
+;dll\win32\shlwapi\shlwapi.dll 1
+;dll\win32\smdll\smdll.dll 1
+;dll\win32\snmpapi\snmpapi.dll 1
+;dll\win32\stdole2.tlb\stdole2.tlb 1
++;dll\win32\stdole32.tlb\stdole32.tlb 1
+;dll\win32\sxs\sxs.dll 1
+;dll\win32\syssetup\syssetup.dll 1
+;dll\win32\tapi32\tapi32.dll 1
+;dll\win32\tapiui\tapiui.dll 1
+;dll\win32\twain_32\twain_32.dll 1
+;dll\win32\uext2\uext2.dll 1
+;dll\win32\ufat\ufat.dll 1
+;dll\win32\ufatx\ufatx.dll 1 optional
+;dll\win32\untfs\untfs.dll 1
+;dll\win32\urlmon\urlmon.dll 1
+;dll\win32\user32\user32.dll 1
+;dll\win32\userenv\userenv.dll 1
+;dll\win32\usp10\usp10.dll 1
+;dll\win32\uxtheme\uxtheme.dll 1
+;dll\win32\vdmdbg\vdmdbg.dll 1
+;dll\win32\version\version.dll 1
+;dll\win32\winfax\winfax.dll 1
+;dll\win32\winhttp\winhttp.dll 1
+;dll\win32\wininet\wininet.dll 1
+;dll\win32\winmm\winmm.dll 1
+;dll\win32\winspool\winspool.drv 1
+;dll\win32\winsta\winsta.dll 1
+;dll\win32\wintrust\wintrust.dll 1
+;dll\win32\wldap32\wldap32.dll 1
+;dll\win32\ws2_32\ws2_32.dll 1
+;dll\win32\ws2help\ws2help.dll 1
+;dll\win32\wshirda\wshirda.dll 1
+;dll\win32\wshtcpip\wshtcpip.dll 1
+;dll\win32\wsock32\wsock32.dll 1
+;dll\win32\wtsapi32\wtsapi32.dll 1
+;dll\win32\winmm\midimap\midimap.dll 1
+;dll\win32\winmm\wavemap\msacm32.drv 1 optional
; Shell Extensions
-dll\shellext\deskadp\deskadp.dll 1
-dll\shellext\deskmon\deskmon.dll 1
+;dll\shellext\deskadp\deskadp.dll 1
+;dll\shellext\deskmon\deskmon.dll 1
; Drivers
-drivers\base\bootvid\bootvid.dll 1
-drivers\base\beep\beep.sys 2
-drivers\base\null\null.sys 2
+;drivers\base\bootvid\bootvid.dll 1
+;drivers\base\beep\beep.sys 2
+;drivers\base\null\null.sys 2
-drivers\bus\isapnp\isapnp.sys 2
+;drivers\bus\isapnp\isapnp.sys 2
-drivers\directx\dxapi\dxapi.sys 2
-drivers\directx\dxg\dxg.sys 2
-drivers\directx\dxgthk\dxgthk.sys 2
+;drivers\directx\dxapi\dxapi.sys 2
+;drivers\directx\dxg\dxg.sys 2
+;drivers\directx\dxgthk\dxgthk.sys 2
-drivers\filesystems\fs_rec\fs_rec.sys 2
-drivers\filesystems\msfs\msfs.sys 2
-drivers\filesystems\mup\mup.sys 2
-drivers\filesystems\npfs\npfs.sys 2
+;drivers\filesystems\fs_rec\fs_rec.sys 2
+;drivers\filesystems\msfs\msfs.sys 2
+;drivers\filesystems\mup\mup.sys 2
+;drivers\filesystems\npfs\npfs.sys 2
-drivers\input\mouclass\mouclass.sys 2
-drivers\input\sermouse\sermouse.sys 2
+;drivers\input\mouclass\mouclass.sys 2
+;drivers\input\sermouse\sermouse.sys 2
-drivers\network\afd\afd.sys 2
-drivers\network\ndis\ndis.sys 2
-drivers\network\tcpip\tcpip.sys 2
-drivers\network\tdi\tdi.sys 2
-drivers\network\dd\ne2000\ne2000.sys 2
-drivers\network\dd\pcnet\pcnet.sys 2
+;drivers\network\afd\afd.sys 2
+;drivers\network\ndis\ndis.sys 2
+;drivers\network\tcpip\tcpip.sys 2
+;drivers\network\tdi\tdi.sys 2
+;drivers\network\dd\ne2000\ne2000.sys 2
+;drivers\network\dd\pcnet\pcnet.sys 2
-drivers\serial\serenum\serenum.sys 2
-drivers\serial\serial\serial.sys 2
+;drivers\serial\serenum\serenum.sys 2
+;drivers\serial\serial\serial.sys 2
-drivers\storage\ide\pciide\pciide.sys 2
-drivers\storage\ide\pciidex\pciidex.sys 2
+;drivers\storage\ide\pciide\pciide.sys 2
+;drivers\storage\ide\pciidex\pciidex.sys 2
-;drivers\usb\miniport\usbohci\usbohci.sys 2
-;drivers\usb\miniport\usbuhci\usbuhci.sys 2
-;drivers\usb\usbhub\usbhub.sys 2
-;drivers\usb\usbport\usbport.sys 2
-drivers\usb\nt4compat\usbdriver\usbdriver.sys 2
+;;drivers\usb\miniport\usbohci\usbohci.sys 2
+;;drivers\usb\miniport\usbuhci\usbuhci.sys 2
+;;drivers\usb\usbhub\usbhub.sys 2
+;;drivers\usb\usbport\usbport.sys 2
+;drivers\usb\nt4compat\usbdriver\usbdriver.sys 2
-drivers\video\displays\vga\vgaddi.dll 1
-drivers\video\displays\framebuf\framebuf.dll 1
-drivers\video\miniport\vga\vgamp.sys 2
-drivers\video\miniport\vbe\vbemp.sys 2
-drivers\video\videoprt\videoprt.sys 2
+;drivers\video\displays\vga\vgaddi.dll 1
+;drivers\video\displays\framebuf\framebuf.dll 1
+;drivers\video\miniport\vga\vgamp.sys 2
+;drivers\video\miniport\vbe\vbemp.sys 2
+;drivers\video\videoprt\videoprt.sys 2
-drivers\wmi\wmilib.sys 2
+;drivers\wmi\wmilib.sys 2
; Media
-media\fonts\DejaVuSans.ttf 3
-media\fonts\DejaVuSans-Bold.ttf 3
-media\fonts\DejaVuSans-BoldOblique.ttf 3
-media\fonts\DejaVuSansMono.ttf 3
-media\fonts\DejaVuSansMono-Bold.ttf 3
-media\fonts\DejaVuSansMono-BoldOblique.ttf 3
-media\fonts\DejaVuSansMono-Oblique.ttf 3
-media\fonts\DejaVuSans-Oblique.ttf 3
-media\fonts\DejaVuSerif.ttf 3
-media\fonts\DejaVuSerif-Bold.ttf 3
-media\fonts\DejaVuSerif-BoldItalic.ttf 3
-media\fonts\DejaVuSerif-Italic.ttf 3
-
-media\fonts\FreeMono.ttf 3
-media\fonts\FreeMonoBold.ttf 3
-media\fonts\FreeMonoBoldOblique.ttf 3
-media\fonts\FreeMonoOblique.ttf 3
-
-media\fonts\LiberationMono-Bold.ttf 3
-media\fonts\LiberationMono-BoldItalic.ttf 3
-media\fonts\LiberationMono-Italic.ttf 3
-media\fonts\LiberationMono-Regular.ttf 3
-media\fonts\LiberationSans-Bold.ttf 3
-media\fonts\LiberationSans-BoldItalic.ttf 3
-media\fonts\LiberationSans-Italic.ttf 3
-media\fonts\LiberationSans-Regular.ttf 3
-media\fonts\LiberationSerif-Bold.ttf 3
-media\fonts\LiberationSerif-BoldItalic.ttf 3
-media\fonts\LiberationSerif-Italic.ttf 3
-media\fonts\LiberationSerif-Regular.ttf 3
-
-media\fonts\Marlett.ttf 3
-media\fonts\tahoma.ttf 3
-media\fonts\tahomabd.ttf 3
-
-media\nls\c_037.nls 1
-media\nls\c_500.nls 1
-media\nls\c_737.nls 1
-media\nls\c_775.nls 1
-media\nls\c_850.nls 1
-media\nls\c_852.nls 1
-media\nls\c_855.nls 1
-media\nls\c_856.nls 1
-media\nls\c_857.nls 1
-media\nls\c_860.nls 1
-media\nls\c_861.nls 1
-media\nls\c_862.nls 1
-media\nls\c_863.nls 1
-media\nls\c_864.nls 1
-media\nls\c_865.nls 1
-media\nls\c_866.nls 1
-media\nls\c_869.nls 1
-media\nls\c_874.nls 1
-media\nls\c_875.nls 1
-media\nls\c_878.nls 1
-media\nls\c_932.nls 1
-media\nls\c_936.nls 1
-media\nls\c_949.nls 1
-media\nls\c_950.nls 1
-media\nls\c_1006.nls 1
-media\nls\c_1026.nls 1
-media\nls\c_1250.nls 1
-media\nls\c_1251.nls 1
-media\nls\c_1253.nls 1
-media\nls\c_1254.nls 1
-media\nls\c_1255.nls 1
-media\nls\c_1256.nls 1
-media\nls\c_1257.nls 1
-media\nls\c_1258.nls 1
-media\nls\c_10000.nls 1
-media\nls\c_10006.nls 1
-media\nls\c_10007.nls 1
-media\nls\c_10029.nls 1
-media\nls\c_10079.nls 1
-media\nls\c_10081.nls 1
-media\nls\c_20866.nls 1
-media\nls\c_28591.nls 1
-media\nls\c_28592.nls 1
-media\nls\c_28593.nls 1
-media\nls\c_28594.nls 1
-media\nls\c_28595.nls 1
-media\nls\c_28596.nls 1
-media\nls\c_28597.nls 1
-media\nls\c_28598.nls 1
-media\nls\c_28599.nls 1
-media\drivers\etc\services 5
-media\inf\acpi.inf 6
-media\inf\cdrom.inf 6
-media\inf\display.inf 6
-media\inf\font.inf 6
-media\inf\hdc.inf 6
-media\inf\intl.inf 6
-media\inf\layout.inf 6
-media\inf\machine.inf 6
-media\inf\msmouse.inf 6
-media\inf\keyboard.inf 6
-media\inf\NET_NIC.inf 6
-media\inf\netamd.inf 6
-media\inf\netisa.inf 6
-media\inf\netrtpnt.inf 6
-media\inf\nettcpip.inf 6
-media\inf\ports.inf 6
-media\inf\scsi.inf 6
-media\inf\syssetup.inf 6
-media\inf\usbport.inf 6
-media\inf\usb.inf 6
-media\inf\usbstor.inf 6
-media\inf\xboxdisp.inf 6
+;media\fonts\DejaVuSans.ttf 3
+;media\fonts\DejaVuSans-Bold.ttf 3
+;media\fonts\DejaVuSans-BoldOblique.ttf 3
- ;media\fonts\DejaVuSansCondensed.ttf 3
- ;media\fonts\DejaVuSansCondensed-Bold.ttf 3
- ;media\fonts\DejaVuSansCondensed-BoldOblique.ttf 3
- ;media\fonts\DejaVuSansCondensed-Oblique.ttf 3
- ;media\fonts\DejaVuSans-ExtraLight.ttf 3
+;media\fonts\DejaVuSansMono.ttf 3
+;media\fonts\DejaVuSansMono-Bold.ttf 3
+;media\fonts\DejaVuSansMono-BoldOblique.ttf 3
+;media\fonts\DejaVuSansMono-Oblique.ttf 3
+;media\fonts\DejaVuSans-Oblique.ttf 3
+;media\fonts\DejaVuSerif.ttf 3
+;media\fonts\DejaVuSerif-Bold.ttf 3
+;media\fonts\DejaVuSerif-BoldItalic.ttf 3
- ;media\fonts\DejaVuSerifCondensed.ttf 3
- ;media\fonts\DejaVuSerifCondensed-Bold.ttf 3
- ;media\fonts\DejaVuSerifCondensed-BoldItalic.ttf 3
- ;media\fonts\DejaVuSerifCondensed-Italic.ttf 3
+;media\fonts\DejaVuSerif-Italic.ttf 3
+
++;media\fonts\FreeMono.ttf 3
++;media\fonts\FreeMonoBold.ttf 3
++;media\fonts\FreeMonoBoldOblique.ttf 3
++;media\fonts\FreeMonoOblique.ttf 3
++
+;media\fonts\LiberationMono-Bold.ttf 3
+;media\fonts\LiberationMono-BoldItalic.ttf 3
+;media\fonts\LiberationMono-Italic.ttf 3
+;media\fonts\LiberationMono-Regular.ttf 3
+;media\fonts\LiberationSans-Bold.ttf 3
+;media\fonts\LiberationSans-BoldItalic.ttf 3
+;media\fonts\LiberationSans-Italic.ttf 3
+;media\fonts\LiberationSans-Regular.ttf 3
+;media\fonts\LiberationSerif-Bold.ttf 3
+;media\fonts\LiberationSerif-BoldItalic.ttf 3
+;media\fonts\LiberationSerif-Italic.ttf 3
+;media\fonts\LiberationSerif-Regular.ttf 3
+
++;media\fonts\Marlett.ttf 3
+;media\fonts\tahoma.ttf 3
+;media\fonts\tahomabd.ttf 3
+
- ;media\fonts\c0419bt_.ttf 3
- ;media\fonts\c0582bt_.ttf 3
- ;media\fonts\c0583bt_.ttf 3
- ;media\fonts\c0611bt_.ttf 3
- ;media\fonts\c0632bt_.ttf 3
- ;media\fonts\c0633bt_.ttf 3
- ;media\fonts\c0648bt_.ttf 3
- ;media\fonts\c0649bt_.ttf 3
- ;media\fonts\courbi.ttf 3
- ;media\fonts\courb.ttf 3
- ;media\fonts\cour.ttf 3
- ;media\fonts\helb____.ttf 3
- ;media\fonts\Marlett.ttf 3
- ;media\fonts\timr____.ttf 3
- ;media\fonts\UTBI____.ttf 3
- ;media\fonts\UTB_____.ttf 3
- ;media\fonts\UTI_____.ttf 3
- ;media\fonts\UTRG____.ttf 3
+;media\nls\c_037.nls 1
+;media\nls\c_500.nls 1
+;media\nls\c_737.nls 1
+;media\nls\c_775.nls 1
+;media\nls\c_850.nls 1
+;media\nls\c_852.nls 1
+;media\nls\c_855.nls 1
+;media\nls\c_856.nls 1
+;media\nls\c_857.nls 1
+;media\nls\c_860.nls 1
+;media\nls\c_861.nls 1
+;media\nls\c_862.nls 1
+;media\nls\c_863.nls 1
+;media\nls\c_864.nls 1
+;media\nls\c_865.nls 1
+;media\nls\c_866.nls 1
+;media\nls\c_869.nls 1
+;media\nls\c_874.nls 1
+;media\nls\c_875.nls 1
+;media\nls\c_878.nls 1
+;media\nls\c_932.nls 1
+;media\nls\c_936.nls 1
+;media\nls\c_949.nls 1
+;media\nls\c_950.nls 1
+;media\nls\c_1006.nls 1
+;media\nls\c_1026.nls 1
+;media\nls\c_1250.nls 1
+;media\nls\c_1251.nls 1
+;media\nls\c_1253.nls 1
+;media\nls\c_1254.nls 1
+;media\nls\c_1255.nls 1
+;media\nls\c_1256.nls 1
+;media\nls\c_1257.nls 1
+;media\nls\c_1258.nls 1
+;media\nls\c_10000.nls 1
+;media\nls\c_10006.nls 1
+;media\nls\c_10007.nls 1
+;media\nls\c_10029.nls 1
+;media\nls\c_10079.nls 1
+;media\nls\c_10081.nls 1
+;media\nls\c_20866.nls 1
+;media\nls\c_28591.nls 1
+;media\nls\c_28592.nls 1
+;media\nls\c_28593.nls 1
+;media\nls\c_28594.nls 1
+;media\nls\c_28595.nls 1
+;media\nls\c_28596.nls 1
+;media\nls\c_28597.nls 1
+;media\nls\c_28598.nls 1
+;media\nls\c_28599.nls 1
+;media\drivers\etc\services 5
+;media\inf\acpi.inf 6
+;media\inf\cdrom.inf 6
+;media\inf\display.inf 6
+;media\inf\font.inf 6
+;media\inf\hdc.inf 6
+;media\inf\intl.inf 6
+;media\inf\layout.inf 6
+;media\inf\machine.inf 6
+;media\inf\msmouse.inf 6
+;media\inf\keyboard.inf 6
+;media\inf\NET_NIC.inf 6
+;media\inf\netamd.inf 6
+;media\inf\netisa.inf 6
+;media\inf\netrtpnt.inf 6
+;media\inf\nettcpip.inf 6
+;media\inf\ports.inf 6
+;media\inf\scsi.inf 6
+;media\inf\syssetup.inf 6
+;media\inf\usbport.inf 6
+;media\inf\usb.inf 6
+;media\inf\usbstor.inf 6
+;media\inf\xboxdisp.inf 6
; Subsystems
-subsystems\win32\csrss\csrss.exe 1
-subsystems\win32\csrss\win32csr\win32csr.dll 1
-subsystems\csr\csr.exe 1 optional
-subsystems\csr\csrsrv\csrsrv.dll 1 optional
-subsystems\win\basesrv\basesrv.dll 1 optional
-subsystems\win\winsrv\winsrv.dll 1 optional
-subsystems\ntvdm\ntvdm.exe 1
-subsystems\win32\win32k\win32k.sys 1
+;subsystems\win32\csrss\csrss.exe 1
+;subsystems\win32\csrss\win32csr\win32csr.dll 1
+;subsystems\csr\csr.exe 1 optional
+;subsystems\csr\csrsrv\csrsrv.dll 1 optional
+;subsystems\win\basesrv\basesrv.dll 1 optional
+;subsystems\win\winsrv\winsrv.dll 1 optional
+;subsystems\ntvdm\ntvdm.exe 1
+;subsystems\win32\win32k\win32k.sys 1
boot\bootdata\bootcdregtest\testboot.bat 7 optional
tools\dbgprint\dbgprint.exe 7 optional
; Modules
-modules\os2\server\os2srv.dll 1 optional
-modules\os2\dll\win32\doscalls\doscalls.dll 1 optional
-modules\posix\server\psxsrv.dll 1 optional
-modules\posix\dll\win32\psxdll\psxdll.dll 1 optional
-modules\rosky\dll\win32\libsky\libsky.dll 1 optional
-modules\rosky\dll\win32\libskygi\libskygi.dll 1 optional
-modules\vms\server\vmssrv.dll 1 optional
-modules\vms\dll\win32\vmsdll\vmsdll.dll 1 optional
-modules\rosapps\applications\screensavers\cylfrac\cylfrac.scr 1 optional
-modules\rosapps\applications\screensavers\matrix\matrix.scr 1 optional
-modules\rosapps\applications\screensavers\blankscr\scrnsave.scr 1 optional
-modules\rosapps\applications\screensavers\starfield\starfield.scr 1 optional
-modules\rosapps\applications\screensavers\mazescr\mazescr.scr 1 optional
-modules\rosapps\applications\screensavers\butterflies\butterflies.scr 1 optional
-modules\rosapps\applications\cmdutils\comp\comp.exe 1 optional
-modules\rosapps\applications\cmdutils\mode\mode.exe 1 optional
-modules\rosapps\applications\cmdutils\sort\sort.exe 1 optional
-modules\rosapps\applications\cmdutils\tee\tee.exe 1 optional
-modules\rosapps\applications\cmdutils\touch\touch.exe 1 optional
-modules\rosapps\applications\cmdutils\uptime\uptime.exe 1 optional
-modules\rosapps\applications\cmdutils\y\y.exe 1 optional
-modules\rosapps\applications\devutils\gdb2\gdb2.exe 1 optional
-modules\rosapps\applications\devutils\gdihv\gdihv.exe 1 optional
-modules\rosapps\applications\devutils\genguid\genguid.exe 1 optional
-modules\rosapps\applications\devutils\gettype\gettype.exe 1 optional
-modules\rosapps\applications\devutils\roswebparser\roswebparser.exe 1 optional
-modules\rosapps\applications\devutils\zoomin\zoomin.exe 1 optional
-modules\rosapps\applications\downloader\downloader.exe 1 optional
-modules\rosapps\applications\downloader\downloader.xml 1 optional
-modules\rosapps\applications\fontview\fontview.exe 1 optional
-modules\rosapps\applications\imagesoft\imagesoft.exe 1 optional
-modules\rosapps\applications\net\ncftp\ncftp.exe 1 optional
-modules\rosapps\applications\net\netreg\netreg.exe 1 optional
-modules\rosapps\applications\net\niclist\niclist.exe 1 optional
-modules\rosapps\applications\net\roshttpd\roshttpd.exe 1 optional
-modules\rosapps\applications\notevil\notevil.exe 1 optional
-modules\rosapps\applications\magnify\magnify.exe 1 optional
-modules\rosapps\applications\packmgr\cmd-line\rosget.exe 1 optional
-modules\rosapps\applications\packmgr\gui\packmgr.exe 1 optional
-modules\rosapps\applications\packmgr\lib\package.dll 1 optional
-modules\rosapps\applications\sysutils\chkdsk\chkdsk.exe 1 optional
-modules\rosapps\applications\sysutils\systeminfo\systeminfo.exe 1 optional
-modules\rosapps\applications\sysutils\chklib\chklib.exe 1 optional
-modules\rosapps\applications\sysutils\ctm\ctm.exe 1 optional
-modules\rosapps\applications\sysutils\dosfsck\dosfsck.exe 1 optional
-modules\rosapps\applications\sysutils\kill\kill.exe 1 optional
-modules\rosapps\applications\sysutils\lsdd\lsdd.exe 1 optional
-modules\rosapps\applications\sysutils\man\man.exe 1 optional
-modules\rosapps\applications\sysutils\pedump\pedump.exe 1 optional
-modules\rosapps\applications\sysutils\regexpl\regexpl.exe 1 optional
-modules\rosapps\applications\sysutils\tcat\tcat.exe 1 optional
-modules\rosapps\applications\sysutils\tlist\tlist.exe 1 optional
-modules\rosapps\applications\sysutils\screenshot\screenshot.exe 1 optional
-modules\rosapps\applications\sysutils\utils\binpatch\binpatch.exe 1 optional
-modules\rosapps\applications\sysutils\utils\cat\cat.exe 1 optional
-modules\rosapps\applications\sysutils\utils\driver\load\load.exe 1 optional
-modules\rosapps\applications\sysutils\utils\driver\unload\unload.exe 1 optional
-modules\rosapps\applications\sysutils\utils\infinst\infinst.exe 1 optional
-modules\rosapps\applications\sysutils\utils\nts2w32err\nts2w32err.exe 1 optional
-modules\rosapps\applications\sysutils\utils\objdir\objdir.exe 1 optional
-modules\rosapps\applications\sysutils\utils\partinfo\partinfo.exe 1 optional
-modules\rosapps\applications\sysutils\utils\ps\ps.exe 1 optional
-modules\rosapps\applications\sysutils\utils\rosperf\rosperf.exe 1 optional
-modules\rosapps\applications\sysutils\utils\stats\stats.exe 1 optional
-modules\rosapps\applications\sysutils\utils\tickcount\tickcount.exe 1 optional
-modules\rosapps\applications\winfile\winfile.exe 1 optional
-modules\rosapps\applications\winver\winver.exe 1 optional
-modules\rosapps\applications\write\write.exe 1 optional
-modules\rosapps\demos\ddraw\ddraw_demo.exe 1 optional
-modules\rosapps\demos\maze\maze.exe 1 optional
-modules\rosapps\dflat32\edit.exe 1 optional
-modules\rosapps\drivers\avtest\avtest.sys 1 optional
-modules\rosapps\drivers\ramdrv\ramdrv.sys 1 optional
-modules\rosapps\drivers\green\green.sys 1 optional
-modules\rosapps\lib\dflat32\dflat32.dll 1 optional
-modules\rosapps\templates\dialog.exe 1 optional
-modules\rosapps\templates\mdi.exe 1 optional
-modules\rostests\winetests\advapi32\advapi32_winetest.exe 7 optional
-modules\rostests\winetests\advpack\advpack_winetest.exe 7 optional
-modules\rostests\winetests\browseui\browseui_winetest.exe 7 optional
-modules\rostests\winetests\cabinet\cabinet_winetest.exe 7 optional
-modules\rostests\winetests\comcat\comcat_winetest.exe 7 optional
-modules\rostests\winetests\comctl32\comctl32_winetest.exe 7 optional
-modules\rostests\winetests\comdlg32\comdlg32_winetest.exe 7 optional
-modules\rostests\winetests\gdi32\gdi32_winetest.exe 7 optional
-modules\rostests\winetests\gdiplus\gdiplus_winetest.exe 7 optional
-modules\rostests\winetests\hlink\hlink_winetest.exe 7 optional
-modules\rostests\winetests\icmp\icmp_winetest.exe 7 optional
-modules\rostests\winetests\kernel32\kernel32_winetest.exe 7 optional
-modules\rostests\winetests\lz32\lz32_winetest.exe 7 optional
-modules\rostests\winetests\mapi32\mapi32_winetest.exe 7 optional
-modules\rostests\winetests\mlang\mlang_winetest.exe 7 optional
-modules\rostests\winetests\mshtml\mshtml_winetest.exe 7 optional
-modules\rostests\winetests\msi\msi_winetest.exe 7 optional
-modules\rostests\winetests\mstask\mstask_winetest.exe 7 optional
-modules\rostests\winetests\msvcrt\msvcrt_winetest.exe 7 optional
-modules\rostests\winetests\netapi32\netapi32_winetest.exe 7 optional
-modules\rostests\winetests\ntdll\ntdll_winetest.exe 7 optional
-modules\rostests\winetests\odbccp32\odbccp32_winetest.exe 7 optional
-modules\rostests\winetests\ole32\ole32_winetest.exe 7 optional
-modules\rostests\winetests\oleaut32\oleaut32_winetest.exe 7 optional
-modules\rostests\winetests\powrprof\powrprof_winetest.exe 7 optional
-modules\rostests\winetests\psapi\psapi_winetest.exe 7 optional
-modules\rostests\winetests\riched20\riched20_winetest.exe 7 optional
-modules\rostests\winetests\rpcrt4\rpcrt4_winetest.exe 7 optional
-modules\rostests\winetests\rsabase\rsabase_winetest.exe 7 optional
-modules\rostests\winetests\rsaenh\rsaenh_winetest.exe 7 optional
-modules\rostests\winetests\schannel\schannel_winetest.exe 7 optional
-modules\rostests\winetests\secur32\secur32_winetest.exe 7 optional
-modules\rostests\winetests\setupapi\setupapi_winetest.exe 7 optional
-modules\rostests\winetests\shdocvw\shdocvw_winetest.exe 7 optional
-modules\rostests\winetests\shell32\shell32_winetest.exe 7 optional
-modules\rostests\winetests\shlwapi\shlwapi_winetest.exe 7 optional
-modules\rostests\winetests\urlmon\urlmon_winetest.exe 7 optional
-modules\rostests\winetests\user32\user32_winetest.exe 7 optional
-modules\rostests\winetests\usp10\usp10_winetest.exe 7 optional
-modules\rostests\winetests\uxtheme\uxtheme_winetest.exe 7 optional
-modules\rostests\winetests\version\version_winetest.exe 7 optional
-modules\rostests\winetests\winhttp\winhttp_winetest.exe 7 optional
-modules\rostests\winetests\wininet\wininet_winetest.exe 7 optional
-modules\wallpaper\lake.bmp 4 optional
+;modules\os2\server\os2srv.dll 1 optional
+;modules\os2\dll\win32\doscalls\doscalls.dll 1 optional
+;modules\posix\server\psxsrv.dll 1 optional
+;modules\posix\dll\win32\psxdll\psxdll.dll 1 optional
+;modules\rosky\dll\win32\libsky\libsky.dll 1 optional
+;modules\rosky\dll\win32\libskygi\libskygi.dll 1 optional
+;modules\vms\server\vmssrv.dll 1 optional
+;modules\vms\dll\win32\vmsdll\vmsdll.dll 1 optional
+;modules\rosapps\applications\screensavers\cylfrac\cylfrac.scr 1 optional
+;modules\rosapps\applications\screensavers\matrix\matrix.scr 1 optional
+;modules\rosapps\applications\screensavers\blankscr\scrnsave.scr 1 optional
+;modules\rosapps\applications\screensavers\starfield\starfield.scr 1 optional
+;modules\rosapps\applications\screensavers\mazescr\mazescr.scr 1 optional
+;modules\rosapps\applications\screensavers\butterflies\butterflies.scr 1 optional
+;modules\rosapps\applications\cmdutils\comp\comp.exe 1 optional
+;modules\rosapps\applications\cmdutils\mode\mode.exe 1 optional
+;modules\rosapps\applications\cmdutils\sort\sort.exe 1 optional
+;modules\rosapps\applications\cmdutils\tee\tee.exe 1 optional
+;modules\rosapps\applications\cmdutils\touch\touch.exe 1 optional
+;modules\rosapps\applications\cmdutils\uptime\uptime.exe 1 optional
+;modules\rosapps\applications\cmdutils\y\y.exe 1 optional
+;modules\rosapps\applications\devutils\gdb2\gdb2.exe 1 optional
+;modules\rosapps\applications\devutils\gdihv\gdihv.exe 1 optional
+;modules\rosapps\applications\devutils\genguid\genguid.exe 1 optional
+;modules\rosapps\applications\devutils\gettype\gettype.exe 1 optional
+;modules\rosapps\applications\devutils\roswebparser\roswebparser.exe 1 optional
+;modules\rosapps\applications\devutils\zoomin\zoomin.exe 1 optional
+;modules\rosapps\applications\downloader\downloader.exe 1 optional
+;modules\rosapps\applications\downloader\downloader.xml 1 optional
+;modules\rosapps\applications\fontview\fontview.exe 1 optional
+;modules\rosapps\applications\imagesoft\imagesoft.exe 1 optional
+;modules\rosapps\applications\net\ncftp\ncftp.exe 1 optional
+;modules\rosapps\applications\net\netreg\netreg.exe 1 optional
+;modules\rosapps\applications\net\niclist\niclist.exe 1 optional
+;modules\rosapps\applications\net\roshttpd\roshttpd.exe 1 optional
+;modules\rosapps\applications\notevil\notevil.exe 1 optional
+;modules\rosapps\applications\magnify\magnify.exe 1 optional
+;modules\rosapps\applications\packmgr\cmd-line\rosget.exe 1 optional
+;modules\rosapps\applications\packmgr\gui\packmgr.exe 1 optional
+;modules\rosapps\applications\packmgr\lib\package.dll 1 optional
+;modules\rosapps\applications\sysutils\chkdsk\chkdsk.exe 1 optional
+;modules\rosapps\applications\sysutils\systeminfo\systeminfo.exe 1 optional
+;modules\rosapps\applications\sysutils\chklib\chklib.exe 1 optional
+;modules\rosapps\applications\sysutils\ctm\ctm.exe 1 optional
+;modules\rosapps\applications\sysutils\dosfsck\dosfsck.exe 1 optional
+;modules\rosapps\applications\sysutils\kill\kill.exe 1 optional
+;modules\rosapps\applications\sysutils\lsdd\lsdd.exe 1 optional
+;modules\rosapps\applications\sysutils\man\man.exe 1 optional
+;modules\rosapps\applications\sysutils\pedump\pedump.exe 1 optional
+;modules\rosapps\applications\sysutils\regexpl\regexpl.exe 1 optional
+;modules\rosapps\applications\sysutils\tcat\tcat.exe 1 optional
+;modules\rosapps\applications\sysutils\tlist\tlist.exe 1 optional
+;modules\rosapps\applications\sysutils\screenshot\screenshot.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\binpatch\binpatch.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\cat\cat.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\driver\load\load.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\driver\unload\unload.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\infinst\infinst.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\nts2w32err\nts2w32err.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\objdir\objdir.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\partinfo\partinfo.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\ps\ps.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\rosperf\rosperf.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\stats\stats.exe 1 optional
+;modules\rosapps\applications\sysutils\utils\tickcount\tickcount.exe 1 optional
+;modules\rosapps\applications\winfile\winfile.exe 1 optional
+;modules\rosapps\applications\winver\winver.exe 1 optional
+;modules\rosapps\applications\write\write.exe 1 optional
+;modules\rosapps\demos\ddraw\ddraw_demo.exe 1 optional
+;modules\rosapps\demos\maze\maze.exe 1 optional
+;modules\rosapps\dflat32\edit.exe 1 optional
+;modules\rosapps\drivers\avtest\avtest.sys 1 optional
+;modules\rosapps\drivers\ramdrv\ramdrv.sys 1 optional
+;modules\rosapps\drivers\green\green.sys 1 optional
+;modules\rosapps\lib\dflat32\dflat32.dll 1 optional
+;modules\rosapps\templates\dialog.exe 1 optional
+;modules\rosapps\templates\mdi.exe 1 optional
+;modules\rostests\winetests\advapi32\advapi32_winetest.exe 7 optional
+;modules\rostests\winetests\advpack\advpack_winetest.exe 7 optional
+;modules\rostests\winetests\browseui\browseui_winetest.exe 7 optional
+;modules\rostests\winetests\cabinet\cabinet_winetest.exe 7 optional
+;modules\rostests\winetests\comcat\comcat_winetest.exe 7 optional
+;modules\rostests\winetests\comctl32\comctl32_winetest.exe 7 optional
+;modules\rostests\winetests\comdlg32\comdlg32_winetest.exe 7 optional
+;modules\rostests\winetests\gdi32\gdi32_winetest.exe 7 optional
+;modules\rostests\winetests\gdiplus\gdiplus_winetest.exe 7 optional
+;modules\rostests\winetests\hlink\hlink_winetest.exe 7 optional
+;modules\rostests\winetests\icmp\icmp_winetest.exe 7 optional
+;modules\rostests\winetests\kernel32\kernel32_winetest.exe 7 optional
+;modules\rostests\winetests\lz32\lz32_winetest.exe 7 optional
+;modules\rostests\winetests\mapi32\mapi32_winetest.exe 7 optional
+;modules\rostests\winetests\mlang\mlang_winetest.exe 7 optional
+;modules\rostests\winetests\mshtml\mshtml_winetest.exe 7 optional
+;modules\rostests\winetests\msi\msi_winetest.exe 7 optional
+;modules\rostests\winetests\msvcrt\msvcrt_winetest.exe 7 optional
+;modules\rostests\winetests\netapi32\netapi32_winetest.exe 7 optional
+;modules\rostests\winetests\ntdll\ntdll_winetest.exe 7 optional
+;modules\rostests\winetests\odbccp32\odbccp32_winetest.exe 7 optional
+;modules\rostests\winetests\ole32\ole32_winetest.exe 7 optional
+;modules\rostests\winetests\oleaut32\oleaut32_winetest.exe 7 optional
+;modules\rostests\winetests\powrprof\powrprof_winetest.exe 7 optional
+;modules\rostests\winetests\psapi\psapi_winetest.exe 7 optional
+;modules\rostests\winetests\riched20\riched20_winetest.exe 7 optional
+;modules\rostests\winetests\rpcrt4\rpcrt4_winetest.exe 7 optional
+;modules\rostests\winetests\rsabase\rsabase_winetest.exe 7 optional
+;modules\rostests\winetests\rsaenh\rsaenh_winetest.exe 7 optional
+;modules\rostests\winetests\schannel\schannel_winetest.exe 7 optional
+;modules\rostests\winetests\secur32\secur32_winetest.exe 7 optional
+;modules\rostests\winetests\setupapi\setupapi_winetest.exe 7 optional
+;modules\rostests\winetests\shdocvw\shdocvw_winetest.exe 7 optional
+;modules\rostests\winetests\shell32\shell32_winetest.exe 7 optional
+;modules\rostests\winetests\shlwapi\shlwapi_winetest.exe 7 optional
+;modules\rostests\winetests\urlmon\urlmon_winetest.exe 7 optional
+;modules\rostests\winetests\user32\user32_winetest.exe 7 optional
+;modules\rostests\winetests\usp10\usp10_winetest.exe 7 optional
+;modules\rostests\winetests\uxtheme\uxtheme_winetest.exe 7 optional
+;modules\rostests\winetests\version\version_winetest.exe 7 optional
+;modules\rostests\winetests\winhttp\winhttp_winetest.exe 7 optional
+;modules\rostests\winetests\wininet\wininet_winetest.exe 7 optional
+;modules\wallpaper\lake.bmp 4 optional
; Native libraries
-modules\windows\mfc42.dll 1 optional
-modules\windows\vmx_fb.dll 1 optional
-modules\windows\vmx_mode.dll 1 optional
-modules\windows\vmx_svga.sys 2 optional
-modules\windows\vmx_svga.inf 6 optional
-modules\windows\kvmnet.sys 2 optional
-modules\windows\kvmnet.inf 6 optional
+;modules\windows\mfc42.dll 1 optional
+;modules\windows\vmx_fb.dll 1 optional
+;modules\windows\vmx_mode.dll 1 optional
+;modules\windows\vmx_svga.sys 2 optional
+;modules\windows\vmx_svga.inf 6 optional
++;modules\windows\kvmnet.sys 2 optional
++;modules\windows\kvmnet.inf 6 optional
- /*\r
- * PROGRAMMERS: David Welch\r
- * Eric Kohl\r
- *\r
- * TODO:\r
- * - Verify the implementation of '%Z'.\r
- */\r
- \r
- /*\r
- * linux/lib/vsprintf.c\r
- *\r
- * Copyright (C) 1991, 1992 Linus Torvalds\r
- */\r
- \r
- /* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */\r
- /*\r
- * Wirzenius wrote this portably, Torvalds fucked it up :-)\r
- */\r
- \r
- #include <precomp.h>\r
- \r
- #include <wchar.h>\r
- #include <tchar.h>\r
- \r
- #define ZEROPAD 1 /* pad with zero */\r
- #define SIGN 2 /* unsigned/signed long */\r
- #define PLUS 4 /* show plus */\r
- #define SPACE 8 /* space if plus */\r
- #define LEFT 16 /* left justified */\r
- #define SPECIAL 32 /* 0x */\r
- #define LARGE 64 /* use 'ABCDEF' instead of 'abcdef' */\r
- #define REMOVEHEX 256 /* use 256 as remve 0x frim BASE 16 */\r
- \r
- static\r
- __inline\r
- int\r
- do_div(long long *n, int base)\r
- {\r
- int a;\r
- a = ((unsigned long long) *n) % (unsigned) base;\r
- *n = ((unsigned long long) *n) / (unsigned) base;\r
- return a;\r
- }\r
- \r
- \r
- static int skip_atoi(const char **s)\r
- {\r
- int i=0;\r
- \r
- while (isdigit(**s))\r
- i = i*10 + *((*s)++) - '0';\r
- return i;\r
- }\r
- \r
- \r
- static char *\r
- number(char * buf, char * end, long long num, int base, int size, int precision, int type)\r
- {\r
- char c,sign,tmp[66];\r
- const char *digits;\r
- const char *small_digits = "0123456789abcdefghijklmnopqrstuvwxyz";\r
- const char *large_digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";\r
- int i;\r
- \r
- digits = (type & LARGE) ? large_digits : small_digits;\r
- if (type & LEFT)\r
- type &= ~ZEROPAD;\r
- if (base < 2 || base > 36)\r
- return 0;\r
- c = (type & ZEROPAD) ? '0' : ' ';\r
- sign = 0;\r
- if (type & SIGN) {\r
- if (num < 0) {\r
- sign = '-';\r
- num = -num;\r
- size--;\r
- } else if (type & PLUS) {\r
- sign = '+';\r
- size--;\r
- } else if (type & SPACE) {\r
- sign = ' ';\r
- size--;\r
- }\r
- }\r
- \r
- if ((type & SPECIAL) && ((type & REMOVEHEX) == 0)) {\r
- if (base == 16)\r
- size -= 2;\r
- \r
- }\r
- i = 0;\r
- if ((num == 0) && (precision !=0))\r
- tmp[i++] = '0';\r
- else while (num != 0)\r
- tmp[i++] = digits[do_div(&num,base)];\r
- if (i > precision)\r
- precision = i;\r
- size -= precision;\r
- if (!(type&(ZEROPAD+LEFT))) {\r
- while(size-->0) {\r
- if (buf <= end)\r
- *buf = ' ';\r
- ++buf;\r
- }\r
- }\r
- if (sign) {\r
- if (buf <= end)\r
- *buf = sign;\r
- ++buf;\r
- }\r
- \r
- if ((type & SPECIAL) && ((type & REMOVEHEX) == 0)) {\r
- if (base==16) {\r
- if (buf <= end)\r
- *buf = '0';\r
- ++buf;\r
- if (buf <= end)\r
- *buf = digits[33];\r
- ++buf;\r
- }\r
- }\r
- \r
- if (!(type & LEFT)) {\r
- while (size-- > 0) {\r
- if (buf <= end)\r
- *buf = c;\r
- ++buf;\r
- }\r
- }\r
- while (i < precision--) {\r
- if (buf <= end)\r
- *buf = '0';\r
- ++buf;\r
- }\r
- while (i-- > 0) {\r
- if (buf <= end)\r
- *buf = tmp[i];\r
- ++buf;\r
- }\r
- while (size-- > 0) {\r
- if (buf <= end)\r
- *buf = ' ';\r
- ++buf;\r
- }\r
- \r
- return buf;\r
- }\r
- \r
- static char *\r
- numberf(char * buf, char * end, double num, int base, int size, int precision, int type)\r
- {\r
- char c,sign,tmp[66];\r
- const char *digits;\r
- const char *small_digits = "0123456789abcdefghijklmnopqrstuvwxyz";\r
- const char *large_digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";\r
- int i;\r
- long long x;\r
- \r
- /* FIXME\r
- the float version of number is direcly copy of number\r
- */\r
- \r
- digits = (type & LARGE) ? large_digits : small_digits;\r
- if (type & LEFT)\r
- type &= ~ZEROPAD;\r
- if (base < 2 || base > 36)\r
- return 0;\r
- c = (type & ZEROPAD) ? '0' : ' ';\r
- sign = 0;\r
- if (num < 0) {\r
- sign = '-';\r
- num = -num;\r
- size--;\r
- } else if (type & PLUS) {\r
- sign = '+';\r
- size--;\r
- } else if (type & SPACE) {\r
- sign = ' ';\r
- size--;\r
- }\r
- if (type & SPECIAL) {\r
- if (base == 16)\r
- size -= 2;\r
- else if (base == 8)\r
- size--;\r
- }\r
- i = 0;\r
- if (num == 0)\r
- tmp[i++] = '0';\r
- else while (num != 0)\r
- {\r
- x = num;\r
- tmp[i++] = digits[do_div(&x,base)];\r
- num=x;\r
- }\r
- if (i > precision)\r
- precision = i;\r
- size -= precision;\r
- if (!(type&(ZEROPAD+LEFT))) {\r
- while(size-->0) {\r
- if (buf <= end)\r
- *buf = ' ';\r
- ++buf;\r
- }\r
- }\r
- if (sign) {\r
- if (buf <= end)\r
- *buf = sign;\r
- ++buf;\r
- }\r
- if (type & SPECIAL) {\r
- if (base==8) {\r
- if (buf <= end)\r
- *buf = '0';\r
- ++buf;\r
- } else if (base==16) {\r
- if (buf <= end)\r
- *buf = '0';\r
- ++buf;\r
- if (buf <= end)\r
- *buf = digits[33];\r
- ++buf;\r
- }\r
- }\r
- if (!(type & LEFT)) {\r
- while (size-- > 0) {\r
- if (buf <= end)\r
- *buf = c;\r
- ++buf;\r
- }\r
- }\r
- if (type & ZEROPAD) {\r
- while (i < precision--) {\r
- if (buf <= end)\r
- *buf = '0';\r
- ++buf;\r
- }\r
- }\r
- while (i-- > 0) {\r
- if (buf <= end)\r
- *buf = tmp[i];\r
- ++buf;\r
- }\r
- while (size-- > 0) {\r
- if (buf <= end)\r
- *buf = ' ';\r
- ++buf;\r
- }\r
- return buf;\r
- }\r
- \r
- static char*\r
- string(char* buf, char* end, const char* s, int len, int field_width, int precision, int flags)\r
- {\r
- int i;\r
- char c;\r
- \r
- c = (flags & ZEROPAD) ? '0' : ' ';\r
- \r
- if (s == NULL)\r
- {\r
- s = "<NULL>";\r
- len = 6;\r
- }\r
- else\r
- {\r
- if (len == -1)\r
- {\r
- len = 0;\r
- while ((unsigned int)len < (unsigned int)precision && s[len])\r
- len++;\r
- }\r
- else\r
- {\r
- if ((unsigned int)len > (unsigned int)precision)\r
- len = precision;\r
- }\r
- }\r
- if (!(flags & LEFT))\r
- while (len < field_width--)\r
- {\r
- if (buf <= end)\r
- *buf = c;\r
- ++buf;\r
- }\r
- for (i = 0; i < len; ++i)\r
- {\r
- if (buf <= end)\r
- *buf = *s++;\r
- ++buf;\r
- }\r
- while (len < field_width--)\r
- {\r
- if (buf <= end)\r
- *buf = ' ';\r
- ++buf;\r
- }\r
- return buf;\r
- }\r
- \r
- static char*\r
- stringw(char* buf, char* end, const wchar_t* sw, int len, int field_width, int precision, int flags)\r
- {\r
- int i;\r
- char c;\r
- \r
- c = (flags & ZEROPAD) ? '0' : ' ';\r
- \r
- if (sw == NULL)\r
- {\r
- sw = L"<NULL>";\r
- len = 6;\r
- }\r
- else\r
- {\r
- if (len == -1)\r
- {\r
- len = 0;\r
- while ((unsigned int)len < (unsigned int)precision && sw[len])\r
- len++;\r
- }\r
- else\r
- {\r
- if ((unsigned int)len > (unsigned int)precision)\r
- len = precision;\r
- }\r
- }\r
- if (!(flags & LEFT))\r
- while (len < field_width--)\r
- {\r
- if (buf <= end)\r
- *buf = c;\r
- buf++;\r
- }\r
- for (i = 0; i < len; ++i)\r
- {\r
- if (buf <= end)\r
- *buf = (unsigned char)(*sw++);\r
- buf++;\r
- }\r
- while (len < field_width--)\r
- {\r
- if (buf <= end)\r
- *buf = ' ';\r
- buf++;\r
- }\r
- return buf;\r
- }\r
- \r
- /*\r
- * @implemented\r
- */\r
- int __cdecl lnx_vsnprintf(char *buf, size_t cnt, const char *fmt, va_list args)\r
- {\r
- int len;\r
- unsigned long long num;\r
- double _double;\r
- \r
- int base;\r
- char *str, *end;\r
- const char *s;\r
- const wchar_t *sw;\r
- \r
- int flags; /* flags to number() */\r
- \r
- int field_width; /* width of output field */\r
- int precision; /* min. # of digits for integers; max\r
- number of chars for from string */\r
- int qualifier; /* 'h', 'l', 'L', 'I' or 'w' for integer fields */\r
- \r
- /* clear the string buffer with zero so we do not need NULL terment it at end */\r
- \r
- str = buf;\r
- end = buf + cnt - 1;\r
- if (end < buf - 1) {\r
- end = ((char *) -1);\r
- cnt = end - buf + 1;\r
- }\r
- \r
- for ( ; *fmt ; ++fmt) {\r
- if (*fmt != '%') {\r
- if (str <= end)\r
- *str = *fmt;\r
- ++str;\r
- continue;\r
- }\r
- \r
- /* process flags */\r
- flags = 0;\r
- repeat:\r
- ++fmt; /* this also skips first '%' */\r
- switch (*fmt) {\r
- case '-': flags |= LEFT; goto repeat;\r
- case '+': flags |= PLUS; goto repeat;\r
- case ' ': flags |= SPACE; goto repeat;\r
- case '#': flags |= SPECIAL; goto repeat;\r
- case '0': flags |= ZEROPAD; goto repeat;\r
- }\r
- \r
- /* get field width */\r
- field_width = -1;\r
- if (isdigit(*fmt))\r
- field_width = skip_atoi(&fmt);\r
- else if (*fmt == '*') {\r
- ++fmt;\r
- /* it's the next argument */\r
- field_width = va_arg(args, int);\r
- if (field_width < 0) {\r
- field_width = -field_width;\r
- flags |= LEFT;\r
- }\r
- }\r
- \r
- /* get the precision */\r
- precision = -1;\r
- if (*fmt == '.') {\r
- ++fmt;\r
- if (isdigit(*fmt))\r
- precision = skip_atoi(&fmt);\r
- else if (*fmt == '*') {\r
- ++fmt;\r
- /* it's the next argument */\r
- precision = va_arg(args, int);\r
- }\r
- if (precision < 0)\r
- precision = 0;\r
- }\r
- \r
- /* get the conversion qualifier */\r
- qualifier = -1;\r
- if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt == 'w') {\r
- qualifier = *fmt;\r
- ++fmt;\r
- } else if (*fmt == 'I' && *(fmt+1) == '6' && *(fmt+2) == '4') {\r
- qualifier = *fmt;\r
- fmt += 3;\r
- } else if (*fmt == 'I' && *(fmt+1) == '3' && *(fmt+2) == '2') {\r
- qualifier = 'l';\r
- fmt += 3;\r
- } else if (*fmt == 'F' && *(fmt+1) == 'p') {\r
- fmt += 1;\r
- flags |= REMOVEHEX;\r
- }\r
- \r
- /* default base */\r
- base = 10;\r
- \r
- switch (*fmt) {\r
- case 'c': /* finished */\r
- if (qualifier == 'l' || qualifier == 'w') {\r
- wchar_t sw1[2];\r
- /* print unicode string */\r
- sw1[0] = (wchar_t) va_arg(args, int);\r
- sw1[1] = 0;\r
- str = stringw(str, end, (wchar_t *)&sw1, -1, field_width, precision, flags);\r
- } else {\r
- char s1[2];\r
- /* print ascii string */\r
- s1[0] = ( unsigned char) va_arg(args, int);\r
- s1[1] = 0;\r
- str = string(str, end, (char *)&s1, -1, field_width, precision, flags);\r
- }\r
- continue;\r
- \r
- case 'C': /* finished */\r
- if (!(flags & LEFT))\r
- while (--field_width > 0) {\r
- if (str <= end)\r
- *str = ' ';\r
- ++str;\r
- }\r
- if (qualifier == 'h') {\r
- if (str <= end)\r
- *str = (unsigned char) va_arg(args, int);\r
- ++str;\r
- } else {\r
- if (str <= end)\r
- *str = (unsigned char)(wchar_t) va_arg(args, int);\r
- ++str;\r
- }\r
- while (--field_width > 0) {\r
- if (str <= end)\r
- *str = ' ';\r
- ++str;\r
- }\r
- continue;\r
- \r
- case 's': /* finished */\r
- if (qualifier == 'l' || qualifier == 'w') {\r
- /* print unicode string */\r
- sw = va_arg(args, wchar_t *);\r
- str = stringw(str, end, sw, -1, field_width, precision, flags);\r
- } else {\r
- /* print ascii string */\r
- s = va_arg(args, char *);\r
- str = string(str, end, s, -1, field_width, precision, flags);\r
- }\r
- continue;\r
- \r
- case 'S':\r
- if (qualifier == 'h') {\r
- /* print ascii string */\r
- s = va_arg(args, char *);\r
- str = string(str, end, s, -1, field_width, precision, flags);\r
- } else {\r
- /* print unicode string */\r
- sw = va_arg(args, wchar_t *);\r
- str = stringw(str, end, sw, -1, field_width, precision, flags);\r
- }\r
- continue;\r
- \r
- case 'Z':\r
- if (qualifier == 'w') {\r
- /* print counted unicode string */\r
- PUNICODE_STRING pus = va_arg(args, PUNICODE_STRING);\r
- if ((pus == NULL) || (pus->Buffer == NULL)) {\r
- sw = NULL;\r
- len = -1;\r
- } else {\r
- sw = pus->Buffer;\r
- len = pus->Length / sizeof(WCHAR);\r
- }\r
- str = stringw(str, end, sw, len, field_width, precision, flags);\r
- } else {\r
- /* print counted ascii string */\r
- PANSI_STRING pus = va_arg(args, PANSI_STRING);\r
- if ((pus == NULL) || (pus->Buffer == NULL)) {\r
- s = NULL;\r
- len = -1;\r
- } else {\r
- s = pus->Buffer;\r
- len = pus->Length;\r
- }\r
- str = string(str, end, s, len, field_width, precision, flags);\r
- }\r
- continue;\r
- \r
- case 'p':\r
- if ((flags & LARGE) == 0)\r
- flags |= LARGE;\r
- \r
- if (field_width == -1) {\r
- field_width = 2 * sizeof(void *);\r
- flags |= ZEROPAD;\r
- }\r
- str = number(str, end,\r
- (uintptr_t) va_arg(args, void *), 16,\r
- field_width, precision, flags);\r
- continue;\r
- \r
- case 'n':\r
- /* FIXME: What does C99 say about the overflow case here? */\r
- if (qualifier == 'l') {\r
- long * ip = va_arg(args, long *);\r
- *ip = (str - buf);\r
- } else {\r
- int * ip = va_arg(args, int *);\r
- *ip = (str - buf);\r
- }\r
- continue;\r
- \r
- /* float number formats - set up the flags and "break" */\r
- case 'e':\r
- case 'E':\r
- case 'f':\r
- case 'g':\r
- case 'G':\r
- _double = (double)va_arg(args, double);\r
- if ( _isnan(_double) ) {\r
- s = "Nan";\r
- len = 3;\r
- while ( len > 0 ) {\r
- if (str <= end)\r
- *str = *s++;\r
- ++str;\r
- len --;\r
- }\r
- } else if ( _isinf(_double) < 0 ) {\r
- s = "-Inf";\r
- len = 4;\r
- while ( len > 0 ) {\r
- if (str <= end)\r
- *str = *s++;\r
- ++str;\r
- len --;\r
- }\r
- } else if ( _isinf(_double) > 0 ) {\r
- s = "+Inf";\r
- len = 4;\r
- while ( len > 0 ) {\r
- if (str <= end)\r
- *str = *s++;\r
- ++str;\r
- len --;\r
- }\r
- } else {\r
- if ( precision == -1 )\r
- precision = 6;\r
- str = numberf(str, end, (int)_double, base, field_width, precision, flags);\r
- }\r
- \r
- continue;\r
- \r
- \r
- /* integer number formats - set up the flags and "break" */\r
- case 'o':\r
- base = 8;\r
- break;\r
- \r
- case 'b':\r
- base = 2;\r
- break;\r
- \r
- case 'X':\r
- flags |= LARGE;\r
- case 'x':\r
- base = 16;\r
- break;\r
- \r
- case 'd':\r
- case 'i':\r
- flags |= SIGN;\r
- case 'u':\r
- break;\r
- \r
- default:\r
- if (*fmt) {\r
- if (str <= end)\r
- *str = *fmt;\r
- ++str;\r
- } else\r
- --fmt;\r
- continue;\r
- }\r
- \r
- if (qualifier == 'I')\r
- num = va_arg(args, unsigned long long);\r
- else if (qualifier == 'l') {\r
- if (flags & SIGN)\r
- num = va_arg(args, long);\r
- else\r
- num = va_arg(args, unsigned long);\r
- }\r
- else if (qualifier == 'h') {\r
- if (flags & SIGN)\r
- num = va_arg(args, int);\r
- else\r
- num = va_arg(args, unsigned int);\r
- }\r
- else {\r
- if (flags & SIGN)\r
- num = va_arg(args, int);\r
- else\r
- num = va_arg(args, unsigned int);\r
- }\r
- str = number(str, end, num, base, field_width, precision, flags);\r
- }\r
- if (str <= end)\r
- *str = '\0';\r
- else if (cnt > 0)\r
- /* don't write out a null byte if the buf size is zero */\r
- *end = '\0';\r
- return str-buf;\r
- }\r
- \r
- \r
- /*\r
- * @implemented\r
- */\r
- int lnx_sprintf(char * buf, const char *fmt, ...)\r
- {\r
- va_list args;\r
- int i;\r
- \r
- va_start(args, fmt);\r
- i=lnx_vsnprintf(buf,MAXLONG,fmt,args);\r
- va_end(args);\r
- return i;\r
- }\r
- \r
- #if 0\r
- /*\r
- * @implemented\r
- */\r
- int _snprintf(char * buf, size_t cnt, const char *fmt, ...)\r
- {\r
- va_list args;\r
- int i;\r
- \r
- va_start(args, fmt);\r
- i=_vsnprintf(buf,cnt,fmt,args);\r
- va_end(args);\r
- return i;\r
- }\r
- \r
- \r
- /*\r
- * @implemented\r
- */\r
- int __cdecl vsprintf(char *buf, const char *fmt, va_list args)\r
- {\r
- return _vsnprintf(buf,MAXLONG,fmt,args);\r
- }\r
- #endif\r
- /* EOF */\r
+ /*
+ * PROGRAMMERS: David Welch
+ * Eric Kohl
+ *
+ * TODO:
+ * - Verify the implementation of '%Z'.
+ */
+
+ /*
+ * linux/lib/vsprintf.c
+ *
+ * Copyright (C) 1991, 1992 Linus Torvalds
+ */
+
+ /* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */
+ /*
+ * Wirzenius wrote this portably, Torvalds fucked it up :-)
+ */
+
+ #include <precomp.h>
+
+ #include <wchar.h>
+ #include <tchar.h>
+
+ #define ZEROPAD 1 /* pad with zero */
+ #define SIGN 2 /* unsigned/signed long */
+ #define PLUS 4 /* show plus */
+ #define SPACE 8 /* space if plus */
+ #define LEFT 16 /* left justified */
+ #define SPECIAL 32 /* 0x */
+ #define LARGE 64 /* use 'ABCDEF' instead of 'abcdef' */
+ #define REMOVEHEX 256 /* use 256 as remve 0x frim BASE 16 */
+
+ static
+ __inline
+ int
+ do_div(long long *n, int base)
+ {
+ int a;
+ a = ((unsigned long long) *n) % (unsigned) base;
+ *n = ((unsigned long long) *n) / (unsigned) base;
+ return a;
+ }
+
+
+ static int skip_atoi(const char **s)
+ {
+ int i=0;
+
+ while (isdigit(**s))
+ i = i*10 + *((*s)++) - '0';
+ return i;
+ }
+
+
+ static char *
+ number(char * buf, char * end, long long num, int base, int size, int precision, int type)
+ {
+ char c,sign,tmp[66];
+ const char *digits;
+ const char *small_digits = "0123456789abcdefghijklmnopqrstuvwxyz";
+ const char *large_digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ int i;
+
+ digits = (type & LARGE) ? large_digits : small_digits;
+ if (type & LEFT)
+ type &= ~ZEROPAD;
+ if (base < 2 || base > 36)
+ return 0;
+ c = (type & ZEROPAD) ? '0' : ' ';
+ sign = 0;
+ if (type & SIGN) {
+ if (num < 0) {
+ sign = '-';
+ num = -num;
+ size--;
+ } else if (type & PLUS) {
+ sign = '+';
+ size--;
+ } else if (type & SPACE) {
+ sign = ' ';
+ size--;
+ }
+ }
+
+ if ((type & SPECIAL) && ((type & REMOVEHEX) == 0)) {
+ if (base == 16)
+ size -= 2;
+
+ }
+ i = 0;
+ if ((num == 0) && (precision !=0))
+ tmp[i++] = '0';
+ else while (num != 0)
+ tmp[i++] = digits[do_div(&num,base)];
+ if (i > precision)
+ precision = i;
+ size -= precision;
+ if (!(type&(ZEROPAD+LEFT))) {
+ while(size-->0) {
+ if (buf <= end)
+ *buf = ' ';
+ ++buf;
+ }
+ }
+ if (sign) {
+ if (buf <= end)
+ *buf = sign;
+ ++buf;
+ }
+
+ if ((type & SPECIAL) && ((type & REMOVEHEX) == 0)) {
+ if (base==16) {
+ if (buf <= end)
+ *buf = '0';
+ ++buf;
+ if (buf <= end)
+ *buf = digits[33];
+ ++buf;
+ }
+ }
+
+ if (!(type & LEFT)) {
+ while (size-- > 0) {
+ if (buf <= end)
+ *buf = c;
+ ++buf;
+ }
+ }
+ while (i < precision--) {
+ if (buf <= end)
+ *buf = '0';
+ ++buf;
+ }
+ while (i-- > 0) {
+ if (buf <= end)
+ *buf = tmp[i];
+ ++buf;
+ }
+ while (size-- > 0) {
+ if (buf <= end)
+ *buf = ' ';
+ ++buf;
+ }
+
+ return buf;
+ }
+
+ static char *
+ numberf(char * buf, char * end, double num, int base, int size, int precision, int type)
+ {
+ char c,sign,tmp[66];
+ const char *digits;
+ const char *small_digits = "0123456789abcdefghijklmnopqrstuvwxyz";
+ const char *large_digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ int i;
+ long long x;
+
+ /* FIXME
+ the float version of number is direcly copy of number
+ */
+
+ digits = (type & LARGE) ? large_digits : small_digits;
+ if (type & LEFT)
+ type &= ~ZEROPAD;
+ if (base < 2 || base > 36)
+ return 0;
+ c = (type & ZEROPAD) ? '0' : ' ';
+ sign = 0;
+ if (num < 0) {
+ sign = '-';
+ num = -num;
+ size--;
+ } else if (type & PLUS) {
+ sign = '+';
+ size--;
+ } else if (type & SPACE) {
+ sign = ' ';
+ size--;
+ }
+ if (type & SPECIAL) {
+ if (base == 16)
+ size -= 2;
+ else if (base == 8)
+ size--;
+ }
+ i = 0;
+ if (num == 0)
+ tmp[i++] = '0';
+ else while (num != 0)
+ {
+ x = num;
+ tmp[i++] = digits[do_div(&x,base)];
+ num=x;
+ }
+ if (i > precision)
+ precision = i;
+ size -= precision;
+ if (!(type&(ZEROPAD+LEFT))) {
+ while(size-->0) {
+ if (buf <= end)
+ *buf = ' ';
+ ++buf;
+ }
+ }
+ if (sign) {
+ if (buf <= end)
+ *buf = sign;
+ ++buf;
+ }
+ if (type & SPECIAL) {
+ if (base==8) {
+ if (buf <= end)
+ *buf = '0';
+ ++buf;
+ } else if (base==16) {
+ if (buf <= end)
+ *buf = '0';
+ ++buf;
+ if (buf <= end)
+ *buf = digits[33];
+ ++buf;
+ }
+ }
+ if (!(type & LEFT)) {
+ while (size-- > 0) {
+ if (buf <= end)
+ *buf = c;
+ ++buf;
+ }
+ }
+ if (type & ZEROPAD) {
+ while (i < precision--) {
+ if (buf <= end)
+ *buf = '0';
+ ++buf;
+ }
+ }
+ while (i-- > 0) {
+ if (buf <= end)
+ *buf = tmp[i];
+ ++buf;
+ }
+ while (size-- > 0) {
+ if (buf <= end)
+ *buf = ' ';
+ ++buf;
+ }
+ return buf;
+ }
+
+ static char*
+ string(char* buf, char* end, const char* s, int len, int field_width, int precision, int flags)
+ {
+ int i;
+ char c;
+
+ c = (flags & ZEROPAD) ? '0' : ' ';
+
+ if (s == NULL)
+ {
+ s = "<NULL>";
+ len = 6;
+ }
+ else
+ {
+ if (len == -1)
+ {
+ len = 0;
+ while ((unsigned int)len < (unsigned int)precision && s[len])
+ len++;
+ }
+ else
+ {
+ if ((unsigned int)len > (unsigned int)precision)
+ len = precision;
+ }
+ }
+ if (!(flags & LEFT))
+ while (len < field_width--)
+ {
+ if (buf <= end)
+ *buf = c;
+ ++buf;
+ }
+ for (i = 0; i < len; ++i)
+ {
+ if (buf <= end)
+ *buf = *s++;
+ ++buf;
+ }
+ while (len < field_width--)
+ {
+ if (buf <= end)
+ *buf = ' ';
+ ++buf;
+ }
+ return buf;
+ }
+
+ static char*
+ stringw(char* buf, char* end, const wchar_t* sw, int len, int field_width, int precision, int flags)
+ {
+ int i;
+ char c;
+
+ c = (flags & ZEROPAD) ? '0' : ' ';
+
+ if (sw == NULL)
+ {
+ sw = L"<NULL>";
+ len = 6;
+ }
+ else
+ {
+ if (len == -1)
+ {
+ len = 0;
+ while ((unsigned int)len < (unsigned int)precision && sw[len])
+ len++;
+ }
+ else
+ {
+ if ((unsigned int)len > (unsigned int)precision)
+ len = precision;
+ }
+ }
+ if (!(flags & LEFT))
+ while (len < field_width--)
+ {
+ if (buf <= end)
+ *buf = c;
+ buf++;
+ }
+ for (i = 0; i < len; ++i)
+ {
+ if (buf <= end)
+ *buf = (unsigned char)(*sw++);
+ buf++;
+ }
+ while (len < field_width--)
+ {
+ if (buf <= end)
+ *buf = ' ';
+ buf++;
+ }
+ return buf;
+ }
+
+ /*
+ * @implemented
+ */
+ int __cdecl lnx_vsnprintf(char *buf, size_t cnt, const char *fmt, va_list args)
+ {
+ int len;
+ unsigned long long num;
+ double _double;
+
+ int base;
+ char *str, *end;
+ const char *s;
+ const wchar_t *sw;
+
+ int flags; /* flags to number() */
+
+ int field_width; /* width of output field */
+ int precision; /* min. # of digits for integers; max
+ number of chars for from string */
+ int qualifier; /* 'h', 'l', 'L', 'I' or 'w' for integer fields */
+
+ /* clear the string buffer with zero so we do not need NULL terment it at end */
+
+ str = buf;
+ end = buf + cnt - 1;
+ if (end < buf - 1) {
+ end = ((char *) -1);
+ cnt = end - buf + 1;
+ }
+
+ for ( ; *fmt ; ++fmt) {
+ if (*fmt != '%') {
+ if (str <= end)
+ *str = *fmt;
+ ++str;
+ continue;
+ }
+
+ /* process flags */
+ flags = 0;
+ repeat:
+ ++fmt; /* this also skips first '%' */
+ switch (*fmt) {
+ case '-': flags |= LEFT; goto repeat;
+ case '+': flags |= PLUS; goto repeat;
+ case ' ': flags |= SPACE; goto repeat;
+ case '#': flags |= SPECIAL; goto repeat;
+ case '0': flags |= ZEROPAD; goto repeat;
+ }
+
+ /* get field width */
+ field_width = -1;
+ if (isdigit(*fmt))
+ field_width = skip_atoi(&fmt);
+ else if (*fmt == '*') {
+ ++fmt;
+ /* it's the next argument */
+ field_width = va_arg(args, int);
+ if (field_width < 0) {
+ field_width = -field_width;
+ flags |= LEFT;
+ }
+ }
+
+ /* get the precision */
+ precision = -1;
+ if (*fmt == '.') {
+ ++fmt;
+ if (isdigit(*fmt))
+ precision = skip_atoi(&fmt);
+ else if (*fmt == '*') {
+ ++fmt;
+ /* it's the next argument */
+ precision = va_arg(args, int);
+ }
+ if (precision < 0)
+ precision = 0;
+ }
+
+ /* get the conversion qualifier */
+ qualifier = -1;
+ if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' || *fmt == 'w') {
+ qualifier = *fmt;
+ ++fmt;
+ } else if (*fmt == 'I' && *(fmt+1) == '6' && *(fmt+2) == '4') {
+ qualifier = *fmt;
+ fmt += 3;
+ } else if (*fmt == 'I' && *(fmt+1) == '3' && *(fmt+2) == '2') {
+ qualifier = 'l';
+ fmt += 3;
+ } else if (*fmt == 'F' && *(fmt+1) == 'p') {
+ fmt += 1;
+ flags |= REMOVEHEX;
+ }
+
+ /* default base */
+ base = 10;
+
+ switch (*fmt) {
+ case 'c': /* finished */
+ if (qualifier == 'l' || qualifier == 'w') {
+ wchar_t sw1[2];
+ /* print unicode string */
+ sw1[0] = (wchar_t) va_arg(args, int);
+ sw1[1] = 0;
+ str = stringw(str, end, (wchar_t *)&sw1, -1, field_width, precision, flags);
+ } else {
+ char s1[2];
+ /* print ascii string */
+ s1[0] = ( unsigned char) va_arg(args, int);
+ s1[1] = 0;
+ str = string(str, end, (char *)&s1, -1, field_width, precision, flags);
+ }
+ continue;
+
+ case 'C': /* finished */
+ if (!(flags & LEFT))
+ while (--field_width > 0) {
+ if (str <= end)
+ *str = ' ';
+ ++str;
+ }
+ if (qualifier == 'h') {
+ if (str <= end)
+ *str = (unsigned char) va_arg(args, int);
+ ++str;
+ } else {
+ if (str <= end)
+ *str = (unsigned char)(wchar_t) va_arg(args, int);
+ ++str;
+ }
+ while (--field_width > 0) {
+ if (str <= end)
+ *str = ' ';
+ ++str;
+ }
+ continue;
+
+ case 's': /* finished */
+ if (qualifier == 'l' || qualifier == 'w') {
+ /* print unicode string */
+ sw = va_arg(args, wchar_t *);
+ str = stringw(str, end, sw, -1, field_width, precision, flags);
+ } else {
+ /* print ascii string */
+ s = va_arg(args, char *);
+ str = string(str, end, s, -1, field_width, precision, flags);
+ }
+ continue;
+
+ case 'S':
+ if (qualifier == 'h') {
+ /* print ascii string */
+ s = va_arg(args, char *);
+ str = string(str, end, s, -1, field_width, precision, flags);
+ } else {
+ /* print unicode string */
+ sw = va_arg(args, wchar_t *);
+ str = stringw(str, end, sw, -1, field_width, precision, flags);
+ }
+ continue;
+
+ case 'Z':
+ if (qualifier == 'w') {
+ /* print counted unicode string */
+ PUNICODE_STRING pus = va_arg(args, PUNICODE_STRING);
+ if ((pus == NULL) || (pus->Buffer == NULL)) {
+ sw = NULL;
+ len = -1;
+ } else {
+ sw = pus->Buffer;
+ len = pus->Length / sizeof(WCHAR);
+ }
+ str = stringw(str, end, sw, len, field_width, precision, flags);
+ } else {
+ /* print counted ascii string */
+ PANSI_STRING pus = va_arg(args, PANSI_STRING);
+ if ((pus == NULL) || (pus->Buffer == NULL)) {
+ s = NULL;
+ len = -1;
+ } else {
+ s = pus->Buffer;
+ len = pus->Length;
+ }
+ str = string(str, end, s, len, field_width, precision, flags);
+ }
+ continue;
+
+ case 'p':
+ if ((flags & LARGE) == 0)
+ flags |= LARGE;
+
+ if (field_width == -1) {
+ field_width = 2 * sizeof(void *);
+ flags |= ZEROPAD;
+ }
+ str = number(str, end,
- (unsigned long) va_arg(args, void *), 16,
++ (uintptr_t) va_arg(args, void *), 16,
+ field_width, precision, flags);
+ continue;
+
+ case 'n':
+ /* FIXME: What does C99 say about the overflow case here? */
+ if (qualifier == 'l') {
+ long * ip = va_arg(args, long *);
+ *ip = (str - buf);
+ } else {
+ int * ip = va_arg(args, int *);
+ *ip = (str - buf);
+ }
+ continue;
+
+ /* float number formats - set up the flags and "break" */
+ case 'e':
+ case 'E':
+ case 'f':
+ case 'g':
+ case 'G':
+ _double = (double)va_arg(args, double);
+ if ( _isnan(_double) ) {
+ s = "Nan";
+ len = 3;
+ while ( len > 0 ) {
+ if (str <= end)
+ *str = *s++;
+ ++str;
+ len --;
+ }
+ } else if ( _isinf(_double) < 0 ) {
+ s = "-Inf";
+ len = 4;
+ while ( len > 0 ) {
+ if (str <= end)
+ *str = *s++;
+ ++str;
+ len --;
+ }
+ } else if ( _isinf(_double) > 0 ) {
+ s = "+Inf";
+ len = 4;
+ while ( len > 0 ) {
+ if (str <= end)
+ *str = *s++;
+ ++str;
+ len --;
+ }
+ } else {
+ if ( precision == -1 )
+ precision = 6;
+ str = numberf(str, end, _double, base, field_width, precision, flags);
+ }
+
+ continue;
+
+
+ /* integer number formats - set up the flags and "break" */
+ case 'o':
+ base = 8;
+ break;
+
+ case 'b':
+ base = 2;
+ break;
+
+ case 'X':
+ flags |= LARGE;
+ case 'x':
+ base = 16;
+ break;
+
+ case 'd':
+ case 'i':
+ flags |= SIGN;
+ case 'u':
+ break;
+
+ default:
+ if (*fmt) {
+ if (str <= end)
+ *str = *fmt;
+ ++str;
+ } else
+ --fmt;
+ continue;
+ }
+
+ if (qualifier == 'I')
+ num = va_arg(args, unsigned long long);
+ else if (qualifier == 'l') {
+ if (flags & SIGN)
+ num = va_arg(args, long);
+ else
+ num = va_arg(args, unsigned long);
+ }
+ else if (qualifier == 'h') {
+ if (flags & SIGN)
+ num = va_arg(args, int);
+ else
+ num = va_arg(args, unsigned int);
+ }
+ else {
+ if (flags & SIGN)
+ num = va_arg(args, int);
+ else
+ num = va_arg(args, unsigned int);
+ }
+ str = number(str, end, num, base, field_width, precision, flags);
+ }
+ if (str <= end)
+ *str = '\0';
+ else if (cnt > 0)
+ /* don't write out a null byte if the buf size is zero */
+ *end = '\0';
+ return str-buf;
+ }
+
+
+ /*
+ * @implemented
+ */
+ int lnx_sprintf(char * buf, const char *fmt, ...)
+ {
+ va_list args;
+ int i;
+
+ va_start(args, fmt);
+ i=lnx_vsnprintf(buf,MAXLONG,fmt,args);
+ va_end(args);
+ return i;
+ }
+
+ #if 0
+ /*
+ * @implemented
+ */
+ int _snprintf(char * buf, size_t cnt, const char *fmt, ...)
+ {
+ va_list args;
+ int i;
+
+ va_start(args, fmt);
+ i=_vsnprintf(buf,cnt,fmt,args);
+ va_end(args);
+ return i;
+ }
+
+
+ /*
+ * @implemented
+ */
+ int __cdecl vsprintf(char *buf, const char *fmt, va_list args)
+ {
+ return _vsnprintf(buf,MAXLONG,fmt,args);
+ }
+ #endif
+ /* EOF */