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
May 2007
----- 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
17 participants
322 discussions
Start a n
N
ew thread
[fireball] 26625: - Delete cromwell-based usb drivers since they don't work with modern reactos kernel. - Remove usbhub from the build.
by fireball@svn.reactos.org
Author: fireball Date: Wed May 2 15:37:29 2007 New Revision: 26625 URL:
http://svn.reactos.org/svn/reactos?rev=26625&view=rev
Log: - Delete cromwell-based usb drivers since they don't work with modern reactos kernel. - Remove usbhub from the build. Removed: trunk/reactos/drivers/usb/miniport/ trunk/reactos/drivers/usb/usbport/ Modified: trunk/reactos/drivers/usb/directory.rbuild Modified: trunk/reactos/drivers/usb/directory.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/usb/directory.rbui…
============================================================================== --- trunk/reactos/drivers/usb/directory.rbuild (original) +++ trunk/reactos/drivers/usb/directory.rbuild Wed May 2 15:37:29 2007 @@ -1,18 +1,12 @@ -<directory name="miniport"> - <xi:include href="miniport/directory.rbuild" /> -</directory> <directory name="nt4compat"> <xi:include href="nt4compat/directory.rbuild" /> </directory> <!--directory name="usbd"> <xi:include href="usbd/usbd.rbuild" /> -</directory--> +</directory> <directory name="usbhub"> <xi:include href="usbhub/usbhub.rbuild" /> </directory> -<directory name="usbport"> - <xi:include href="usbport/usbport.rbuild" /> -</directory> -<!--directory name="usbstor"> +directory name="usbstor"> <xi:include href="usbstor/usbstor.rbuild" /> </directory-->
17 years, 7 months
1
0
0
0
[dgorbachev] 26624: Use _SEH_YIELD().
by dgorbachev@svn.reactos.org
Author: dgorbachev Date: Wed May 2 12:21:57 2007 New Revision: 26624 URL:
http://svn.reactos.org/svn/reactos?rev=26624&view=rev
Log: Use _SEH_YIELD(). Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/exp.c?rev…
============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/exp.c (original) +++ trunk/reactos/ntoskrnl/ke/i386/exp.c Wed May 2 12:21:57 2007 @@ -975,7 +975,7 @@ TrapFrame->SegCs = Ke386SanitizeSeg(KGDT_R3_CODE, PreviousMode); TrapFrame->SegDs = Ke386SanitizeSeg(KGDT_R3_DATA, PreviousMode); TrapFrame->SegEs = Ke386SanitizeSeg(KGDT_R3_DATA, PreviousMode); - TrapFrame->SegFs = Ke386SanitizeSeg(KGDT_R3_TEB, PreviousMode); + TrapFrame->SegFs = Ke386SanitizeSeg(KGDT_R3_TEB, PreviousMode); TrapFrame->SegGs = 0; /* Set EIP to the User-mode Dispatcher */ @@ -998,7 +998,7 @@ sizeof(EXCEPTION_RECORD)); /* Do the exception again */ - goto DispatchToUser; + _SEH_YIELD(goto DispatchToUser); } } _SEH_END;
17 years, 7 months
1
0
0
0
[dgorbachev] 26623: Do not crash on broken pipe.
by dgorbachev@svn.reactos.org
Author: dgorbachev Date: Wed May 2 07:06:18 2007 New Revision: 26623 URL:
http://svn.reactos.org/svn/reactos?rev=26623&view=rev
Log: Do not crash on broken pipe. Modified: trunk/reactos/drivers/filesystems/npfs/rw.c Modified: trunk/reactos/drivers/filesystems/npfs/rw.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/npfs/r…
============================================================================== --- trunk/reactos/drivers/filesystems/npfs/rw.c (original) +++ trunk/reactos/drivers/filesystems/npfs/rw.c Wed May 2 07:06:18 2007 @@ -688,7 +688,6 @@ NULL); DPRINT("Finished waiting (%S)! Status: %x\n", Fcb->PipeName.Buffer, Status); - ExAcquireFastMutex(&ReaderCcb->DataListLock); /* * It's possible that the event was signaled because the * other side of pipe was closed. @@ -697,9 +696,11 @@ { DPRINT("PipeState: %x\n", Ccb->PipeState); Status = STATUS_PIPE_BROKEN; - ExReleaseFastMutex(&ReaderCcb->DataListLock); + // ExReleaseFastMutex(&ReaderCcb->DataListLock); goto done; } + + ExAcquireFastMutex(&ReaderCcb->DataListLock); } if (Fcb->WriteMode == FILE_PIPE_BYTE_STREAM_MODE)
17 years, 7 months
1
0
0
0
[tkreuzer] 26622: sorry another one creeped in ;-)
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed May 2 02:28:25 2007 New Revision: 26622 URL:
http://svn.reactos.org/svn/reactos?rev=26622&view=rev
Log: sorry another one creeped in ;-) Modified: trunk/reactos/subsystems/win32/win32k/stubs/stubs.c Modified: trunk/reactos/subsystems/win32/win32k/stubs/stubs.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/st…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/stubs/stubs.c (original) +++ trunk/reactos/subsystems/win32/win32k/stubs/stubs.c Wed May 2 02:28:25 2007 @@ -60,7 +60,6 @@ return EngUnmapFontFileFD ( iFile ); } -#if 0 /* * @unimplemented */ @@ -83,7 +82,6 @@ UNIMPLEMENTED; return FALSE; } -#endif /* * @unimplemented
17 years, 7 months
1
0
0
0
[tkreuzer] 26621: sorry accidentally committed this file
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed May 2 02:20:15 2007 New Revision: 26621 URL:
http://svn.reactos.org/svn/reactos?rev=26621&view=rev
Log: sorry accidentally committed this file Modified: trunk/reactos/subsystems/win32/win32k/win32k.rbuild Modified: trunk/reactos/subsystems/win32/win32k/win32k.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/wi…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/win32k.rbuild (original) +++ trunk/reactos/subsystems/win32/win32k/win32k.rbuild Wed May 2 02:20:15 2007 @@ -65,7 +65,6 @@ <file>semaphor.c</file> <file>sort.c</file> <file>surface.c</file> - <file>engtext.c</file> <file>transblt.c</file> <file>engwindow.c</file> <file>xlate.c</file>
17 years, 7 months
1
0
0
0
[tkreuzer] 26620: update gdi32_test - fix #line ... - add more tests
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed May 2 02:08:34 2007 New Revision: 26620 URL:
http://svn.reactos.org/svn/reactos?rev=26620&view=rev
Log: update gdi32_test - fix #line ... - add more tests Modified: trunk/rostests/win32/gdi32/tests/CreateCompatibleDC.c trunk/rostests/win32/gdi32/tests/CreatePen.c trunk/rostests/win32/gdi32/tests/ExtCreatePen.c trunk/rostests/win32/gdi32/tests/GetObject.c trunk/rostests/win32/gdi32/tests/GetStockObject.c trunk/rostests/win32/gdi32/tests/SelectObject.c trunk/rostests/win32/gdi32/tests/SetDCPenColor.c trunk/rostests/win32/gdi32/tests/SetSysColors.c Modified: trunk/rostests/win32/gdi32/tests/CreateCompatibleDC.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/win32/gdi32/tests/CreateC…
============================================================================== --- trunk/rostests/win32/gdi32/tests/CreateCompatibleDC.c (original) +++ trunk/rostests/win32/gdi32/tests/CreateCompatibleDC.c Wed May 2 02:08:34 2007 @@ -1,4 +1,4 @@ -#line 1 "CreateCompatibleDC.c" +#line 2 "CreateCompatibleDC.c" #include "..\gditest.h" Modified: trunk/rostests/win32/gdi32/tests/CreatePen.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/win32/gdi32/tests/CreateP…
============================================================================== --- trunk/rostests/win32/gdi32/tests/CreatePen.c (original) +++ trunk/rostests/win32/gdi32/tests/CreatePen.c Wed May 2 02:08:34 2007 @@ -1,4 +1,4 @@ -#line 1 "CreatePen.c" +#line 2 "CreatePen.c" #include "..\gditest.h" @@ -6,14 +6,56 @@ Test_CreatePen(INT* passed, INT* failed) { HPEN hPen; + LOGPEN logpen; - hPen = CreatePen(PS_COSMETIC, 1, RGB(1,2,3)); - if (!hPen) return FALSE; + SetLastError(ERROR_SUCCESS); + + hPen = CreatePen(PS_DASHDOT, 5, RGB(1,2,3)); + TEST(hPen); /* Test if we have a PEN */ TEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_PEN); - + + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_DASHDOT); + TEST(logpen.lopnWidth.x == 5); + TEST(logpen.lopnColor == RGB(1,2,3)); DeleteObject(hPen); + + /* PS_GEOMETRIC | PS_DASHDOT = 0x00001011 will become PS_SOLID */ + logpen.lopnStyle = 22; + hPen = CreatePen(PS_GEOMETRIC | PS_DASHDOT, 5, RGB(1,2,3)); + TEST(hPen); + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_SOLID); + DeleteObject(hPen); + + /* PS_USERSTYLE will become PS_SOLID */ + logpen.lopnStyle = 22; + hPen = CreatePen(PS_USERSTYLE, 5, RGB(1,2,3)); + TEST(hPen); + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_SOLID); + DeleteObject(hPen); + + /* PS_ALTERNATE will become PS_SOLID */ + logpen.lopnStyle = 22; + hPen = CreatePen(PS_ALTERNATE, 5, RGB(1,2,3)); + TEST(hPen); + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_SOLID); + DeleteObject(hPen); + + /* PS_INSIDEFRAME is ok */ + logpen.lopnStyle = 22; + hPen = CreatePen(PS_INSIDEFRAME, 5, RGB(1,2,3)); + TEST(hPen); + GetObject(hPen, sizeof(logpen), &logpen); + TEST(logpen.lopnStyle == PS_INSIDEFRAME); + DeleteObject(hPen); + + TEST(GetLastError() == ERROR_SUCCESS); + return TRUE; } Modified: trunk/rostests/win32/gdi32/tests/ExtCreatePen.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/win32/gdi32/tests/ExtCrea…
============================================================================== --- trunk/rostests/win32/gdi32/tests/ExtCreatePen.c (original) +++ trunk/rostests/win32/gdi32/tests/ExtCreatePen.c Wed May 2 02:08:34 2007 @@ -1,3 +1,5 @@ +#line 2 "ExtCreatePen.c" + #include "..\gditest.h" BOOL @@ -5,6 +7,7 @@ { HPEN hPen; LOGBRUSH logbrush; + DWORD dwStyles[17] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}; logbrush.lbStyle = BS_SOLID; logbrush.lbColor = RGB(1,2,3); @@ -14,9 +17,16 @@ /* Test if we have an EXTPEN */ TEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_EXTPEN); + DeleteObject(hPen); - + /* test userstyles */ + hPen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 5, &logbrush, 17, (CONST DWORD*)&dwStyles); + TEST(hPen == 0); + hPen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 5, &logbrush, 16, (CONST DWORD*)&dwStyles); + TEST(hPen != 0); + DeleteObject(hPen); + return TRUE; } Modified: trunk/rostests/win32/gdi32/tests/GetObject.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/win32/gdi32/tests/GetObje…
============================================================================== --- trunk/rostests/win32/gdi32/tests/GetObject.c (original) +++ trunk/rostests/win32/gdi32/tests/GetObject.c Wed May 2 02:08:34 2007 @@ -1,4 +1,4 @@ -#line 1 "GetObject.c" +#line 2 "GetObject.c" #include "..\gditest.h" @@ -213,11 +213,16 @@ TEST(GetObject(hPen, 5, NULL) == sizeof(LOGPEN)); TEST(GetObject(hPen, -5, NULL) == sizeof(LOGPEN)); TEST(GetObject(hPen, sizeof(LOGPEN), &logpen) == sizeof(LOGPEN)); + TEST(GetObject(hPen, sizeof(LOGPEN)-1, &logpen) == 0); TEST(GetObject(hPen, sizeof(LOGPEN)+2, &logpen) == sizeof(LOGPEN)); TEST(GetObject(hPen, 0, &logpen) == 0); - TEST(GetObject(hPen, 5, &logpen) == 0); TEST(GetObject(hPen, -5, &logpen) == sizeof(LOGPEN)); TEST(GetLastError() == ERROR_SUCCESS); + + /* test if the fields are filled correctly */ + TEST(logpen.lopnStyle == PS_SOLID); + + DeleteObject(hPen); return TRUE; } @@ -227,6 +232,12 @@ HPEN hPen; EXTLOGPEN extlogpen; LOGBRUSH logbrush; + DWORD dwStyles[17] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; + struct + { + EXTLOGPEN extlogpen; + DWORD dwStyles[50]; + } elpUserStyle; SetLastError(ERROR_SUCCESS); TEST(GetObjectA((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0); @@ -236,8 +247,8 @@ FillMemory(&extlogpen, sizeof(EXTLOGPEN), 0x77); logbrush.lbStyle = BS_SOLID; logbrush.lbColor = RGB(1,2,3); - logbrush.lbHatch = 0; - hPen = ExtCreatePen(PS_GEOMETRIC | PS_SOLID, 5, &logbrush, 0, NULL); + logbrush.lbHatch = 22; + hPen = ExtCreatePen(PS_GEOMETRIC | PS_DASH, 5, &logbrush, 0, NULL); TEST(GDI_HANDLE_GET_TYPE(hPen) == GDI_OBJECT_TYPE_EXTPEN); TEST(GetObject((HANDLE)GDI_OBJECT_TYPE_EXTPEN, 0, NULL) == 0); @@ -254,17 +265,29 @@ TEST(extlogpen.elpWidth == 0x77777777); TEST(GetObject(hPen, sizeof(EXTLOGPEN), &extlogpen) == sizeof(EXTLOGPEN)-sizeof(DWORD)); + TEST(GetObject(hPen, sizeof(EXTLOGPEN)-sizeof(DWORD), &extlogpen) == sizeof(EXTLOGPEN)-sizeof(DWORD)); + TEST(GetObject(hPen, sizeof(EXTLOGPEN)-sizeof(DWORD)-1, &extlogpen) == 0); TEST(GetObject(hPen, sizeof(EXTLOGPEN)+2, &extlogpen) == sizeof(EXTLOGPEN)-sizeof(DWORD)); TEST(GetObject(hPen, -5, &extlogpen) == sizeof(EXTLOGPEN)-sizeof(DWORD)); /* test if the fields are filled correctly */ - TEST(extlogpen.elpPenStyle == PS_GEOMETRIC); + TEST(extlogpen.elpPenStyle == (PS_GEOMETRIC | PS_DASH)); TEST(extlogpen.elpWidth == 5); TEST(extlogpen.elpBrushStyle == 0); TEST(extlogpen.elpColor == RGB(1,2,3)); - TEST(extlogpen.elpHatch == 0); + TEST(extlogpen.elpHatch == 22); TEST(extlogpen.elpNumEntries == 0); DeleteObject(hPen); + + /* A maximum of 16 Styles is allowed */ + hPen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 5, &logbrush, 16, (CONST DWORD*)&dwStyles); + TEST(GetObject(hPen, 0, NULL) == sizeof(EXTLOGPEN) + 15*sizeof(DWORD)); + TEST(GetObject(hPen, sizeof(EXTLOGPEN) + 15*sizeof(DWORD), &elpUserStyle) == sizeof(EXTLOGPEN) + 15*sizeof(DWORD)); + TEST(((EXTLOGPEN*)&elpUserStyle)->elpStyleEntry[0] == 0); + TEST(((EXTLOGPEN*)&elpUserStyle)->elpStyleEntry[1] == 1); + TEST(((EXTLOGPEN*)&elpUserStyle)->elpStyleEntry[15] == 15); + DeleteObject(hPen); + return TRUE; } @@ -402,7 +425,7 @@ TEST(GetLastError() == ERROR_INVALID_HANDLE); DeleteObject(hRgn); -// Test_Font(passed, failed); + Test_Font(passed, failed); Test_Colorspace(passed, failed); Test_General(passed, failed); Test_Bitmap(passed, failed); @@ -410,7 +433,7 @@ Test_Palette(passed, failed); Test_Brush(passed, failed); Test_Pen(passed, failed); -// Test_ExtPen(passed, failed); // not implemented yet in ROS + Test_ExtPen(passed, failed); // not implemented yet in ROS Test_MetaDC(passed, failed); return TRUE; Modified: trunk/rostests/win32/gdi32/tests/GetStockObject.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/win32/gdi32/tests/GetStoc…
============================================================================== --- trunk/rostests/win32/gdi32/tests/GetStockObject.c (original) +++ trunk/rostests/win32/gdi32/tests/GetStockObject.c Wed May 2 02:08:34 2007 @@ -1,4 +1,4 @@ -#line 1 "GetStockObject.c" +#line 2 "GetStockObject.c" #include "..\gditest.h" Modified: trunk/rostests/win32/gdi32/tests/SelectObject.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/win32/gdi32/tests/SelectO…
============================================================================== --- trunk/rostests/win32/gdi32/tests/SelectObject.c (original) +++ trunk/rostests/win32/gdi32/tests/SelectObject.c Wed May 2 02:08:34 2007 @@ -1,4 +1,4 @@ -#line 1 "SelectObject.c" +#line 2 "SelectObject.c" #include "..\gditest.h" Modified: trunk/rostests/win32/gdi32/tests/SetDCPenColor.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/win32/gdi32/tests/SetDCPe…
============================================================================== --- trunk/rostests/win32/gdi32/tests/SetDCPenColor.c (original) +++ trunk/rostests/win32/gdi32/tests/SetDCPenColor.c Wed May 2 02:08:34 2007 @@ -1,4 +1,4 @@ -#line 1 "SetDCPenColor.c" +#line 2 "SetDCPenColor.c" #include "..\gditest.h" Modified: trunk/rostests/win32/gdi32/tests/SetSysColors.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/win32/gdi32/tests/SetSysC…
============================================================================== --- trunk/rostests/win32/gdi32/tests/SetSysColors.c (original) +++ trunk/rostests/win32/gdi32/tests/SetSysColors.c Wed May 2 02:08:34 2007 @@ -1,4 +1,4 @@ -#line 1 "SetSysColors.c" +#line 2 "SetSysColors.c" #include "..\gditest.h"
17 years, 7 months
1
0
0
0
[tkreuzer] 26619: Extpen implementation: - give GDI_OBJECT_TYPE_EXTPEN a sizeof(GDIBRUSHOBJ) and EXTPEN_Cleanup function in GDI_OBJ_INFO table - define PENOBJ_AllocExtPen, PENOBJ_FreeExtPen, PENOBJ_LockExtPen needed by IntGdiExtCreatePen - create A Tag for extpen for tagged pool that holds style dwords - implement IntGdiExtCreatePen - implement EXTPEN_Cleanup, freeing the stylebuffer - implement NtGdiExtCreatePen - make CreateStockObjects, NtGdiCreatePen(Indirect) call IntGdiExtCreatePen - remov
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed May 2 02:04:47 2007 New Revision: 26619 URL:
http://svn.reactos.org/svn/reactos?rev=26619&view=rev
Log: Extpen implementation: - give GDI_OBJECT_TYPE_EXTPEN a sizeof(GDIBRUSHOBJ) and EXTPEN_Cleanup function in GDI_OBJ_INFO table - define PENOBJ_AllocExtPen, PENOBJ_FreeExtPen, PENOBJ_LockExtPen needed by IntGdiExtCreatePen - create A Tag for extpen for tagged pool that holds style dwords - implement IntGdiExtCreatePen - implement EXTPEN_Cleanup, freeing the stylebuffer - implement NtGdiExtCreatePen - make CreateStockObjects, NtGdiCreatePen(Indirect) call IntGdiExtCreatePen - remove IntGdiCreatePenIndirect Modified: trunk/reactos/subsystems/win32/win32k/include/intgdi.h trunk/reactos/subsystems/win32/win32k/include/pen.h trunk/reactos/subsystems/win32/win32k/include/tags.h trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c trunk/reactos/subsystems/win32/win32k/objects/pen.c trunk/reactos/subsystems/win32/win32k/objects/stockobj.c trunk/reactos/subsystems/win32/win32k/stubs/stubs.c trunk/reactos/subsystems/win32/win32k/win32k.rbuild Modified: trunk/reactos/subsystems/win32/win32k/include/intgdi.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/in…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/intgdi.h (original) +++ trunk/reactos/subsystems/win32/win32k/include/intgdi.h Wed May 2 02:04:47 2007 @@ -49,8 +49,8 @@ /* Pen functions */ -HPEN FASTCALL -IntGdiCreatePenIndirect(PLOGPEN lgpn); +HPEN STDCALL +IntGdiExtCreatePen(DWORD, DWORD, IN ULONG, IN ULONG, IN ULONG_PTR, IN ULONG_PTR, DWORD, PULONG, IN ULONG, IN BOOL, IN OPTIONAL HBRUSH); VOID FASTCALL IntGdiSetSolidPenColor(HPEN hPen, COLORREF Color); Modified: trunk/reactos/subsystems/win32/win32k/include/pen.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/in…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/pen.h (original) +++ trunk/reactos/subsystems/win32/win32k/include/pen.h Wed May 2 02:04:47 2007 @@ -9,8 +9,12 @@ #define PENOBJ_AllocPen() ((HPEN)GDIOBJ_AllocObj(GdiHandleTable, GDI_OBJECT_TYPE_PEN)) #define PENOBJ_FreePen(hBMObj) GDIOBJ_FreeObj(GdiHandleTable, (HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_PEN) #define PENOBJ_LockPen(hBMObj) ((PGDIBRUSHOBJ)GDIOBJ_LockObj(GdiHandleTable, (HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_PEN)) +#define PENOBJ_AllocExtPen() ((HPEN)GDIOBJ_AllocObj(GdiHandleTable, GDI_OBJECT_TYPE_EXTPEN)) +#define PENOBJ_FreeExtPen(hBMObj) GDIOBJ_FreeObj(GdiHandleTable, (HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_EXTPEN) +#define PENOBJ_LockExtPen(hBMObj) ((PGDIBRUSHOBJ)GDIOBJ_LockObj(GdiHandleTable, (HGDIOBJ) hBMObj, GDI_OBJECT_TYPE_EXTPEN)) #define PENOBJ_UnlockPen(pPenObj) GDIOBJ_UnlockObjByPtr(GdiHandleTable, pPenObj) INT STDCALL PEN_GetObject(PGDIBRUSHOBJ hPen, INT Count, PLOGPEN Buffer); +BOOL INTERNAL_CALL EXTPEN_Cleanup(PVOID ObjectBody); #endif Modified: trunk/reactos/subsystems/win32/win32k/include/tags.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/in…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/tags.h (original) +++ trunk/reactos/subsystems/win32/win32k/include/tags.h Wed May 2 02:04:47 2007 @@ -43,6 +43,7 @@ #define TAG_PRINT TAG('P', 'R', 'N', 'T') /* print */ #define TAG_REGION TAG('R', 'G', 'N', 'O') /* region */ #define TAG_GDITEXT TAG('T', 'X', 'T', 'O') /* text */ +#define TAG_EXTPEN TAG('X', 'P', 'E', 'N') /* extpen */ /* Eng objects */ #define TAG_CLIPOBJ TAG('C', 'L', 'P', 'O') /* clip object */ Modified: trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c (original) +++ trunk/reactos/subsystems/win32/win32k/objects/gdiobj.c Wed May 2 02:04:47 2007 @@ -80,7 +80,7 @@ {GDI_OBJECT_TYPE_DCE, sizeof(DCE), DCE_Cleanup}, {GDI_OBJECT_TYPE_DIRECTDRAW, sizeof(DD_DIRECTDRAW), DD_Cleanup}, {GDI_OBJECT_TYPE_DD_SURFACE, sizeof(DD_SURFACE), DDSURF_Cleanup}, - {GDI_OBJECT_TYPE_EXTPEN, 0, GDI_CleanupDummy}, + {GDI_OBJECT_TYPE_EXTPEN, sizeof(GDIBRUSHOBJ), EXTPEN_Cleanup}, {GDI_OBJECT_TYPE_METADC, 0, GDI_CleanupDummy}, {GDI_OBJECT_TYPE_METAFILE, 0, GDI_CleanupDummy}, {GDI_OBJECT_TYPE_ENHMETAFILE, 0, GDI_CleanupDummy}, Modified: trunk/reactos/subsystems/win32/win32k/objects/pen.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/pen.c (original) +++ trunk/reactos/subsystems/win32/win32k/objects/pen.c Wed May 2 02:04:47 2007 @@ -27,19 +27,37 @@ /* PRIVATE FUNCTIONS **********************************************************/ -HPEN FASTCALL -IntGdiCreatePenIndirect(PLOGPEN LogPen) +HPEN STDCALL +IntGdiExtCreatePen( + DWORD dwPenStyle, + DWORD dwWidth, + IN ULONG ulBrushStyle, + IN ULONG ulColor, + IN ULONG_PTR ulClientHatch, + IN ULONG_PTR ulHatch, + DWORD dwStyleCount, + PULONG pStyle, + IN ULONG cjDIB, + IN BOOL bOldStylePen, + IN OPTIONAL HBRUSH hbrush) { HPEN hPen; PGDIBRUSHOBJ PenObject; - static const WORD wPatternAlternate[] = {0x5555}; - static const WORD wPatternDash[] = {0x0F0F}; - static const WORD wPatternDot[] = {0x3333}; - - if (LogPen->lopnStyle > PS_INSIDEFRAME) - return 0; - - hPen = PENOBJ_AllocPen(); + static const BYTE PatternAlternate[] = {0x55, 0x55, 0x55}; + static const BYTE PatternDash[] = {0xFF, 0xFF, 0xC0}; + static const BYTE PatternDot[] = {0xE3, 0x8E, 0x38}; + static const BYTE PatternDashDot[] = {0xFF, 0x81, 0xC0}; + static const BYTE PatternDashDotDot[] = {0xFF, 0x8E, 0x38}; + + if (bOldStylePen) + { + hPen = PENOBJ_AllocPen(); + } + else + { + hPen = PENOBJ_AllocExtPen(); + } + if (!hPen) { SetLastWin32Error(ERROR_NOT_ENOUGH_MEMORY); @@ -47,13 +65,29 @@ return 0; } - PenObject = PENOBJ_LockPen(hPen); + if (bOldStylePen) + { + PenObject = PENOBJ_LockPen(hPen); + } + else + { + PenObject = PENOBJ_LockExtPen(hPen); + } /* FIXME - Handle PenObject == NULL!!! */ - PenObject->ptPenWidth = LogPen->lopnWidth; - PenObject->ulPenStyle = LogPen->lopnStyle; - PenObject->BrushAttr.lbColor = LogPen->lopnColor; - PenObject->flAttrs = GDIBRUSH_IS_OLDSTYLEPEN; - switch (LogPen->lopnStyle) + + PenObject->ptPenWidth.x = dwWidth; + PenObject->ptPenWidth.y = 0; + PenObject->ulPenStyle = dwPenStyle; + PenObject->BrushAttr.lbColor = ulColor; + PenObject->ulStyle = ulBrushStyle; + // FIXME: copy the bitmap first ? + PenObject->hbmClient = (HANDLE)ulClientHatch; + PenObject->dwStyleCount = dwStyleCount; + PenObject->pStyle = pStyle; + + PenObject->flAttrs = bOldStylePen? GDIBRUSH_IS_OLDSTYLEPEN : GDIBRUSH_IS_PEN; + + switch (dwPenStyle & PS_STYLE_MASK) { case PS_NULL: PenObject->flAttrs |= GDIBRUSH_IS_NULL; @@ -65,17 +99,27 @@ case PS_ALTERNATE: PenObject->flAttrs |= GDIBRUSH_IS_BITMAP; - PenObject->hbmPattern = NtGdiCreateBitmap(8, 1, 1, 1, (LPBYTE)wPatternAlternate); + PenObject->hbmPattern = NtGdiCreateBitmap(24, 1, 1, 1, (LPBYTE)PatternAlternate); break; case PS_DOT: PenObject->flAttrs |= GDIBRUSH_IS_BITMAP; - PenObject->hbmPattern = NtGdiCreateBitmap(8, 1, 1, 1, (LPBYTE)wPatternDot); + PenObject->hbmPattern = NtGdiCreateBitmap(24, 1, 1, 1, (LPBYTE)PatternDot); break; case PS_DASH: PenObject->flAttrs |= GDIBRUSH_IS_BITMAP; - PenObject->hbmPattern = NtGdiCreateBitmap(8, 1, 1, 1, (LPBYTE)wPatternDash); + PenObject->hbmPattern = NtGdiCreateBitmap(24, 1, 1, 1, (LPBYTE)PatternDash); + break; + + case PS_DASHDOT: + PenObject->flAttrs |= GDIBRUSH_IS_BITMAP; + PenObject->hbmPattern = NtGdiCreateBitmap(24, 1, 1, 1, (LPBYTE)PatternDashDot); + break; + + case PS_DASHDOTDOT: + PenObject->flAttrs |= GDIBRUSH_IS_BITMAP; + PenObject->hbmPattern = NtGdiCreateBitmap(24, 1, 1, 1, (LPBYTE)PatternDashDotDot); break; case PS_INSIDEFRAME: @@ -83,34 +127,91 @@ PenObject->flAttrs |= GDIBRUSH_IS_SOLID; break; + case PS_USERSTYLE: + /* FIXME: what style here? */ + PenObject->flAttrs |= 0; + break; + default: - DPRINT1("FIXME: IntGdiCreatePenIndirect is UNIMPLEMENTED pen %x\n",LogPen->lopnStyle); - } - + DPRINT1("IntGdiExtCreatePen unknown penstyle %x\n", dwPenStyle); + } PENOBJ_UnlockPen(PenObject); return hPen; } +VOID FASTCALL +IntGdiSetSolidPenColor(HPEN hPen, COLORREF Color) +{ + PGDIBRUSHOBJ PenObject; + + PenObject = PENOBJ_LockPen(hPen); + if (PenObject) + { + if (PenObject->flAttrs & GDIBRUSH_IS_SOLID) + { + PenObject->BrushAttr.lbColor = Color & 0xFFFFFF; + } + PENOBJ_UnlockPen(PenObject); + } +} + INT STDCALL -PEN_GetObject(PGDIBRUSHOBJ PenObject, INT Count, PLOGPEN Buffer) -{ - - LOGPEN LogPen; - - if( Buffer == NULL ) return sizeof(LOGPEN); - if (Count < sizeof(LOGPEN)) return 0; - if (Count > sizeof(LOGPEN)) Count = sizeof(LOGPEN); - - if( Buffer == NULL ) return sizeof(LOGPEN); - - LogPen.lopnWidth = PenObject->ptPenWidth; - LogPen.lopnStyle = PenObject->ulPenStyle; - LogPen.lopnColor = PenObject->BrushAttr.lbColor; - memcpy(Buffer, &LogPen, Count); - - return Count; - +PEN_GetObject(PGDIBRUSHOBJ pPenObject, INT cbCount, PLOGPEN pBuffer) +{ + PLOGPEN pLogPen; + PEXTLOGPEN pExtLogPen; + INT cbRetCount; + + if (pPenObject->flAttrs & GDIBRUSH_IS_OLDSTYLEPEN) + { + cbRetCount = sizeof(LOGPEN); + if (pBuffer) + { + if (cbCount < cbRetCount) return 0; + pLogPen = (PLOGPEN)pBuffer; + pLogPen->lopnWidth = pPenObject->ptPenWidth; + pLogPen->lopnStyle = pPenObject->ulPenStyle; + pLogPen->lopnColor = pPenObject->BrushAttr.lbColor; + } + } + else + { + // FIXME: Can we trust in dwStyleCount being <= 16? + cbRetCount = sizeof(EXTLOGPEN) - sizeof(DWORD) + pPenObject->dwStyleCount * sizeof(DWORD); + if (pBuffer) + { + INT i; + + if (cbCount < cbRetCount) return 0; + pExtLogPen = (PEXTLOGPEN)pBuffer; + pExtLogPen->elpPenStyle = pPenObject->ulPenStyle; + pExtLogPen->elpWidth = pPenObject->ptPenWidth.x; + pExtLogPen->elpBrushStyle = pPenObject->ulStyle; + pExtLogPen->elpColor = pPenObject->BrushAttr.lbColor; + pExtLogPen->elpHatch = (ULONG_PTR)pPenObject->hbmClient; + pExtLogPen->elpNumEntries = pPenObject->dwStyleCount; + for (i = 0; i < pExtLogPen->elpNumEntries; i++) + { + pExtLogPen->elpStyleEntry[i] = pPenObject->pStyle[i]; + } + } + } + + return cbRetCount; +} + +BOOL INTERNAL_CALL +EXTPEN_Cleanup(PVOID ObjectBody) +{ + PGDIBRUSHOBJ pPenObject = (PGDIBRUSHOBJ)ObjectBody; + + /* Free the kmode Styles array */ + if (pPenObject->pStyle) + { + ExFreePool(pPenObject->pStyle); + } + return TRUE; } /* PUBLIC FUNCTIONS ***********************************************************/ @@ -122,20 +223,28 @@ COLORREF Color, IN HBRUSH hbr) { - LOGPEN LogPen; - - LogPen.lopnStyle = PenStyle; - LogPen.lopnWidth.x = Width; - LogPen.lopnWidth.y = 0; - LogPen.lopnColor = Color; - - return IntGdiCreatePenIndirect(&LogPen); + if (PenStyle > PS_INSIDEFRAME) + { + PenStyle = PS_SOLID; + } + + return IntGdiExtCreatePen(PenStyle, + Width, + BS_SOLID, + Color, + 0, + 0, + 0, + NULL, + 0, + TRUE, + 0); } HPEN STDCALL NtGdiCreatePenIndirect(CONST PLOGPEN LogPen) { - LOGPEN SafeLogPen; + LOGPEN SafeLogPen = {0}; NTSTATUS Status = STATUS_SUCCESS; _SEH_TRY @@ -157,46 +266,89 @@ return 0; } - return IntGdiCreatePenIndirect(&SafeLogPen); + return IntGdiExtCreatePen(SafeLogPen.lopnStyle, + SafeLogPen.lopnWidth.x, + BS_SOLID, + SafeLogPen.lopnColor, + 0, + 0, + 0, + NULL, + 0, + TRUE, + 0); } HPEN STDCALL NtGdiExtCreatePen( - DWORD PenStyle, - DWORD Width, - IN ULONG iBrushStyle, + DWORD dwPenStyle, + DWORD ulWidth, + IN ULONG ulBrushStyle, IN ULONG ulColor, - IN ULONG_PTR lClientHatch, - IN ULONG_PTR lHatch, - DWORD StyleCount, - PULONG Style, + IN ULONG_PTR ulClientHatch, + IN ULONG_PTR ulHatch, + DWORD dwStyleCount, + PULONG pUnsafeStyle, IN ULONG cjDIB, IN BOOL bOldStylePen, - IN OPTIONAL HBRUSH hbrush) -{ - LOGPEN LogPen; - - if (PenStyle & PS_USERSTYLE) - PenStyle = (PenStyle & ~PS_STYLE_MASK) | PS_SOLID; - - LogPen.lopnStyle = PenStyle & PS_STYLE_MASK; - LogPen.lopnWidth.x = Width; - LogPen.lopnColor = ulColor; - - return IntGdiCreatePenIndirect(&LogPen); -} - -VOID FASTCALL -IntGdiSetSolidPenColor(HPEN hPen, COLORREF Color) -{ - PGDIBRUSHOBJ PenObject; - - PenObject = PENOBJ_LockPen(hPen); - if (PenObject->flAttrs & GDIBRUSH_IS_SOLID) - { - PenObject->BrushAttr.lbColor = Color & 0xFFFFFF; - } - PENOBJ_UnlockPen(PenObject); -} + IN OPTIONAL HBRUSH hBrush) +{ + NTSTATUS Status = STATUS_SUCCESS; + DWORD* pSafeStyle = NULL; + HPEN hPen; + + if (dwStyleCount > 16) + { + return 0; + } + + if (dwStyleCount > 0) + { + pSafeStyle = ExAllocatePoolWithTag(NonPagedPool, dwStyleCount * sizeof(DWORD), TAG_EXTPEN); + if (!pSafeStyle) + { + SetLastNtError(ERROR_NOT_ENOUGH_MEMORY); + return 0; + } + _SEH_TRY + { + ProbeForRead(pUnsafeStyle, dwStyleCount * sizeof(DWORD), 1); + RtlCopyMemory(pSafeStyle, + pUnsafeStyle, + dwStyleCount * sizeof(DWORD)); + } + _SEH_HANDLE + { + Status = _SEH_GetExceptionCode(); + } + _SEH_END + if(!NT_SUCCESS(Status)) + { + SetLastNtError(Status); + ExFreePool(pSafeStyle); + return 0; + } + } + + hPen = IntGdiExtCreatePen(dwPenStyle, + ulWidth, + ulBrushStyle, + ulColor, + ulClientHatch, + ulHatch, + dwStyleCount, + pSafeStyle, + cjDIB, + bOldStylePen, + hBrush); + + if ((!hPen) && (pSafeStyle)) + { + ExFreePool(pSafeStyle); + } + + return hPen; +} + /* EOF */ Modified: trunk/reactos/subsystems/win32/win32k/objects/stockobj.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/stockobj.c (original) +++ trunk/reactos/subsystems/win32/win32k/objects/stockobj.c Wed May 2 02:04:47 2007 @@ -130,9 +130,9 @@ StockObjects[BLACK_BRUSH] = IntGdiCreateSolidBrush(RGB(0,0,0)); StockObjects[NULL_BRUSH] = IntGdiCreateNullBrush(); - StockObjects[WHITE_PEN] = IntGdiCreatePenIndirect(&WhitePen); - StockObjects[BLACK_PEN] = IntGdiCreatePenIndirect(&BlackPen); - StockObjects[NULL_PEN] = IntGdiCreatePenIndirect(&NullPen); + StockObjects[WHITE_PEN] = IntGdiExtCreatePen(WhitePen.lopnStyle, WhitePen.lopnWidth.x, BS_SOLID, WhitePen.lopnColor, 0, 0, 0, NULL, 0, TRUE, NULL); + StockObjects[BLACK_PEN] = IntGdiExtCreatePen(BlackPen.lopnStyle, BlackPen.lopnWidth.x, BS_SOLID, BlackPen.lopnColor, 0, 0, 0, NULL, 0, TRUE, NULL); + StockObjects[NULL_PEN] = IntGdiExtCreatePen(NullPen.lopnStyle, NullPen.lopnWidth.x, BS_SOLID, NullPen.lopnColor, 0, 0, 0, NULL, 0, TRUE, NULL); (void) TextIntCreateFontIndirect(&OEMFixedFont, (HFONT*)&StockObjects[OEM_FIXED_FONT]); (void) TextIntCreateFontIndirect(&AnsiFixedFont, (HFONT*)&StockObjects[ANSI_FIXED_FONT]); @@ -296,7 +296,7 @@ if(SysColorPens[i] == NULL) { Pen.lopnColor = SysColors[i]; - SysColorPens[i] = IntGdiCreatePenIndirect(&Pen); + SysColorPens[i] = IntGdiExtCreatePen(Pen.lopnStyle, Pen.lopnWidth.x, BS_SOLID, Pen.lopnColor, 0, 0, 0, NULL, 0, TRUE, NULL); if(SysColorPens[i] != NULL) { GDIOBJ_ConvertToStockObj(GdiHandleTable, (HGDIOBJ*)&SysColorPens[i]); Modified: trunk/reactos/subsystems/win32/win32k/stubs/stubs.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/st…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/stubs/stubs.c (original) +++ trunk/reactos/subsystems/win32/win32k/stubs/stubs.c Wed May 2 02:04:47 2007 @@ -60,6 +60,7 @@ return EngUnmapFontFileFD ( iFile ); } +#if 0 /* * @unimplemented */ @@ -82,6 +83,7 @@ UNIMPLEMENTED; return FALSE; } +#endif /* * @unimplemented Modified: trunk/reactos/subsystems/win32/win32k/win32k.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/wi…
============================================================================== --- trunk/reactos/subsystems/win32/win32k/win32k.rbuild (original) +++ trunk/reactos/subsystems/win32/win32k/win32k.rbuild Wed May 2 02:04:47 2007 @@ -65,6 +65,7 @@ <file>semaphor.c</file> <file>sort.c</file> <file>surface.c</file> + <file>engtext.c</file> <file>transblt.c</file> <file>engwindow.c</file> <file>xlate.c</file>
17 years, 7 months
1
0
0
0
[dgorbachev] 26618: Update Italian keyboard layout (bug #1963).
by dgorbachev@svn.reactos.org
Author: dgorbachev Date: Wed May 2 01:35:14 2007 New Revision: 26618 URL:
http://svn.reactos.org/svn/reactos?rev=26618&view=rev
Log: Update Italian keyboard layout (bug #1963). Modified: trunk/reactos/dll/keyboard/kbdit/kbdit.c trunk/reactos/dll/keyboard/keyboard.rbuild Modified: trunk/reactos/dll/keyboard/kbdit/kbdit.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/keyboard/kbdit/kbdit.c…
============================================================================== --- trunk/reactos/dll/keyboard/kbdit/kbdit.c (original) +++ trunk/reactos/dll/keyboard/kbdit/kbdit.c Wed May 2 01:35:14 2007 @@ -1,362 +1,417 @@ -/* - * ReactOS Italian Keyboard layout - * Copyright (C) 2007 ReactOS - * License: LGPL, see: LGPL.txt - * - */ - -#include <windows.h> -#include <internal/kbd.h> - -#ifdef _M_IA64 -#define ROSDATA static __declspec(allocate(".data")) -#else -#ifdef _MSC_VER -#pragma data_seg(".data") -#define ROSDATA static -#else -#define ROSDATA static __attribute__((section(".data"))) -#endif -#endif - -#define VK_EMPTY 0xff /* The non-existent VK */ -#define KSHIFT 0x001 /* Shift modifier */ -#define KCTRL 0x002 /* Ctrl modifier */ -#define KALT 0x004 /* Alt modifier */ -#define KEXT 0x100 /* Extended key code */ -#define KMULTI 0x200 /* Multi-key */ -#define KSPEC 0x400 /* Special key */ -#define KNUMP 0x800 /* Number-pad */ -#define KNUMS 0xc00 /* Special + number pad */ -#define KMEXT 0x300 /* Multi + ext */ - -ROSDATA USHORT scancode_to_vk[] = { - /* Numbers Row */ - /* - 00 - */ - /* 1 ... 2 ... 3 ... 4 ... */ - VK_EMPTY, VK_ESCAPE, '1', '2', - '3', '4', '5', '6', - '7', '8', '9', '0', - VK_OEM_MINUS, VK_OEM_PLUS, VK_BACK, - /* - 0f - */ - /* First Letters Row */ - VK_TAB, 'Q', 'W', 'E', - 'R', 'T', 'Y', 'U', - 'I', 'O', 'P', - VK_OEM_4, VK_OEM_6, VK_RETURN, - /* - 1d - */ - /* Second Letters Row */ - VK_LCONTROL, - 'A', 'S', 'D', 'F', - 'G', 'H', 'J', 'K', - 'L', VK_OEM_1, VK_OEM_7, VK_OEM_3, - VK_LSHIFT, VK_OEM_5, - /* - 2c - */ - /* Third letters row */ - 'Z', 'X', 'C', 'V', - 'B', 'N', 'M', VK_OEM_COMMA, - VK_OEM_PERIOD,VK_OEM_2, VK_RSHIFT, - /* - 37 - */ - /* Bottom Row */ - VK_MULTIPLY, VK_LMENU, VK_SPACE, VK_CAPITAL, - - /* - 3b - */ - /* F-Keys */ - VK_F1, VK_F2, VK_F3, VK_F4, VK_F5, VK_F6, - VK_F7, VK_F8, VK_F9, VK_F10, - /* - 45 - */ - /* Locks */ - VK_NUMLOCK | KMEXT, - VK_SCROLL | KMULTI, - /* - 47 - */ - /* Number-Pad */ - VK_HOME | KNUMS, VK_UP | KNUMS, VK_PRIOR | KNUMS, VK_SUBTRACT, - VK_LEFT | KNUMS, VK_CLEAR | KNUMS, VK_RIGHT | KNUMS, VK_ADD, - VK_END | KNUMS, VK_DOWN | KNUMS, VK_NEXT | KNUMS, - VK_INSERT | KNUMS, VK_DELETE | KNUMS, - /* - 54 - */ - /* Presumably PrtSc */ - VK_SNAPSHOT, - /* - 55 - */ - /* Oddities, and the remaining standard F-Keys */ - VK_EMPTY, VK_EMPTY, VK_F11, VK_F12, - /* - 59 - */ - VK_CLEAR, VK_EMPTY, VK_EMPTY, VK_EMPTY, VK_EMPTY, /* EREOF */ - VK_EMPTY, VK_EMPTY, VK_EMPTY, VK_EMPTY, VK_EMPTY, /* ZOOM */ - VK_HELP, - /* - 64 - */ - /* Even more F-Keys (for example, NCR keyboards from the early 90's) */ - VK_F13, VK_F14, VK_F15, VK_F16, VK_F17, VK_F18, VK_F19, VK_F20, - VK_F21, VK_F22, VK_F23, - /* - 6f - */ - /* Not sure who uses these codes */ - VK_EMPTY, VK_EMPTY, VK_EMPTY, - /* - 72 - */ - VK_EMPTY, VK_EMPTY, VK_EMPTY, VK_EMPTY, - /* - 76 - */ - /* One more f-key */ - VK_F24, - /* - 77 - */ - VK_EMPTY, VK_EMPTY, VK_EMPTY, VK_EMPTY, - VK_EMPTY, VK_EMPTY, VK_EMPTY, VK_EMPTY, /* PA1 */ - VK_EMPTY, - /* - 80 - */ - 0 -}; - -ROSDATA VSC_VK extcode0_to_vk[] = { - { 0, 0 }, -}; - -ROSDATA VSC_VK extcode1_to_vk[] = { - { 0, 0 }, -}; - -ROSDATA VK_TO_BIT modifier_keys[] = { - { VK_SHIFT, KSHIFT }, - { VK_CONTROL, KCTRL }, - { VK_MENU, KALT }, - { 0, 0 } -}; - -ROSDATA MODIFIERS modifier_bits = { - modifier_keys, - 3, - { 0, 1, 2, 3 } /* Modifier bit order, NONE, SHIFT, CTRL, ALT */ -}; - -#define NOCAPS 0 -#define CAPS KSHIFT /* Caps -> shift */ - -ROSDATA VK_TO_WCHARS2 key_to_chars_2mod[] = { - /* Normal vs Shifted */ - /* The numbers */ - { '1', NOCAPS, {'1', '!'} }, - /* Ctrl-2 generates NUL */ - { '3', NOCAPS, {'3', '£'} }, - { '4', NOCAPS, {'4', '$'} }, - { '5', NOCAPS, {'5', '%'} }, - /* Ctrl-6 generates RS */ - { '7', NOCAPS, {'7', '/'} }, - { '8', NOCAPS, {'8', '('} }, - { '9', NOCAPS, {'9', ')'} }, - { '0', NOCAPS, {'0', '='} }, - - /* Specials */ - /* Ctrl-_ generates US */ - { VK_OEM_PLUS ,NOCAPS, {'ì', '^'} }, - { VK_OEM_1 ,NOCAPS, {'ò', 'ç'} }, - { VK_OEM_7 ,NOCAPS, {'à', '°'} }, - { VK_OEM_3 ,NOCAPS, {'ù', '§'} }, - { VK_OEM_COMMA ,NOCAPS, {',', ';'} }, - { VK_OEM_PERIOD ,NOCAPS, {'.', ':'} }, - { VK_OEM_2 ,NOCAPS, {'-', '_'} }, - /* Keys that do not have shift states */ - { VK_TAB ,NOCAPS, {'\t','\t'} }, - { VK_ADD ,NOCAPS, {'+', '+'} }, - { VK_SUBTRACT,NOCAPS, {'-', '-'} }, - { VK_MULTIPLY,NOCAPS, {'*', '*'} }, - { VK_DIVIDE ,NOCAPS, {'/', '/'} }, - { VK_ESCAPE ,NOCAPS, {'\x1b','\x1b'} }, - { VK_SPACE ,NOCAPS, {' ', ' '} }, - { 0, 0 } -}; - -ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = { - /* Normal, Shifted, Ctrl */ - /* Legacy (telnet-style) ascii escapes */ - { VK_OEM_4, 0, {'è', 'é', 0x1b /* ESC */} }, - { VK_OEM_6, 0, {'+', '*', 0x1d /* GS */} }, - { VK_OEM_5, 0, {'\\','|', 0x1c /* FS */} }, - { VK_RETURN,0, {'\r', '\r', '\n'} }, - { 0,0 } -}; - -ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[] = { - /* Normal, Shifted, Ctrl, C-S-x */ -//VK_OEM_1, VK_OEM_7, VK_OEM_3, - { VK_OEM_1, CAPS, {'ò', 'ç', 0x01, '@'} }, - { VK_OEM_7, CAPS, {'à', '°', 0x01, '#'} }, - - //VK_OEM_4, VK_OEM_6 - { VK_OEM_4, CAPS, {'è', 'é', '{', '['} }, - { VK_OEM_6, CAPS, {'+', '*', '}', ']'} }, - - /* The alphabet */ - { 'A', CAPS, {'a', 'A', 0x01, 0x01} }, - { 'B', CAPS, {'b', 'B', 0x02, 0x02} }, - { 'C', CAPS, {'c', 'C', 0x03, 0x03} }, - { 'D', CAPS, {'d', 'D', 0x04, 0x04} }, - { 'E', CAPS, {'e', 'E', 0x05, 0x20AC} }, // eE - { 'F', CAPS, {'f', 'F', 0x06, 0x06} }, - { 'G', CAPS, {'g', 'G', 0x07, 0x07} }, - { 'H', CAPS, {'h', 'H', 0x08, 0x08} }, - { 'I', CAPS, {'i', 'I', 0x09, 0x09} }, - { 'J', CAPS, {'j', 'J', 0x0a, 0x0a} }, - { 'K', CAPS, {'k', 'K', 0x0b, 0x0b} }, - { 'L', CAPS, {'l', 'L', 0x0c, 0x0c} }, - { 'M', CAPS, {'m', 'M', 0x0d, 0x0d} }, - { 'N', CAPS, {'n', 'N', 0x0e, 0x0e} }, - { 'O', CAPS, {'o', 'O', 0x0f, 0x0f} }, - { 'P', CAPS, {'p', 'P', 0x10, 0x10} }, - { 'Q', CAPS, {'q', 'Q', 0x11, 0x11} }, - { 'R', CAPS, {'r', 'R', 0x12, 0x12} }, - { 'S', CAPS, {'s', 'S', 0x13, 0x13} }, - { 'T', CAPS, {'t', 'T', 0x14, 0x14} }, - { 'U', CAPS, {'u', 'U', 0x15, 0x15} }, - { 'V', CAPS, {'v', 'V', 0x16, 0x16} }, - { 'W', CAPS, {'w', 'W', 0x17, 0x17} }, - { 'X', CAPS, {'x', 'X', 0x18, 0x18} }, - { 'Y', CAPS, {'y', 'Y', 0x19, 0x19} }, - { 'Z', CAPS, {'z', 'Z', 0x1a, 0x1a} }, - - /* Legacy Ascii generators */ - { '2', NOCAPS, {'2', '"', WCH_NONE, 0} }, - { '6', NOCAPS, {'6', '&', WCH_NONE, 0x1e /* RS */} }, - { VK_OEM_MINUS, NOCAPS, {'\'', '?', WCH_NONE, 0x1f /* US */} }, - { 0, 0 } -}; - -ROSDATA VK_TO_WCHARS1 keypad_numbers[] = { - { VK_NUMPAD0, 0, {'0'} }, - { VK_NUMPAD1, 0, {'1'} }, - { VK_NUMPAD2, 0, {'2'} }, - { VK_NUMPAD3, 0, {'3'} }, - { VK_NUMPAD4, 0, {'4'} }, - { VK_NUMPAD5, 0, {'5'} }, - { VK_NUMPAD6, 0, {'6'} }, - { VK_NUMPAD7, 0, {'7'} }, - { VK_NUMPAD8, 0, {'8'} }, - { VK_NUMPAD9, 0, {'9'} }, - { VK_DECIMAL, 0, {'.'} }, - { VK_BACK, 0, {'\010'} }, - { 0,0 } -}; - -#define vk_master(n,x) { (PVK_TO_WCHARS1)x, n, sizeof(x[0]) } - -ROSDATA VK_TO_WCHAR_TABLE vk_to_wchar_master_table[] = { - vk_master(1,keypad_numbers), - vk_master(2,key_to_chars_2mod), - vk_master(3,key_to_chars_3mod), - vk_master(4,key_to_chars_4mod), - { 0,0,0 } -}; - -ROSDATA VSC_LPWSTR key_names[] = { - { 0x00, L"" }, - { 0x01, L"Esc" }, - { 0x0e, L"Backspace" }, - { 0x0f, L"Tab" }, - { 0x1c, L"Enter" }, - { 0x1d, L"Ctrl" }, - { 0x2a, L"Shift" }, - { 0x36, L"Right Shift" }, - { 0x37, L"Num *" }, - { 0x38, L"Alt" }, - { 0x39, L"Space" }, - { 0x3a, L"Caps Lock" }, - { 0x3b, L"F1" }, - { 0x3c, L"F2" }, - { 0x3d, L"F3" }, - { 0x3e, L"F4" }, - { 0x3f, L"F5" }, - { 0x40, L"F6" }, - { 0x41, L"F7" }, - { 0x42, L"F8" }, - { 0x43, L"F9" }, - { 0x44, L"F10" }, - { 0x45, L"Pause" }, - { 0x46, L"Scroll Lock" }, - { 0x47, L"Num 7" }, - { 0x48, L"Num 8" }, - { 0x49, L"Num 9" }, - { 0x4a, L"Num -" }, - { 0x4b, L"Num 4" }, - { 0x4c, L"Num 5" }, - { 0x4d, L"Num 6" }, - { 0x4e, L"Num +" }, - { 0x4f, L"Num 1" }, - { 0x50, L"Num 2" }, - { 0x51, L"Num 3" }, - { 0x52, L"Num 0" }, - { 0x53, L"Num Del" }, - { 0x54, L"Sys Req" }, - { 0x57, L"F11" }, - { 0x58, L"F12" }, - { 0x7c, L"F13" }, - { 0x7d, L"F14" }, - { 0x7e, L"F15" }, - { 0x7f, L"F16" }, - { 0x80, L"F17" }, - { 0x81, L"F18" }, - { 0x82, L"F19" }, - { 0x83, L"F20" }, - { 0x84, L"F21" }, - { 0x85, L"F22" }, - { 0x86, L"F23" }, - { 0x87, L"F24" }, - { 0, NULL }, -}; - -ROSDATA VSC_LPWSTR extended_key_names[] = { - { 0x1c, L"Num Enter" }, - { 0x1d, L"Right Ctrl" }, - { 0x35, L"Num /" }, - { 0x37, L"Prnt Scrn" }, - { 0x38, L"Right Alt" }, - { 0x45, L"Num Lock" }, - { 0x46, L"Break" }, - { 0x47, L"Home" }, - { 0x48, L"Up" }, - { 0x49, L"Page Up" }, - { 0x4a, L"Left" }, - { 0x4c, L"Center" }, - { 0x4d, L"Right" }, - { 0x4f, L"End" }, - { 0x50, L"Down" }, - { 0x51, L"Page Down" }, - { 0x52, L"Insert" }, - { 0x53, L"Delete" }, - { 0x54, L"<ReactOS>" }, - { 0x55, L"Help" }, - { 0x56, L"Left Windows" }, - { 0x5b, L"Right Windows" }, - { 0, NULL }, -}; - -/* Finally, the master table */ -ROSDATA KBDTABLES keyboard_layout_table = { - /* modifier assignments */ - &modifier_bits, - - /* character from vk tables */ - vk_to_wchar_master_table, - - /* diacritical marks -- currently implemented by wine code */ - /* doesn't have any, anyway */ - NULL, - - /* Key names */ - (VSC_LPWSTR *)key_names, - (VSC_LPWSTR *)extended_key_names, - NULL, /* Dead key names */ - - /* scan code to virtual key maps */ - scancode_to_vk, - sizeof(scancode_to_vk) / sizeof(scancode_to_vk[0]), - extcode0_to_vk, - extcode1_to_vk, - - MAKELONG(0,1), /* Version 1.0 */ - - /* Ligatures -- English doesn't have any */ - 0, - 0, - NULL -}; - -PKBDTABLES STDCALL KbdLayerDescriptor(VOID) { - return &keyboard_layout_table; -} - +/* + * ReactOS Italian Keyboard layout + * Copyright (C) 2007 ReactOS + * License: LGPL, see: LGPL.txt + * + */ + +#include <windows.h> +#include <internal/kbd.h> + +#ifdef _M_IA64 +#define ROSDATA static __declspec(allocate(".data")) +#else +#ifdef _MSC_VER +#pragma data_seg(".data") +#define ROSDATA static +#else +#define ROSDATA static __attribute__((section(".data"))) +#endif +#endif + +#define VK_EMPTY 0xff /* The non-existent VK */ +#define KSHIFT 0x001 /* Shift modifier */ +#define KCTRL 0x002 /* Ctrl modifier */ +#define KALT 0x004 /* Alt modifier */ +#define KEXT 0x100 /* Extended key code */ +#define KMULTI 0x200 /* Multi-key */ +#define KSPEC 0x400 /* Special key */ +#define KNUMP 0x800 /* Number-pad */ +#define KNUMS 0xc00 /* Special + number pad */ +#define KMEXT 0x300 /* Multi + ext */ + +#define SHFT_INVALID 0x0F + +ROSDATA USHORT scancode_to_vk[] = { +/* 00 */ VK_EMPTY, +/* 01 */ VK_ESCAPE, +/* 02 */ '1', +/* 03 */ '2', +/* 04 */ '3', +/* 05 */ '4', +/* 06 */ '5', +/* 07 */ '6', +/* 08 */ '7', +/* 09 */ '8', +/* 0a */ '9', +/* 0b */ '0', +/* 0c */ VK_OEM_4, +/* 0d */ VK_OEM_6, +/* 0e */ VK_BACK, +/* 0f */ VK_TAB, +/* 10 */ 'Q', +/* 11 */ 'W', +/* 12 */ 'E', +/* 13 */ 'R', +/* 14 */ 'T', +/* 15 */ 'Y', +/* 16 */ 'U', +/* 17 */ 'I', +/* 18 */ 'O', +/* 19 */ 'P', +/* 1a */ VK_OEM_1, +/* 1b */ VK_OEM_PLUS, +/* 1c */ VK_RETURN, +/* 1d */ VK_LCONTROL, +/* 1e */ 'A', +/* 1f */ 'S', +/* 20 */ 'D', +/* 21 */ 'F', +/* 22 */ 'G', +/* 23 */ 'H', +/* 24 */ 'J', +/* 25 */ 'K', +/* 26 */ 'L', +/* 27 */ VK_OEM_3, +/* 28 */ VK_OEM_7, +/* 29 */ VK_OEM_2, +/* 2a */ VK_LSHIFT, +/* 2b */ VK_OEM_5, +/* 2c */ 'Z', +/* 2d */ 'X', +/* 2e */ 'C', +/* 2f */ 'V', +/* 30 */ 'B', +/* 31 */ 'N', +/* 32 */ 'M', +/* 33 */ VK_OEM_COMMA, +/* 34 */ VK_OEM_PERIOD, +/* 35 */ VK_OEM_MINUS, +/* 36 */ VK_RSHIFT, +/* 37 */ VK_MULTIPLY, +/* 38 */ VK_LMENU, +/* 39 */ VK_SPACE, +/* 3a */ VK_CAPITAL, +/* 3b */ VK_F1, +/* 3c */ VK_F2, +/* 3d */ VK_F3, +/* 3e */ VK_F4, +/* 3f */ VK_F5, +/* 40 */ VK_F6, +/* 41 */ VK_F7, +/* 42 */ VK_F8, +/* 43 */ VK_F9, +/* 44 */ VK_F10, +/* 45 */ VK_NUMLOCK | KMEXT, +/* 46 */ VK_SCROLL | KMULTI, +/* 47 */ VK_HOME | KNUMS, +/* 48 */ VK_UP | KNUMS, +/* 49 */ VK_PRIOR | KNUMS, +/* 4a */ VK_SUBTRACT, +/* 4b */ VK_LEFT | KNUMS, +/* 4c */ VK_CLEAR | KNUMS, +/* 4d */ VK_RIGHT | KNUMS, +/* 4e */ VK_ADD, +/* 4f */ VK_END | KNUMS, +/* 50 */ VK_DOWN | KNUMS, +/* 51 */ VK_NEXT | KNUMS, +/* 52 */ VK_INSERT | KNUMS, +/* 53 */ VK_DELETE | KNUMS, +/* 54 */ VK_SNAPSHOT, +/* 55 */ VK_EMPTY, +/* 56 */ VK_OEM_102, +/* 57 */ VK_F11, +/* 58 */ VK_F12, +/* 59 */ VK_EMPTY, +/* 5a */ VK_CLEAR, +/* 5b */ VK_EMPTY, +/* 5c */ VK_EMPTY, +/* 5d */ VK_EMPTY, +/* 5e */ VK_EMPTY, /* EREOF */ +/* 5f */ VK_EMPTY, +/* 60 */ VK_EMPTY, +/* 61 */ VK_EMPTY, +/* 62 */ VK_EMPTY, +/* 63 */ VK_EMPTY, /* ZOOM */ +/* 64 */ VK_HELP, +/* 65 */ VK_F13, +/* 66 */ VK_F14, +/* 67 */ VK_F15, +/* 68 */ VK_F16, +/* 69 */ VK_F17, +/* 6a */ VK_F18, +/* 6b */ VK_F19, +/* 6c */ VK_F20, +/* 6d */ VK_F21, +/* 6e */ VK_F22, +/* 6f */ VK_F23, +/* 70 */ VK_EMPTY, +/* 71 */ VK_EMPTY, +/* 72 */ VK_EMPTY, +/* 73 */ VK_EMPTY, +/* 74 */ VK_EMPTY, +/* 75 */ VK_EMPTY, +/* 76 */ VK_EMPTY, +/* 77 */ VK_F24, +/* 78 */ VK_EMPTY, +/* 79 */ VK_EMPTY, +/* 7a */ VK_EMPTY, +/* 7b */ VK_EMPTY, +/* 7c */ VK_EMPTY, +/* 7d */ VK_EMPTY, +/* 7e */ VK_EMPTY, +/* 7f */ VK_EMPTY, +/* 80 */ VK_EMPTY, +/* 00 */ 0 +}; + +ROSDATA VSC_VK extcode0_to_vk[] = { + { 0, 0 }, +}; + +ROSDATA VSC_VK extcode1_to_vk[] = { + { 0, 0 }, +}; + +ROSDATA VK_TO_BIT modifier_keys[] = { + { VK_SHIFT, KSHIFT }, + { VK_CONTROL, KCTRL }, + { VK_MENU, KALT }, + { 0, 0 } +}; + +ROSDATA MODIFIERS modifier_bits = { + modifier_keys, + 6, + { 0, 1, 2, 4, SHFT_INVALID, SHFT_INVALID, 3 } +}; + +#define NOCAPS 0 +#define CAPS KSHIFT /* Caps -> shift */ + +ROSDATA VK_TO_WCHARS2 key_to_chars_2mod[] = { + /* Normal vs Shifted */ + /* The numbers */ + { '1', NOCAPS, {'1', '!'} }, + { '2', NOCAPS, {'2', '"'} }, + { '3', NOCAPS, {'3', 0x00a3} }, + { '4', NOCAPS, {'4', '$'} }, + { '5', NOCAPS, {'5', '%'} }, + { '6', NOCAPS, {'6', '&'} }, + { '7', NOCAPS, {'7', '/'} }, + { '8', NOCAPS, {'8', '('} }, + { '9', NOCAPS, {'9', ')'} }, + { '0', NOCAPS, {'0', '='} }, + + /* Specials */ + /* Ctrl-_ generates US */ + { VK_OEM_2 ,NOCAPS, {'\\', '|'} }, + { VK_OEM_4 ,NOCAPS, {'\'', '?'} }, + { VK_OEM_102 ,NOCAPS, {'<', '>'} }, + { VK_OEM_COMMA ,NOCAPS, {',', ';'} }, + { VK_OEM_PERIOD ,NOCAPS, {'.', ':'} }, + { VK_OEM_MINUS ,NOCAPS, {'-', '_'} }, + /* Keys that do not have shift states */ + { VK_TAB ,NOCAPS, {'\t','\t'} }, + { VK_ADD ,NOCAPS, {'+', '+'} }, + { VK_SUBTRACT,NOCAPS, {'-', '-'} }, + { VK_MULTIPLY,NOCAPS, {'*', '*'} }, + { VK_DIVIDE ,NOCAPS, {'/', '/'} }, + { VK_ESCAPE ,NOCAPS, {'\x1b','\x1b'} }, + { VK_SPACE ,NOCAPS, {' ', ' '} }, + { VK_OEM_5 ,NOCAPS, {0x00f9, 0x00a7} },//ù§ + { 0, 0 } +}; + +ROSDATA VK_TO_WCHARS3 key_to_chars_3mod[] = { + /* Normal, Shifted, Ctrl */ + /* Legacy (telnet-style) ascii escapes */ + { VK_RETURN,0, {'\r', '\r', '\n'} }, + { 0,0 } +}; + +ROSDATA VK_TO_WCHARS4 key_to_chars_4mod[] = { + /* Normal, Shifted, Ctrl, C-S-x */ + { VK_OEM_6, NOCAPS, {0x00ec, '^', WCH_NONE, '~' } }, + { VK_OEM_3, NOCAPS, {0x00f2, 0x00e7, WCH_NONE, '@' } },//òç + { VK_OEM_7, NOCAPS, {0x00e0, 0x00b0, WCH_NONE, '#'} },//à° + + { VK_OEM_1, NOCAPS, {0x00e8, 0x00e9, '{', '['} },// èé + { VK_OEM_PLUS,NOCAPS, {'+', '*', '}', ']'} }, + + /* The alphabet */ + { 'A', CAPS, {'a', 'A', 0x01, 0x01} }, + { 'B', CAPS, {'b', 'B', 0x02, 0x02} }, + { 'C', CAPS, {'c', 'C', 0x03, 0x03} }, + { 'D', CAPS, {'d', 'D', 0x04, 0x04} }, + { 'E', CAPS, {'e', 'E', 0x05, 0x20AC} }, // eE + { 'F', CAPS, {'f', 'F', 0x06, 0x06} }, + { 'G', CAPS, {'g', 'G', 0x07, 0x07} }, + { 'H', CAPS, {'h', 'H', 0x08, 0x08} }, + { 'I', CAPS, {'i', 'I', 0x09, 0x09} }, + { 'J', CAPS, {'j', 'J', 0x0a, 0x0a} }, + { 'K', CAPS, {'k', 'K', 0x0b, 0x0b} }, + { 'L', CAPS, {'l', 'L', 0x0c, 0x0c} }, + { 'M', CAPS, {'m', 'M', 0x0d, 0x0d} }, + { 'N', CAPS, {'n', 'N', 0x0e, 0x0e} }, + { 'O', CAPS, {'o', 'O', 0x0f, 0x0f} }, + { 'P', CAPS, {'p', 'P', 0x10, 0x10} }, + { 'Q', CAPS, {'q', 'Q', 0x11, 0x11} }, + { 'R', CAPS, {'r', 'R', 0x12, 0x12} }, + { 'S', CAPS, {'s', 'S', 0x13, 0x13} }, + { 'T', CAPS, {'t', 'T', 0x14, 0x14} }, + { 'U', CAPS, {'u', 'U', 0x15, 0x15} }, + { 'V', CAPS, {'v', 'V', 0x16, 0x16} }, + { 'W', CAPS, {'w', 'W', 0x17, 0x17} }, + { 'X', CAPS, {'x', 'X', 0x18, 0x18} }, + { 'Y', CAPS, {'y', 'Y', 0x19, 0x19} }, + { 'Z', CAPS, {'z', 'Z', 0x1a, 0x1a} }, + + /* Legacy Ascii generators */ +//zz { VK_OEM_MINUS, NOCAPS, {'\'', '?', WCH_NONE, 0x1f /* US */} }, + { 0, 0 } +}; + +ROSDATA VK_TO_WCHARS1 keypad_numbers[] = { + { VK_NUMPAD0, 0, {'0'} }, + { VK_NUMPAD1, 0, {'1'} }, + { VK_NUMPAD2, 0, {'2'} }, + { VK_NUMPAD3, 0, {'3'} }, + { VK_NUMPAD4, 0, {'4'} }, + { VK_NUMPAD5, 0, {'5'} }, + { VK_NUMPAD6, 0, {'6'} }, + { VK_NUMPAD7, 0, {'7'} }, + { VK_NUMPAD8, 0, {'8'} }, + { VK_NUMPAD9, 0, {'9'} }, + { VK_DECIMAL, 0, {'.'} }, + { VK_BACK, 0, {'\010'} }, + { 0,0 } +}; + +#define vk_master(n,x) { (PVK_TO_WCHARS1)x, n, sizeof(x[0]) } + +ROSDATA VK_TO_WCHAR_TABLE vk_to_wchar_master_table[] = { + vk_master(1,keypad_numbers), + vk_master(2,key_to_chars_2mod), + vk_master(3,key_to_chars_3mod), + vk_master(4,key_to_chars_4mod), + { 0,0,0 } +}; + +ROSDATA VSC_LPWSTR key_names[] = { + { 0x00, L"" }, + { 0x01, L"Esc" }, + { 0x0e, L"Backspace" }, + { 0x0f, L"Tab" }, + { 0x1c, L"Enter" }, + { 0x1d, L"Ctrl" }, + { 0x2a, L"Shift" }, + { 0x36, L"Right Shift" }, + { 0x37, L"Num *" }, + { 0x38, L"Alt" }, + { 0x39, L"Space" }, + { 0x3a, L"Caps Lock" }, + { 0x3b, L"F1" }, + { 0x3c, L"F2" }, + { 0x3d, L"F3" }, + { 0x3e, L"F4" }, + { 0x3f, L"F5" }, + { 0x40, L"F6" }, + { 0x41, L"F7" }, + { 0x42, L"F8" }, + { 0x43, L"F9" }, + { 0x44, L"F10" }, + { 0x45, L"Pause" }, + { 0x46, L"Scroll Lock" }, + { 0x47, L"Num 7" }, + { 0x48, L"Num 8" }, + { 0x49, L"Num 9" }, + { 0x4a, L"Num -" }, + { 0x4b, L"Num 4" }, + { 0x4c, L"Num 5" }, + { 0x4d, L"Num 6" }, + { 0x4e, L"Num +" }, + { 0x4f, L"Num 1" }, + { 0x50, L"Num 2" }, + { 0x51, L"Num 3" }, + { 0x52, L"Num 0" }, + { 0x53, L"Num Del" }, + { 0x54, L"Sys Req" }, + { 0x57, L"F11" }, + { 0x58, L"F12" }, + { 0x7c, L"F13" }, + { 0x7d, L"F14" }, + { 0x7e, L"F15" }, + { 0x7f, L"F16" }, + { 0x80, L"F17" }, + { 0x81, L"F18" }, + { 0x82, L"F19" }, + { 0x83, L"F20" }, + { 0x84, L"F21" }, + { 0x85, L"F22" }, + { 0x86, L"F23" }, + { 0x87, L"F24" }, + { 0, NULL }, +}; + +ROSDATA VSC_LPWSTR extended_key_names[] = { + { 0x1c, L"Num Enter" }, + { 0x1d, L"Right Ctrl" }, + { 0x35, L"Num /" }, + { 0x37, L"Prnt Scrn" }, + { 0x38, L"Right Alt" }, + { 0x45, L"Num Lock" }, + { 0x46, L"Break" }, + { 0x47, L"Home" }, + { 0x48, L"Up" }, + { 0x49, L"Page Up" }, + { 0x4a, L"Left" }, + { 0x4c, L"Center" }, + { 0x4d, L"Right" }, + { 0x4f, L"End" }, + { 0x50, L"Down" }, + { 0x51, L"Page Down" }, + { 0x52, L"Insert" }, + { 0x53, L"Delete" }, + { 0x54, L"<ReactOS>" }, + { 0x55, L"Help" }, + { 0x56, L"Left Windows" }, + { 0x5b, L"Right Windows" }, + { 0, NULL }, +}; + +/* Finally, the master table */ +ROSDATA KBDTABLES keyboard_layout_table = { + /* modifier assignments */ + &modifier_bits, + + /* character from vk tables */ + vk_to_wchar_master_table, + + /* diacritical marks -- currently implemented by wine code */ + /* doesn't have any, anyway */ + NULL, + + /* Key names */ + (VSC_LPWSTR *)key_names, + (VSC_LPWSTR *)extended_key_names, + NULL, /* Dead key names */ + + /* scan code to virtual key maps */ + scancode_to_vk, + sizeof(scancode_to_vk) / sizeof(scancode_to_vk[0]), + extcode0_to_vk, + extcode1_to_vk, + + MAKELONG(0,1), /* Version 1.0 */ + + /* Ligatures */ + 0, + 0, + NULL +}; + +PKBDTABLES STDCALL KbdLayerDescriptor(VOID) { + return &keyboard_layout_table; +} + Modified: trunk/reactos/dll/keyboard/keyboard.rbuild URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/keyboard/keyboard.rbui…
============================================================================== --- trunk/reactos/dll/keyboard/keyboard.rbuild (original) +++ trunk/reactos/dll/keyboard/keyboard.rbuild Wed May 2 01:35:14 2007 @@ -1,4 +1,7 @@ <group> + <directory name="kbdbe"> + <xi:include href="kbdbe/kbdbe.rbuild" /> + </directory> <directory name="kbdda"> <xi:include href="kbdda/kbdda.rbuild" /> </directory> @@ -26,11 +29,17 @@ <directory name="kbdit"> <xi:include href="kbdit/kbdit.rbuild" /> </directory> + <directory name="kbdja"> + <xi:include href="kbdja/kbdja.rbuild" /> + </directory> + <directory name="kbdpl1"> + <xi:include href="kbdpl1/kbdpl1.rbuild" /> + </directory> + <directory name="kbdpo"> + <xi:include href="kbdpo/kbdpo.rbuild" /> + </directory> <directory name="kbdru"> <xi:include href="kbdru/kbdru.rbuild" /> - </directory> - <directory name="kbdsw"> - <xi:include href="kbdsw/kbdsw.rbuild" /> </directory> <directory name="kbdsg"> <xi:include href="kbdsg/kbdsg.rbuild" /> @@ -38,28 +47,19 @@ <directory name="kbdsk"> <xi:include href="kbdsk/kbdsk.rbuild" /> </directory> + <directory name="kbdsw"> + <xi:include href="kbdsw/kbdsw.rbuild" /> + </directory> <directory name="kbdth"> <xi:include href="kbdth/kbdth.rbuild" /> </directory> <directory name="kbduk"> <xi:include href="kbduk/kbduk.rbuild" /> </directory> + <directory name="kbdur"> + <xi:include href="kbdur/kbdur.rbuild" /> + </directory> <directory name="kbdus"> <xi:include href="kbdus/kbdus.rbuild" /> </directory> - <directory name="kbdbe"> - <xi:include href="kbdbe/kbdbe.rbuild" /> - </directory> - <directory name="kbdur"> - <xi:include href="kbdur/kbdur.rbuild" /> - </directory> - <directory name="kbdpo"> - <xi:include href="kbdpo/kbdpo.rbuild" /> - </directory> - <directory name="kbdja"> - <xi:include href="kbdja/kbdja.rbuild" /> - </directory> - <directory name="kbdpl1"> - <xi:include href="kbdpl1/kbdpl1.rbuild" /> - </directory> </group>
17 years, 7 months
1
0
0
0
[dgorbachev] 26617: Use _SEH_YIELD() to return from PSEH block. Thanks to Alex Ionescu.
by dgorbachev@svn.reactos.org
Author: dgorbachev Date: Tue May 1 23:07:11 2007 New Revision: 26617 URL:
http://svn.reactos.org/svn/reactos?rev=26617&view=rev
Log: Use _SEH_YIELD() to return from PSEH block. Thanks to Alex Ionescu. Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/exp.c?rev…
============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/exp.c (original) +++ trunk/reactos/ntoskrnl/ke/i386/exp.c Tue May 1 23:07:11 2007 @@ -982,7 +982,7 @@ TrapFrame->Eip = (ULONG)KeUserExceptionDispatcher; /* Dispatch exception to user-mode */ - return; + _SEH_YIELD(return); } _SEH_EXCEPT(KiCopyInformation) {
17 years, 7 months
1
0
0
0
[gedmurphy] 26616: quick hack to make sysdm.cpl open our standalone device manager it's a democracy : http://www.reactos.org/forum/viewtopic.php?t=3835
by gedmurphy@svn.reactos.org
Author: gedmurphy Date: Tue May 1 20:25:26 2007 New Revision: 26616 URL:
http://svn.reactos.org/svn/reactos?rev=26616&view=rev
Log: quick hack to make sysdm.cpl open our standalone device manager it's a democracy :
http://www.reactos.org/forum/viewtopic.php?t=3835
Modified: trunk/reactos/dll/cpl/sysdm/hardware.c Modified: trunk/reactos/dll/cpl/sysdm/hardware.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/sysdm/hardware.c?r…
============================================================================== --- trunk/reactos/dll/cpl/sysdm/hardware.c (original) +++ trunk/reactos/dll/cpl/sysdm/hardware.c Tue May 1 20:25:26 2007 @@ -14,6 +14,10 @@ BOOL LaunchDeviceManager(HWND hWndParent) { +/* hack for ROS to start our devmgmt until we have mmc */ +#ifdef __REACTOS__ + return ((INT)ShellExecuteW(NULL, L"open", L"devmgmt.exe", NULL, NULL, SW_SHOWNORMAL) > 32); +#else HMODULE hDll; PDEVMGREXEC DevMgrExec; BOOL Ret; @@ -33,6 +37,7 @@ Ret = DevMgrExec(hWndParent, hApplet, NULL /* ??? */, SW_SHOW); FreeLibrary(hDll); return Ret; +#endif /* __REACTOS__ */ } /* Property page dialog callback */
17 years, 7 months
1
0
0
0
← Newer
1
...
28
29
30
31
32
33
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
24
25
26
27
28
29
30
31
32
33
Results per page:
10
25
50
100
200