Sync with trunk r63647.
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Fri, 27 Jun 2014 18:05:20 +0000 (18:05 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Fri, 27 Jun 2014 18:05:20 +0000 (18:05 +0000)
svn path=/branches/condrv_restructure/; revision=63648

580 files changed:
1  2 
base/applications/cacls/lang/pl-PL.rc
base/applications/calc/winmain.c
base/applications/cmdutils/help/help.c
base/applications/cmdutils/reg/CMakeLists.txt
base/applications/cmdutils/reg/reg.c
base/applications/magnify/magnifier.c
base/applications/mplay32/lang/pl-PL.rc
base/applications/mscutils/eventvwr/CMakeLists.txt
base/applications/mscutils/eventvwr/eventvwr.c
base/applications/mscutils/eventvwr/lang/bg-BG.rc
base/applications/mscutils/eventvwr/lang/cs-CZ.rc
base/applications/mscutils/eventvwr/lang/de-DE.rc
base/applications/mscutils/eventvwr/lang/el-GR.rc
base/applications/mscutils/eventvwr/lang/en-US.rc
base/applications/mscutils/eventvwr/lang/es-ES.rc
base/applications/mscutils/eventvwr/lang/fr-FR.rc
base/applications/mscutils/eventvwr/lang/he-IL.rc
base/applications/mscutils/eventvwr/lang/it-IT.rc
base/applications/mscutils/eventvwr/lang/ja-JP.rc
base/applications/mscutils/eventvwr/lang/ko-KR.rc
base/applications/mscutils/eventvwr/lang/no-NO.rc
base/applications/mscutils/eventvwr/lang/pl-PL.rc
base/applications/mscutils/eventvwr/lang/pt-BR.rc
base/applications/mscutils/eventvwr/lang/ro-RO.rc
base/applications/mscutils/eventvwr/lang/ru-RU.rc
base/applications/mscutils/eventvwr/lang/sk-SK.rc
base/applications/mscutils/eventvwr/lang/sq-AL.rc
base/applications/mscutils/eventvwr/lang/sv-SE.rc
base/applications/mscutils/eventvwr/lang/tr-TR.rc
base/applications/mscutils/eventvwr/lang/uk-UA.rc
base/applications/mscutils/eventvwr/lang/zh-CN.rc
base/applications/mscutils/eventvwr/resource.h
base/applications/mscutils/servman/precomp.h
base/applications/mscutils/servman/propsheet_depends.c
base/applications/mscutils/servman/query.c
base/applications/mscutils/servman/stop_dependencies.c
base/applications/mspaint/dialogs.c
base/applications/mstsc/connectdialog.c
base/applications/network/net/CMakeLists.txt
base/applications/network/net/cmdAccounts.c
base/applications/network/net/cmdContinue.c
base/applications/network/net/cmdHelpMsg.c
base/applications/network/net/cmdPause.c
base/applications/network/net/cmdStart.c
base/applications/network/net/cmdStop.c
base/applications/network/net/help.c
base/applications/network/net/lang/en-US.rc
base/applications/network/net/main.c
base/applications/network/net/net.h
base/applications/network/net/net.rc
base/applications/network/net/resource.h
base/applications/rapps/lang/en-US.rc
base/applications/rapps/rapps/abyss.txt
base/applications/rapps/rapps/bochs.txt
base/applications/rapps/rapps/boswars.txt
base/applications/rapps/rapps/codeblocks.txt
base/applications/rapps/rapps/codeblocks_gcc.txt
base/applications/rapps/rapps/codeblocks_gcc_2.txt
base/applications/rapps/rapps/devcpp_mingw32.txt
base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt
base/applications/rapps/rapps/doublecommander.txt
base/applications/rapps/rapps/dplus.txt
base/applications/rapps/rapps/dvdwritenow.txt
base/applications/rapps/rapps/fap.txt
base/applications/rapps/rapps/fira.txt
base/applications/rapps/rapps/firefox.txt
base/applications/rapps/rapps/lazaruside.txt
base/applications/rapps/rapps/libreoffice.txt
base/applications/rapps/rapps/mcwin32.txt
base/applications/rapps/rapps/mirandaim.txt
base/applications/rapps/rapps/mpc.txt
base/applications/rapps/rapps/npp.txt
base/applications/rapps/rapps/openoffice.txt
base/applications/rapps/rapps/opera.txt
base/applications/rapps/rapps/peazip.txt
base/applications/rapps/rapps/putty.txt
base/applications/rapps/rapps/python.txt
base/applications/rapps/rapps/qmmp.txt
base/applications/rapps/rapps/rosbe.txt
base/applications/rapps/rapps/scite.txt
base/applications/rapps/rapps/sdl_runtime.txt
base/applications/rapps/rapps/seamonkey.txt
base/applications/rapps/rapps/sumatrapdf.txt
base/applications/rapps/rapps/thunderbird.txt
base/applications/rapps/rapps/totalcommander.txt
base/applications/rapps/rapps/utorrent.txt
base/applications/rapps/rapps/vb5run.txt
base/applications/rapps/rapps/vb6run.txt
base/applications/rapps/rapps/vc2005sp1run.txt
base/applications/rapps/rapps/vc2008sp1run.txt
base/applications/rapps/rapps/vc2010run.txt
base/applications/rapps/rapps/vc6run.txt
base/applications/rapps/rapps/winboard.txt
base/applications/rapps/rapps/zaz.txt
base/applications/setup16/main.c
base/applications/shutdown/lang/pl-PL.rc
base/applications/shutdown/shutdown.c
base/applications/sndrec32/lang/pl-PL.rc
base/applications/taskmgr/applpage.c
base/applications/taskmgr/taskmgr.c
base/services/tcpsvcs/discard.c
base/services/tcpsvcs/echo.c
base/services/tcpsvcs/skelserver.c
base/services/tcpsvcs/tcpsvcs.c
base/services/tcpsvcs/tcpsvcs.h
base/services/umpnpmgr/CMakeLists.txt
base/services/umpnpmgr/umpnpmgr.c
base/setup/setup/setup.c
base/setup/usetup/errorcode.h
base/setup/usetup/interface/usetup.c
base/setup/usetup/lang/bg-BG.h
base/setup/usetup/lang/cs-CZ.h
base/setup/usetup/lang/de-DE.h
base/setup/usetup/lang/el-GR.h
base/setup/usetup/lang/en-US.h
base/setup/usetup/lang/es-ES.h
base/setup/usetup/lang/et-EE.h
base/setup/usetup/lang/fr-FR.h
base/setup/usetup/lang/he-IL.h
base/setup/usetup/lang/it-IT.h
base/setup/usetup/lang/ja-JP.h
base/setup/usetup/lang/lt-LT.h
base/setup/usetup/lang/nl-NL.h
base/setup/usetup/lang/pl-PL.h
base/setup/usetup/lang/pt-BR.h
base/setup/usetup/lang/ro-RO.h
base/setup/usetup/lang/ru-RU.h
base/setup/usetup/lang/sk-SK.h
base/setup/usetup/lang/sq-AL.h
base/setup/usetup/lang/sv-SE.h
base/setup/usetup/lang/tr-TR.h
base/setup/usetup/lang/uk-UA.h
base/setup/usetup/mui.h
base/setup/usetup/partlist.c
base/setup/usetup/partlist.h
base/setup/usetup/usetup.h
base/shell/explorer/explorer.cpp
base/shell/explorer/shell/mainframe.cpp
base/shell/explorer/shell/shellfs.cpp
base/shell/explorer/taskbar/quicklaunch.cpp
base/system/services/services.c
base/system/userinit/CMakeLists.txt
base/system/userinit/userinit.c
boot/bootdata/CMakeLists.txt
boot/bootdata/hivecls.inf
boot/bootdata/hivedef.inf
boot/bootdata/hivesft.inf
boot/bootdata/hivesys.inf
boot/bootdata/txtsetup.sif
cmake/CMakeMacros.cmake
cmake/CMakeParseArguments.cmake
cmake/gcc.cmake
cmake/msvc.cmake
dll/3rdparty/libtiff/CMakeLists.txt
dll/cpl/appwiz/addons.c
dll/cpl/appwiz/createlink.c
dll/cpl/appwiz/lang/pl-PL.rc
dll/cpl/desk/devsett.c
dll/cpl/desk/lang/pl-PL.rc
dll/cpl/desk/screensaver.c
dll/cpl/odbccp32/odbccp32.c
dll/cpl/sysdm/lang/en-US.rc
dll/cpl/wined3dcfg/lang/pl-PL.rc
dll/directx/ddraw/Ddraw/GetCaps.c
dll/directx/wine/devenum/CMakeLists.txt
dll/directx/wine/devenum/createdevenum.c
dll/directx/wine/quartz/CMakeLists.txt
dll/directx/wine/quartz/filesource.c
dll/directx/wine/quartz/filtermapper.c
dll/directx/wine/quartz/quartz_private.h
dll/directx/wine/quartz/regsvr.c
dll/keyboard/kbdcz/kbdcz.c
dll/keyboard/kbdcz1/kbdcz1.c
dll/ntdll/csr/capture.c
dll/ntdll/def/ntdll.spec
dll/ntdll/include/ntdll.h
dll/ntdll/ldr/ldrapi.c
dll/ntdll/ldr/ldrpe.c
dll/ntdll/ldr/ldrutils.c
dll/ntdll/rtl/libsupp.c
dll/opengl/mesa/drivers/common/driverfuncs.c
dll/opengl/mesa/drivers/common/meta.c
dll/opengl/mesa/drivers/common/meta.h
dll/opengl/mesa/main/CMakeLists.txt
dll/opengl/mesa/main/api_arrayelt.c
dll/opengl/mesa/main/api_exec.c
dll/opengl/mesa/main/api_loopback.c
dll/opengl/mesa/main/api_validate.c
dll/opengl/mesa/main/api_validate.h
dll/opengl/mesa/main/attrib.c
dll/opengl/mesa/main/blend.c
dll/opengl/mesa/main/blend.h
dll/opengl/mesa/main/bufferobj.c
dll/opengl/mesa/main/config.h
dll/opengl/mesa/main/context.c
dll/opengl/mesa/main/dd.h
dll/opengl/mesa/main/dispatch.h
dll/opengl/mesa/main/dlist.c
dll/opengl/mesa/main/enable.c
dll/opengl/mesa/main/extensions.c
dll/opengl/mesa/main/fog.c
dll/opengl/mesa/main/format_pack.c
dll/opengl/mesa/main/format_unpack.c
dll/opengl/mesa/main/formats.c
dll/opengl/mesa/main/formats.h
dll/opengl/mesa/main/get.c
dll/opengl/mesa/main/get.h
dll/opengl/mesa/main/getstring.c
dll/opengl/mesa/main/glheader.h
dll/opengl/mesa/main/image.c
dll/opengl/mesa/main/imports.c
dll/opengl/mesa/main/imports.h
dll/opengl/mesa/main/light.c
dll/opengl/mesa/main/mfeatures.h
dll/opengl/mesa/main/mtypes.h
dll/opengl/mesa/main/pack.c
dll/opengl/mesa/main/precomp.h
dll/opengl/mesa/main/rastpos.c
dll/opengl/mesa/main/shared.c
dll/opengl/mesa/main/state.c
dll/opengl/mesa/main/state.h
dll/opengl/mesa/main/texformat.c
dll/opengl/mesa/main/texgetimage.c
dll/opengl/mesa/main/teximage.c
dll/opengl/mesa/main/teximage.h
dll/opengl/mesa/main/texobj.c
dll/opengl/mesa/main/texparam.c
dll/opengl/mesa/main/texstate.c
dll/opengl/mesa/main/texstorage.c
dll/opengl/mesa/main/texstore.c
dll/opengl/mesa/main/texstore.h
dll/opengl/mesa/main/varray.c
dll/opengl/mesa/main/varray.h
dll/opengl/mesa/main/version.c
dll/opengl/mesa/main/vtxfmt.c
dll/opengl/mesa/swrast/CMakeLists.txt
dll/opengl/mesa/swrast/s_aaline.c
dll/opengl/mesa/swrast/s_aatriangle.c
dll/opengl/mesa/swrast/s_alpha.c
dll/opengl/mesa/swrast/s_blend.c
dll/opengl/mesa/swrast/s_context.c
dll/opengl/mesa/swrast/s_context.h
dll/opengl/mesa/swrast/s_copypix.c
dll/opengl/mesa/swrast/s_drawpix.c
dll/opengl/mesa/swrast/s_feedback.c
dll/opengl/mesa/swrast/s_fog.c
dll/opengl/mesa/swrast/s_lines.c
dll/opengl/mesa/swrast/s_linetemp.h
dll/opengl/mesa/swrast/s_logic.c
dll/opengl/mesa/swrast/s_masking.c
dll/opengl/mesa/swrast/s_points.c
dll/opengl/mesa/swrast/s_span.c
dll/opengl/mesa/swrast/s_texfetch.c
dll/opengl/mesa/swrast/s_texfetch_tmp.h
dll/opengl/mesa/swrast/s_texfilter.c
dll/opengl/mesa/swrast/s_texture.c
dll/opengl/mesa/swrast/s_triangle.c
dll/opengl/mesa/swrast/s_tritemp.h
dll/opengl/mesa/swrast/s_zoom.c
dll/opengl/mesa/swrast/swrast.h
dll/opengl/mesa/swrast_setup/ss_context.c
dll/opengl/mesa/swrast_setup/ss_triangle.c
dll/opengl/mesa/swrast_setup/ss_tritmp.h
dll/opengl/mesa/tnl/t_context.c
dll/opengl/mesa/tnl/t_context.h
dll/opengl/mesa/tnl/t_draw.c
dll/opengl/mesa/tnl/t_rasterpos.c
dll/opengl/mesa/tnl/t_vb_light.c
dll/opengl/mesa/tnl/t_vb_lighttmp.h
dll/opengl/mesa/tnl/t_vertex_generic.c
dll/opengl/mesa/vbo/vbo_attrib.h
dll/opengl/mesa/vbo/vbo_attrib_tmp.h
dll/opengl/mesa/vbo/vbo_exec_api.c
dll/opengl/mesa/vbo/vbo_exec_array.c
dll/opengl/mesa/vbo/vbo_exec_eval.c
dll/opengl/mesa/vbo/vbo_noop.c
dll/opengl/mesa/vbo/vbo_save_api.c
dll/opengl/mesa/vbo/vbo_save_draw.c
dll/opengl/mesa/x86/gen_matypes.c
dll/opengl/mesa/x86/mmx.h
dll/opengl/mesa/x86/mmx_blend.S
dll/opengl/opengl32/swimpl.c
dll/win32/advapi32/advapi32.spec
dll/win32/advapi32/misc/logon.c
dll/win32/advapi32/misc/shutdown.c
dll/win32/advapi32/misc/sysfunc.c
dll/win32/atl/CMakeLists.txt
dll/win32/atl/registrar.c
dll/win32/atl100/CMakeLists.txt
dll/win32/atl80/CMakeLists.txt
dll/win32/browseui/CMakeLists.txt
dll/win32/crypt32/CMakeLists.txt
dll/win32/crypt32/regstore.c
dll/win32/kernel32/client/file/copy.c
dll/win32/kernel32/client/file/fileinfo.c
dll/win32/kernel32/include/kernel32.h
dll/win32/kernel32/winnls/string/nls.c
dll/win32/localspl/CMakeLists.txt
dll/win32/localspl/provider.c
dll/win32/lsasrv/authpackage.c
dll/win32/mciseq/CMakeLists.txt
dll/win32/mciwave/mciwave.c
dll/win32/msctf/CMakeLists.txt
dll/win32/msctf/categorymgr.c
dll/win32/msctf/inputprocessor.c
dll/win32/msctf/msctf_internal.h
dll/win32/msgina/lang/pl-PL.rc
dll/win32/msgina/lsa.c
dll/win32/msi/action.c
dll/win32/msi/classes.c
dll/win32/msi/registry.c
dll/win32/msvcrt/msvcrt.spec
dll/win32/newdev/newdev.c
dll/win32/newdev/newdev.spec
dll/win32/newdev/wizard.c
dll/win32/ntmarta/CMakeLists.txt
dll/win32/ntmarta/ntmarta.c
dll/win32/ole32/ole32.spec
dll/win32/oleaut32/oleaut32.spec
dll/win32/powrprof/powrprof.c
dll/win32/rpcrt4/CMakeLists.txt
dll/win32/rpcrt4/cproxy.c
dll/win32/rpcrt4/cpsf.c
dll/win32/rpcrt4/cstub.c
dll/win32/rpcrt4/ndr_stubless.c
dll/win32/rpcrt4/rpc_transport.c
dll/win32/rpcrt4/rpcrt4.spec
dll/win32/rpcrt4/rpcrt4_ros.diff
dll/win32/samsrv/samrpc.c
dll/win32/setupapi/CMakeLists.txt
dll/win32/setupapi/dirid.c
dll/win32/setupapi/interface.c
dll/win32/setupapi/setupapi.spec
dll/win32/setupapi/setupapi_private.h
dll/win32/shell32/CMakeLists.txt
dll/win32/shell32/classes.cpp
dll/win32/shell32/defcontextmenu.cpp
dll/win32/shell32/desktop.cpp
dll/win32/shell32/openwithmenu.cpp
dll/win32/shell32/shell32_main.cpp
dll/win32/shell32/shell32_main.h
dll/win32/shell32/shellpath.cpp
dll/win32/shell32/shlexec.cpp
dll/win32/shell32/vista.c
dll/win32/windowscodecs/regsvr.c
dll/win32/winmm/CMakeLists.txt
dll/win32/ws2_32/misc/ns.c
dll/win32/ws2_32/misc/stubs.c
drivers/crypto/ksecdd/CMakeLists.txt
drivers/crypto/ksecdd/stubs.c
drivers/hid/hidparse/hidparse.c
drivers/ksfilter/ks/filterfactory.c
drivers/storage/ide/uniata/id_ata.cpp
include/asm/CMakeLists.txt
include/asm/genincdata.c
include/asm/ks386.template.h
include/asm/ksarm.template.h
include/asm/kxarm.h
include/crt/_mingw.h
include/crt/conio.h
include/crt/crtdefs.h
include/crt/excpt.h
include/crt/mingw32/intrin_x86.h
include/crt/msc/intrin.h
include/crt/stdarg.h
include/crt/vadefs.h
include/ndk/arm/ketypes.h
include/psdk/basetsd.h
include/psdk/basetyps.h
include/psdk/guiddef.h
include/psdk/ntdef.h
include/psdk/ras.h
include/psdk/wingdi.h
include/psdk/winnls.h
include/psdk/winnt.h
include/reactos/arm/armddk.h
include/reactos/idl/ms-dtyp.idl
include/reactos/idl/pnp.idl
include/reactos/libs/fast486/fast486.h
include/reactos/msvctarget.h
include/reactos/wine/exception.h
include/reactos/wine/test.h
lib/3rdparty/libmpg123/CMakeLists.txt
lib/3rdparty/stlport/src/stdio_streambuf.cpp
lib/atl/statreg.h
lib/cmlib/hivewrt.c
lib/drivers/hidparser/hidparser.h
lib/fast486/common.c
lib/fast486/common.h
lib/fast486/common.inl
lib/fast486/opcodes.c
lib/fast486/opgroups.c
lib/pseh/CMakeLists.txt
lib/rtl/bitmap.c
lib/sdk/crt/crt.cmake
lib/sdk/crt/except/stack.c
lib/sdk/crt/include/internal/locale.h
lib/sdk/crt/libcntpr.cmake
lib/sdk/crt/stdio/file.c
lib/sdk/crt/string/scanf.c
lib/sdk/crt/string/scanf.h
lib/sdk/crt/string/winesup.c
lib/sdk/crt/string/winesup.h
media/doc/3rd Party Files.txt
media/doc/README.WINE
media/fonts/CMakeLists.txt
media/fonts/OpenSans-Bold.ttf
media/fonts/OpenSans-BoldItalic.ttf
media/fonts/OpenSans-CondBold.ttf
media/fonts/OpenSans-CondLight.ttf
media/fonts/OpenSans-CondLightItalic.ttf
media/fonts/OpenSans-ExtraBold.ttf
media/fonts/OpenSans-ExtraBoldItalic.ttf
media/fonts/OpenSans-Italic.ttf
media/fonts/OpenSans-Light.ttf
media/fonts/OpenSans-LightItalic.ttf
media/fonts/OpenSans-Regular.ttf
media/fonts/OpenSans-Semibold.ttf
media/fonts/OpenSans-SemiboldItalic.ttf
media/fonts/Ubuntu-B.ttf
media/fonts/Ubuntu-BI.ttf
media/fonts/Ubuntu-C.ttf
media/fonts/Ubuntu-L.ttf
media/fonts/Ubuntu-LI.ttf
media/fonts/Ubuntu-M.ttf
media/fonts/Ubuntu-MI.ttf
media/fonts/Ubuntu-R.ttf
media/fonts/Ubuntu-RI.ttf
media/fonts/UbuntuMono-B.ttf
media/fonts/UbuntuMono-BI.ttf
media/fonts/UbuntuMono-R.ttf
media/fonts/UbuntuMono-RI.ttf
media/fonts/doc/OpenSans/Apache License.txt
media/fonts/doc/Ubuntu/CONTRIBUTING.txt
media/fonts/doc/Ubuntu/FONTLOG.txt
media/fonts/doc/Ubuntu/LICENCE-FAQ.txt
media/fonts/doc/Ubuntu/LICENCE.txt
media/fonts/doc/Ubuntu/README.txt
media/fonts/doc/Ubuntu/TRADEMARKS.txt
media/fonts/doc/Ubuntu/copyright.txt
media/inf/NET_NIC.inf
media/inf/bth.inf
media/inf/c_image.inf
media/inf/flpydisk.inf
media/inf/keyboard.inf
media/inf/monitor.inf
media/inf/unknown.inf
media/themes/lautus.msstyles/textfiles/ExtraLargeNormal.INI
modules/CMakeLists.txt
ntoskrnl/cache/section/data.c
ntoskrnl/config/cmapi.c
ntoskrnl/config/cmcheck.c
ntoskrnl/config/cminit.c
ntoskrnl/config/cmkcbncb.c
ntoskrnl/config/cmparse.c
ntoskrnl/config/cmsysini.c
ntoskrnl/config/cmvalue.c
ntoskrnl/config/ntapi.c
ntoskrnl/ex/init.c
ntoskrnl/include/internal/cm.h
ntoskrnl/include/internal/i386/asmmacro.S
ntoskrnl/kd64/kdinit.c
ntoskrnl/ke/i386/cpu.c
ntoskrnl/ke/i386/trap.s
ntoskrnl/ke/i386/traphdlr.c
ntoskrnl/lpc/complete.c
ntoskrnl/lpc/create.c
ntoskrnl/mm/ARM3/miarm.h
ntoskrnl/mm/ARM3/section.c
ntoskrnl/mm/ARM3/sysldr.c
ntoskrnl/mm/ARM3/virtual.c
ntoskrnl/mm/marea.c
ntoskrnl/mm/section.c
ntoskrnl/ps/query.c
ntoskrnl/rtl/libsupp.c
subsystems/ntvdm/bios/bios.h
subsystems/ntvdm/bios/vidbios.c
subsystems/ntvdm/dos/dos32krnl/dos.c
subsystems/ntvdm/dos/dos32krnl/dos.h
subsystems/ntvdm/hardware/vga.c
subsystems/ntvdm/lang/pl-PL.rc
subsystems/win32/csrsrv/api.h
subsystems/win32/csrsrv/csrsrv.spec
subsystems/win32/csrsrv/procsup.c
toolchain-msvc.cmake
win32ss/drivers/font/bmfd/glyph.c
win32ss/gdi/dib/stretchblt.c
win32ss/gdi/eng/driverobj.c
win32ss/gdi/eng/driverobj.h
win32ss/gdi/eng/floatobj.h
win32ss/gdi/eng/ldevobj.c
win32ss/gdi/eng/surface.c
win32ss/gdi/eng/surface.h
win32ss/gdi/gdi32/misc/gdientry.c
win32ss/gdi/ntgdi/bitblt.c
win32ss/gdi/ntgdi/brush.c
win32ss/gdi/ntgdi/brush.h
win32ss/gdi/ntgdi/dc.h
win32ss/gdi/ntgdi/dclife.c
win32ss/gdi/ntgdi/freetype.c
win32ss/gdi/ntgdi/gdiobj.c
win32ss/gdi/ntgdi/gdiobj.h
win32ss/gdi/ntgdi/palette.c
win32ss/gdi/ntgdi/palette.h
win32ss/gdi/ntgdi/region.c
win32ss/gdi/ntgdi/region.h
win32ss/include/ntuser.h
win32ss/user/ntuser/desktop.c
win32ss/user/ntuser/desktop.h
win32ss/user/ntuser/focus.c
win32ss/user/ntuser/menu.c
win32ss/user/ntuser/menu.h
win32ss/user/ntuser/msgqueue.c
win32ss/user/ntuser/painting.c
win32ss/user/ntuser/window.c
win32ss/user/ntuser/winpos.c
win32ss/user/ntuser/winsta.c
win32ss/user/ntuser/winsta.h
win32ss/user/user32/controls/appswitch.c
win32ss/user/user32/lang/bg-BG.rc
win32ss/user/user32/lang/cs-CZ.rc
win32ss/user/user32/lang/da-DK.rc
win32ss/user/user32/lang/de-DE.rc
win32ss/user/user32/lang/el-GR.rc
win32ss/user/user32/lang/en-US.rc
win32ss/user/user32/lang/es-ES.rc
win32ss/user/user32/lang/fr-FR.rc
win32ss/user/user32/lang/he-IL.rc
win32ss/user/user32/lang/hu-HU.rc
win32ss/user/user32/lang/id-ID.rc
win32ss/user/user32/lang/it-IT.rc
win32ss/user/user32/lang/ja-JP.rc
win32ss/user/user32/lang/lt-LT.rc
win32ss/user/user32/lang/nl-NL.rc
win32ss/user/user32/lang/no-NO.rc
win32ss/user/user32/lang/pl-PL.rc
win32ss/user/user32/lang/pt-BR.rc
win32ss/user/user32/lang/ro-RO.rc
win32ss/user/user32/lang/ru-RU.rc
win32ss/user/user32/lang/sk-SK.rc
win32ss/user/user32/lang/sv-SE.rc
win32ss/user/user32/lang/tr-TR.rc
win32ss/user/user32/lang/uk-UA.rc
win32ss/user/user32/lang/zh-CN.rc
win32ss/user/user32/misc/dde.c
win32ss/user/user32/misc/ddeclient.c
win32ss/user/user32/misc/ddeserver.c
win32ss/user/user32/windows/font.c
win32ss/user/user32/windows/mdi.c
win32ss/user/user32/windows/menu.c
win32ss/user/user32/windows/message.c
win32ss/user/winsrv/consrv/frontends/gui/conwnd.c
win32ss/user/winsrv/consrv/frontends/gui/conwnd.h
win32ss/user/winsrv/consrv/frontends/gui/graphics.c
win32ss/user/winsrv/consrv/frontends/gui/guiterm.c
win32ss/user/winsrv/consrv/frontends/gui/lang/bg-BG.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/cs-CZ.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/de-DE.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/el-GR.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/en-US.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/es-ES.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/fr-FR.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/he-IL.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/id-ID.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/it-IT.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/ja-JP.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/no-NO.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/pl-PL.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/pt-BR.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/ro-RO.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/ru-RU.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/sk-SK.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/sv-SE.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/tr-TR.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/uk-UA.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/zh-CN.rc
win32ss/user/winsrv/consrv/frontends/gui/lang/zh-TW.rc
win32ss/user/winsrv/consrv/frontends/gui/resource.h
win32ss/user/winsrv/consrv/frontends/gui/text.c
win32ss/user/winsrv/init.c

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc cmake/gcc.cmake
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0718a3b,0000000..ad26625
mode 100644,000000..100644
--- /dev/null
@@@ -1,327 -1,0 +1,328 @@@
-  * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
 +/*
 + * COPYRIGHT:       See COPYING in the top level directory
 + * PROJECT:         ReactOS kernel
 + * FILE:            dll/ntdll/csr/capture.c
 + * PURPOSE:         Routines for probing and capturing CSR API Messages
++ * PROGRAMMERS:     Alex Ionescu (alex@relsoft.net)
++ *                  Hermes Belusca-Maito (hermes.belusca@sfr.fr)
 + */
 +
 +/* INCLUDES *******************************************************************/
 +
 +#include <ntdll.h>
 +
 +#define NDEBUG
 +#include <debug.h>
 +
 +/* GLOBALS ********************************************************************/
 +
 +extern HANDLE CsrPortHeap;
 +
 +/* FUNCTIONS ******************************************************************/
 +
 +/*
 + * @implemented
 + */
 +VOID
 +NTAPI
 +CsrProbeForRead(IN PVOID Address,
 +                IN ULONG Length,
 +                IN ULONG Alignment)
 +{
 +    volatile UCHAR *Pointer;
 +    UCHAR Data;
 +
 +    /* Validate length */
 +    if (Length == 0) return;
 +
 +    /* Validate alignment */
 +    if ((ULONG_PTR)Address & (Alignment - 1))
 +    {
 +        /* Raise exception if it doesn't match */
 +        RtlRaiseStatus(STATUS_DATATYPE_MISALIGNMENT);
 +    }
 +
 +    /* Probe first byte */
 +    Pointer = Address;
 +    Data = *Pointer;
 +
 +    /* Probe last byte */
 +    Pointer = (PUCHAR)Address + Length - 1;
 +    Data = *Pointer;
 +    (void)Data;
 +}
 +
 +/*
 + * @implemented
 + */
 +VOID
 +NTAPI
 +CsrProbeForWrite(IN PVOID Address,
 +                 IN ULONG Length,
 +                 IN ULONG Alignment)
 +{
 +    volatile UCHAR *Pointer;
 +
 +    /* Validate length */
 +    if (Length == 0) return;
 +
 +    /* Validate alignment */
 +    if ((ULONG_PTR)Address & (Alignment - 1))
 +    {
 +        /* Raise exception if it doesn't match */
 +        RtlRaiseStatus(STATUS_DATATYPE_MISALIGNMENT);
 +    }
 +
 +    /* Probe first byte */
 +    Pointer = Address;
 +    *Pointer = *Pointer;
 +
 +    /* Probe last byte */
 +    Pointer = (PUCHAR)Address + Length - 1;
 +    *Pointer = *Pointer;
 +}
 +
 +/*
 + * @implemented
 + */
 +PCSR_CAPTURE_BUFFER
 +NTAPI
 +CsrAllocateCaptureBuffer(IN ULONG ArgumentCount,
 +                         IN ULONG BufferSize)
 +{
 +    PCSR_CAPTURE_BUFFER CaptureBuffer;
 +
 +    /* Validate size */
 +    if (BufferSize >= MAXLONG) return NULL;
 +
 +    /* Add the size of the header and for each offset to the pointers */
 +    BufferSize += FIELD_OFFSET(CSR_CAPTURE_BUFFER, PointerOffsetsArray) +
 +                    (ArgumentCount * sizeof(ULONG_PTR));
 +
 +    /* Align it to a 4-byte boundary */
 +    BufferSize = (BufferSize + 3) & ~3;
 +
 +    /* Add the size of the alignment padding for each argument */
 +    BufferSize += ArgumentCount * 3;
 +
 +    /* Allocate memory from the port heap */
 +    CaptureBuffer = RtlAllocateHeap(CsrPortHeap, HEAP_ZERO_MEMORY, BufferSize);
 +    if (CaptureBuffer == NULL) return NULL;
 +
 +    /* Initialize the header */
 +    CaptureBuffer->Size = BufferSize;
 +    CaptureBuffer->PointerCount = 0;
 +
 +    /* Initialize all the offsets */
 +    RtlZeroMemory(CaptureBuffer->PointerOffsetsArray,
 +                  ArgumentCount * sizeof(ULONG_PTR));
 +
 +    /* Point to the start of the free buffer */
 +    CaptureBuffer->BufferEnd = (PVOID)((ULONG_PTR)CaptureBuffer->PointerOffsetsArray +
 +                                       ArgumentCount * sizeof(ULONG_PTR));
 +
 +    /* Return the address of the buffer */
 +    return CaptureBuffer;
 +}
 +
 +/*
 + * @implemented
 + */
 +ULONG
 +NTAPI
 +CsrAllocateMessagePointer(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
 +                          IN ULONG MessageLength,
 +                          OUT PVOID* CapturedData)
 +{
 +    if (MessageLength == 0)
 +    {
 +        *CapturedData = NULL;
 +        CapturedData = NULL;
 +    }
 +    else
 +    {
 +        /* Set the capture data at our current available buffer */
 +        *CapturedData = CaptureBuffer->BufferEnd;
 +
 +        /* Validate the size */
 +        if (MessageLength >= MAXLONG) return 0;
 +
 +        /* Align it to a 4-byte boundary */
 +        MessageLength = (MessageLength + 3) & ~3;
 +
 +        /* Move our available buffer beyond this space */
 +        CaptureBuffer->BufferEnd = (PVOID)((ULONG_PTR)CaptureBuffer->BufferEnd + MessageLength);
 +    }
 +
 +    /* Write down this pointer in the array and increase the count */
 +    CaptureBuffer->PointerOffsetsArray[CaptureBuffer->PointerCount++] = (ULONG_PTR)CapturedData;
 +
 +    /* Return the aligned length */
 +    return MessageLength;
 +}
 +
 +/*
 + * @implemented
 + */
 +VOID
 +NTAPI
 +CsrCaptureMessageBuffer(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
 +                        IN PVOID MessageBuffer OPTIONAL,
 +                        IN ULONG MessageLength,
 +                        OUT PVOID* CapturedData)
 +{
 +    /* Simply allocate a message pointer in the buffer */
 +    CsrAllocateMessagePointer(CaptureBuffer, MessageLength, CapturedData);
 +
 +    /* Check if there was any data */
 +    if (!MessageBuffer || !MessageLength) return;
 +
 +    /* Copy the data into the buffer */
 +    RtlMoveMemory(*CapturedData, MessageBuffer, MessageLength);
 +}
 +
 +/*
 + * @implemented
 + */
 +VOID
 +NTAPI
 +CsrFreeCaptureBuffer(IN PCSR_CAPTURE_BUFFER CaptureBuffer)
 +{
 +    /* Free it from the heap */
 +    RtlFreeHeap(CsrPortHeap, 0, CaptureBuffer);
 +}
 +
 +/*
 + * @implemented
 + */
 +VOID
 +NTAPI
 +CsrCaptureMessageString(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
 +                        IN PCSTR String OPTIONAL,
 +                        IN ULONG StringLength,
 +                        IN ULONG MaximumLength,
 +                        OUT PSTRING CapturedString)
 +{
 +    ASSERT(CapturedString != NULL);
 +
 +    /*
 +     * If we don't have a string, initialize an empty one,
 +     * otherwise capture the given string.
 +     */
 +    if (!String)
 +    {
 +        CapturedString->Length = 0;
 +        CapturedString->MaximumLength = (USHORT)MaximumLength;
 +
 +        /* Allocate a pointer for it */
 +        CsrAllocateMessagePointer(CaptureBuffer,
 +                                  MaximumLength,
 +                                  (PVOID*)&CapturedString->Buffer);
 +    }
 +    else
 +    {
 +        /* Cut-off the string length if needed */
 +        if (StringLength > MaximumLength)
 +            StringLength = MaximumLength;
 +
 +        CapturedString->Length = (USHORT)StringLength;
 +
 +        /* Allocate a buffer and get its size */
 +        CapturedString->MaximumLength =
 +            (USHORT)CsrAllocateMessagePointer(CaptureBuffer,
 +                                              MaximumLength,
 +                                              (PVOID*)&CapturedString->Buffer);
 +
 +        /* If the string has data, copy it into the buffer */
 +        if (StringLength)
 +            RtlMoveMemory(CapturedString->Buffer, String, StringLength);
 +    }
 +
 +    /* Null-terminate the string if we don't take up the whole space */
 +    if (CapturedString->Length < CapturedString->MaximumLength)
 +        CapturedString->Buffer[CapturedString->Length] = '\0';
 +}
 +
 +static VOID
 +CsrCaptureMessageUnicodeStringInPlace(IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer,
 +                                      IN PUNICODE_STRING String)
 +{
 +    ASSERT(String != NULL);
 +
 +    /* This is a way to capture the UNICODE string, since (Maximum)Length are also in bytes */
 +    CsrCaptureMessageString(CaptureBuffer,
 +                            (PCSTR)String->Buffer,
 +                            String->Length,
 +                            String->MaximumLength,
 +                            (PSTRING)String);
 +
 +    /* Null-terminate the string */
 +    if (String->MaximumLength >= String->Length + sizeof(WCHAR))
 +    {
 +        String->Buffer[String->Length / sizeof(WCHAR)] = L'\0';
 +    }
 +}
 +
 +/*
 + * @implemented
 + */
 +NTSTATUS
 +NTAPI
 +CsrCaptureMessageMultiUnicodeStringsInPlace(OUT PCSR_CAPTURE_BUFFER* CaptureBuffer,
 +                                            IN ULONG StringsCount,
 +                                            IN PUNICODE_STRING* MessageStrings)
 +{
 +    ULONG Count;
 +
 +    if (!CaptureBuffer) return STATUS_INVALID_PARAMETER;
 +
 +    /* Allocate a new capture buffer if we don't have one already */
 +    if (!*CaptureBuffer)
 +    {
 +        /* Compute the required size for the capture buffer */
 +        ULONG Size = 0;
 +
 +        Count = 0;
 +        while (Count < StringsCount)
 +        {
 +            if (MessageStrings[Count])
 +                Size += MessageStrings[Count]->MaximumLength;
 +
 +            ++Count;
 +        }
 +
 +        /* Allocate the capture buffer */
 +        *CaptureBuffer = CsrAllocateCaptureBuffer(StringsCount, Size);
 +        if (!*CaptureBuffer) return STATUS_NO_MEMORY;
 +    }
 +
 +    /* Now capture each UNICODE string */
 +    Count = 0;
 +    while (Count < StringsCount)
 +    {
 +        if (MessageStrings[Count])
 +            CsrCaptureMessageUnicodeStringInPlace(*CaptureBuffer, MessageStrings[Count]);
 +
 +        ++Count;
 +    }
 +
 +    return STATUS_SUCCESS;
 +}
 +
 +/*
 + * @implemented
 + */
 +PLARGE_INTEGER
 +NTAPI
 +CsrCaptureTimeout(IN ULONG Milliseconds,
 +                  OUT PLARGE_INTEGER Timeout)
 +{
 +    /* Validate the time */
 +    if (Milliseconds == -1) return NULL;
 +
 +    /* Convert to relative ticks */
 +    Timeout->QuadPart = Int32x32To64(Milliseconds, -10000);
 +    return Timeout;
 +}
 +
 +/* EOF */
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,93ec06c..93ec06c
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,28533f6..28533f6
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0000000,860fe85..860fe85
mode 000000,100644..100644
--- /dev/null
index 0000000,7bc3ed7..7bc3ed7
mode 000000,100644..100644
--- /dev/null
Simple merge
Simple merge
Simple merge
index 0000000,fd79d43..fd79d43
mode 000000,100644..100644
Binary files differ
index 0000000,9bc8009..9bc8009
mode 000000,100644..100644
Binary files differ
index 0000000,83966f2..83966f2
mode 000000,100644..100644
Binary files differ
index 0000000,97c355b..97c355b
mode 000000,100644..100644
Binary files differ
index 0000000,0b45898..0b45898
mode 000000,100644..100644
Binary files differ
index 0000000,21f6f84..21f6f84
mode 000000,100644..100644
Binary files differ
index 0000000,31cb688..31cb688
mode 000000,100644..100644
Binary files differ
index 0000000,c90da48..c90da48
mode 000000,100644..100644
Binary files differ
index 0000000,0d38189..0d38189
mode 000000,100644..100644
Binary files differ
index 0000000,68299c4..68299c4
mode 000000,100644..100644
Binary files differ
index 0000000,db43334..db43334
mode 000000,100644..100644
Binary files differ
index 0000000,1a7679e..1a7679e
mode 000000,100644..100644
Binary files differ
index 0000000,59b6d16..59b6d16
mode 000000,100644..100644
Binary files differ
index 0000000,c0142fe..c0142fe
mode 000000,100644..100644
Binary files differ
index 0000000,12e4c7d..12e4c7d
mode 000000,100644..100644
Binary files differ
index 0000000,8d3e867..8d3e867
mode 000000,100644..100644
Binary files differ
index 0000000,7b7ac7d..7b7ac7d
mode 000000,100644..100644
Binary files differ
index 0000000,e36de45..e36de45
mode 000000,100644..100644
Binary files differ
index 0000000,443ec8b..443ec8b
mode 000000,100644..100644
Binary files differ
index 0000000,321eccf..321eccf
mode 000000,100644..100644
Binary files differ
index 0000000,45a038b..45a038b
mode 000000,100644..100644
Binary files differ
index 0000000,6f819f6..6f819f6
mode 000000,100644..100644
Binary files differ
index 0000000,7bd6665..7bd6665
mode 000000,100644..100644
Binary files differ
index 0000000,6c5b8ba..6c5b8ba
mode 000000,100644..100644
Binary files differ
index 0000000,fdd309d..fdd309d
mode 000000,100644..100644
Binary files differ
index 0000000,18f81a2..18f81a2
mode 000000,100644..100644
Binary files differ
index 0000000,292d4ad..292d4ad
mode 000000,100644..100644
--- /dev/null
index 0b21b83,614c28e..614c28e
Binary files differ
index bff8acc,6f76a2c..6f76a2c
Binary files differ
index 0d6ba85,d009d53..d009d53
Binary files differ
index a6e0177,57e665b..57e665b
Binary files differ
index 8fe2e0b,afc54cc..afc54cc
Binary files differ
index 4415a11,d799760..d799760
Binary files differ
index 9bc33ce,e330dc8..e330dc8
Binary files differ
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 0b6b2f5,0000000..88799e4
mode 100644,000000..100644
--- /dev/null
@@@ -1,2185 -1,0 +1,2328 @@@
 +/*
 + * COPYRIGHT:       See COPYING in the top level directory
 + * PROJECT:         ReactOS Console Server DLL
 + * FILE:            frontends/gui/conwnd.c
 + * PURPOSE:         GUI Console Window Class
 + * PROGRAMMERS:     Gé van Geldorp
 + *                  Johannes Anderwald
 + *                  Jeffrey Morlan
 + *                  Hermes Belusca-Maito (hermes.belusca@sfr.fr)
 + */
 +
 +/* INCLUDES *******************************************************************/
 +
 +#include <consrv.h>
- static VOID
++#include <intrin.h>
 +#include <windowsx.h>
 +
 +#define NDEBUG
 +#include <debug.h>
 +
 +#include "guiterm.h"
 +#include "conwnd.h"
 +#include "resource.h"
 +
 +/* GLOBALS ********************************************************************/
 +
 +// #define PM_CREATE_CONSOLE       (WM_APP + 1)
 +// #define PM_DESTROY_CONSOLE      (WM_APP + 2)
 +
 +// See guiterm.c
 +#define CONGUI_MIN_WIDTH      10
 +#define CONGUI_MIN_HEIGHT     10
 +#define CONGUI_UPDATE_TIME    0
 +#define CONGUI_UPDATE_TIMER   1
 +
 +#define CURSOR_BLINK_TIME 500
 +
 +
 +/**************************************************************\
 +\** Define the Console Leader Process for the console window **/
 +#define GWLP_CONWND_ALLOC      (2 * sizeof(LONG_PTR))
 +#define GWLP_CONSOLE_LEADER_PID 0
 +#define GWLP_CONSOLE_LEADER_TID 4
 +
 +VOID
 +SetConWndConsoleLeaderCID(IN PGUI_CONSOLE_DATA GuiData)
 +{
 +    PCONSOLE_PROCESS_DATA ProcessData;
 +    CLIENT_ID ConsoleLeaderCID;
 +
 +    ProcessData = ConSrvGetConsoleLeaderProcess(GuiData->Console);
 +    ConsoleLeaderCID = ProcessData->Process->ClientId;
 +    SetWindowLongPtrW(GuiData->hWindow, GWLP_CONSOLE_LEADER_PID,
 +                      (LONG_PTR)(ConsoleLeaderCID.UniqueProcess));
 +    SetWindowLongPtrW(GuiData->hWindow, GWLP_CONSOLE_LEADER_TID,
 +                      (LONG_PTR)(ConsoleLeaderCID.UniqueThread));
 +}
 +/**************************************************************/
 +
 +HICON   ghDefaultIcon = NULL;
 +HICON   ghDefaultIconSm = NULL;
 +HCURSOR ghDefaultCursor = NULL;
 +
 +typedef struct _GUICONSOLE_MENUITEM
 +{
 +    UINT uID;
 +    const struct _GUICONSOLE_MENUITEM *SubMenu;
 +    WORD wCmdID;
 +} GUICONSOLE_MENUITEM, *PGUICONSOLE_MENUITEM;
 +
 +static const GUICONSOLE_MENUITEM GuiConsoleEditMenuItems[] =
 +{
 +    { IDS_MARK,         NULL, ID_SYSTEM_EDIT_MARK       },
 +    { IDS_COPY,         NULL, ID_SYSTEM_EDIT_COPY       },
 +    { IDS_PASTE,        NULL, ID_SYSTEM_EDIT_PASTE      },
 +    { IDS_SELECTALL,    NULL, ID_SYSTEM_EDIT_SELECTALL  },
 +    { IDS_SCROLL,       NULL, ID_SYSTEM_EDIT_SCROLL     },
 +    { IDS_FIND,         NULL, ID_SYSTEM_EDIT_FIND       },
 +
 +    { 0, NULL, 0 } /* End of list */
 +};
 +
 +static const GUICONSOLE_MENUITEM GuiConsoleMainMenuItems[] =
 +{
 +    { IDS_EDIT,         GuiConsoleEditMenuItems, 0 },
 +    { IDS_DEFAULTS,     NULL, ID_SYSTEM_DEFAULTS   },
 +    { IDS_PROPERTIES,   NULL, ID_SYSTEM_PROPERTIES },
 +
 +    { 0, NULL, 0 } /* End of list */
 +};
 +
 +/*
 + * Default 16-color palette for foreground and background
 + * (corresponding flags in comments).
 + */
 +const COLORREF s_Colors[16] =
 +{
 +    RGB(0, 0, 0),       // (Black)
 +    RGB(0, 0, 128),     // BLUE
 +    RGB(0, 128, 0),     // GREEN
 +    RGB(0, 128, 128),   // BLUE  | GREEN
 +    RGB(128, 0, 0),     // RED
 +    RGB(128, 0, 128),   // BLUE  | RED
 +    RGB(128, 128, 0),   // GREEN | RED
 +    RGB(192, 192, 192), // BLUE  | GREEN | RED
 +
 +    RGB(128, 128, 128), // (Grey)  INTENSITY
 +    RGB(0, 0, 255),     // BLUE  | INTENSITY
 +    RGB(0, 255, 0),     // GREEN | INTENSITY
 +    RGB(0, 255, 255),   // BLUE  | GREEN | INTENSITY
 +    RGB(255, 0, 0),     // RED   | INTENSITY
 +    RGB(255, 0, 255),   // BLUE  | RED   | INTENSITY
 +    RGB(255, 255, 0),   // GREEN | RED   | INTENSITY
 +    RGB(255, 255, 255)  // BLUE  | GREEN | RED | INTENSITY
 +};
 +
 +/* FUNCTIONS ******************************************************************/
 +
 +static LRESULT CALLBACK
 +ConWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
 +
 +BOOLEAN
 +RegisterConWndClass(IN HINSTANCE hInstance)
 +{
 +    WNDCLASSEXW WndClass;
 +    ATOM WndClassAtom;
 +
 +    ghDefaultIcon   = LoadImageW(hInstance,
 +                                 MAKEINTRESOURCEW(IDI_TERMINAL),
 +                                 IMAGE_ICON,
 +                                 GetSystemMetrics(SM_CXICON),
 +                                 GetSystemMetrics(SM_CYICON),
 +                                 LR_SHARED);
 +    ghDefaultIconSm = LoadImageW(hInstance,
 +                                 MAKEINTRESOURCEW(IDI_TERMINAL),
 +                                 IMAGE_ICON,
 +                                 GetSystemMetrics(SM_CXSMICON),
 +                                 GetSystemMetrics(SM_CYSMICON),
 +                                 LR_SHARED);
 +    ghDefaultCursor = LoadCursorW(NULL, IDC_ARROW);
 +
 +    WndClass.cbSize = sizeof(WNDCLASSEXW);
 +    WndClass.lpszClassName = GUI_CONWND_CLASS;
 +    WndClass.lpfnWndProc = ConWndProc;
 +    WndClass.style = CS_DBLCLKS /* | CS_HREDRAW | CS_VREDRAW */;
 +    WndClass.hInstance = hInstance;
 +    WndClass.hIcon = ghDefaultIcon;
 +    WndClass.hIconSm = ghDefaultIconSm;
 +    WndClass.hCursor = ghDefaultCursor;
 +    WndClass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); // The color of a terminal when it is switched off.
 +    WndClass.lpszMenuName = NULL;
 +    WndClass.cbClsExtra = 0;
 +    WndClass.cbWndExtra = GWLP_CONWND_ALLOC;
 +
 +    WndClassAtom = RegisterClassExW(&WndClass);
 +    if (WndClassAtom == 0)
 +    {
 +        DPRINT1("Failed to register GUI console class\n");
 +    }
 +    else
 +    {
 +        NtUserConsoleControl(GuiConsoleWndClassAtom, &WndClassAtom, sizeof(ATOM));
 +    }
 +
 +    return (WndClassAtom != 0);
 +}
 +
 +BOOLEAN
 +UnRegisterConWndClass(HINSTANCE hInstance)
 +{
 +    return !!UnregisterClassW(GUI_CONWND_CLASS, hInstance);
 +}
 +
 +
 +
 +static VOID
 +GetScreenBufferSizeUnits(IN PCONSOLE_SCREEN_BUFFER Buffer,
 +                         IN PGUI_CONSOLE_DATA GuiData,
 +                         OUT PUINT WidthUnit,
 +                         OUT PUINT HeightUnit)
 +{
 +    if (Buffer == NULL || GuiData == NULL ||
 +        WidthUnit == NULL || HeightUnit == NULL)
 +    {
 +        return;
 +    }
 +
 +    if (GetType(Buffer) == TEXTMODE_BUFFER)
 +    {
 +        *WidthUnit  = GuiData->CharWidth ;
 +        *HeightUnit = GuiData->CharHeight;
 +    }
 +    else /* if (GetType(Buffer) == GRAPHICS_BUFFER) */
 +    {
 +        *WidthUnit  = 1;
 +        *HeightUnit = 1;
 +    }
 +}
 +
 +static VOID
 +AppendMenuItems(HMENU hMenu,
 +                const GUICONSOLE_MENUITEM *Items)
 +{
 +    UINT i = 0;
 +    WCHAR szMenuString[255];
 +    HMENU hSubMenu;
 +
 +    do
 +    {
 +        if (Items[i].uID != (UINT)-1)
 +        {
 +            if (LoadStringW(ConSrvDllInstance,
 +                            Items[i].uID,
 +                            szMenuString,
 +                            sizeof(szMenuString) / sizeof(szMenuString[0])) > 0)
 +            {
 +                if (Items[i].SubMenu != NULL)
 +                {
 +                    hSubMenu = CreatePopupMenu();
 +                    if (hSubMenu != NULL)
 +                    {
 +                        AppendMenuItems(hSubMenu, Items[i].SubMenu);
 +
 +                        if (!AppendMenuW(hMenu,
 +                                         MF_STRING | MF_POPUP,
 +                                         (UINT_PTR)hSubMenu,
 +                                         szMenuString))
 +                        {
 +                            DestroyMenu(hSubMenu);
 +                        }
 +                    }
 +                }
 +                else
 +                {
 +                    AppendMenuW(hMenu,
 +                                MF_STRING,
 +                                Items[i].wCmdID,
 +                                szMenuString);
 +                }
 +            }
 +        }
 +        else
 +        {
 +            AppendMenuW(hMenu,
 +                        MF_SEPARATOR,
 +                        0,
 +                        NULL);
 +        }
 +        i++;
 +    } while (!(Items[i].uID == 0 && Items[i].SubMenu == NULL && Items[i].wCmdID == 0));
 +}
 +
