ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
December 2019
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
18 participants
225 discussions
Start a n
N
ew thread
[reactos] 01/02: WIP kdbg work.
by Hermès Bélusca-Maïto
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5e14dbd6481f29f9f3b66…
commit 5e14dbd6481f29f9f3b666e64b5bfd74ac887f73 Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org> AuthorDate: Thu Dec 26 13:53:50 2019 +0100 Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org> CommitDate: Thu Dec 26 13:53:50 2019 +0100 WIP kdbg work. --- ntoskrnl/kd/kdinit.c | 6 ++---- ntoskrnl/kd/kdio.c | 31 +++++++++++++++++++++------ ntoskrnl/kdbg/kdb.c | 60 ++++++++++++++++++++++++++++++++++++++++------------ 3 files changed, 73 insertions(+), 24 deletions(-) diff --git a/ntoskrnl/kd/kdinit.c b/ntoskrnl/kd/kdinit.c index a73ec17ecad..0de4c73fe5f 100644 --- a/ntoskrnl/kd/kdinit.c +++ b/ntoskrnl/kd/kdinit.c @@ -39,9 +39,8 @@ extern ANSI_STRING KdpLogFileName; /* PRIVATE FUNCTIONS *********************************************************/ -INIT_FUNCTION +static INIT_FUNCTION PCHAR -NTAPI KdpGetDebugMode(PCHAR Currentp2) { PCHAR p1, p2 = Currentp2; @@ -135,9 +134,8 @@ KdpGetDebugMode(PCHAR Currentp2) return p2; } -INIT_FUNCTION +static INIT_FUNCTION VOID -NTAPI KdpCallInitRoutine(ULONG BootPhase) { PLIST_ENTRY CurrentEntry; diff --git a/ntoskrnl/kd/kdio.c b/ntoskrnl/kd/kdio.c index 4921d6af7c2..1291e823cfb 100644 --- a/ntoskrnl/kd/kdio.c +++ b/ntoskrnl/kd/kdio.c @@ -423,10 +423,12 @@ KdpScreenAcquire(VOID) InbvEnableDisplayString(TRUE); InbvSetScrollRegion(0, 0, 639, 479); } + else + { + DbgPrint("********* -----> Could NOT acquire SCREEN!! <----- *********\n"); + } } -// extern VOID NTAPI InbvSetDisplayOwnership(IN BOOLEAN DisplayOwned); - VOID KdpScreenRelease(VOID) { @@ -434,7 +436,6 @@ KdpScreenRelease(VOID) InbvCheckDisplayOwnership()) { /* Release the display */ - // InbvSetDisplayOwnership(FALSE); InbvNotifyDisplayOwnershipLost(NULL); } } @@ -632,6 +633,14 @@ KdpPromptString( USHORT i; ULONG DummyScanCode; +/*************************/ + /**/if (!(KdbDebugState & KD_DEBUG_KDSERIAL))/**/ + KbdDisableMouse(); + /* Take control of the display */ + if (KdpDebugMode.Screen) + KdpScreenAcquire(); +/*************************/ + StringChar.Buffer = &Response; StringChar.Length = StringChar.MaximumLength = sizeof(Response); @@ -648,8 +657,8 @@ KdpPromptString( /* Acquire the printing spinlock without waiting at raised IRQL */ OldIrql = KdpAcquireLock(&KdpSerialSpinLock); - if (!(KdbDebugState & KD_DEBUG_KDSERIAL)) - KbdDisableMouse(); + // if (!(KdbDebugState & KD_DEBUG_KDSERIAL)) + // KbdDisableMouse(); /* Loop the whole string */ for (i = 0; i < ResponseString->MaximumLength; i++) @@ -711,8 +720,8 @@ KdpPromptString( /* Return the length */ ResponseString->Length = i; - if (!(KdbDebugState & KD_DEBUG_KDSERIAL)) - KbdEnableMouse(); + // if (!(KdbDebugState & KD_DEBUG_KDSERIAL)) + // KbdEnableMouse(); /* Release the spinlock */ KdpReleaseLock(&KdpSerialSpinLock, OldIrql); @@ -721,6 +730,14 @@ KdpPromptString( *StringChar.Buffer = '\n'; KdpPrintString(&StringChar); +/*************************/ + /* Release the display */ + if (KdpDebugMode.Screen) + KdpScreenRelease(); + /**/if (!(KdbDebugState & KD_DEBUG_KDSERIAL))/**/ + KbdEnableMouse(); +/*************************/ + /* Success; we don't need to resend */ return FALSE; } diff --git a/ntoskrnl/kdbg/kdb.c b/ntoskrnl/kdbg/kdb.c index d2a890276fe..1eabd45b10c 100644 --- a/ntoskrnl/kdbg/kdb.c +++ b/ntoskrnl/kdbg/kdb.c @@ -1216,11 +1216,11 @@ KdbpInternalEnter(VOID) PVOID SavedInitialStack, SavedStackBase, SavedKernelStack; ULONG SavedStackLimit; - KbdDisableMouse(); + // KbdDisableMouse(); - /* Take control of the display */ - if (KdpDebugMode.Screen) - KdpScreenAcquire(); + // /* Take control of the display */ + // if (KdpDebugMode.Screen) + // KdpScreenAcquire(); /* Call the interface's main loop on a different stack */ Thread = PsGetCurrentThread(); @@ -1241,11 +1241,11 @@ KdbpInternalEnter(VOID) Thread->Tcb.StackLimit = SavedStackLimit; Thread->Tcb.KernelStack = SavedKernelStack; - /* Release the display */ - if (KdpDebugMode.Screen) - KdpScreenRelease(); + // /* Release the display */ + // if (KdpDebugMode.Screen) + // KdpScreenRelease(); - KbdEnableMouse(); + // KbdEnableMouse(); } static ULONG @@ -1356,6 +1356,13 @@ KdbEnterDebuggerException( EnterConditionMet = FALSE; } +/*************************/ + KbdDisableMouse(); + /* Take control of the display */ + if (KdpDebugMode.Screen) + KdpScreenAcquire(); +/*************************/ + /* If we stopped on one of our breakpoints then let the user know */ KdbLastBreakPointNr = -1; KdbEnteredOnSingleStep = FALSE; @@ -1531,7 +1538,9 @@ KdbEnterDebuggerException( { if (!EnterConditionMet) { - return kdHandleException; + // return kdHandleException; + ContinueType = kdHandleException; + goto cleanup_quit; } KdbpPrint("\nEntered debugger on unexpected debug trap!\n"); @@ -1546,7 +1555,9 @@ KdbEnterDebuggerException( } if (!EnterConditionMet) { - return kdHandleException; + // return kdHandleException; + ContinueType = kdHandleException; + goto cleanup_quit; } KdbpPrint("\nEntered debugger on embedded INT3 at 0x%04x:0x%08x.\n", @@ -1560,7 +1571,8 @@ KdbEnterDebuggerException( if (!EnterConditionMet) { - return ContinueType; + // return ContinueType; + goto cleanup_quit; } KdbpPrint("\nEntered debugger on %s-chance exception (Exception Code: 0x%x) (%s)\n", @@ -1616,7 +1628,9 @@ KdbEnterDebuggerException( if (InterlockedIncrement(&KdbEntryCount) > 1) { __writeeflags(OldEflags); - return kdHandleException; + // return kdHandleException; + ContinueType = kdHandleException; + goto cleanup_quit; } /* Call the main loop */ @@ -1669,6 +1683,14 @@ KdbEnterDebuggerException( } continue_execution: + +/*************************/ + /* Release the display */ + if (KdpDebugMode.Screen) + KdpScreenRelease(); + KbdEnableMouse(); +/*************************/ + /* Clear debug status */ if (ExceptionCode == STATUS_BREAKPOINT) /* FIXME: Why clear DR6 on INT3? */ { @@ -1688,6 +1710,17 @@ continue_execution: } } + return ContinueType; + +cleanup_quit: + +/*************************/ + /* Release the display */ + if (KdpDebugMode.Screen) + KdpScreenRelease(); + KbdEnableMouse(); +/*************************/ + return ContinueType; } @@ -1699,7 +1732,8 @@ KdbpGetCommandLineSettings( { #define CONST_STR_LEN(x) (sizeof(x)/sizeof(x[0]) - 1) - while (p1 && (p1 = strchr(p1, ' '))) + /* Loop through the switches */ + for (; p1 && *p1; p1 = strchr(p1, ' ')) { /* Skip other spaces */ while (*p1 == ' ') ++p1;
4 years, 12 months
1
0
0
0
[reactos] 01/01: [NTUSER] Fix caret display mistake (#2180)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=22f883278b53d1c81f76a…
commit 22f883278b53d1c81f76a4f6923c6552dba0c7a9 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Thu Dec 26 19:08:01 2019 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Thu Dec 26 19:08:01 2019 +0900 [NTUSER] Fix caret display mistake (#2180) Take care of caret visibility. co_IntSetCaretPos function wrongly drawn the caret upon invisible caret. @Doug-Lyons did test this patch. CORE-15661 --- win32ss/user/ntuser/caret.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/win32ss/user/ntuser/caret.c b/win32ss/user/ntuser/caret.c index 9ab590c0b83..24fadf6e16e 100644 --- a/win32ss/user/ntuser/caret.c +++ b/win32ss/user/ntuser/caret.c @@ -217,10 +217,13 @@ co_IntSetCaretPos(int X, int Y) if(ThreadQueue->CaretInfo.Pos.x != X || ThreadQueue->CaretInfo.Pos.y != Y) { co_IntHideCaret(&ThreadQueue->CaretInfo); - ThreadQueue->CaretInfo.Showing = 1; ThreadQueue->CaretInfo.Pos.x = X; ThreadQueue->CaretInfo.Pos.y = Y; - co_IntDrawCaret(pWnd, &ThreadQueue->CaretInfo); + if (ThreadQueue->CaretInfo.Visible) + { + ThreadQueue->CaretInfo.Showing = 1; + co_IntDrawCaret(pWnd, &ThreadQueue->CaretInfo); + } IntSetTimer(pWnd, IDCARETTIMER, gpsi->dtCaretBlink, CaretSystemTimerProc, TMRF_SYSTEM); IntNotifyWinEvent(EVENT_OBJECT_LOCATIONCHANGE, pWnd, OBJID_CARET, CHILDID_SELF, 0);
4 years, 12 months
1
0
0
0
[reactos] 01/01: [SDK][INCLUDE] Add Gdiplus::Image::~Image (#2174)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3f9e695061e08ec81321b…
commit 3f9e695061e08ec81321bfce5ab5e2808d400b24 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Thu Dec 26 11:25:48 2019 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Thu Dec 26 11:25:48 2019 +0900 [SDK][INCLUDE] Add Gdiplus::Image::~Image (#2174) Gdiplus::Image had no dtor. CORE-16566 --- sdk/include/psdk/gdiplusheaders.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sdk/include/psdk/gdiplusheaders.h b/sdk/include/psdk/gdiplusheaders.h index 893a8b0e4af..a48edc6dfe7 100644 --- a/sdk/include/psdk/gdiplusheaders.h +++ b/sdk/include/psdk/gdiplusheaders.h @@ -47,6 +47,11 @@ public: return newImage; } + virtual ~Image() + { + DllExports::GdipDisposeImage(image); + } + static Image *FromFile(const WCHAR *filename, BOOL useEmbeddedColorManagement = FALSE) { return new Image(filename, useEmbeddedColorManagement);
4 years, 12 months
1
0
0
0
[reactos] 01/01: [SHELL32] Fix MSVC warning warning C4390 by adding a bit more debug info.
by Hermès Bélusca-Maïto
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1ee511a10c0a0529a0221…
commit 1ee511a10c0a0529a0221708150bc77ce879410b Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org> AuthorDate: Wed Dec 25 19:02:48 2019 +0100 Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org> CommitDate: Wed Dec 25 19:02:48 2019 +0100 [SHELL32] Fix MSVC warning warning C4390 by adding a bit more debug info. --- dll/win32/shell32/CSendToMenu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dll/win32/shell32/CSendToMenu.cpp b/dll/win32/shell32/CSendToMenu.cpp index 8a7e1bc0bd8..fc4a224ea85 100644 --- a/dll/win32/shell32/CSendToMenu.cpp +++ b/dll/win32/shell32/CSendToMenu.cpp @@ -274,7 +274,7 @@ HRESULT CSendToMenu::CreateSendToFiles(LPCWSTR pszSendTo) hr = CreateShellLink(szSendToFile, szTarget, NULL, NULL, NULL, szShell32, -IDI_SHELL_MY_DOCUMENTS, NULL); if (FAILED_UNEXPECTEDLY(hr)) - ; + ERR("CreateShellLink(%S, %S) failed!\n", szSendToFile, szTarget); /* create desklink */ StringCbCopyW(szSendToFile, sizeof(szSendToFile), pszSendTo);
4 years, 12 months
1
0
0
0
[reactos] 01/01: [CONSRV] Preparation for Asian console support (#2171)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dfa3065e19c1b3353c343…
commit dfa3065e19c1b3353c34313c0e5aa21b418f905b Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Wed Dec 25 23:35:01 2019 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Wed Dec 25 23:35:01 2019 +0900 [CONSRV] Preparation for Asian console support (#2171) Make preparation for console support of Chinese, Japanese and Korean (CJK) codepages. CORE-12451 - Add consrv/frontends/wcwidth.c. - Add GuiPaintTextModeBufferCJK function. --- win32ss/user/winsrv/consrv.cmake | 1 + win32ss/user/winsrv/consrv/frontends/gui/conwnd.c | 13 +- win32ss/user/winsrv/consrv/frontends/gui/guiterm.h | 7 + win32ss/user/winsrv/consrv/frontends/gui/text.c | 11 + win32ss/user/winsrv/consrv/frontends/terminal.c | 11 + win32ss/user/winsrv/consrv/frontends/wcwidth.c | 309 +++++++++++++++++++++ 6 files changed, 350 insertions(+), 2 deletions(-) diff --git a/win32ss/user/winsrv/consrv.cmake b/win32ss/user/winsrv/consrv.cmake index 1307a0fb912..ecbca65e82e 100644 --- a/win32ss/user/winsrv/consrv.cmake +++ b/win32ss/user/winsrv/consrv.cmake @@ -28,6 +28,7 @@ list(APPEND CONSRV_SOURCE consrv/condrv/text.c consrv/frontends/input.c consrv/frontends/terminal.c + consrv/frontends/wcwidth.c consrv/frontends/gui/conwnd.c consrv/frontends/gui/fullscreen.c consrv/frontends/gui/guiterm.c diff --git a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c index 633317cd039..b7859201a3a 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c @@ -991,8 +991,17 @@ OnPaint(PGUI_CONSOLE_DATA GuiData) /* Compose the current screen-buffer on-memory */ if (GetType(ActiveBuffer) == TEXTMODE_BUFFER) { - GuiPaintTextModeBuffer((PTEXTMODE_SCREEN_BUFFER)ActiveBuffer, - GuiData, &ps.rcPaint, &rcPaint); + if (IsCJKCodePage(ActiveBuffer->Header.Console->OutputCodePage)) + { + /* For Chinese, Japanese and Korean: */ + GuiPaintTextModeBufferCJK((PTEXTMODE_SCREEN_BUFFER)ActiveBuffer, + GuiData, &ps.rcPaint, &rcPaint); + } + else + { + GuiPaintTextModeBuffer((PTEXTMODE_SCREEN_BUFFER)ActiveBuffer, + GuiData, &ps.rcPaint, &rcPaint); + } } else /* if (GetType(ActiveBuffer) == GRAPHICS_BUFFER) */ { diff --git a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.h b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.h index 4ed6c1e8c19..bd28b2b98d1 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.h +++ b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.h @@ -121,4 +121,11 @@ GuiPaintTextModeBuffer(PTEXTMODE_SCREEN_BUFFER Buffer, PRECT rcView, PRECT rcFramebuffer); +/* For Chinese, Japanese and Korean: */ +VOID +GuiPaintTextModeBufferCJK(PTEXTMODE_SCREEN_BUFFER Buffer, + PGUI_CONSOLE_DATA GuiData, + PRECT rcView, + PRECT rcFramebuffer); + /* EOF */ diff --git a/win32ss/user/winsrv/consrv/frontends/gui/text.c b/win32ss/user/winsrv/consrv/frontends/gui/text.c index dc77e65801e..2b62c3dd377 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/text.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/text.c @@ -494,4 +494,15 @@ GuiPaintTextModeBuffer(PTEXTMODE_SCREEN_BUFFER Buffer, LeaveCriticalSection(&Console->Lock); } +/* For Chinese, Japanese and Korean: */ +VOID +GuiPaintTextModeBufferCJK(PTEXTMODE_SCREEN_BUFFER Buffer, + PGUI_CONSOLE_DATA GuiData, + PRECT rcView, + PRECT rcFramebuffer) +{ + /* FIXME */ + GuiPaintTextModeBuffer(Buffer, GuiData, rcView, rcFramebuffer); +} + /* EOF */ diff --git a/win32ss/user/winsrv/consrv/frontends/terminal.c b/win32ss/user/winsrv/consrv/frontends/terminal.c index 0ab20d82fab..c4ca197a6dd 100644 --- a/win32ss/user/winsrv/consrv/frontends/terminal.c +++ b/win32ss/user/winsrv/consrv/frontends/terminal.c @@ -9,6 +9,7 @@ /* INCLUDES *******************************************************************/ #include <consrv.h> +#include "concfg/font.h" // #include "frontends/gui/guiterm.h" #ifdef TUITERM_COMPILE @@ -491,6 +492,8 @@ ConioNextLine(PTEXTMODE_SCREEN_BUFFER Buff, PSMALL_RECT UpdateRect, PUINT Scroll UpdateRect->Bottom = Buff->CursorPosition.Y; } +int mk_wcwidth_cjk(wchar_t ucs); + static NTSTATUS ConioWriteConsole(PFRONTEND FrontEnd, PTEXTMODE_SCREEN_BUFFER Buff, @@ -505,6 +508,7 @@ ConioWriteConsole(PFRONTEND FrontEnd, SMALL_RECT UpdateRect; SHORT CursorStartX, CursorStartY; UINT ScrolledLines; + BOOL bCJK = IsCJKCodePage(Console->OutputCodePage); CursorStartX = Buff->CursorPosition.X; CursorStartY = Buff->CursorPosition.Y; @@ -604,6 +608,13 @@ ConioWriteConsole(PFRONTEND FrontEnd, UpdateRect.Right = max(UpdateRect.Right, Buff->CursorPosition.X); Ptr = ConioCoordToPointer(Buff, Buff->CursorPosition.X, Buff->CursorPosition.Y); + + if (bCJK && Buffer[i] >= 0x80 && mk_wcwidth_cjk(Buffer[i]) == 2) + { + /* Buffer[i] is a fullwidth character */ + /* FIXME */ + } + Ptr->Char.UnicodeChar = Buffer[i]; if (Attrib) Ptr->Attributes = Buff->ScreenDefaultAttrib; diff --git a/win32ss/user/winsrv/consrv/frontends/wcwidth.c b/win32ss/user/winsrv/consrv/frontends/wcwidth.c new file mode 100644 index 00000000000..61e822ad679 --- /dev/null +++ b/win32ss/user/winsrv/consrv/frontends/wcwidth.c @@ -0,0 +1,309 @@ +/* + * This is an implementation of wcwidth() and wcswidth() (defined in + * IEEE Std 1002.1-2001) for Unicode. + * + *
http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html
+ *
http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html
+ * + * In fixed-width output devices, Latin characters all occupy a single + * "cell" position of equal width, whereas ideographic CJK characters + * occupy two such cells. Interoperability between terminal-line + * applications and (teletype-style) character terminals using the + * UTF-8 encoding requires agreement on which character should advance + * the cursor by how many cell positions. No established formal + * standards exist at present on which Unicode character shall occupy + * how many cell positions on character terminals. These routines are + * a first attempt of defining such behavior based on simple rules + * applied to data provided by the Unicode Consortium. + * + * For some graphical characters, the Unicode standard explicitly + * defines a character-cell width via the definition of the East Asian + * FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes. + * In all these cases, there is no ambiguity about which width a + * terminal shall use. For characters in the East Asian Ambiguous (A) + * class, the width choice depends purely on a preference of backward + * compatibility with either historic CJK or Western practice. + * Choosing single-width for these characters is easy to justify as + * the appropriate long-term solution, as the CJK practice of + * displaying these characters as double-width comes from historic + * implementation simplicity (8-bit encoded characters were displayed + * single-width and 16-bit ones double-width, even for Greek, + * Cyrillic, etc.) and not any typographic considerations. + * + * Much less clear is the choice of width for the Not East Asian + * (Neutral) class. Existing practice does not dictate a width for any + * of these characters. It would nevertheless make sense + * typographically to allocate two character cells to characters such + * as for instance EM SPACE or VOLUME INTEGRAL, which cannot be + * represented adequately with a single-width glyph. The following + * routines at present merely assign a single-cell width to all + * neutral characters, in the interest of simplicity. This is not + * entirely satisfactory and should be reconsidered before + * establishing a formal standard in this area. At the moment, the + * decision which Not East Asian (Neutral) characters should be + * represented by double-width glyphs cannot yet be answered by + * applying a simple rule from the Unicode database content. Setting + * up a proper standard for the behavior of UTF-8 character terminals + * will require a careful analysis not only of each Unicode character, + * but also of each presentation form, something the author of these + * routines has avoided to do so far. + * + *
http://www.unicode.org/unicode/reports/tr11/
+ * + * Markus Kuhn -- 2007-05-26 (Unicode 5.0) + * + * Permission to use, copy, modify, and distribute this software + * for any purpose and without fee is hereby granted. The author + * disclaims all warranties with regard to this software. + * + * Latest version:
http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
+ */ + +#include <wchar.h> + +struct interval { + int first; + int last; +}; + +/* auxiliary function for binary search in interval table */ +static int bisearch(wchar_t ucs, const struct interval *table, int max) { + int min = 0; + int mid; + + if (ucs < table[0].first || ucs > table[max].last) + return 0; + while (max >= min) { + mid = (min + max) / 2; + if (ucs > table[mid].last) + min = mid + 1; + else if (ucs < table[mid].first) + max = mid - 1; + else + return 1; + } + + return 0; +} + + +/* The following two functions define the column width of an ISO 10646 + * character as follows: + * + * - The null character (U+0000) has a column width of 0. + * + * - Other C0/C1 control characters and DEL will lead to a return + * value of -1. + * + * - Non-spacing and enclosing combining characters (general + * category code Mn or Me in the Unicode database) have a + * column width of 0. + * + * - SOFT HYPHEN (U+00AD) has a column width of 1. + * + * - Other format characters (general category code Cf in the Unicode + * database) and ZERO WIDTH SPACE (U+200B) have a column width of 0. + * + * - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF) + * have a column width of 0. + * + * - Spacing characters in the East Asian Wide (W) or East Asian + * Full-width (F) category as defined in Unicode Technical + * Report #11 have a column width of 2. + * + * - All remaining characters (including all printable + * ISO 8859-1 and WGL4 characters, Unicode control characters, + * etc.) have a column width of 1. + * + * This implementation assumes that wchar_t characters are encoded + * in ISO 10646. + */ + +int mk_wcwidth(wchar_t ucs) +{ + /* sorted list of non-overlapping intervals of non-spacing characters */ + /* generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c" */ + static const struct interval combining[] = { + { 0x0300, 0x036F }, { 0x0483, 0x0486 }, { 0x0488, 0x0489 }, + { 0x0591, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 }, + { 0x05C4, 0x05C5 }, { 0x05C7, 0x05C7 }, { 0x0600, 0x0603 }, + { 0x0610, 0x0615 }, { 0x064B, 0x065E }, { 0x0670, 0x0670 }, + { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED }, + { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A }, + { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0901, 0x0902 }, + { 0x093C, 0x093C }, { 0x0941, 0x0948 }, { 0x094D, 0x094D }, + { 0x0951, 0x0954 }, { 0x0962, 0x0963 }, { 0x0981, 0x0981 }, + { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD }, + { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C }, + { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D }, + { 0x0A70, 0x0A71 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC }, + { 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD }, + { 0x0AE2, 0x0AE3 }, { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C }, + { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 }, { 0x0B4D, 0x0B4D }, + { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 }, + { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 }, + { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0CBC, 0x0CBC }, + { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD }, + { 0x0CE2, 0x0CE3 }, { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D }, + { 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 }, + { 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E }, + { 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC }, + { 0x0EC8, 0x0ECD }, { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 }, + { 0x0F37, 0x0F37 }, { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E }, + { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 }, + { 0x0F99, 0x0FBC }, { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 }, + { 0x1032, 0x1032 }, { 0x1036, 0x1037 }, { 0x1039, 0x1039 }, + { 0x1058, 0x1059 }, { 0x1160, 0x11FF }, { 0x135F, 0x135F }, + { 0x1712, 0x1714 }, { 0x1732, 0x1734 }, { 0x1752, 0x1753 }, + { 0x1772, 0x1773 }, { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD }, + { 0x17C6, 0x17C6 }, { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD }, + { 0x180B, 0x180D }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 }, + { 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B }, + { 0x1A17, 0x1A18 }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 }, + { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 }, + { 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF }, + { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 }, + { 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F }, + { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, + { 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F }, + { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB }, + { 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F }, + { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x1D167, 0x1D169 }, + { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, { 0x1D1AA, 0x1D1AD }, + { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 }, { 0xE0020, 0xE007F }, + { 0xE0100, 0xE01EF } + }; + + /* test for 8-bit control characters */ + if (ucs == 0) + return 0; + if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0)) + return -1; + + /* binary search in table of non-spacing characters */ + if (bisearch(ucs, combining, + sizeof(combining) / sizeof(struct interval) - 1)) + return 0; + + /* if we arrive here, ucs is not a combining or C0/C1 control character */ + + return 1 + + (ucs >= 0x1100 && + (ucs <= 0x115f || /* Hangul Jamo init. consonants */ + ucs == 0x2329 || ucs == 0x232a || + (ucs >= 0x2e80 && ucs <= 0xa4cf && + ucs != 0x303f) || /* CJK ... Yi */ + (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */ + (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */ + (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */ + (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */ + (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */ + (ucs >= 0xffe0 && ucs <= 0xffe6) || + (ucs >= 0x20000 && ucs <= 0x2fffd) || + (ucs >= 0x30000 && ucs <= 0x3fffd))); +} + + +int mk_wcswidth(const wchar_t *pwcs, size_t n) +{ + int w, width = 0; + + for (;*pwcs && n-- > 0; pwcs++) + if ((w = mk_wcwidth(*pwcs)) < 0) + return -1; + else + width += w; + + return width; +} + + +/* + * The following functions are the same as mk_wcwidth() and + * mk_wcswidth(), except that spacing characters in the East Asian + * Ambiguous (A) category as defined in Unicode Technical Report #11 + * have a column width of 2. This variant might be useful for users of + * CJK legacy encodings who want to migrate to UCS without changing + * the traditional terminal character-width behaviour. It is not + * otherwise recommended for general use. + */ +int mk_wcwidth_cjk(wchar_t ucs) +{ + /* sorted list of non-overlapping intervals of East Asian Ambiguous + * characters, generated by "uniset +WIDTH-A -cat=Me -cat=Mn -cat=Cf c" */ + static const struct interval ambiguous[] = { + { 0x00A1, 0x00A1 }, { 0x00A4, 0x00A4 }, { 0x00A7, 0x00A8 }, + { 0x00AA, 0x00AA }, { 0x00AE, 0x00AE }, { 0x00B0, 0x00B4 }, + { 0x00B6, 0x00BA }, { 0x00BC, 0x00BF }, { 0x00C6, 0x00C6 }, + { 0x00D0, 0x00D0 }, { 0x00D7, 0x00D8 }, { 0x00DE, 0x00E1 }, + { 0x00E6, 0x00E6 }, { 0x00E8, 0x00EA }, { 0x00EC, 0x00ED }, + { 0x00F0, 0x00F0 }, { 0x00F2, 0x00F3 }, { 0x00F7, 0x00FA }, + { 0x00FC, 0x00FC }, { 0x00FE, 0x00FE }, { 0x0101, 0x0101 }, + { 0x0111, 0x0111 }, { 0x0113, 0x0113 }, { 0x011B, 0x011B }, + { 0x0126, 0x0127 }, { 0x012B, 0x012B }, { 0x0131, 0x0133 }, + { 0x0138, 0x0138 }, { 0x013F, 0x0142 }, { 0x0144, 0x0144 }, + { 0x0148, 0x014B }, { 0x014D, 0x014D }, { 0x0152, 0x0153 }, + { 0x0166, 0x0167 }, { 0x016B, 0x016B }, { 0x01CE, 0x01CE }, + { 0x01D0, 0x01D0 }, { 0x01D2, 0x01D2 }, { 0x01D4, 0x01D4 }, + { 0x01D6, 0x01D6 }, { 0x01D8, 0x01D8 }, { 0x01DA, 0x01DA }, + { 0x01DC, 0x01DC }, { 0x0251, 0x0251 }, { 0x0261, 0x0261 }, + { 0x02C4, 0x02C4 }, { 0x02C7, 0x02C7 }, { 0x02C9, 0x02CB }, + { 0x02CD, 0x02CD }, { 0x02D0, 0x02D0 }, { 0x02D8, 0x02DB }, + { 0x02DD, 0x02DD }, { 0x02DF, 0x02DF }, { 0x0391, 0x03A1 }, + { 0x03A3, 0x03A9 }, { 0x03B1, 0x03C1 }, { 0x03C3, 0x03C9 }, + { 0x0401, 0x0401 }, { 0x0410, 0x044F }, { 0x0451, 0x0451 }, + { 0x2010, 0x2010 }, { 0x2013, 0x2016 }, { 0x2018, 0x2019 }, + { 0x201C, 0x201D }, { 0x2020, 0x2022 }, { 0x2024, 0x2027 }, + { 0x2030, 0x2030 }, { 0x2032, 0x2033 }, { 0x2035, 0x2035 }, + { 0x203B, 0x203B }, { 0x203E, 0x203E }, { 0x2074, 0x2074 }, + { 0x207F, 0x207F }, { 0x2081, 0x2084 }, { 0x20AC, 0x20AC }, + { 0x2103, 0x2103 }, { 0x2105, 0x2105 }, { 0x2109, 0x2109 }, + { 0x2113, 0x2113 }, { 0x2116, 0x2116 }, { 0x2121, 0x2122 }, + { 0x2126, 0x2126 }, { 0x212B, 0x212B }, { 0x2153, 0x2154 }, + { 0x215B, 0x215E }, { 0x2160, 0x216B }, { 0x2170, 0x2179 }, + { 0x2190, 0x2199 }, { 0x21B8, 0x21B9 }, { 0x21D2, 0x21D2 }, + { 0x21D4, 0x21D4 }, { 0x21E7, 0x21E7 }, { 0x2200, 0x2200 }, + { 0x2202, 0x2203 }, { 0x2207, 0x2208 }, { 0x220B, 0x220B }, + { 0x220F, 0x220F }, { 0x2211, 0x2211 }, { 0x2215, 0x2215 }, + { 0x221A, 0x221A }, { 0x221D, 0x2220 }, { 0x2223, 0x2223 }, + { 0x2225, 0x2225 }, { 0x2227, 0x222C }, { 0x222E, 0x222E }, + { 0x2234, 0x2237 }, { 0x223C, 0x223D }, { 0x2248, 0x2248 }, + { 0x224C, 0x224C }, { 0x2252, 0x2252 }, { 0x2260, 0x2261 }, + { 0x2264, 0x2267 }, { 0x226A, 0x226B }, { 0x226E, 0x226F }, + { 0x2282, 0x2283 }, { 0x2286, 0x2287 }, { 0x2295, 0x2295 }, + { 0x2299, 0x2299 }, { 0x22A5, 0x22A5 }, { 0x22BF, 0x22BF }, + { 0x2312, 0x2312 }, { 0x2460, 0x24E9 }, { 0x24EB, 0x254B }, + { 0x2550, 0x2573 }, { 0x2580, 0x258F }, { 0x2592, 0x2595 }, + { 0x25A0, 0x25A1 }, { 0x25A3, 0x25A9 }, { 0x25B2, 0x25B3 }, + { 0x25B6, 0x25B7 }, { 0x25BC, 0x25BD }, { 0x25C0, 0x25C1 }, + { 0x25C6, 0x25C8 }, { 0x25CB, 0x25CB }, { 0x25CE, 0x25D1 }, + { 0x25E2, 0x25E5 }, { 0x25EF, 0x25EF }, { 0x2605, 0x2606 }, + { 0x2609, 0x2609 }, { 0x260E, 0x260F }, { 0x2614, 0x2615 }, + { 0x261C, 0x261C }, { 0x261E, 0x261E }, { 0x2640, 0x2640 }, + { 0x2642, 0x2642 }, { 0x2660, 0x2661 }, { 0x2663, 0x2665 }, + { 0x2667, 0x266A }, { 0x266C, 0x266D }, { 0x266F, 0x266F }, + { 0x273D, 0x273D }, { 0x2776, 0x277F }, { 0xE000, 0xF8FF }, + { 0xFFFD, 0xFFFD }, { 0xF0000, 0xFFFFD }, { 0x100000, 0x10FFFD } + }; + + /* binary search in table of non-spacing characters */ + if (bisearch(ucs, ambiguous, + sizeof(ambiguous) / sizeof(struct interval) - 1)) + return 2; + + return mk_wcwidth(ucs); +} + + +int mk_wcswidth_cjk(const wchar_t *pwcs, size_t n) +{ + int w, width = 0; + + for (;*pwcs && n-- > 0; pwcs++) + if ((w = mk_wcwidth_cjk(*pwcs)) < 0) + return -1; + else + width += w; + + return width; +}
4 years, 12 months
1
0
0
0
[reactos] 01/01: [WIN32SS][NTGDI][FREETYPE] Add ASSERT(pOS2); to FillTM (#2170)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=fb7ac93dd167e85a918b4…
commit fb7ac93dd167e85a918b4254440bc2314d295610 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Wed Dec 25 18:27:44 2019 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Wed Dec 25 18:27:44 2019 +0900 [WIN32SS][NTGDI][FREETYPE] Add ASSERT(pOS2); to FillTM (#2170) I had used a static analyzer cppcheck to improve the code. This analyzer suggested NULL check for this code. --- win32ss/gdi/ntgdi/freetype.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/win32ss/gdi/ntgdi/freetype.c b/win32ss/gdi/ntgdi/freetype.c index 2a019dd70f8..e94534b2b5e 100644 --- a/win32ss/gdi/ntgdi/freetype.c +++ b/win32ss/gdi/ntgdi/freetype.c @@ -2272,6 +2272,10 @@ FillTM(TEXTMETRICW *TM, PFONTGDI FontGDI, return; } + ASSERT(pOS2); + if (!pOS2) + return; + if ((FT_Short)pOS2->usWinAscent + (FT_Short)pOS2->usWinDescent == 0) { Ascent = pHori->Ascender;
4 years, 12 months
1
0
0
0
[reactos] 01/01: [BOOTDATA][NTUSER] Fix some system parameters (#2162)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9ce12f0b4cd571e212102…
commit 9ce12f0b4cd571e2121027511900ff0953120bc6 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Wed Dec 25 18:12:43 2019 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Wed Dec 25 18:12:43 2019 +0900 [BOOTDATA][NTUSER] Fix some system parameters (#2162) CORE-16547 - Add IconTitleWrap registry value. - Modify gspv.dwMenuShowDelay initial value. - Initialize gspv.bFastTaskSwitch as TRUE. --- boot/bootdata/hivedef.inf | 1 + win32ss/user/ntuser/sysparams.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/boot/bootdata/hivedef.inf b/boot/bootdata/hivedef.inf index dc322952a1f..cd08b15d3ff 100644 --- a/boot/bootdata/hivedef.inf +++ b/boot/bootdata/hivedef.inf @@ -94,6 +94,7 @@ HKCU,"Control Panel\Desktop\WindowMetrics","MenuHeight",2,"18" HKCU,"Control Panel\Desktop\WindowMetrics","BorderWidth",2,"1" HKCU,"Control Panel\Desktop\WindowMetrics","Shell Icon Size",2,"32" HKCU,"Control Panel\Desktop\WindowMetrics","IconSpacing",2,"75" +HKCU,"Control Panel\Desktop\WindowMetrics","IconTitleWrap",2,"1" HKCU,"Control Panel\Desktop\WindowMetrics","IconVerticalspacing",2,"75" HKCU, "Control Panel\Desktop\WindowMetrics","CaptionFont",0x00000003,f5,ff,ff,ff,00,00,00,\ 00,00,00,00,00,00,00,00,00,bc,02,00,00,00,00,00,01,00,00,00,00,54,00,61,00,68,00,6f,00,6d,\ diff --git a/win32ss/user/ntuser/sysparams.c b/win32ss/user/ntuser/sysparams.c index 4dd882987fd..48fc5dd2085 100644 --- a/win32ss/user/ntuser/sysparams.c +++ b/win32ss/user/ntuser/sysparams.c @@ -152,7 +152,7 @@ SpiLoadTimeOut(VOID) { return 0; } - if (wcslen(szApplicationName) == 0) return 0; + if (szApplicationName[0] == 0) return 0; return SpiLoadInt(KEY_DESKTOP, VAL_SCRTO, 600); } @@ -280,7 +280,7 @@ SpiUpdatePerUserSystemParameters(VOID) gspv.im.cbSize = sizeof(ICONMETRICSW); gspv.im.iHorzSpacing = SpiLoadMetric(VAL_ICONSPC, 64); gspv.im.iVertSpacing = SpiLoadMetric(VAL_ICONVSPC, 64); - gspv.im.iTitleWrap = SpiLoadMetric(VAL_ITWRAP, 0); + gspv.im.iTitleWrap = SpiLoadMetric(VAL_ITWRAP, 1); SpiLoadFont(&gspv.im.lfFont, L"IconFont", &lf1); /* Load desktop settings */ @@ -306,7 +306,7 @@ SpiUpdatePerUserSystemParameters(VOID) gspv.uiFocusBorderWidth = 1; gspv.uiFocusBorderHeight = 1; gspv.bMenuDropAlign = 0; - gspv.dwMenuShowDelay = 100; + gspv.dwMenuShowDelay = SpiLoadInt(KEY_DESKTOP, L"MenuShowDelay", 400); gspv.dwForegroundFlashCount = 3; gspv.iScrSaverTimeout = SpiLoadTimeOut(); @@ -316,6 +316,8 @@ SpiUpdatePerUserSystemParameters(VOID) gspv.bScrSaverSecure = FALSE; #endif + gspv.bFastTaskSwitch = TRUE; + gspv.accesstimeout.cbSize = sizeof(ACCESSTIMEOUT); gspv.filterkeys.cbSize = sizeof(FILTERKEYS); gspv.togglekeys.cbSize = sizeof(TOGGLEKEYS);
4 years, 12 months
1
0
0
0
[reactos] 01/01: [SHELL32_APITEST] Add Regression Test for ShellExecuteW(). (#2166)
by Doug Lyons
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=76aaded77d2e5daa8b713…
commit 76aaded77d2e5daa8b713243ca33baa949783207 Author: Doug Lyons <douglyons(a)douglyons.com> AuthorDate: Wed Dec 25 02:15:39 2019 -0600 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Wed Dec 25 17:15:39 2019 +0900 [SHELL32_APITEST] Add Regression Test for ShellExecuteW(). (#2166) Add a testcase for ShellExecuteW regression. This test also shows the results of ShellExecuteW's return value. Addendum to PR#1854. CORE-12266 --- modules/rostests/apitests/shell32/CMakeLists.txt | 1 + .../rostests/apitests/shell32/ShellExecuteW.cpp | 185 +++++++++++++++++++++ modules/rostests/apitests/shell32/testlist.c | 2 + 3 files changed, 188 insertions(+) diff --git a/modules/rostests/apitests/shell32/CMakeLists.txt b/modules/rostests/apitests/shell32/CMakeLists.txt index 22dbadf9dfb..e467b5cc4e5 100644 --- a/modules/rostests/apitests/shell32/CMakeLists.txt +++ b/modules/rostests/apitests/shell32/CMakeLists.txt @@ -27,6 +27,7 @@ list(APPEND SOURCE SHParseDisplayName.cpp ShellExecCmdLine.cpp ShellExecuteEx.cpp + ShellExecuteW.cpp ShellState.cpp SHLimitInputEdit.cpp menu.cpp diff --git a/modules/rostests/apitests/shell32/ShellExecuteW.cpp b/modules/rostests/apitests/shell32/ShellExecuteW.cpp new file mode 100644 index 00000000000..6c005380bf3 --- /dev/null +++ b/modules/rostests/apitests/shell32/ShellExecuteW.cpp @@ -0,0 +1,185 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPLv2+ - See COPYING in the top level directory + * PURPOSE: Testing ShellExecuteW + * PROGRAMMER: Doug Lyons <douglyons(a)douglyons.com> + */ + +#include "shelltest.h" +#include <stdio.h> +#include <winbase.h> + +static +VOID +TestShellExecuteW() +{ + HINSTANCE hInstance; + INT retval; + HWND hWnd; + const WCHAR *Name = L"ShellExecuteW"; + WCHAR WindowsDirectory[MAX_PATH]; + BOOL IsReactOS; + + /* Check if we are running under ReactOS from the SystemRoot directory */ + if(!GetWindowsDirectoryW(WindowsDirectory, MAX_PATH)) + printf("GetWindowsDirectoryW failed\n"); + + IsReactOS = !_wcsnicmp(&WindowsDirectory[3], L"reactos", 7); + + printf("OSVendor %s ReactOS.\n", IsReactOS ? "is" : "is not"); + +// ShellExecuteW(handle, "open", <fully_qualified_path_to_executable>, <parameters>, NULL, SW_SHOWNORMAL); + + hInstance = ShellExecuteW(NULL, L"open", L"rundll32.exe", L"shell32.dll,Control_RunDLL desk.cpl", + NULL, SW_SHOWNORMAL); + retval = (UINT_PTR) hInstance; + + printf("Return Value for Open Control Panel is '%d'.\n", retval); + + ok(retval > 31, "ShellExecuteEx lpFile %s failed. Error: %lu\n", + wine_dbgstr_w(Name), GetLastError()); + + if (hInstance) + { + LPCWSTR lpWinTitle = L"Display Properties"; + Sleep(1000); + hWnd = FindWindowW(NULL, lpWinTitle); + PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0); // Terminate Window + } +// End of test #1 - Open Control Panel + + +// ShellExecuteW(handle, "open", <fully_qualified_path_to_executable>, NULL, NULL, SW_SHOWNORMAL); + + hInstance = ShellExecuteW(NULL, L"open", L"notepad.exe", NULL, NULL, SW_SHOWNORMAL); + retval = (UINT_PTR) hInstance; + + printf("Return Value for Open notepad.exe is '%d'.\n", retval); + + ok(retval > 31, "ShellExecuteEx lpFile %s failed. Error: %lu\n", + wine_dbgstr_w(Name), GetLastError()); + + if (hInstance) + { + LPCWSTR lpWinClass = L"Notepad"; + LPCWSTR lpWinTitle = L"Untitled - Notepad"; + Sleep(1000); + hWnd = FindWindowW(lpWinClass, lpWinTitle); + PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0); // Terminate Window + } +// End of test #2 - Open notepad.exe + + +// ShellExecuteW(handle, NULL, <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL); + + if(IsReactOS) + hInstance = ShellExecuteW(NULL, NULL, L"C:\\ReactOS", NULL, + NULL, SW_SHOWNORMAL); + else + hInstance = ShellExecuteW(NULL, NULL, L"C:\\Windows", NULL, + NULL, SW_SHOWNORMAL); + + retval = (UINT_PTR) hInstance; + + printf("Return Value for Open %s is '%d'.\n", IsReactOS ? "C:\\ReactOS" : "C:\\Windows", retval); + + ok(retval > 31, "ShellExecuteEx lpFile %s failed. Error: %lu\n", + wine_dbgstr_w(Name), GetLastError()); + + if (hInstance) + { + LPCWSTR lpWinClass = L"CabinetWClass"; + LPCWSTR lpWinTitleWindows = L"C:\\Windows"; + LPCWSTR lpWinTitleReactOS = L"C:\\ReactOS"; + + Sleep(1000); + if (IsReactOS) + hWnd = FindWindowW(lpWinClass, lpWinTitleReactOS); + else + hWnd = FindWindowW(lpWinClass, lpWinTitleWindows); + PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0); // Terminate Window + } +// End of test #3 - Open C:\Windows + + +// ShellExecuteW(handle, "open", <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL); + + if(IsReactOS) + hInstance = ShellExecuteW(NULL, L"open", L"C:\\ReactOS\\system32", NULL, + NULL, SW_SHOWNORMAL); + else + hInstance = ShellExecuteW(NULL, L"open", L"C:\\Windows\\system32", NULL, + NULL, SW_SHOWNORMAL); + + retval = (UINT_PTR) hInstance; + + printf("Return Value for C:\\...\\system32 is '%d'.\n", retval); + + ok(retval > 31, "ShellExecuteEx lpFile %s failed. Error: %lu\n", + wine_dbgstr_w(Name), GetLastError()); + + if (hInstance) + { + LPCWSTR lpWinClass = L"CabinetWClass"; + LPCWSTR lpWinTitle = L"C:\\Windows\\system32"; + Sleep(1000); + hWnd = FindWindowW(lpWinClass, lpWinTitle); + PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0); // Terminate Window + } +// End of test #4 - Open C:\Windows\system32 + + +// ShellExecuteW(handle, "explore", <fully_qualified_path_to_folder>, NULL, NULL, SW_SHOWNORMAL); + + hInstance = ShellExecuteW(NULL, L"explore", L"C:\\", NULL, NULL, SW_SHOWNORMAL); + retval = (UINT_PTR) hInstance; + + printf("Return Value for explore c:\\ is '%d'.\n", retval); + + ok(retval > 31, "ShellExecuteEx lpFile %s failed. Error: %lu\n", + wine_dbgstr_w(Name), GetLastError()); + + if (hInstance) + { + LPCWSTR lpWinClass = L"ExploreWClass"; + LPCWSTR lpWinTitle = L"C:\\"; + Sleep(1000); + hWnd = FindWindowW(lpWinClass, lpWinTitle); + PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0); // Terminate Window + } +// End of test #5 - explore C: + + +// ShellExecuteW(handle, "find", <fully_qualified_path_to_folder>, NULL, NULL, 0); + + hInstance = ShellExecuteW(NULL, L"find", L"C:\\", NULL, NULL, SW_SHOWNORMAL); + retval = (UINT_PTR) hInstance; + + printf("Return Value for find is '%d'.\n", retval); + + ok(retval > 31, "ShellExecuteEx lpFile %s failed. Error: %lu\n", + wine_dbgstr_w(Name), GetLastError()); + + if (hInstance) + { + LPCWSTR lpWinClass = L"CabinetWClass"; + LPCWSTR lpWinTitle = L"Search Results"; + Sleep(1000); + hWnd = FindWindowW(lpWinClass, lpWinTitle); + PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0); // Terminate Window + } +// End of test #6 - find +} + +START_TEST(ShellExecuteW) +{ + TestShellExecuteW(); +} + +// Windows Server 2003 and Windows XP SP3 return values (Win 7 returns 42 in all cases) +// ShellExecuteW(NULL, L"open", L"rundll32.exe", L"shell32.dll,Control_RunDLL desk.cpl", NULL, SW_SHOWNORMAL) = 42 +// ShellExecuteW(NULL, L"open", L"notepad.exe", NULL, NULL, SW_SHOWNORMAL) = 42 +// ShellExecuteW(NULL, NULL, L"C:\\Windows", NULL, NULL, SW_SHOWNORMAL) = 33 +// ShellExecuteW(NULL, L"open", L"C:\\Windows\\system32", NULL, NULL, SW_SHOWNORMAL) = 33 +// ShellExecuteW(NULL, L"explore", L"C:\\", NULL, NULL, SW_SHOWNORMAL) = 33 +// ShellExecuteW(NULL, L"find", L"C:\\", NULL, NULL, SW_SHOWNORMAL) = 33 \ No newline at end of file diff --git a/modules/rostests/apitests/shell32/testlist.c b/modules/rostests/apitests/shell32/testlist.c index 18939f998e3..add2d94af93 100644 --- a/modules/rostests/apitests/shell32/testlist.c +++ b/modules/rostests/apitests/shell32/testlist.c @@ -21,6 +21,7 @@ extern void func_SHCreateDataObject(void); extern void func_SHCreateFileExtractIconW(void); extern void func_ShellExecCmdLine(void); extern void func_ShellExecuteEx(void); +extern void func_ShellExecuteW(void); extern void func_ShellState(void); extern void func_SHLimitInputEdit(void); extern void func_SHParseDisplayName(void); @@ -45,6 +46,7 @@ const struct test winetest_testlist[] = { "SHCreateFileExtractIconW", func_SHCreateFileExtractIconW }, { "ShellExecCmdLine", func_ShellExecCmdLine }, { "ShellExecuteEx", func_ShellExecuteEx }, + { "ShellExecuteW", func_ShellExecuteW }, { "ShellState", func_ShellState }, { "SHLimitInputEdit", func_SHLimitInputEdit }, { "SHParseDisplayName", func_SHParseDisplayName },
4 years, 12 months
1
0
0
0
[reactos] 01/01: [MSPAINT] Fix memory leak of SelectionModel (#2169)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3fa95ab912fc38e44d88c…
commit 3fa95ab912fc38e44d88c7a5bce90b0ea9cff697 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Wed Dec 25 15:46:29 2019 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Wed Dec 25 15:46:29 2019 +0900 [MSPAINT] Fix memory leak of SelectionModel (#2169) - Initialize all members in SelectionModel's ctor. - Add SelectionModel's dtor. --- base/applications/mspaint/selectionmodel.cpp | 24 +++++++++++++++++++++--- base/applications/mspaint/selectionmodel.h | 6 ++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/base/applications/mspaint/selectionmodel.cpp b/base/applications/mspaint/selectionmodel.cpp index a476594ccc0..53f1395ca0a 100644 --- a/base/applications/mspaint/selectionmodel.cpp +++ b/base/applications/mspaint/selectionmodel.cpp @@ -4,6 +4,7 @@ * FILE: base/applications/mspaint/selectionmodel.cpp * PURPOSE: Keep track of selection parameters, notify listeners * PROGRAMMERS: Benedikt Freisen + * Katayama Hirofumi MZ */ /* INCLUDES *********************************************************/ @@ -13,11 +14,28 @@ /* FUNCTIONS ********************************************************/ SelectionModel::SelectionModel() + : m_hDC(CreateCompatibleDC(NULL)) + , m_hBm(NULL) + , m_hMask(NULL) + , m_ptStack(NULL) + , m_iPtSP(0) { - m_ptStack = NULL; - m_iPtSP = 0; + SetRectEmpty(&m_rcSrc); + SetRectEmpty(&m_rcDest); +} - m_hDC = CreateCompatibleDC(NULL); +SelectionModel::~SelectionModel() +{ + DeleteDC(m_hDC); + ResetPtStack(); + if (m_hBm) + { + DeleteObject(m_hBm); + } + if (m_hMask) + { + DeleteObject(m_hMask); + } } void SelectionModel::ResetPtStack() diff --git a/base/applications/mspaint/selectionmodel.h b/base/applications/mspaint/selectionmodel.h index 297d70b161f..c52c743a7af 100644 --- a/base/applications/mspaint/selectionmodel.h +++ b/base/applications/mspaint/selectionmodel.h @@ -4,6 +4,7 @@ * FILE: base/applications/mspaint/selectionmodel.h * PURPOSE: Keep track of selection parameters, notify listeners * PROGRAMMERS: Benedikt Freisen + * Katayama Hirofumi MZ */ #pragma once @@ -39,6 +40,7 @@ private: public: SelectionModel(); + ~SelectionModel(); void ResetPtStack(); void PushToPtStack(LONG x, LONG y); void CalculateBoundingBoxAndContents(HDC hDCImage); @@ -64,4 +66,8 @@ public: LONG GetDestRectLeft(); LONG GetDestRectTop(); void DrawTextToolText(HDC hDCImage, COLORREF crFg, COLORREF crBg, BOOL bBgTransparent = FALSE); + +private: + SelectionModel(const SelectionModel&); + SelectionModel& operator=(const SelectionModel&); };
4 years, 12 months
1
0
0
0
[reactos] 01/01: [ACPPAGE] Enlarge the "Edit the Compatibility Modes" button for some languages. CORE-16573
by Hermès Bélusca-Maïto
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1d1446394727e7efebd5f…
commit 1d1446394727e7efebd5f09f9ba3561fd6f82ab6 Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org> AuthorDate: Tue Dec 24 21:22:04 2019 +0100 Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org> CommitDate: Tue Dec 24 21:22:04 2019 +0100 [ACPPAGE] Enlarge the "Edit the Compatibility Modes" button for some languages. CORE-16573 --- dll/shellext/acppage/ACPPage.rc | 2 +- dll/shellext/acppage/lang/cs-CZ.rc | 2 +- dll/shellext/acppage/lang/es-ES.rc | 2 +- dll/shellext/acppage/lang/eu-ES.rc | 2 +- dll/shellext/acppage/lang/fr-FR.rc | 2 +- dll/shellext/acppage/lang/it-IT.rc | 2 +- dll/shellext/acppage/lang/ro-RO.rc | 2 +- dll/shellext/acppage/lang/sk-SK.rc | 2 +- dll/shellext/acppage/lang/sq-AL.rc | 2 +- dll/shellext/acppage/lang/sv-SE.rc | 2 +- dll/shellext/acppage/lang/tr-TR.rc | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dll/shellext/acppage/ACPPage.rc b/dll/shellext/acppage/ACPPage.rc index 44b0e77716e..3c741cd5115 100644 --- a/dll/shellext/acppage/ACPPage.rc +++ b/dll/shellext/acppage/ACPPage.rc @@ -87,4 +87,4 @@ IDR_ACPPAGE REGISTRY "res/acppage.rgs" #endif #ifdef LANGUAGE_ZH_TW #include "lang/zh-TW.rc" -#endif \ No newline at end of file +#endif diff --git a/dll/shellext/acppage/lang/cs-CZ.rc b/dll/shellext/acppage/lang/cs-CZ.rc index 490ed518e41..eb40c9d7a74 100644 --- a/dll/shellext/acppage/lang/cs-CZ.rc +++ b/dll/shellext/acppage/lang/cs-CZ.rc @@ -18,7 +18,7 @@ BEGIN CHECKBOX "Spustit v 256 barvách", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Spustit v rozlišení 640x480", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Vypnout vizuální motivy", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "Up&ravit režimy kompatibility...", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "Up&ravit režimy kompatibility...", IDC_EDITCOMPATIBILITYMODES, 112, 167, 105, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "Další informace o <A>kompatibilitě programů</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/es-ES.rc b/dll/shellext/acppage/lang/es-ES.rc index 24f79c51bed..b175c3bcd2d 100644 --- a/dll/shellext/acppage/lang/es-ES.rc +++ b/dll/shellext/acppage/lang/es-ES.rc @@ -21,7 +21,7 @@ BEGIN CHECKBOX "Ejecutar con 256 colores", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Ejecutar con resolución de pantalla de 640x480", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Deshabilitar temas visuales", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "E&ditar modos de compatibilidad...", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "E&ditar modos de compatibilidad...", IDC_EDITCOMPATIBILITYMODES, 102, 167, 115, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "Saber más acerca de <A>compatibilidad de programas</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/eu-ES.rc b/dll/shellext/acppage/lang/eu-ES.rc index 4a919ef95cf..df18702f752 100644 --- a/dll/shellext/acppage/lang/eu-ES.rc +++ b/dll/shellext/acppage/lang/eu-ES.rc @@ -13,7 +13,7 @@ BEGIN CHECKBOX "Exekutatu 256 kolorerekin", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "640x480 pantaila erresoluzioarekin exekutatu", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Ezgaitu gai bisualak", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "Konpatibilitate moduan editatu...", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "Konpatibilitate moduan editatu...", IDC_EDITCOMPATIBILITYMODES, 102, 167, 115, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "<A> Programen konpatibilitateari buruz gehiago</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/fr-FR.rc b/dll/shellext/acppage/lang/fr-FR.rc index 752a0d8d9be..1d03deda00f 100644 --- a/dll/shellext/acppage/lang/fr-FR.rc +++ b/dll/shellext/acppage/lang/fr-FR.rc @@ -13,7 +13,7 @@ BEGIN CHECKBOX "Lancer en 256 colors", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Lancer en résolution d'écran 640x480 ", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Désactiver les thèmes visuels", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "É&diter les Modes de compatibilité", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "É&diter les Modes de compatibilité", IDC_EDITCOMPATIBILITYMODES, 102, 167, 115, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "En savoir plus sur <A>la compatibilité des programmes</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/it-IT.rc b/dll/shellext/acppage/lang/it-IT.rc index 0714762686a..e89e809cc81 100644 --- a/dll/shellext/acppage/lang/it-IT.rc +++ b/dll/shellext/acppage/lang/it-IT.rc @@ -15,7 +15,7 @@ BEGIN CHECKBOX "Esegui con 256 colori", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Esegui con schermo a risoluzione 640x480", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Disabilita gli schemi di visualizzazione", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "Modifica la modalità compatibile...", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "Modifica la modalità compatibile...", IDC_EDITCOMPATIBILITYMODES, 102, 167, 115, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "Ulteriori informazioni sulla <A>compatibilità dei programmi</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/ro-RO.rc b/dll/shellext/acppage/lang/ro-RO.rc index 30a7e208249..4d0f713e9ac 100644 --- a/dll/shellext/acppage/lang/ro-RO.rc +++ b/dll/shellext/acppage/lang/ro-RO.rc @@ -15,7 +15,7 @@ BEGIN CHECKBOX "Lansează în 256 culori", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Lansează în rezoluție de 640x480 pixeli", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Dezactivează temele vizuale", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "E&ditează modurile de compatibilitate…", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "E&ditează modurile de compatibilitate…", IDC_EDITCOMPATIBILITYMODES, 87, 167, 130, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "Aflați mai multe despre <A>compatibilitate de program</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/sk-SK.rc b/dll/shellext/acppage/lang/sk-SK.rc index 102251aba96..ea72bfb0bfc 100644 --- a/dll/shellext/acppage/lang/sk-SK.rc +++ b/dll/shellext/acppage/lang/sk-SK.rc @@ -20,7 +20,7 @@ BEGIN CHECKBOX "Spustiť v režime 256 farieb", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Spustiť s rozlíšením obrazovky 640x480", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Vypnúť vizuálne motívy", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "&Upraviť režimy kompatibility...", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "&Upraviť režimy kompatibility...", IDC_EDITCOMPATIBILITYMODES, 112, 167, 105, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "Ďalšie informácie o <A>kompatibilite programov</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/sq-AL.rc b/dll/shellext/acppage/lang/sq-AL.rc index 1fe7eec1f7f..60cd36266de 100644 --- a/dll/shellext/acppage/lang/sq-AL.rc +++ b/dll/shellext/acppage/lang/sq-AL.rc @@ -17,7 +17,7 @@ BEGIN CHECKBOX "Ekzekuto ne 256 colors", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Ekzekuto ne 640x480 screenresolution", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Çaktivizo themat vizuale", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "Modifiko mjetin e pajtueshmerise...", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "Modifiko mjetin e pajtueshmerise...", IDC_EDITCOMPATIBILITYMODES, 97, 167, 120, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "Learn more about <A>program compatibility</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/sv-SE.rc b/dll/shellext/acppage/lang/sv-SE.rc index eaadadaa59b..0e5e8b5c196 100644 --- a/dll/shellext/acppage/lang/sv-SE.rc +++ b/dll/shellext/acppage/lang/sv-SE.rc @@ -15,7 +15,7 @@ BEGIN CHECKBOX "Använd 256 färger", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Kör i skärmupplösningen 640 x 480", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Inaktivera teman", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "&Redigera kompatibilitetslägen...", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "&Redigera kompatibilitetslägen...", IDC_EDITCOMPATIBILITYMODES, 102, 167, 115, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "Lär dig mer om <A>program-kompatibilitet</A>.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END diff --git a/dll/shellext/acppage/lang/tr-TR.rc b/dll/shellext/acppage/lang/tr-TR.rc index 30b9c50f95b..6d60363d75c 100644 --- a/dll/shellext/acppage/lang/tr-TR.rc +++ b/dll/shellext/acppage/lang/tr-TR.rc @@ -15,7 +15,7 @@ BEGIN CHECKBOX "256 Renkte Çalıştır", IDC_CHKRUNIN256COLORS, 18, 114, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "640x480 Ekran Çözünürlüğünde Çalıştır", IDC_CHKRUNIN640480RES, 18, 129, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Görsel Temaları Edilginleştir", IDC_CHKDISABLEVISUALTHEMES, 18, 144, 188, 10, BS_AUTOCHECKBOX | WS_TABSTOP - PUSHBUTTON "&Uyumluluk Kiplerini Düzenle...", IDC_EDITCOMPATIBILITYMODES, 117, 167, 100, 15 + PUSHBUTTON "&Uyumluluk Kiplerini Düzenle...", IDC_EDITCOMPATIBILITYMODES, 112, 167, 105, 15 LTEXT "",IDC_ENABLED_LAYERS,7,185,210,21 CONTROL "<A>İzlence uyumluluğu</A> konusunda daha çok öğren.", IDC_INFOLINK, "SysLink", WS_CHILD | WS_TABSTOP | WS_VISIBLE, 7, 207, 210, 10, WS_EX_NOPARENTNOTIFY END
5 years
1
0
0
0
← Newer
1
...
4
5
6
7
8
9
10
...
23
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Results per page:
10
25
50
100
200