; Base files
-base\applications\cacls\cacls.exe 1
-base\applications\calc\calc.exe 1
-base\applications\charmap\charmap.exe 1
-base\applications\cmdutils\dbgprint\dbgprint.exe 1
-base\applications\cmdutils\doskey\doskey.exe 1
-base\applications\cmdutils\find\find.exe 1
-base\applications\cmdutils\hostname\hostname.exe 1
-base\applications\cmdutils\more\more.exe 1
-base\applications\cmdutils\xcopy\xcopy.exe 1
-base\applications\control\control.exe 1
-base\applications\mscutils\devmgmt\devmgmt.exe 1
-base\applications\mscutils\eventvwr\eventvwr.exe 1
-base\applications\games\solitaire\sol.exe 1
-base\applications\games\winemine\winemine.exe 1
-base\applications\hh\hh.exe 1
-base\applications\kbswitch\kbswitch.exe 1
-base\applications\kbswitch\kbsdll\kbsdll.dll 1
-base\applications\logoff\logoff.exe 1
-base\applications\msconfig\msconfig.exe 1
-base\applications\mstsc\mstsc.exe 1
-base\applications\network\arp\arp.exe 1
-base\applications\network\dwnl\dwnl.exe 1
-base\applications\network\route\route.exe 1
-base\applications\network\finger\finger.exe 1
-base\applications\network\ftp\ftp.exe 1
-base\applications\network\ipconfig\ipconfig.exe 1
-base\applications\network\netstat\netstat.exe 1
-base\applications\network\ping\ping.exe 1
-base\applications\network\telnet\telnet.exe 1
-base\applications\network\tracert\tracert.exe 1
-base\applications\network\whois\whois.exe 1
-base\applications\notepad\notepad.exe 1
-base\applications\regedit\regedit.exe 4
-base\applications\regedit\clb\clb.dll 1
-base\applications\sc\sc.exe 1
-base\applications\screensavers\3dtext\3dtext.scr 1
-base\applications\screensavers\logon\logon.scr 1
-base\applications\mscutils\servman\servman.exe 1
-base\applications\shutdown\shutdown.exe 1
-base\applications\sndvol32\sndvol32.exe 1
-base\applications\taskmgr\taskmgr.exe 1
-base\applications\winhlp32\winhlp32.exe 1
-base\applications\wordpad\wordpad.exe 1
-
-base\services\audiosrv\audiosrv.exe 1
-base\services\dhcp\dhcp.exe 1
-base\services\eventlog\eventlog.exe 1
-base\services\rpcss\rpcss.exe 1
-base\services\spoolsv\spoolsv.exe 1
-base\services\tcpsvcs\tcpsvcs.exe 1
-base\services\tcpsvcs\quotes 5
-base\services\umpnpmgr\umpnpmgr.exe 1
-
-base\setup\setup\setup.exe 1
-base\setup\vmwinst\vmwinst.exe 1
-
-base\shell\cmd\cmd.exe 1
-base\shell\explorer\explorer.exe 4
-base\shell\explorer\explorer-cfg-template.xml 4
-base\shell\explorer\notifyhook\notifyhook.dll 1
-base\shell\explorer-new\explorer_new.exe 4 optional
-
-base\system\autochk\autochk.exe 1
-base\system\bootok\bootok.exe 1
-base\system\format\format.exe 1
-base\system\lsass\lsass.exe 1
-base\system\msiexec\msiexec.exe 1
-base\system\regsvr32\regsvr32.exe 1
-base\system\rundll32\rundll32.exe 1
-base\system\services\services.exe 1
-base\system\userinit\userinit.exe 1
-base\system\winlogon\winlogon.exe 1
-base\system\expand\expand.exe 1
-base\system\smss\smss.exe 1
+;base\applications\cacls\cacls.exe 1
+;base\applications\calc\calc.exe 1
+;base\applications\charmap\charmap.exe 1
+;base\applications\cmdutils\dbgprint\dbgprint.exe 1
+;base\applications\cmdutils\doskey\doskey.exe 1
+;base\applications\cmdutils\find\find.exe 1
+;base\applications\cmdutils\hostname\hostname.exe 1
+;base\applications\cmdutils\more\more.exe 1
+;base\applications\cmdutils\xcopy\xcopy.exe 1
+;base\applications\control\control.exe 1
+;base\applications\mscutils\devmgmt\devmgmt.exe 1
+;base\applications\mscutils\eventvwr\eventvwr.exe 1
+;base\applications\games\solitaire\sol.exe 1
+;base\applications\games\winemine\winemine.exe 1
+;base\applications\hh\hh.exe 1
+;base\applications\kbswitch\kbswitch.exe 1
+;base\applications\kbswitch\kbsdll\kbsdll.dll 1
+;base\applications\logoff\logoff.exe 1
+;base\applications\msconfig\msconfig.exe 1
+;base\applications\mstsc\mstsc.exe 1
+;base\applications\network\arp\arp.exe 1
+;base\applications\network\dwnl\dwnl.exe 1
+;base\applications\network\route\route.exe 1
+;base\applications\network\finger\finger.exe 1
+;base\applications\network\ftp\ftp.exe 1
+;base\applications\network\ipconfig\ipconfig.exe 1
+;base\applications\network\netstat\netstat.exe 1
+;base\applications\network\ping\ping.exe 1
+;base\applications\network\telnet\telnet.exe 1
+;base\applications\network\tracert\tracert.exe 1
+;base\applications\network\whois\whois.exe 1
+;base\applications\notepad\notepad.exe 1
+;base\applications\regedit\regedit.exe 4
+;base\applications\regedit\clb\clb.dll 1
+;base\applications\sc\sc.exe 1
+;base\applications\screensavers\3dtext\3dtext.scr 1
+;base\applications\screensavers\logon\logon.scr 1
+;base\applications\mscutils\servman\servman.exe 1
+;base\applications\shutdown\shutdown.exe 1
+;base\applications\sndvol32\sndvol32.exe 1
+;base\applications\taskmgr\taskmgr.exe 1
+;base\applications\winhlp32\winhlp32.exe 1
+;base\applications\wordpad\wordpad.exe 1
+
++;base\services\audiosrv\audiosrv.exe 1
+;base\services\dhcp\dhcp.exe 1
+;base\services\eventlog\eventlog.exe 1
+;base\services\rpcss\rpcss.exe 1
++;base\services\spoolsv\spoolsv.exe 1
+;base\services\tcpsvcs\tcpsvcs.exe 1
+;base\services\tcpsvcs\quotes 5
+;base\services\umpnpmgr\umpnpmgr.exe 1
+;base\services\audiosrv\audiosrv.exe 1
+
+;base\setup\setup\setup.exe 1
+;base\setup\vmwinst\vmwinst.exe 1
+
+;base\shell\cmd\cmd.exe 1
+;base\shell\explorer\explorer.exe 4
+;base\shell\explorer\explorer-cfg-template.xml 4
+;base\shell\explorer\notifyhook\notifyhook.dll 1
+;base\shell\explorer-new\explorer_new.exe 4 optional
+
+;base\system\autochk\autochk.exe 1
++;base\system\bootok\bootok.exe 1
+;base\system\format\format.exe 1
+;base\system\lsass\lsass.exe 1
+;base\system\msiexec\msiexec.exe 1
+;base\system\regsvr32\regsvr32.exe 1
+;base\system\rundll32\rundll32.exe 1
+;base\system\services\services.exe 1
+;base\system\userinit\userinit.exe 1
+;base\system\winlogon\winlogon.exe 1
+;base\system\expand\expand.exe 1
+;base\system\smss\smss.exe 1
; 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\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\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\msacm32\msacm32.dll 1
-dll\win32\msafd\msafd.dll 1
-dll\win32\msgina\msgina.dll 1
-dll\win32\mshtml\mshtml.dll 1
-dll\win32\msi\msi.dll 1
-dll\win32\msimg32\msimg32.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\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\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\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\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\msacm32\msacm32.dll 1
+;dll\win32\msafd\msafd.dll 1
+;dll\win32\msgina\msgina.dll 1
+;dll\win32\mshtml\mshtml.dll 1
+;dll\win32\msi\msi.dll 1
+;dll\win32\msimg32\msimg32.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\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\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\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\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\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\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
+;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\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\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\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\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\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\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\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
-/*
- * 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,
- 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, (int)_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 */
+/*\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 (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
++ 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
- while (i < precision--) {\r
- if (buf <= end)\r
- *buf = '0';\r
- ++buf;\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