- UpdateSelection(PGUI_CONSOLE_DATA GuiData, PCOORD coord);
++//static
++VOID
 +CreateSysMenu(HWND hWnd)
 +{
 +    MENUITEMINFOW mii;
 +    WCHAR szMenuStringBack[255];
 +    WCHAR *ptrTab;
 +    HMENU hMenu = GetSystemMenu(hWnd, FALSE);
 +    if (hMenu != NULL)
 +    {
 +        mii.cbSize = sizeof(mii);
 +        mii.fMask = MIIM_STRING;   
 +        mii.dwTypeData = szMenuStringBack;
 +        mii.cch = sizeof(szMenuStringBack)/sizeof(WCHAR);
 +
 +        GetMenuItemInfoW(hMenu, SC_CLOSE, FALSE, &mii);
 +
 +        ptrTab = wcschr(szMenuStringBack, '\t');
 +        if (ptrTab)
 +        {
 +           *ptrTab = '\0';
 +           mii.cch = wcslen(szMenuStringBack);
 +
 +           SetMenuItemInfoW(hMenu, SC_CLOSE, FALSE, &mii);
 +        }
 +
 +        AppendMenuItems(hMenu, GuiConsoleMainMenuItems);
 +        DrawMenuBar(hWnd);
 +    }
 +}
 +
 +static VOID
 +SendMenuEvent(PCONSOLE Console, UINT CmdId)
 +{
 +    INPUT_RECORD er;
 +
 +    DPRINT1("Menu item ID: %d\n", CmdId);
 +
 +    if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
 +
 +    er.EventType = MENU_EVENT;
 +    er.Event.MenuEvent.dwCommandId = CmdId;
 +    ConioProcessInputEvent(Console, &er);
 +
 +    LeaveCriticalSection(&Console->Lock);
 +}
 +
 +static VOID
 +Copy(PGUI_CONSOLE_DATA GuiData);
 +static VOID
 +Paste(PGUI_CONSOLE_DATA GuiData);
 +static VOID
