Author: hbelusca
Date: Fri Dec 23 11:43:21 2016
New Revision: 73480
URL: http://svn.reactos.org/svn/reactos?rev=73480&view=rev
Log:
[KERNEL32]: Addendum to r73479: display the file that failed to be opened before releasing SxsWin32RelativePath as PathName might be equal to SxsWin32RelativePath.RelativeName. Spotted by Mark Jansen (actually he got it right at the beginning :) )
Modified:
trunk/reactos/dll/win32/kernel32/client/proc.c
Modified: trunk/reactos/dll/win32/kernel32/client/proc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/proc.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/proc.c [iso-8859-1] Fri Dec 23 11:43:21 2016
@@ -2923,13 +2923,16 @@
FILE_NON_DIRECTORY_FILE);
}
+ /* Failure path, display which file failed to open */
+ if (!NT_SUCCESS(Status))
+ DPRINT1("Open file failed: %lx (%wZ)\n", Status, &PathName);
+
/* Cleanup in preparation for failure or success */
RtlReleaseRelativeName(&SxsWin32RelativePath);
if (!NT_SUCCESS(Status))
{
/* Failure path, try to understand why */
- DPRINT1("Open file failed: %lx (%wZ)\n", Status, &PathName);
if (RtlIsDosDeviceName_U(lpApplicationName))
{
/* If a device is being executed, return this special error code */
Author: mjansen
Date: Thu Dec 22 20:51:38 2016
New Revision: 73477
URL: http://svn.reactos.org/svn/reactos?rev=73477&view=rev
Log:
[BOOTDATA] Update AHKAppTests.cmd to check all drives for the AHK-Tests. CORE-12597 #resolve
Modified:
trunk/reactos/boot/bootdata/bootcdregtest/AHKAppTests.cmd
Modified: trunk/reactos/boot/bootdata/bootcdregtest/AHKAppTests.cmd
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/bootcdregtes…
==============================================================================
--- trunk/reactos/boot/bootdata/bootcdregtest/AHKAppTests.cmd [iso-8859-1] (original)
+++ trunk/reactos/boot/bootdata/bootcdregtest/AHKAppTests.cmd [iso-8859-1] Thu Dec 22 20:51:38 2016
@@ -1,11 +1,14 @@
@ECHO OFF
-if not exist "D:\AHK-Tests" (
+set DRIVE=
+for %%X in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (if exist %%X:\AHK-Tests set DRIVE=%%X)
+
+if not defined DRIVE (
dbgprint "AHK Application testing suite not present, skipping."
exit /b 0
)
-xcopy /Y /H /E D:\AHK-Tests\*.* C:\ReactOS\bin
+xcopy /Y /H /E %DRIVE%:\AHK-Tests\*.* %SystemRoot%\bin
REM Download Amine's rosautotest from svn
-dwnl http://svn.reactos.org/amine/rosautotest.exe C:\ReactOS\system32\rosautotest.exe
+dwnl http://svn.reactos.org/amine/rosautotest.exe %SystemRoot%\system32\rosautotest.exe
dbgprint "....AHK Application testing suite added."
Author: jimtabor
Date: Thu Dec 22 06:51:32 2016
New Revision: 73474
URL: http://svn.reactos.org/svn/reactos?rev=73474&view=rev
Log:
[User32|RTL]
- Move TEXT_TabbedTextOut back into User32.
Modified:
trunk/reactos/win32ss/user/rtl/text.c
trunk/reactos/win32ss/user/user32/windows/font.c
Modified: trunk/reactos/win32ss/user/rtl/text.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/rtl/text.c?re…
==============================================================================
--- trunk/reactos/win32ss/user/rtl/text.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/rtl/text.c [iso-8859-1] Thu Dec 22 06:51:32 2016
@@ -61,128 +61,6 @@
ExitProcess(3);
for(;;); /* eliminate warning by mingw */
#endif
-}
-
-/***********************************************************************
- * TEXT_TabbedTextOut
- *
- * Helper function for TabbedTextOut() and GetTabbedTextExtent().
- * Note: this doesn't work too well for text-alignment modes other
- * than TA_LEFT|TA_TOP. But we want bug-for-bug compatibility :-)
- */
-/* WINE synced 22-May-2006 */
-LONG TEXT_TabbedTextOut( HDC hdc,
- INT x,
- INT y,
- LPCWSTR lpstr,
- INT count,
- INT cTabStops,
- const INT *lpTabPos,
- INT nTabOrg,
- BOOL fDisplayText )
-{
- INT defWidth;
- SIZE extent;
- int i, j;
- int start = x;
- TEXTMETRICW tm;
-
- if (!lpTabPos)
- cTabStops=0;
-
-#ifdef _WIN32K_
- GreGetTextMetricsW( hdc, &tm );
-#else
- GetTextMetricsW( hdc, &tm );
-#endif
-
- if (cTabStops == 1)
- {
- defWidth = *lpTabPos;
- cTabStops = 0;
- }
- else
- {
- defWidth = 8 * tm.tmAveCharWidth;
- }
-
- while (count > 0)
- {
- RECT r;
- INT x0;
- x0 = x;
- r.left = x0;
- /* chop the string into substrings of 0 or more <tabs>
- * possibly followed by 1 or more normal characters */
- for (i = 0; i < count; i++)
- if (lpstr[i] != '\t') break;
- for (j = i; j < count; j++)
- if (lpstr[j] == '\t') break;
- /* get the extent of the normal character part */
-#ifdef _WIN32K_
- GreGetTextExtentW( hdc, lpstr + i, j - i , &extent, 0 );
-#else
- GetTextExtentPointW( hdc, lpstr + i, j - i , &extent );
-#endif
- /* and if there is a <tab>, calculate its position */
- if( i) {
- /* get x coordinate for the drawing of this string */
- for (; cTabStops > i; lpTabPos++, cTabStops--)
- {
- if( nTabOrg + abs( *lpTabPos) > x) {
- if( lpTabPos[ i - 1] >= 0) {
- /* a left aligned tab */
- x = nTabOrg + lpTabPos[ i-1] + extent.cx;
- break;
- }
- else
- {
- /* if tab pos is negative then text is right-aligned
- * to tab stop meaning that the string extends to the
- * left, so we must subtract the width of the string */
- if (nTabOrg - lpTabPos[ i - 1] - extent.cx > x)
- {
- x = nTabOrg - lpTabPos[ i - 1];
- x0 = x - extent.cx;
- break;
- }
- }
- }
- }
- /* if we have run out of tab stops and we have a valid default tab
- * stop width then round x up to that width */
- if ((cTabStops <= i) && (defWidth > 0)) {
- x0 = nTabOrg + ((x - nTabOrg) / defWidth + i) * defWidth;
- x = x0 + extent.cx;
- } else if ((cTabStops <= i) && (defWidth < 0)) {
- x = nTabOrg + ((x - nTabOrg + extent.cx) / -defWidth + i)
- * -defWidth;
- x0 = x - extent.cx;
- }
- } else
- x += extent.cx;
-
- if (fDisplayText)
- {
- r.top = y;
- r.right = x;
- r.bottom = y + extent.cy;
-#ifdef _WIN32K_
- GreExtTextOutW( hdc, x0, y, GreGetBkMode(hdc) == OPAQUE ? ETO_OPAQUE : 0,
- &r, lpstr + i, j - i, NULL, 0 );
-#else
- ExtTextOutW( hdc, x0, y, GetBkMode(hdc) == OPAQUE ? ETO_OPAQUE : 0,
- &r, lpstr + i, j - i, NULL );
-#endif
- }
- count -= j;
- lpstr += j;
- }
-
- if(!extent.cy)
- extent.cy = tm.tmHeight;
-
- return MAKELONG(x - start, extent.cy);
}
/*********************************************************************
Modified: trunk/reactos/win32ss/user/user32/windows/font.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/user32/window…
==============================================================================
--- trunk/reactos/win32ss/user/user32/windows/font.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/user32/windows/font.c [iso-8859-1] Thu Dec 22 06:51:32 2016
@@ -38,11 +38,119 @@
INT WINAPI DrawTextExWorker( HDC hdc, LPWSTR str, INT i_count,
LPRECT rect, UINT flags, LPDRAWTEXTPARAMS dtp );
-LONG TEXT_TabbedTextOut( HDC hdc, INT x, INT y, LPCWSTR lpstr,
- INT count, INT cTabStops, const INT *lpTabPos, INT nTabOrg,
- BOOL fDisplayText );
/* FUNCTIONS *****************************************************************/
+
+
+/***********************************************************************
+ * TEXT_TabbedTextOut
+ *
+ * Helper function for TabbedTextOut() and GetTabbedTextExtent().
+ * Note: this doesn't work too well for text-alignment modes other
+ * than TA_LEFT|TA_TOP. But we want bug-for-bug compatibility :-)
+ */
+/* WINE synced 22-May-2006 */
+LONG TEXT_TabbedTextOut( HDC hdc,
+ INT x,
+ INT y,
+ LPCWSTR lpstr,
+ INT count,
+ INT cTabStops,
+ const INT *lpTabPos,
+ INT nTabOrg,
+ BOOL fDisplayText )
+{
+ INT defWidth;
+ SIZE extent;
+ int i, j;
+ int start = x;
+ TEXTMETRICW tm;
+
+ if (!lpTabPos)
+ cTabStops=0;
+
+ GetTextMetricsW( hdc, &tm );
+
+ if (cTabStops == 1)
+ {
+ defWidth = *lpTabPos;
+ cTabStops = 0;
+ }
+ else
+ {
+ defWidth = 8 * tm.tmAveCharWidth;
+ }
+
+ while (count > 0)
+ {
+ RECT r;
+ INT x0;
+ x0 = x;
+ r.left = x0;
+ /* chop the string into substrings of 0 or more <tabs>
+ * possibly followed by 1 or more normal characters */
+ for (i = 0; i < count; i++)
+ if (lpstr[i] != '\t') break;
+ for (j = i; j < count; j++)
+ if (lpstr[j] == '\t') break;
+ /* get the extent of the normal character part */
+ GetTextExtentPointW( hdc, lpstr + i, j - i , &extent );
+ /* and if there is a <tab>, calculate its position */
+ if( i) {
+ /* get x coordinate for the drawing of this string */
+ for (; cTabStops > i; lpTabPos++, cTabStops--)
+ {
+ if( nTabOrg + abs( *lpTabPos) > x) {
+ if( lpTabPos[ i - 1] >= 0) {
+ /* a left aligned tab */
+ x = nTabOrg + lpTabPos[ i-1] + extent.cx;
+ break;
+ }
+ else
+ {
+ /* if tab pos is negative then text is right-aligned
+ * to tab stop meaning that the string extends to the
+ * left, so we must subtract the width of the string */
+ if (nTabOrg - lpTabPos[ i - 1] - extent.cx > x)
+ {
+ x = nTabOrg - lpTabPos[ i - 1];
+ x0 = x - extent.cx;
+ break;
+ }
+ }
+ }
+ }
+ /* if we have run out of tab stops and we have a valid default tab
+ * stop width then round x up to that width */
+ if ((cTabStops <= i) && (defWidth > 0)) {
+ x0 = nTabOrg + ((x - nTabOrg) / defWidth + i) * defWidth;
+ x = x0 + extent.cx;
+ } else if ((cTabStops <= i) && (defWidth < 0)) {
+ x = nTabOrg + ((x - nTabOrg + extent.cx) / -defWidth + i)
+ * -defWidth;
+ x0 = x - extent.cx;
+ }
+ } else
+ x += extent.cx;
+
+ if (fDisplayText)
+ {
+ r.top = y;
+ r.right = x;
+ r.bottom = y + extent.cy;
+
+ ExtTextOutW( hdc, x0, y, GetBkMode(hdc) == OPAQUE ? ETO_OPAQUE : 0,
+ &r, lpstr + i, j - i, NULL );
+ }
+ count -= j;
+ lpstr += j;
+ }
+
+ if(!extent.cy)
+ extent.cy = tm.tmHeight;
+
+ return MAKELONG(x - start, extent.cy);
+}
/*
* @implemented