-     // UpdateSelection(GuiData, NULL);
++UpdateSelection(PGUI_CONSOLE_DATA GuiData,
++                PCOORD SelectionAnchor OPTIONAL,
++                PCOORD coord);
 +
 +static VOID
 +Mark(PGUI_CONSOLE_DATA GuiData)
 +{
 +    PCONSOLE_SCREEN_BUFFER ActiveBuffer = GuiData->ActiveBuffer;
 +
 +    /* Clear the old selection */
-     GuiData->dwSelectionCursor.X = ActiveBuffer->ViewOrigin.X;
-     GuiData->dwSelectionCursor.Y = ActiveBuffer->ViewOrigin.Y;
-     GuiData->Selection.dwSelectionAnchor = GuiData->dwSelectionCursor;
-     UpdateSelection(GuiData, &GuiData->Selection.dwSelectionAnchor);
 +    GuiData->Selection.dwFlags = CONSOLE_NO_SELECTION;
 +
 +    /* Restart a new selection */
-     // UpdateSelection(GuiData, NULL);
++    GuiData->dwSelectionCursor = ActiveBuffer->ViewOrigin;
++    UpdateSelection(GuiData,
++                    &GuiData->dwSelectionCursor,
++                    &GuiData->dwSelectionCursor);
 +}
 +
 +static VOID
 +SelectAll(PGUI_CONSOLE_DATA GuiData)
 +{
 +    PCONSOLE_SCREEN_BUFFER ActiveBuffer = GuiData->ActiveBuffer;
++    COORD SelectionAnchor;
 +
 +    /* Clear the old selection */
-     GuiData->Selection.dwSelectionAnchor.X = 0;
-     GuiData->Selection.dwSelectionAnchor.Y = 0;
 +    GuiData->Selection.dwFlags = CONSOLE_NO_SELECTION;
 +
 +    /*
 +     * The selection area extends to the whole screen buffer's width.
 +     */
-     UpdateSelection(GuiData, &GuiData->dwSelectionCursor);
++    SelectionAnchor.X = SelectionAnchor.Y = 0;
 +    GuiData->dwSelectionCursor.X = ActiveBuffer->ScreenBufferSize.X - 1;
 +
 +    /*
 +     * Determine whether the selection must extend to just some part
 +     * (for text-mode screen buffers) or to all of the screen buffer's
 +     * height (for graphics ones).
 +     */
 +    if (GetType(ActiveBuffer) == TEXTMODE_BUFFER)
 +    {
 +        /*
 +         *