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
August 2017
----- 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
22 participants
262 discussions
Start a n
N
ew thread
[pschweitzer] 75496: [SYSSETUP] Translate r75495 in French. Thanks Giannis! :-)
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Sun Aug 6 12:15:19 2017 New Revision: 75496 URL:
http://svn.reactos.org/svn/reactos?rev=75496&view=rev
Log: [SYSSETUP] Translate r75495 in French. Thanks Giannis! :-) Modified: trunk/reactos/dll/win32/syssetup/lang/fr-FR.rc Modified: trunk/reactos/dll/win32/syssetup/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/fr…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/fr-FR.rc [iso-8859-1] Sun Aug 6 12:15:19 2017 @@ -85,11 +85,11 @@ IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "ReactOS Setup" +CAPTION "Installation de ReactOS" FONT 8, "MS Shell Dlg" BEGIN - PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE - PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Thème Lautus", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Thème Classique", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE END IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 @@ -144,8 +144,8 @@ IDS_DATETIMESUBTITLE "Configurez la date et l'heure correcte pour votre ordinateur." IDS_PROCESSTITLE "Enregistrement des composants" IDS_PROCESSSUBTITLE "Veuillez patienter..." - IDS_THEMESELECTIONTITLE "Appearance" - IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" + IDS_THEMESELECTIONTITLE "Apparence" + IDS_THEMESELECTIONSUBTITLE "Sélectionnez le thème que vous préfèrez" END STRINGTABLE
7 years, 4 months
1
0
0
0
[gadamopoulos] 75495: [SYSSETUP] -Implement a wizard page that lets the user select lautus as the default theme. If the user keeps pressing enter, the theme will not be applied.
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Sun Aug 6 09:18:19 2017 New Revision: 75495 URL:
http://svn.reactos.org/svn/reactos?rev=75495&view=rev
Log: [SYSSETUP] -Implement a wizard page that lets the user select lautus as the default theme. If the user keeps pressing enter, the theme will not be applied. Added: trunk/reactos/dll/win32/syssetup/resources/thmclassic.bmp (with props) trunk/reactos/dll/win32/syssetup/resources/thmlautus.bmp (with props) Modified: trunk/reactos/dll/win32/syssetup/lang/bg-BG.rc trunk/reactos/dll/win32/syssetup/lang/cs-CZ.rc trunk/reactos/dll/win32/syssetup/lang/da-DK.rc trunk/reactos/dll/win32/syssetup/lang/de-DE.rc trunk/reactos/dll/win32/syssetup/lang/el-GR.rc trunk/reactos/dll/win32/syssetup/lang/en-US.rc trunk/reactos/dll/win32/syssetup/lang/es-ES.rc trunk/reactos/dll/win32/syssetup/lang/et-EE.rc trunk/reactos/dll/win32/syssetup/lang/fi-FI.rc trunk/reactos/dll/win32/syssetup/lang/fr-FR.rc trunk/reactos/dll/win32/syssetup/lang/he-IL.rc trunk/reactos/dll/win32/syssetup/lang/hu-HU.rc trunk/reactos/dll/win32/syssetup/lang/id-ID.rc trunk/reactos/dll/win32/syssetup/lang/it-IT.rc trunk/reactos/dll/win32/syssetup/lang/ja-JP.rc trunk/reactos/dll/win32/syssetup/lang/lt-LT.rc trunk/reactos/dll/win32/syssetup/lang/nl-NL.rc trunk/reactos/dll/win32/syssetup/lang/no-NO.rc trunk/reactos/dll/win32/syssetup/lang/pl-PL.rc trunk/reactos/dll/win32/syssetup/lang/pt-BR.rc trunk/reactos/dll/win32/syssetup/lang/ro-RO.rc trunk/reactos/dll/win32/syssetup/lang/ru-RU.rc trunk/reactos/dll/win32/syssetup/lang/sk-SK.rc trunk/reactos/dll/win32/syssetup/lang/sq-AL.rc trunk/reactos/dll/win32/syssetup/lang/sv-SE.rc trunk/reactos/dll/win32/syssetup/lang/th-TH.rc trunk/reactos/dll/win32/syssetup/lang/tr-TR.rc trunk/reactos/dll/win32/syssetup/lang/uk-UA.rc trunk/reactos/dll/win32/syssetup/lang/zh-CN.rc trunk/reactos/dll/win32/syssetup/lang/zh-TW.rc trunk/reactos/dll/win32/syssetup/resource.h trunk/reactos/dll/win32/syssetup/syssetup.rc trunk/reactos/dll/win32/syssetup/wizard.c Modified: trunk/reactos/dll/win32/syssetup/lang/bg-BG.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/bg…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/bg-BG.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/bg-BG.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "СамопÑевклÑÑване на ÑаÑовника за зимно и лÑÑно вÑеме", IDC_AUTODAYLIGHT, 53, 124, 220, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ÐаÑÑÑойка на РеакÑÐС" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "ÐадайÑе пÑавилниÑе даÑа и вÑеме." IDS_PROCESSTITLE "ÐпиÑване на ÑÑÑÑавниÑе" IDS_PROCESSSUBTITLE "ÐоÑакайÑе..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/cs-CZ.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/cs…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/cs-CZ.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/cs-CZ.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -89,6 +89,15 @@ AUTOCHECKBOX "Automaticky nastavit hodiny pÅi pÅechodu na &letnà Äas a zpÄt", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Instalátor" @@ -141,6 +150,8 @@ IDS_DATETIMESUBTITLE "Nastavte správný Äas pro Váš poÄÃtaÄ." IDS_PROCESSTITLE "Registrace souÄástÃ" IDS_PROCESSSUBTITLE "ProsÃm Äekejte..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/da-DK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/da…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/da-DK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/da-DK.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -102,6 +102,15 @@ AUTOCHECKBOX "Automatically adjust clock for &daylight saving changes", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" @@ -154,6 +163,8 @@ IDS_DATETIMESUBTITLE "Set the correct date and time for your computer." IDS_PROCESSTITLE "Registering Components" IDS_PROCESSSUBTITLE "Please wait..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/de-DE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/de…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/de-DE.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "&Uhr automatisch auf Sommer-/Winterzeit umstellen", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS-Installation" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Stellen Sie das korrekte Datum und die Uhrzeit für Ihren Computer ein." IDS_PROCESSTITLE "Komponenten werden registriert" IDS_PROCESSSUBTITLE "Bitte warten..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/el-GR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/el…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/el-GR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/el-GR.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "&ÎÏ ÏÏμαÏη ÏÏθμιÏη με Ïην αλλαγή θεÏÎ¹Î½Î®Ï ÏÏαÏ", IDC_AUTODAYLIGHT, 53, 114, 190, 20 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ÎγκαÏάÏÏαÏη ÏÎ¿Ï ReactOS" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "ÎÏίÏÏε Ïη ÏÏÏÏή ημεÏομηνία και ÏÏα για Ïον Ï ÏολογιÏÏή ÏαÏ." IDS_PROCESSTITLE "ΤίÏλοÏ" IDS_PROCESSSUBTITLE "Î¥ÏÏÏιÏλοÏ" + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/en-US.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/en…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/en-US.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -102,6 +102,15 @@ AUTOCHECKBOX "Automatically adjust clock for &daylight saving changes", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" @@ -154,6 +163,9 @@ IDS_DATETIMESUBTITLE "Set the correct date and time for your computer." IDS_PROCESSTITLE "Registering Components" IDS_PROCESSSUBTITLE "Please wait..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" + END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/es-ES.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/es…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/es-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/es-ES.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -84,6 +84,15 @@ AUTOCHECKBOX "Ajustar el reloj automáticamente durante el horario de verano", IDC_AUTODAYLIGHT, 53, 124, 230, 10 //201 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalación de ReactOS" @@ -136,6 +145,8 @@ IDS_DATETIMESUBTITLE "Fije la fecha y hora correcta de su equipo." IDS_PROCESSTITLE "Registrando componentes" IDS_PROCESSSUBTITLE "Espere un momento..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/et-EE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/et…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/et-EE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/et-EE.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Säti &suveajale üleminekul kellaaeg automaatselt", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOSi paigaldamine" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Sisesta õige kellaaeg ja kuupäev." IDS_PROCESSTITLE "Komponentide registreerimine" IDS_PROCESSSUBTITLE "Palun oota..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/fi-FI.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/fi…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/fi-FI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/fi-FI.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -102,6 +102,15 @@ AUTOCHECKBOX "Automatically adjust clock for &daylight saving changes", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" @@ -154,6 +163,8 @@ IDS_DATETIMESUBTITLE "Set the correct date and time for your computer." IDS_PROCESSTITLE "Registering Components" IDS_PROCESSSUBTITLE "Please wait..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/fr-FR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/fr…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/fr-FR.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Ajuster automatiquement l'horloge pour l'heure &d'été", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installation de ReactOS" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Configurez la date et l'heure correcte pour votre ordinateur." IDS_PROCESSTITLE "Enregistrement des composants" IDS_PROCESSSUBTITLE "Veuillez patienter..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/he-IL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/he…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/he-IL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/he-IL.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Automatically adjust clock for &daylight saving changes", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "××ª×§× ×ª ReactOS" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Set the correct date and time for your computer." IDS_PROCESSTITLE "ר××©× ×ר×××××" IDS_PROCESSSUBTITLE "× × ×××ת××..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/hu-HU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/hu…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/hu-HU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/hu-HU.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Automatikus átállás a nyári idõszámÃtásra", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS TelepÃtõ" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "BeállÃthatod a számÃtógép dátumát és óráját." IDS_PROCESSTITLE "Process page title" IDS_PROCESSSUBTITLE "Process page subtitle" + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/id-ID.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/id…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/id-ID.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/id-ID.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Otomatis menyesuaikan waktu atas perubahan &daylight saving", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Setup ReactOS" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Setel tanggal dan jam yang benar untuk komputer anda." IDS_PROCESSTITLE "Judul halaman proses" IDS_PROCESSSUBTITLE "Subjudul halaman proses" + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/it-IT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/it…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/it-IT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/it-IT.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Cambia automaticamente con l'ora &legale", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Installazione di ReactOS" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Impostare la data e l'ora corrette per il proprio computer." IDS_PROCESSTITLE "Registrazione dei componenti" IDS_PROCESSSUBTITLE "Attendere prego..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/ja-JP.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/ja…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/ja-JP.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/ja-JP.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "èªåçã«ãµãã¼ã¿ã¤ã ã®èª¿æ´ããã(&D)", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS ã»ããã¢ãã" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "ã³ã³ãã¥ã¼ã¿ã®æ¥ä»ã¨æå»ãæ£ããè¨å®ãã¦ãã ããã" IDS_PROCESSTITLE "ã³ã³ãã¼ãã³ãã®ç»é²ä¸" IDS_PROCESSSUBTITLE "ãå¾ ã¡ãã ãã..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/lt-LT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/lt…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/lt-LT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/lt-LT.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -102,6 +102,15 @@ AUTOCHECKBOX "Automatically adjust clock for &daylight saving changes", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" @@ -154,6 +163,8 @@ IDS_DATETIMESUBTITLE "Set the correct date and time for your computer." IDS_PROCESSTITLE "Registering Components" IDS_PROCESSSUBTITLE "Please wait..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/nl-NL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/nl…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/nl-NL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/nl-NL.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Automatically adjust clock for &daylight saving changes", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Set the correct date and time for your computer." IDS_PROCESSTITLE "Registering Components" IDS_PROCESSSUBTITLE "Please wait..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/no-NO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/no…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/no-NO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/no-NO.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Juster klokken automatisk for &sommertid", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS installasjon" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Still inn dato og tid for din datamaskin." IDS_PROCESSTITLE "Bearbeid side tittel" IDS_PROCESSSUBTITLE "Bearbeider side undertittel" + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/pl-PL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/pl…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/pl-PL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/pl-PL.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Automatycznie ustaw zegar przy &zmianie czasu (DST)", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalator ReactOS" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Ustaw prawidÅowÄ datÄ i czas." IDS_PROCESSTITLE "Rejestracja skÅadników" IDS_PROCESSSUBTITLE "ProszÄ czekaÄ..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/pt-BR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/pt…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/pt-BR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/pt-BR.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "Ajustar o relógio automaticamente para o horário de &verão", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Instalação do ReactOS" @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "Definir a data e a hora corretas para o seu computador." IDS_PROCESSTITLE "Registrando componentes" IDS_PROCESSSUBTITLE "Por favor aguarde..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/ro-RO.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/ro…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/ro-RO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/ro-RO.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -90,6 +90,15 @@ LTEXT "Fusul orar:", IDC_STATIC, 53, 42, 253, 8 COMBOBOX IDC_TIMEZONELIST, 53, 52, 201, 93, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL AUTOCHECKBOX "Aj&usteazÄ ora automat la schimbarea fusului orar", IDC_AUTODAYLIGHT, 53, 124, 201, 10 +END + +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE END IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 @@ -144,6 +153,8 @@ IDS_DATETIMESUBTITLE "Stabilire datÄ Èi orÄ corectÄ pentru calculator" IDS_PROCESSTITLE "Ãnregistrare componente" IDS_PROCESSSUBTITLE "AÈteptaÈiâ¦" + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/ru…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/ru-RU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/ru-RU.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -85,6 +85,15 @@ AUTOCHECKBOX "Ðв&ÑомаÑиÑеÑкий пеÑÐµÑ Ð¾Ð´ на леÑнее вÑÐµÐ¼Ñ Ð¸ обÑаÑно.", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "УÑÑановка ReactOS" @@ -137,6 +146,8 @@ IDS_DATETIMESUBTITLE "УÑÑановиÑе пÑавилÑнÑÑ Ð´Ð°ÑÑ Ð¸ вÑÐµÐ¼Ñ Ð½Ð° ваÑем компÑÑÑеÑе." IDS_PROCESSTITLE "ÐÑоÑеÑÑ ÑÑÑановки" IDS_PROCESSSUBTITLE "УÑÑановка ReactOS на Ð²Ð°Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑ." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/sk-SK.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/sk…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/sk-SK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/sk-SK.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -89,6 +89,15 @@ AUTOCHECKBOX "Automaticky posunúť hodiny pri prechode na &letný Äas a späť", IDC_AUTODAYLIGHT, 53, 124, 220, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "InÅ¡talátor systému ReactOS" @@ -141,6 +150,8 @@ IDS_DATETIMESUBTITLE "Nastavte správny Äas pre Váš poÄÃtaÄ." IDS_PROCESSTITLE "Registrácia súÄastÃ" IDS_PROCESSSUBTITLE "PoÄkajte, prosÃm ..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/sq-AL.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/sq…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/sq-AL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/sq-AL.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -102,6 +102,15 @@ AUTOCHECKBOX "Adaptohen automatikisht orën për ditën me diell dhe ruaj ndryshimet", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Ndërto ReactOS" @@ -154,6 +163,8 @@ IDS_DATETIMESUBTITLE "Vendos datën e saktë dhe orën për kompjuterin tuaj." IDS_PROCESSTITLE "Regjistrimi Komponenteve" IDS_PROCESSSUBTITLE "Ju Lutem prisni..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/sv-SE.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/sv…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/sv-SE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/sv-SE.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -102,6 +102,15 @@ AUTOCHECKBOX "Automatically adjust clock for &daylight saving changes", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" @@ -154,6 +163,8 @@ IDS_DATETIMESUBTITLE "Set the correct date and time for your computer." IDS_PROCESSTITLE "Registering Components" IDS_PROCESSSUBTITLE "Please wait..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/th-TH.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/th…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/th-TH.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/th-TH.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -102,6 +102,15 @@ AUTOCHECKBOX "Automatically adjust clock for &daylight saving changes", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Setup" @@ -154,6 +163,8 @@ IDS_DATETIMESUBTITLE "Set the correct date and time for your computer." IDS_PROCESSTITLE "Registering Components" IDS_PROCESSSUBTITLE "Please wait..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/tr…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/tr-TR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/tr-TR.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -85,6 +85,15 @@ AUTOCHECKBOX "&Gün ıÅıÄı tutum deÄiÅiklikleri için saati kendiliÄinden ayarla.", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS Kur" @@ -137,6 +146,8 @@ IDS_DATETIMESUBTITLE "Bilgisayarınız için doÄru zamânı ayarlayınız." IDS_PROCESSTITLE "BileÅenler Kaydediliyor" IDS_PROCESSSUBTITLE "Lütfen bekleyiniz..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/uk-UA.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/uk…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/uk-UA.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/uk-UA.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -89,6 +89,15 @@ LTEXT "ЧаÑовий поÑÑ", IDC_STATIC, 53, 42, 253, 8 COMBOBOX IDC_TIMEZONELIST, 53, 52, 201, 93, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL AUTOCHECKBOX "ÐвÑомаÑи&Ñне пеÑÐµÐ²ÐµÐ´ÐµÐ½Ð½Ñ Ð³Ð¾Ð´Ð¸Ð½Ð½Ð¸ÐºÐ° на лÑÑний/зимовий ÑаÑ", IDC_AUTODAYLIGHT, 53, 124, 219, 10 +END + +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE END IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 @@ -143,6 +152,8 @@ IDS_DATETIMESUBTITLE "ÐÑÑановиÑи пÑавилÑÐ½Ñ Ð´Ð°ÑÑ Ñ ÑÐ°Ñ Ð´Ð»Ñ ÐаÑого комп'ÑÑеÑа." IDS_PROCESSTITLE "РеÑÑÑÑаÑÑÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½ÑÑв" IDS_PROCESSSUBTITLE "ÐаÑекайÑе, бÑÐ´Ñ Ð»Ð°Ñка..." + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/zh-CN.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/zh…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/zh-CN.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/zh-CN.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -83,6 +83,15 @@ AUTOCHECKBOX "å¤æ¶å¶èªå¨è°æ´æ¶é´(&D)", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS å®è£ å导 " @@ -135,6 +144,8 @@ IDS_DATETIMESUBTITLE "为æ¨ç计ç®æºé ç½®æ£ç¡®çæ¥æåæ¶é´ã" IDS_PROCESSTITLE "æ£å¨å®è£ " IDS_PROCESSSUBTITLE "æ£å¨å®æ ReactOS æåçå®è£ " + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/lang/zh-TW.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/lang/zh…
============================================================================== --- trunk/reactos/dll/win32/syssetup/lang/zh-TW.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/lang/zh-TW.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -85,6 +85,15 @@ AUTOCHECKBOX "å¤æå¶èªå調æ´æé(&D)", IDC_AUTODAYLIGHT, 53, 124, 201, 10 END +IDD_THEMEPAGE DIALOGEX 0, 0, 317, 143 +STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "ReactOS Setup" +FONT 8, "MS Shell Dlg" +BEGIN + PUSHBUTTON "Lautus theme", IDC_THEMEDSTYLE, 18,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE + PUSHBUTTON "Classic theme", IDC_CLASSICSTYLE, 175,12, 130,120, BS_AUTORADIOBUTTON|BS_PUSHLIKE +END + IDD_PROCESSPAGE DIALOGEX 0, 0, 317, 143 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ReactOS å®è£å®å° " @@ -137,6 +146,8 @@ IDS_DATETIMESUBTITLE "ç²æ¨çè¨ç®æ©é ç½®æ£ç¢ºçæ¥æåæéã" IDS_PROCESSTITLE "æ£å¨å®è£" IDS_PROCESSSUBTITLE "æ£å¨å®æ ReactOS æå¾çå®è£" + IDS_THEMESELECTIONTITLE "Appearance" + IDS_THEMESELECTIONSUBTITLE "Select the theme you prefer" END STRINGTABLE Modified: trunk/reactos/dll/win32/syssetup/resource.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/resourc…
============================================================================== --- trunk/reactos/dll/win32/syssetup/resource.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/resource.h [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -20,6 +20,8 @@ #define IDB_WATERMARK 100 #define IDB_HEADER 101 +#define IDB_CLASSIC 102 +#define IDB_LAUTUS 103 #define IDI_ICON1 10 #define IDI_ICON2 11 @@ -66,6 +68,10 @@ #define IDC_FINISHTITLE 1071 #define IDC_RESTART_PROGRESS 1072 +#define IDD_THEMEPAGE 1080 +#define IDC_THEMEDSTYLE 1081 +#define IDC_CLASSICSTYLE 1082 + #define IDD_GPL 2100 #define IDC_GPL_TEXT 2101 @@ -89,6 +95,9 @@ #define IDS_PROCESSTITLE 3060 #define IDS_PROCESSSUBTITLE 3061 + +#define IDS_THEMESELECTIONTITLE 3070 +#define IDS_THEMESELECTIONSUBTITLE 3071 #define IDS_ACKPROJECTS 3100 Added: trunk/reactos/dll/win32/syssetup/resources/thmclassic.bmp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/resourc…
============================================================================== Binary file - no diff available. Propchange: trunk/reactos/dll/win32/syssetup/resources/thmclassic.bmp ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: trunk/reactos/dll/win32/syssetup/resources/thmlautus.bmp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/resourc…
============================================================================== Binary file - no diff available. Propchange: trunk/reactos/dll/win32/syssetup/resources/thmlautus.bmp ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Modified: trunk/reactos/dll/win32/syssetup/syssetup.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/syssetu…
============================================================================== --- trunk/reactos/dll/win32/syssetup/syssetup.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/syssetup.rc [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -15,6 +15,8 @@ /* Bitmaps */ IDB_WATERMARK BITMAP "resources/watermark.bmp" IDB_HEADER BITMAP "resources/header.bmp" +IDB_CLASSIC BITMAP "resources/thmclassic.bmp" +IDB_LAUTUS BITMAP "resources/thmlautus.bmp" IDI_ICON1 ICON "resources/1.ico" IDI_ICON2 ICON "resources/2.ico" Modified: trunk/reactos/dll/win32/syssetup/wizard.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/wizard.…
============================================================================== --- trunk/reactos/dll/win32/syssetup/wizard.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/syssetup/wizard.c [iso-8859-1] Sun Aug 6 09:18:19 2017 @@ -16,6 +16,8 @@ #include <time.h> #include <winnls.h> #include <windowsx.h> +#include <wincon.h> +#include <shlobj.h> #define NDEBUG #include <debug.h> @@ -704,7 +706,7 @@ PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | PSWIZB_NEXT); if (pSetupData->UnattendSetup && WriteComputerSettings(pSetupData->ComputerName, hwndDlg)) { - SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, IDD_DATETIMEPAGE); + SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, IDD_THEMEPAGE); return TRUE; } break; @@ -1604,6 +1606,89 @@ return FALSE; } + +static INT_PTR CALLBACK +ThemePageDlgProc(HWND hwndDlg, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + PSETUPDATA SetupData; + + /* Retrieve pointer to the global setup data */ + SetupData = (PSETUPDATA)GetWindowLongPtr (hwndDlg, GWL_USERDATA); + + switch (uMsg) + { + case WM_INITDIALOG: + { + BUTTON_IMAGELIST imldata = {0, {0,10,0,10}, BUTTON_IMAGELIST_ALIGN_TOP}; + + /* Save pointer to the global setup data */ + SetupData = (PSETUPDATA)((LPPROPSHEETPAGE)lParam)->lParam; + SetWindowLongPtr(hwndDlg, GWL_USERDATA, (DWORD_PTR)SetupData); + + imldata.himl = ImageList_LoadImage(hDllInstance, MAKEINTRESOURCE(IDB_CLASSIC), 0, 0, CLR_NONE , IMAGE_BITMAP, LR_CREATEDIBSECTION); + SendDlgItemMessage(hwndDlg, IDC_CLASSICSTYLE, BCM_SETIMAGELIST, 0, (LPARAM)&imldata); + + imldata.himl = ImageList_LoadImage(hDllInstance, MAKEINTRESOURCE(IDB_LAUTUS), 0, 0, CLR_NONE , IMAGE_BITMAP, LR_CREATEDIBSECTION); + SendDlgItemMessage(hwndDlg, IDC_THEMEDSTYLE, BCM_SETIMAGELIST, 0, (LPARAM)&imldata); + + SendDlgItemMessage(hwndDlg, IDC_CLASSICSTYLE, BM_SETCHECK, BST_CHECKED, 0); + break; + } + case WM_COMMAND: + if (HIWORD(wParam) == BN_CLICKED) + { + switch (LOWORD(wParam)) + { + case IDC_THEMEDSTYLE: + { + WCHAR wszParams[1024]; + WCHAR wszTheme[MAX_PATH]; + WCHAR* format = L"desk.cpl desk,@Appearance /Action:ActivateMSTheme /file:\"%s\""; + + SHGetFolderPathAndSubDirW(0, CSIDL_RESOURCES, NULL, SHGFP_TYPE_DEFAULT, L"themes\\lautus\\lautus.msstyles", wszTheme); + swprintf(wszParams, format, wszTheme); + RunControlPanelApplet(hwndDlg, wszParams); + break; + } + case IDC_CLASSICSTYLE: + RunControlPanelApplet(hwndDlg, L"desk.cpl desk,@Appearance /Action:ActivateMSTheme"); + break; + } + } + case WM_NOTIFY: + switch (((LPNMHDR)lParam)->code) + { + case PSN_SETACTIVE: + /* Enable the Back and Next buttons */ + PropSheet_SetWizButtons(GetParent(hwndDlg), PSWIZB_BACK | PSWIZB_NEXT); + if (SetupData->UnattendSetup) + { + SetWindowLongPtr(hwndDlg, DWL_MSGRESULT, SetupData->uFirstNetworkWizardPage); + return TRUE; + } + break; + + case PSN_WIZNEXT: + break; + + case PSN_WIZBACK: + SetupData->UnattendSetup = FALSE; + break; + + default: + break; + } + break; + + default: + break; + } + + return FALSE; +} static UINT CALLBACK RegistrationNotificationProc(PVOID Context, @@ -2406,6 +2491,25 @@ typedef DWORD(WINAPI *PFNREQUESTWIZARDPAGES)(PDWORD, HPROPSHEETPAGE *, PSETUPDATA); +BOOL ActivateComctl32v6ActCtx(ULONG_PTR *cookie, HANDLE* hActCtx) +{ + ACTCTXW ActCtx = {sizeof(ACTCTX), ACTCTX_FLAG_RESOURCE_NAME_VALID}; + WCHAR fileBuffer[MAX_PATH]; + + *hActCtx = INVALID_HANDLE_VALUE; + + if (!GetModuleFileName(hDllInstance, fileBuffer, MAX_PATH)) + return FALSE; + + ActCtx.lpSource = fileBuffer; + ActCtx.lpResourceName = ISOLATIONAWARE_MANIFEST_RESOURCE_ID; + *hActCtx = CreateActCtx(&ActCtx); + if (*hActCtx == INVALID_HANDLE_VALUE) + return FALSE; + + return ActivateActCtx(*hActCtx, cookie); +} + VOID InstallWizard(VOID) { @@ -2419,6 +2523,9 @@ HMODULE hNetShell = NULL; PFNREQUESTWIZARDPAGES pfn = NULL; DWORD dwPageCount = 8, dwNetworkPageCount = 0; + BOOL bActCtxActivated; + ULONG_PTR cookie; + HANDLE hActCtx; LogItem(L"BEGIN_SECTION", L"InstallWizard"); @@ -2435,6 +2542,11 @@ MB_ICONERROR | MB_OK); goto done; } + + /* Load and activate the act ctx for comctl32v6 now manually. + * Even if the exe of the process had a manifest, at the point of its launch + * the manifest of comctl32 wouldn't be installed so it wouldn't be loaded at all */ + bActCtxActivated = ActivateComctl32v6ActCtx(&cookie, &hActCtx); hNetShell = LoadLibraryW(L"netshell.dll"); if (hNetShell != NULL) @@ -2519,6 +2631,13 @@ psp.pszTemplate = MAKEINTRESOURCE(IDD_DATETIMEPAGE); phpage[nPages++] = CreatePropertySheetPage(&psp); + /* Create the theme selection page */ + psp.dwFlags = PSP_DEFAULT | PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE; + psp.pszHeaderTitle = MAKEINTRESOURCE(IDS_THEMESELECTIONTITLE); + psp.pszHeaderSubTitle = MAKEINTRESOURCE(IDS_THEMESELECTIONSUBTITLE); + psp.pfnDlgProc = ThemePageDlgProc; + psp.pszTemplate = MAKEINTRESOURCE(IDD_THEMEPAGE); + phpage[nPages++] = CreatePropertySheetPage(&psp); pSetupData->uFirstNetworkWizardPage = IDD_PROCESSPAGE; pSetupData->uPostNetworkWizardPage = IDD_PROCESSPAGE; @@ -2582,6 +2701,12 @@ if (hNetShell != NULL) FreeLibrary(hNetShell); + if (bActCtxActivated) + { + DeactivateActCtx(0, cookie); + ReleaseActCtx(hActCtx); + } + if (pSetupData != NULL) { DeleteObject(pSetupData->hBoldFont);
7 years, 4 months
1
0
0
0
[gadamopoulos] 75494: [COMCTL32] -Implement BUTTON_IMAGELIST_ALIGN_RIGHT, BUTTON_IMAGELIST_ALIGN_TOP, BUTTON_IMAGELIST_ALIGN_BOTTOM
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Sun Aug 6 09:05:58 2017 New Revision: 75494 URL:
http://svn.reactos.org/svn/reactos?rev=75494&view=rev
Log: [COMCTL32] -Implement BUTTON_IMAGELIST_ALIGN_RIGHT, BUTTON_IMAGELIST_ALIGN_TOP, BUTTON_IMAGELIST_ALIGN_BOTTOM Modified: trunk/reactos/dll/win32/comctl32/button.c trunk/reactos/dll/win32/comctl32/theme_button.c Modified: trunk/reactos/dll/win32/comctl32/button.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/button.…
============================================================================== --- trunk/reactos/dll/win32/comctl32/button.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/button.c [iso-8859-1] Sun Aug 6 09:05:58 2017 @@ -395,6 +395,47 @@ return ret; } +BOOL BUTTON_DrawIml(HDC hDC, BUTTON_IMAGELIST *pimlData, RECT *prc, BOOL bOnlyCalc) +{ + SIZE ImageSize; + int left, top; + + if (!pimlData->himl) + return FALSE; + + if (!ImageList_GetIconSize(pimlData->himl, &ImageSize.cx, &ImageSize.cy)) + return FALSE; + + if (pimlData->uAlign == BUTTON_IMAGELIST_ALIGN_LEFT) + { + left = prc->left + pimlData->margin.left; + top = prc->top + (prc->bottom - prc->top - ImageSize.cy) / 2; + prc->left += left + pimlData->margin.right + ImageSize.cx; + } + else if (pimlData->uAlign == BUTTON_IMAGELIST_ALIGN_RIGHT) + { + left = prc->right - pimlData->margin.right - ImageSize.cx; + top = prc->top + (prc->bottom - prc->top - ImageSize.cy) / 2; + prc->right = left - pimlData->margin.left; + } + else if (pimlData->uAlign == BUTTON_IMAGELIST_ALIGN_TOP) + { + left = prc->left + (prc->right - prc->left - ImageSize.cy) / 2; + top = prc->top + pimlData->margin.top; + prc->top = top + ImageSize.cy + pimlData->margin.bottom; + } + else if (pimlData->uAlign == BUTTON_IMAGELIST_ALIGN_BOTTOM) + { + left = prc->left + (prc->right - prc->left - ImageSize.cy) / 2; + top = prc->bottom - pimlData->margin.bottom - ImageSize.cy; + prc->bottom = top - pimlData->margin.top; + } + + if (!bOnlyCalc) + ImageList_Draw(pimlData->himl, 0, hDC, left, top, 0); + + return TRUE; +} #endif @@ -1140,6 +1181,9 @@ UINT dtStyle = BUTTON_BStoDT( style, ex_style ); RECT r = *rc; INT n; +#ifdef __REACTOS__ + PBUTTON_DATA pdata = _GetButtonData(hwnd); +#endif /* Calculate label rectangle according to label type */ switch (style & (BS_ICON|BS_BITMAP)) @@ -1147,6 +1191,11 @@ case BS_TEXT: { HFONT hFont, hPrevFont = 0; +#ifdef __REACTOS__ + BOOL bHasIml; + + bHasIml = BUTTON_DrawIml(hdc, &pdata->imlData, &r, TRUE); +#endif if (!(text = get_button_text( hwnd ))) goto empty_rect; if (!text[0]) @@ -1162,6 +1211,18 @@ #ifdef __REACTOS__ if (get_ui_state(hwnd) & UISF_HIDEACCEL) dtStyle |= DT_HIDEPREFIX; + + if (bHasIml) + { + if (pdata->imlData.uAlign == BUTTON_IMAGELIST_ALIGN_LEFT) + r.left = pdata->imlData.margin.left; + else if (pdata->imlData.uAlign == BUTTON_IMAGELIST_ALIGN_RIGHT) + r.right = pdata->imlData.margin.right; + else if (pdata->imlData.uAlign == BUTTON_IMAGELIST_ALIGN_TOP) + r.top = pdata->imlData.margin.top; + else if (pdata->imlData.uAlign == BUTTON_IMAGELIST_ALIGN_BOTTOM) + r.bottom = pdata->imlData.margin.bottom; + } #endif break; } @@ -1253,20 +1314,13 @@ HWND hwnd = (HWND)lp; RECT rc; PBUTTON_DATA pdata = _GetButtonData(hwnd); - SIZE ImageSize; WCHAR *text = NULL; if (!(text = get_button_text( hwnd ))) return TRUE; SetRect(&rc, 0, 0, cx, cy); - if (pdata->imlData.himl && ImageList_GetIconSize(pdata->imlData.himl, &ImageSize.cx, &ImageSize.cy)) - { - int left = pdata->imlData.margin.left; - int top = (cy - ImageSize.cy) / 2; - rc.left += pdata->imlData.margin.left + pdata->imlData.margin.right + ImageSize.cy; - ImageList_Draw(pdata->imlData.himl, 0, hdc, left, top, 0); - } + BUTTON_DrawIml(hdc, &pdata->imlData, &rc, FALSE); DrawTextW(hdc, text, -1, &rc, (UINT)wp); HeapFree(GetProcessHeap(), 0, text); Modified: trunk/reactos/dll/win32/comctl32/theme_button.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/theme_b…
============================================================================== --- trunk/reactos/dll/win32/comctl32/theme_button.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/theme_button.c [iso-8859-1] Sun Aug 6 09:05:58 2017 @@ -55,6 +55,8 @@ { return _GetButtonData(hwnd)->image; } + +BOOL BUTTON_DrawIml(HDC hdc, BUTTON_IMAGELIST *pimlData, RECT *prc, BOOL bOnlyCalc); #endif static UINT get_drawtext_flags(DWORD style, DWORD ex_style) @@ -127,7 +129,6 @@ WCHAR *text = get_button_text(hwnd); #ifdef __REACTOS__ /* r74012 & r74406 */ PBUTTON_DATA pdata = _GetButtonData(hwnd); - SIZE ImageSize; HWND parent; HBRUSH hBrush; #endif @@ -156,13 +157,7 @@ DrawThemeBackground(theme, hDC, BP_PUSHBUTTON, state, &bgRect, NULL); #ifdef __REACTOS__ /* r74012 */ - if (pdata->imlData.himl && ImageList_GetIconSize(pdata->imlData.himl, &ImageSize.cx, &ImageSize.cy)) - { - int left = textRect.left + pdata->imlData.margin.left; - int top = textRect.top + (textRect.bottom - textRect.top - ImageSize.cy) / 2; - textRect.left += pdata->imlData.margin.left + pdata->imlData.margin.right + ImageSize.cy; - ImageList_Draw(pdata->imlData.himl, 0, hDC, left, top, 0); - } + BUTTON_DrawIml(hDC, &pdata->imlData, &textRect, FALSE); #endif if (text)
7 years, 4 months
1
0
0
0
[tthompson] 75493: [NTFS] - Refactor to allow the copy of the attribute stored in NTFS_ATTR_CONTEXT to have a dynamic length; change Record member from an NTFS_ATTR_RECORD to a PNTFS_ATTR_RECORD. R...
by tthompson@svn.reactos.org
Author: tthompson Date: Sun Aug 6 02:54:15 2017 New Revision: 75493 URL:
http://svn.reactos.org/svn/reactos?rev=75493&view=rev
Log: [NTFS] - Refactor to allow the copy of the attribute stored in NTFS_ATTR_CONTEXT to have a dynamic length; change Record member from an NTFS_ATTR_RECORD to a PNTFS_ATTR_RECORD. Rename it pRecord to reinforce the change. Fix some bugs related to the record size changing. -PrepareAttributeContext() - update to allocate memory for pRecord. Don't assume allocations are succeeding. -ReleaseAttributeContext() - update to free memory for pRecord. -InternalSetResidentAttributeLength() - Increase size of AttrContext->pRecord as needed. Update to return an NTSTATUS. -SetResidentAttributeDataLength() - Fix bug that could occur when migrating resident attributes to non-resident if AttrContext->pRecord is too small for the new attribute. -AddRun() - Fix a bug by reallocating AttrContext->pRecord if the record needs to be enlarged. Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/btree.c branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/dirctl.c branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/fcb.c branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/finfo.c branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/fsctl.c branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/mft.c branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/ntfs.h branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/rw.c branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/volinfo.c Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/attrib.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -303,17 +303,17 @@ NTSTATUS Status; int DataRunMaxLength; PNTFS_ATTR_RECORD DestinationAttribute = (PNTFS_ATTR_RECORD)((ULONG_PTR)FileRecord + AttrOffset); - ULONG NextAttributeOffset = AttrOffset + AttrContext->Record.Length; + ULONG NextAttributeOffset = AttrOffset + AttrContext->pRecord->Length; ULONGLONG NextVBN = 0; PUCHAR RunBuffer; ULONG RunBufferSize; - if (!AttrContext->Record.IsNonResident) + if (!AttrContext->pRecord->IsNonResident) return STATUS_INVALID_PARAMETER; - if (AttrContext->Record.NonResident.AllocatedSize != 0) - NextVBN = AttrContext->Record.NonResident.HighestVCN + 1; + if (AttrContext->pRecord->NonResident.AllocatedSize != 0) + NextVBN = AttrContext->pRecord->NonResident.HighestVCN + 1; // Add newly-assigned clusters to mcb _SEH2_TRY @@ -344,12 +344,14 @@ ConvertLargeMCBToDataRuns(&AttrContext->DataRunsMCB, RunBuffer, Vcb->NtfsInfo.BytesPerCluster, &RunBufferSize); // Get the amount of free space between the start of the of the first data run and the attribute end - DataRunMaxLength = AttrContext->Record.Length - AttrContext->Record.NonResident.MappingPairsOffset; + DataRunMaxLength = AttrContext->pRecord->Length - AttrContext->pRecord->NonResident.MappingPairsOffset; // Do we need to extend the attribute (or convert to attribute list)? if (DataRunMaxLength < RunBufferSize) { PNTFS_ATTR_RECORD NextAttribute = (PNTFS_ATTR_RECORD)((ULONG_PTR)FileRecord + NextAttributeOffset); + PNTFS_ATTR_RECORD NewRecord; + DataRunMaxLength += Vcb->NtfsInfo.BytesPerFileRecord - NextAttributeOffset - (sizeof(ULONG) * 2); // Can we move the end of the attribute? @@ -363,12 +365,22 @@ } // calculate position of end markers - NextAttributeOffset = AttrOffset + AttrContext->Record.NonResident.MappingPairsOffset + RunBufferSize; + NextAttributeOffset = AttrOffset + AttrContext->pRecord->NonResident.MappingPairsOffset + RunBufferSize; NextAttributeOffset = ALIGN_UP_BY(NextAttributeOffset, ATTR_RECORD_ALIGNMENT); - // Update the length + // Update the length of the destination attribute DestinationAttribute->Length = NextAttributeOffset - AttrOffset; - AttrContext->Record.Length = DestinationAttribute->Length; + + // Create a new copy of the attribute + NewRecord = ExAllocatePoolWithTag(NonPagedPool, DestinationAttribute->Length, TAG_NTFS); + RtlCopyMemory(NewRecord, AttrContext->pRecord, AttrContext->pRecord->Length); + NewRecord->Length = DestinationAttribute->Length; + + // Free the old copy of the attribute, which won't be large enough + ExFreePoolWithTag(AttrContext->pRecord, TAG_NTFS); + + // Set the attribute context's record to the new copy + AttrContext->pRecord = NewRecord; // End the file record NextAttribute = (PNTFS_ATTR_RECORD)((ULONG_PTR)FileRecord + NextAttributeOffset); @@ -377,12 +389,17 @@ // Update HighestVCN DestinationAttribute->NonResident.HighestVCN = - AttrContext->Record.NonResident.HighestVCN = max(NextVBN - 1 + RunLength, - AttrContext->Record.NonResident.HighestVCN); + AttrContext->pRecord->NonResident.HighestVCN = max(NextVBN - 1 + RunLength, + AttrContext->pRecord->NonResident.HighestVCN); // Write data runs to destination attribute RtlCopyMemory((PVOID)((ULONG_PTR)DestinationAttribute + DestinationAttribute->NonResident.MappingPairsOffset), RunBuffer, + RunBufferSize); + + // Update the attribute copy in the attribute context + RtlCopyMemory((PVOID)((ULONG_PTR)AttrContext->pRecord + AttrContext->pRecord->NonResident.MappingPairsOffset), + RunBuffer, RunBufferSize); // Update the file record @@ -723,7 +740,7 @@ ULONG ClustersLeftToFree = ClustersToFree; PNTFS_ATTR_RECORD DestinationAttribute = (PNTFS_ATTR_RECORD)((ULONG_PTR)FileRecord + AttrOffset); - ULONG NextAttributeOffset = AttrOffset + AttrContext->Record.Length; + ULONG NextAttributeOffset = AttrOffset + AttrContext->pRecord->Length; PNTFS_ATTR_RECORD NextAttribute = (PNTFS_ATTR_RECORD)((ULONG_PTR)FileRecord + NextAttributeOffset); PUCHAR RunBuffer; @@ -736,7 +753,7 @@ RTL_BITMAP Bitmap; ULONG LengthWritten; - if (!AttrContext->Record.IsNonResident) + if (!AttrContext->pRecord->IsNonResident) { return STATUS_INVALID_PARAMETER; } @@ -767,7 +784,7 @@ return 0; } - BitmapDataSize = AttributeDataLength(&DataContext->Record); + BitmapDataSize = AttributeDataLength(DataContext->pRecord); BitmapDataSize = min(BitmapDataSize, ULONG_MAX); ASSERT((BitmapDataSize * 8) >= Vcb->NtfsInfo.ClusterCount); BitmapData = ExAllocatePoolWithTag(NonPagedPool, ROUND_UP(BitmapDataSize, Vcb->NtfsInfo.BytesPerSector), TAG_NTFS); @@ -802,10 +819,10 @@ // deallocate this cluster RtlClearBits(&Bitmap, LargeLbn, 1); } - FsRtlTruncateLargeMcb(&AttrContext->DataRunsMCB, AttrContext->Record.NonResident.HighestVCN); + FsRtlTruncateLargeMcb(&AttrContext->DataRunsMCB, AttrContext->pRecord->NonResident.HighestVCN); // decrement HighestVCN, but don't let it go below 0 - AttrContext->Record.NonResident.HighestVCN = min(AttrContext->Record.NonResident.HighestVCN, AttrContext->Record.NonResident.HighestVCN - 1); + AttrContext->pRecord->NonResident.HighestVCN = min(AttrContext->pRecord->NonResident.HighestVCN, AttrContext->pRecord->NonResident.HighestVCN - 1); ClustersLeftToFree--; } @@ -837,7 +854,7 @@ ConvertLargeMCBToDataRuns(&AttrContext->DataRunsMCB, RunBuffer, Vcb->NtfsInfo.BytesPerCluster, &RunBufferSize); // Update HighestVCN - DestinationAttribute->NonResident.HighestVCN = AttrContext->Record.NonResident.HighestVCN; + DestinationAttribute->NonResident.HighestVCN = AttrContext->pRecord->NonResident.HighestVCN; // Write data runs to destination attribute RtlCopyMemory((PVOID)((ULONG_PTR)DestinationAttribute + DestinationAttribute->NonResident.MappingPairsOffset), @@ -848,9 +865,12 @@ if (NextAttribute->Type == AttributeEnd) { // update attribute length - AttrContext->Record.Length = ALIGN_UP_BY(AttrContext->Record.NonResident.MappingPairsOffset + RunBufferSize, + DestinationAttribute->Length = ALIGN_UP_BY(AttrContext->pRecord->NonResident.MappingPairsOffset + RunBufferSize, ATTR_RECORD_ALIGNMENT); - DestinationAttribute->Length = AttrContext->Record.Length; + + ASSERT(DestinationAttribute->Length <= AttrContext->pRecord->Length); + + AttrContext->pRecord->Length = DestinationAttribute->Length; // write end markers NextAttribute = (PNTFS_ATTR_RECORD)((ULONG_PTR)DestinationAttribute + DestinationAttribute->Length); @@ -893,7 +913,7 @@ } ListContext = PrepareAttributeContext(Attribute); - ListSize = AttributeDataLength(&ListContext->Record); + ListSize = AttributeDataLength(ListContext->pRecord); if (ListSize > 0xFFFFFFFF) { ReleaseAttributeContext(ListContext); Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/btree.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/btree.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/btree.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -41,7 +41,7 @@ { ULONGLONG CurrentOffset = 0; PINDEX_BUFFER CurrentNode, Buffer; - ULONGLONG BufferSize = AttributeDataLength(&IndexAllocationContext->Record); + ULONGLONG BufferSize = AttributeDataLength(IndexAllocationContext->pRecord); ULONG BytesRead; ULONGLONG i; int Count = 0; @@ -393,7 +393,7 @@ Tree->RootNode = RootNode; // Make sure we won't try reading past the attribute-end - if (FIELD_OFFSET(INDEX_ROOT_ATTRIBUTE, Header) + IndexRoot->Header.TotalSizeOfEntries > IndexRootContext->Record.Resident.ValueLength) + if (FIELD_OFFSET(INDEX_ROOT_ATTRIBUTE, Header) + IndexRoot->Header.TotalSizeOfEntries > IndexRootContext->pRecord->Resident.ValueLength) { DPRINT1("Filesystem corruption detected!\n"); DestroyBTree(Tree); Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/dirctl.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/dirctl.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/dirctl.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -49,8 +49,8 @@ Status = FindAttribute(DeviceExt, FileRecord, AttributeData, Stream, StreamLength, &DataContext, NULL); if (NT_SUCCESS(Status)) { - Size = AttributeDataLength(&DataContext->Record); - Allocated = AttributeAllocatedLength(&DataContext->Record); + Size = AttributeDataLength(DataContext->pRecord); + Allocated = AttributeAllocatedLength(DataContext->pRecord); ReleaseAttributeContext(DataContext); } Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/fcb.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/fcb.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/fcb.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -756,7 +756,7 @@ return Status; } - AttrLength = AttributeDataLength(&AttrCtxt->Record); + AttrLength = AttributeDataLength(AttrCtxt->pRecord); *Data = ExAllocatePoolWithTag(NonPagedPool, AttrLength, TAG_NTFS); if (*Data == NULL) { Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/finfo.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/finfo.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/finfo.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -631,7 +631,7 @@ } // Get the size of the data attribute - CurrentFileSize.QuadPart = AttributeDataLength(&DataContext->Record); + CurrentFileSize.QuadPart = AttributeDataLength(DataContext->pRecord); // Are we enlarging the attribute? if (NewFileSize->QuadPart > CurrentFileSize.QuadPart) @@ -673,7 +673,7 @@ FileName.Length = FileNameAttribute->NameLength * sizeof(WCHAR); FileName.MaximumLength = FileName.Length; - AllocationSize = AttributeAllocatedLength(&DataContext->Record); + AllocationSize = AttributeAllocatedLength(DataContext->pRecord); Status = UpdateFileNameRecord(Fcb->Vcb, ParentMFTId, Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/fsctl.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/fsctl.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/fsctl.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -341,9 +341,9 @@ /* Get volume name */ Status = FindAttribute(DeviceExt, VolumeRecord, AttributeVolumeName, L"", 0, &AttrCtxt, NULL); - if (NT_SUCCESS(Status) && AttrCtxt->Record.Resident.ValueLength != 0) - { - Attribute = &AttrCtxt->Record; + if (NT_SUCCESS(Status) && AttrCtxt->pRecord->Resident.ValueLength != 0) + { + Attribute = AttrCtxt->pRecord; DPRINT("Data length %lu\n", AttributeDataLength(Attribute)); NtfsInfo->VolumeLabelLength = min (Attribute->Resident.ValueLength, MAXIMUM_VOLUME_LABEL_LENGTH); @@ -382,9 +382,9 @@ /* Get volume information */ Status = FindAttribute(DeviceExt, VolumeRecord, AttributeVolumeInformation, L"", 0, &AttrCtxt, NULL); - if (NT_SUCCESS(Status) && AttrCtxt->Record.Resident.ValueLength != 0) - { - Attribute = &AttrCtxt->Record; + if (NT_SUCCESS(Status) && AttrCtxt->pRecord->Resident.ValueLength != 0) + { + Attribute = AttrCtxt->pRecord; DPRINT("Data length %lu\n", AttributeDataLength (Attribute)); VolumeInfo = (PVOID)((ULONG_PTR)Attribute + Attribute->Resident.ValueOffset); Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/mft.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/mft.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/mft.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -42,15 +42,32 @@ PNTFS_ATTR_CONTEXT Context; Context = ExAllocatePoolWithTag(NonPagedPool, - FIELD_OFFSET(NTFS_ATTR_CONTEXT, Record) + AttrRecord->Length, + sizeof(NTFS_ATTR_CONTEXT), TAG_NTFS); - RtlCopyMemory(&Context->Record, AttrRecord, AttrRecord->Length); + if(!Context) + { + DPRINT1("Error: Unable to allocate memory for context!\n"); + return NULL; + } + + // Allocate memory for a copy of the attribute + Context->pRecord = ExAllocatePoolWithTag(NonPagedPool, AttrRecord->Length, TAG_NTFS); + if(!Context->pRecord) + { + DPRINT1("Error: Unable to allocate memory for attribute record!\n"); + ExFreePoolWithTag(Context, TAG_NTFS); + return NULL; + } + + // Copy the attribute + RtlCopyMemory(Context->pRecord, AttrRecord, AttrRecord->Length); + if (AttrRecord->IsNonResident) { LONGLONG DataRunOffset; ULONGLONG DataRunLength; ULONGLONG NextVBN = 0; - PUCHAR DataRun = (PUCHAR)&Context->Record + Context->Record.NonResident.MappingPairsOffset; + PUCHAR DataRun = (PUCHAR)((ULONG_PTR)Context->pRecord + Context->pRecord->NonResident.MappingPairsOffset); Context->CacheRun = DataRun; Context->CacheRunOffset = 0; @@ -74,6 +91,7 @@ if (!NT_SUCCESS(ConvertDataRunsToLargeMCB(DataRun, &Context->DataRunsMCB, &NextVBN))) { DPRINT1("Unable to convert data runs to MCB!\n"); + ExFreePoolWithTag(Context->pRecord, TAG_NTFS); ExFreePoolWithTag(Context, TAG_NTFS); return NULL; } @@ -86,10 +104,13 @@ VOID ReleaseAttributeContext(PNTFS_ATTR_CONTEXT Context) { - if (Context->Record.IsNonResident) + if (Context->pRecord->IsNonResident) { FsRtlUninitializeLargeMcb(&Context->DataRunsMCB); } + + if(Context->pRecord) + ExFreePoolWithTag(Context->pRecord, TAG_NTFS); ExFreePoolWithTag(Context, TAG_NTFS); } @@ -245,10 +266,10 @@ } // Get size of Bitmap Attribute - BitmapSize.QuadPart = AttributeDataLength(&BitmapContext->Record); + BitmapSize.QuadPart = AttributeDataLength(BitmapContext->pRecord); // Calculate the new mft size - DataSize.QuadPart = AttributeDataLength(&(Vcb->MFTContext->Record)) + DataSizeDifference; + DataSize.QuadPart = AttributeDataLength(Vcb->MFTContext->pRecord) + DataSizeDifference; // Determine how many bytes will make up the bitmap BitmapBytes = DataSize.QuadPart / Vcb->NtfsInfo.BytesPerFileRecord / 8; @@ -301,7 +322,7 @@ { // Set the new bitmap size BitmapSize.QuadPart += BitmapSizeDifference; - if (BitmapContext->Record.IsNonResident) + if (BitmapContext->pRecord->IsNonResident) Status = SetNonResidentAttributeDataLength(Vcb, BitmapContext, BitmapOffset, Vcb->MasterFileTable, &BitmapSize); else Status = SetResidentAttributeDataLength(Vcb, BitmapContext, BitmapOffset, Vcb->MasterFileTable, &BitmapSize); @@ -348,7 +369,7 @@ return STATUS_SUCCESS; } -VOID +NTSTATUS InternalSetResidentAttributeLength(PNTFS_ATTR_CONTEXT AttrContext, PFILE_RECORD_HEADER FileRecord, ULONG AttrOffset, @@ -356,32 +377,45 @@ { PNTFS_ATTR_RECORD Destination = (PNTFS_ATTR_RECORD)((ULONG_PTR)FileRecord + AttrOffset); ULONG NextAttributeOffset; + USHORT ValueOffset; DPRINT("InternalSetResidentAttributeLength( %p, %p, %lu, %lu )\n", AttrContext, FileRecord, AttrOffset, DataSize); - ASSERT(!AttrContext->Record.IsNonResident); - - // update ValueLength Field - AttrContext->Record.Resident.ValueLength = + ASSERT(!AttrContext->pRecord->IsNonResident); + + // Update ValueLength Field Destination->Resident.ValueLength = DataSize; - // calculate the record length and end marker offset - AttrContext->Record.Length = - Destination->Length = DataSize + AttrContext->Record.Resident.ValueOffset; - NextAttributeOffset = AttrOffset + AttrContext->Record.Length; + // Calculate the record length and end marker offset + Destination->Length = ALIGN_UP_BY(DataSize + AttrContext->pRecord->Resident.ValueOffset, ATTR_RECORD_ALIGNMENT); + NextAttributeOffset = AttrOffset + Destination->Length; + + // Ensure FileRecord has an up-to-date copy of the attribute + ValueOffset = AttrContext->pRecord->Resident.ValueOffset; + RtlCopyMemory((PCHAR)((ULONG_PTR)FileRecord + AttrOffset + ValueOffset), + (PCHAR)((ULONG_PTR)AttrContext->pRecord + ValueOffset), + min(DataSize, AttrContext->pRecord->Resident.ValueLength)); + + // Free the old copy of the attribute in the context, as it will be the wrong length + ExFreePoolWithTag(AttrContext->pRecord, TAG_NTFS); + + // Create a new copy of the attribute for the context + AttrContext->pRecord = ExAllocatePoolWithTag(NonPagedPool, Destination->Length, TAG_NTFS); + if (!AttrContext->pRecord) + { + DPRINT1("Unable to allocate memory for attribute!\n"); + return STATUS_INSUFFICIENT_RESOURCES; + } + RtlCopyMemory(AttrContext->pRecord, Destination, Destination->Length); // Ensure NextAttributeOffset is aligned to an 8-byte boundary - if (NextAttributeOffset % 8 != 0) - { - USHORT Padding = ATTR_RECORD_ALIGNMENT - (NextAttributeOffset % ATTR_RECORD_ALIGNMENT); - NextAttributeOffset += Padding; - AttrContext->Record.Length += Padding; - Destination->Length += Padding; - } + ASSERT(NextAttributeOffset % ATTR_RECORD_ALIGNMENT == 0); // advance Destination to the final "attribute" and set the file record end Destination = (PNTFS_ATTR_RECORD)((ULONG_PTR)Destination + Destination->Length); SetFileRecordEnd(FileRecord, Destination, FILE_RECORD_END); + + return STATUS_SUCCESS; } /** @@ -408,7 +442,7 @@ DataSize->QuadPart); // are we truncating the file? - if (DataSize->QuadPart < AttributeDataLength(&AttrContext->Record)) + if (DataSize->QuadPart < AttributeDataLength(AttrContext->pRecord)) { if (!MmCanFileBeTruncated(FileObject->SectionObjectPointer, DataSize)) { @@ -417,7 +451,7 @@ } } - if (AttrContext->Record.IsNonResident) + if (AttrContext->pRecord->IsNonResident) { Status = SetNonResidentAttributeDataLength(Fcb->Vcb, AttrContext, @@ -448,8 +482,8 @@ if (NT_SUCCESS(Status)) { - if (AttrContext->Record.IsNonResident) - Fcb->RFCB.AllocationSize.QuadPart = AttrContext->Record.NonResident.AllocatedSize; + if (AttrContext->pRecord->IsNonResident) + Fcb->RFCB.AllocationSize.QuadPart = AttrContext->pRecord->NonResident.AllocatedSize; else Fcb->RFCB.AllocationSize = *DataSize; Fcb->RFCB.FileSize = *DataSize; @@ -538,12 +572,12 @@ ULONG BytesPerCluster = Vcb->NtfsInfo.BytesPerCluster; ULONGLONG AllocationSize = ROUND_UP(DataSize->QuadPart, BytesPerCluster); PNTFS_ATTR_RECORD DestinationAttribute = (PNTFS_ATTR_RECORD)((ULONG_PTR)FileRecord + AttrOffset); - ULONG ExistingClusters = AttrContext->Record.NonResident.AllocatedSize / BytesPerCluster; - - ASSERT(AttrContext->Record.IsNonResident); + ULONG ExistingClusters = AttrContext->pRecord->NonResident.AllocatedSize / BytesPerCluster; + + ASSERT(AttrContext->pRecord->IsNonResident); // do we need to increase the allocation size? - if (AttrContext->Record.NonResident.AllocatedSize < AllocationSize) + if (AttrContext->pRecord->NonResident.AllocatedSize < AllocationSize) { ULONG ClustersNeeded = (AllocationSize / BytesPerCluster) - ExistingClusters; LARGE_INTEGER LastClusterInDataRun; @@ -557,7 +591,7 @@ else { if (!FsRtlLookupLargeMcbEntry(&AttrContext->DataRunsMCB, - (LONGLONG)AttrContext->Record.NonResident.HighestVCN, + (LONGLONG)AttrContext->pRecord->NonResident.HighestVCN, (PLONGLONG)&LastClusterInDataRun.QuadPart, NULL, NULL, @@ -567,13 +601,13 @@ DPRINT1("Error looking up final large MCB entry!\n"); // Most likely, HighestVCN went above the largest mapping - DPRINT1("Highest VCN of record: %I64u\n", AttrContext->Record.NonResident.HighestVCN); + DPRINT1("Highest VCN of record: %I64u\n", AttrContext->pRecord->NonResident.HighestVCN); return STATUS_INVALID_PARAMETER; } } DPRINT("LastClusterInDataRun: %I64u\n", LastClusterInDataRun.QuadPart); - DPRINT("Highest VCN of record: %I64u\n", AttrContext->Record.NonResident.HighestVCN); + DPRINT("Highest VCN of record: %I64u\n", AttrContext->pRecord->NonResident.HighestVCN); while (ClustersNeeded > 0) { @@ -601,7 +635,7 @@ LastClusterInDataRun.LowPart = NextAssignedCluster + AssignedClusters - 1; } } - else if (AttrContext->Record.NonResident.AllocatedSize > AllocationSize) + else if (AttrContext->pRecord->NonResident.AllocatedSize > AllocationSize) { // shrink allocation size ULONG ClustersToFree = ExistingClusters - (AllocationSize / BytesPerCluster); @@ -610,9 +644,9 @@ // TODO: is the file compressed, encrypted, or sparse? - AttrContext->Record.NonResident.AllocatedSize = AllocationSize; - AttrContext->Record.NonResident.DataSize = DataSize->QuadPart; - AttrContext->Record.NonResident.InitializedSize = DataSize->QuadPart; + AttrContext->pRecord->NonResident.AllocatedSize = AllocationSize; + AttrContext->pRecord->NonResident.DataSize = DataSize->QuadPart; + AttrContext->pRecord->NonResident.InitializedSize = DataSize->QuadPart; DestinationAttribute->NonResident.AllocatedSize = AllocationSize; DestinationAttribute->NonResident.DataSize = DataSize->QuadPart; @@ -667,18 +701,18 @@ NTSTATUS Status; // find the next attribute - ULONG NextAttributeOffset = AttrOffset + AttrContext->Record.Length; + ULONG NextAttributeOffset = AttrOffset + AttrContext->pRecord->Length; PNTFS_ATTR_RECORD NextAttribute = (PNTFS_ATTR_RECORD)((PCHAR)FileRecord + NextAttributeOffset); - ASSERT(!AttrContext->Record.IsNonResident); + ASSERT(!AttrContext->pRecord->IsNonResident); //NtfsDumpFileAttributes(Vcb, FileRecord); // Do we need to increase the data length? - if (DataSize->QuadPart > AttrContext->Record.Resident.ValueLength) + if (DataSize->QuadPart > AttrContext->pRecord->Resident.ValueLength) { // There's usually padding at the end of a record. Do we need to extend past it? - ULONG MaxValueLength = AttrContext->Record.Length - AttrContext->Record.Resident.ValueOffset; + ULONG MaxValueLength = AttrContext->pRecord->Length - AttrContext->pRecord->Resident.ValueOffset; if (MaxValueLength < DataSize->LowPart) { // If this is the last attribute, we could move the end marker to the very end of the file record @@ -688,14 +722,16 @@ { // convert attribute to non-resident PNTFS_ATTR_RECORD Destination = (PNTFS_ATTR_RECORD)((ULONG_PTR)FileRecord + AttrOffset); + PNTFS_ATTR_RECORD NewRecord; LARGE_INTEGER AttribDataSize; PVOID AttribData; + ULONG NewRecordLength; ULONG EndAttributeOffset; ULONG LengthWritten; DPRINT1("Converting attribute to non-resident.\n"); - AttribDataSize.QuadPart = AttrContext->Record.Resident.ValueLength; + AttribDataSize.QuadPart = AttrContext->pRecord->Resident.ValueLength; // Is there existing data we need to back-up? if (AttribDataSize.QuadPart > 0) @@ -719,23 +755,43 @@ // Start by turning this attribute into a 0-length, non-resident attribute, then enlarge it. + // The size of a 0-length, non-resident attribute will be 0x41 + the size of the attribute name, aligned to an 8-byte boundary + NewRecordLength = ALIGN_UP_BY(0x41 + (AttrContext->pRecord->NameLength * sizeof(WCHAR)), ATTR_RECORD_ALIGNMENT); + + // Create a new attribute record that will store the 0-length, non-resident attribute + NewRecord = ExAllocatePoolWithTag(NonPagedPool, NewRecordLength, TAG_NTFS); + // Zero out the NonResident structure - RtlZeroMemory(&AttrContext->Record.NonResident.LowestVCN, - FIELD_OFFSET(NTFS_ATTR_RECORD, NonResident.CompressedSize) - FIELD_OFFSET(NTFS_ATTR_RECORD, NonResident.LowestVCN)); - RtlZeroMemory(&Destination->NonResident.LowestVCN, - FIELD_OFFSET(NTFS_ATTR_RECORD, NonResident.CompressedSize) - FIELD_OFFSET(NTFS_ATTR_RECORD, NonResident.LowestVCN)); - - // update the mapping pairs offset, which will be 0x40 + length in bytes of the name - AttrContext->Record.NonResident.MappingPairsOffset = Destination->NonResident.MappingPairsOffset = 0x40 + (Destination->NameLength * 2); + RtlZeroMemory(NewRecord, NewRecordLength); + + // Copy the data that's common to both non-resident and resident attributes + RtlCopyMemory(NewRecord, AttrContext->pRecord, FIELD_OFFSET(NTFS_ATTR_RECORD, Resident.ValueLength)); + + // if there's a name + if (AttrContext->pRecord->NameLength != 0) + { + // copy the name + // An attribute name will be located at offset 0x18 for a resident attribute, 0x40 for non-resident + RtlCopyMemory((PCHAR)((ULONG_PTR)NewRecord + 0x40), + (PCHAR)((ULONG_PTR)AttrContext->pRecord + 0x18), + AttrContext->pRecord->NameLength * sizeof(WCHAR)); + } + + // update the mapping pairs offset, which will be 0x40 (size of a non-resident header) + length in bytes of the name + NewRecord->NonResident.MappingPairsOffset = 0x40 + (AttrContext->pRecord->NameLength * sizeof(WCHAR)); // update the end of the file record // calculate position of end markers (1 byte for empty data run) - EndAttributeOffset = AttrOffset + AttrContext->Record.NonResident.MappingPairsOffset + 1; + EndAttributeOffset = AttrOffset + NewRecord->NonResident.MappingPairsOffset + 1; EndAttributeOffset = ALIGN_UP_BY(EndAttributeOffset, ATTR_RECORD_ALIGNMENT); // Update the length - Destination->Length = EndAttributeOffset - AttrOffset; - AttrContext->Record.Length = Destination->Length; + NewRecord->Length = EndAttributeOffset - AttrOffset; + + ASSERT(NewRecord->Length == NewRecordLength); + + // Copy the new attribute record into the file record + RtlCopyMemory(Destination, NewRecord, NewRecord->Length); // Update the file record end SetFileRecordEnd(FileRecord, @@ -756,7 +812,7 @@ } _SEH2_END; // Mark the attribute as non-resident (we wait until after we know the LargeMcb was initialized) - AttrContext->Record.IsNonResident = Destination->IsNonResident = 1; + NewRecord->IsNonResident = Destination->IsNonResident = 1; // Update file record on disk Status = UpdateFileRecord(Vcb, AttrContext->FileMFTIndex, FileRecord); @@ -767,6 +823,10 @@ ExFreePoolWithTag(AttribData, TAG_NTFS); return Status; } + + // Now we need to free the old copy of the attribute record in the context and replace it with the new one + ExFreePoolWithTag(AttrContext->pRecord, TAG_NTFS); + AttrContext->pRecord = NewRecord; // Now we can treat the attribute as non-resident and enlarge it normally Status = SetNonResidentAttributeDataLength(Vcb, AttrContext, AttrOffset, FileRecord, DataSize); @@ -795,7 +855,7 @@ } } } - else if (DataSize->LowPart < AttrContext->Record.Resident.ValueLength) + else if (DataSize->LowPart < AttrContext->pRecord->Resident.ValueLength) { // we need to decrease the length if (NextAttribute->Type != AttributeEnd) @@ -806,8 +866,8 @@ } // set the new length of the resident attribute (if we didn't migrate it) - if (!AttrContext->Record.IsNonResident) - InternalSetResidentAttributeLength(AttrContext, FileRecord, AttrOffset, DataSize->LowPart); + if (!AttrContext->pRecord->IsNonResident) + return InternalSetResidentAttributeLength(AttrContext, FileRecord, AttrOffset, DataSize->LowPart); return STATUS_SUCCESS; } @@ -832,13 +892,19 @@ //TEMPTEMP PUCHAR TempBuffer; - if (!Context->Record.IsNonResident) - { - if (Offset > Context->Record.Resident.ValueLength) + if (!Context->pRecord->IsNonResident) + { + // We need to truncate Offset to a ULONG for pointer arithmetic + // The check below should ensure that Offset is well within the range of 32 bits + ULONG LittleOffset = (ULONG)Offset; + + // Ensure that offset isn't beyond the end of the attribute + if (Offset > Context->pRecord->Resident.ValueLength) return 0; - if (Offset + Length > Context->Record.Resident.ValueLength) - Length = (ULONG)(Context->Record.Resident.ValueLength - Offset); - RtlCopyMemory(Buffer, (PCHAR)&Context->Record + Context->Record.Resident.ValueOffset + Offset, Length); + if (Offset + Length > Context->pRecord->Resident.ValueLength) + Length = (ULONG)(Context->pRecord->Resident.ValueLength - Offset); + + RtlCopyMemory(Buffer, (PVOID)((ULONG_PTR)Context->pRecord + Context->pRecord->Resident.ValueOffset + LittleOffset), Length); return Length; } @@ -996,7 +1062,7 @@ } /* if Disk */ // TEMPTEMP - if (Context->Record.IsNonResident) + if (Context->pRecord->IsNonResident) ExFreePoolWithTag(TempBuffer, TAG_NTFS); Context->CacheRun = DataRun; @@ -1073,13 +1139,13 @@ *RealLengthWritten = 0; // is this a resident attribute? - if (!Context->Record.IsNonResident) + if (!Context->pRecord->IsNonResident) { ULONG AttributeOffset; PNTFS_ATTR_CONTEXT FoundContext; PFILE_RECORD_HEADER FileRecord; - if (Offset + Length > Context->Record.Resident.ValueLength) + if (Offset + Length > Context->pRecord->Resident.ValueLength) { DPRINT1("DRIVER ERROR: Attribute is too small!\n"); return STATUS_INVALID_PARAMETER; @@ -1098,9 +1164,9 @@ // find where to write the attribute data to Status = FindAttribute(Vcb, FileRecord, - Context->Record.Type, - (PCWSTR)((PCHAR)&Context->Record + Context->Record.NameOffset), - Context->Record.NameLength, + Context->pRecord->Type, + (PCWSTR)((ULONG_PTR)Context->pRecord + Context->pRecord->NameOffset), + Context->pRecord->NameLength, &FoundContext, &AttributeOffset); @@ -1111,8 +1177,8 @@ return Status; } - DPRINT("Offset: %I64u, AttributeOffset: %u, ValueOffset: %u\n", Offset, AttributeOffset, Context->Record.Resident.ValueLength); - Offset += AttributeOffset + Context->Record.Resident.ValueOffset; + DPRINT("Offset: %I64u, AttributeOffset: %u, ValueOffset: %u\n", Offset, AttributeOffset, Context->pRecord->Resident.ValueLength); + Offset += AttributeOffset + Context->pRecord->Resident.ValueOffset; if (Offset + Length > Vcb->NtfsInfo.BytesPerFileRecord) { @@ -1320,7 +1386,7 @@ } // end while (Length > 0) [more data to write] // TEMPTEMP - if (Context->Record.IsNonResident) + if (Context->pRecord->IsNonResident) ExFreePoolWithTag(TempBuffer, TAG_NTFS); Context->CacheRun = DataRun; @@ -1419,7 +1485,7 @@ return STATUS_INSUFFICIENT_RESOURCES; } - Status = ReadAttribute(Vcb, IndexRootCtx, 0, IndexRecord, AttributeDataLength(&IndexRootCtx->Record)); + Status = ReadAttribute(Vcb, IndexRootCtx, 0, IndexRecord, AttributeDataLength(IndexRootCtx->pRecord)); if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to read Index Root!\n"); @@ -1453,7 +1519,7 @@ { // we need to write the index root attribute back to disk ULONG LengthWritten; - Status = WriteAttribute(Vcb, IndexRootCtx, 0, (PUCHAR)IndexRecord, AttributeDataLength(&IndexRootCtx->Record), &LengthWritten); + Status = WriteAttribute(Vcb, IndexRootCtx, 0, (PUCHAR)IndexRecord, AttributeDataLength(IndexRootCtx->pRecord), &LengthWritten); if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Couldn't update Index Root!\n"); @@ -1551,7 +1617,7 @@ return Status; } - IndexAllocationSize = AttributeDataLength(&IndexAllocationCtx->Record); + IndexAllocationSize = AttributeDataLength(IndexAllocationCtx->pRecord); Status = STATUS_OBJECT_PATH_NOT_FOUND; for (RecordOffset = 0; RecordOffset < IndexAllocationSize; RecordOffset += IndexBlockSize) { @@ -1747,7 +1813,7 @@ } // allocate a buffer for the $Bitmap attribute - BitmapDataSize = AttributeDataLength(&BitmapContext->Record); + BitmapDataSize = AttributeDataLength(BitmapContext->pRecord); BitmapData = ExAllocatePoolWithTag(NonPagedPool, BitmapDataSize, TAG_NTFS); if (!BitmapData) { @@ -1772,7 +1838,7 @@ BitmapData[2] = 0xff; // Calculate bit count - BitmapBits.QuadPart = AttributeDataLength(&(DeviceExt->MFTContext->Record)) / + BitmapBits.QuadPart = AttributeDataLength(DeviceExt->MFTContext->pRecord) / DeviceExt->NtfsInfo.BytesPerFileRecord; if (BitmapBits.HighPart != 0) { @@ -1942,12 +2008,12 @@ // Find the maximum index size given what the file record can hold MaxIndexSize = DeviceExt->NtfsInfo.BytesPerFileRecord - IndexRootOffset - - IndexRootContext->Record.Resident.ValueOffset + - IndexRootContext->pRecord->Resident.ValueOffset - FIELD_OFFSET(INDEX_ROOT_ATTRIBUTE, Header) - (sizeof(ULONG) * 2); // Allocate memory for the index root data - I30IndexRootLength = AttributeDataLength(&IndexRootContext->Record); + I30IndexRootLength = AttributeDataLength(IndexRootContext->pRecord); I30IndexRoot = ExAllocatePoolWithTag(NonPagedPool, I30IndexRootLength, TAG_NTFS); if (!I30IndexRoot) { @@ -2035,7 +2101,7 @@ // $ATTRIBUTE_LIST's. AttributeLength = NewIndexRoot->Header.AllocatedSize + FIELD_OFFSET(INDEX_ROOT_ATTRIBUTE, Header); - if (AttributeLength != IndexRootContext->Record.Resident.ValueLength) + if (AttributeLength != IndexRootContext->pRecord->Resident.ValueLength) { DestinationAttribute = (PNTFS_ATTR_RECORD)((ULONG_PTR)ParentFileRecord + IndexRootOffset); @@ -2052,10 +2118,20 @@ } // Update the length of the attribute in the file record of the parent directory - InternalSetResidentAttributeLength(IndexRootContext, - ParentFileRecord, - IndexRootOffset, - AttributeLength); + Status = InternalSetResidentAttributeLength(IndexRootContext, + ParentFileRecord, + IndexRootOffset, + AttributeLength); + if (!NT_SUCCESS(Status)) + { + ExFreePoolWithTag(NewIndexRoot, TAG_NTFS); + ReleaseAttributeContext(IndexRootContext); + ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); + ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + DPRINT1("ERROR: Unable to set resident attribute length!\n"); + return Status; + } + } NT_ASSERT(ParentFileRecord->BytesInUse <= DeviceExt->NtfsInfo.BytesPerFileRecord); @@ -2295,7 +2371,7 @@ return Status; } - IndexAllocationSize = AttributeDataLength(&IndexAllocationCtx->Record); + IndexAllocationSize = AttributeDataLength(IndexAllocationCtx->pRecord); Status = STATUS_OBJECT_PATH_NOT_FOUND; for (RecordOffset = 0; RecordOffset < IndexAllocationSize; RecordOffset += IndexBlockSize) { Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/ntfs.h URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/ntfs.h [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/ntfs.h [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -480,7 +480,7 @@ ULONGLONG CacheRunCurrentOffset; LARGE_MCB DataRunsMCB; ULONGLONG FileMFTIndex; - NTFS_ATTR_RECORD Record; + PNTFS_ATTR_RECORD pRecord; } NTFS_ATTR_CONTEXT, *PNTFS_ATTR_CONTEXT; #define FCB_CACHE_INITIALIZED 0x0001 @@ -959,7 +959,7 @@ ULONGLONG AttributeDataLength(PNTFS_ATTR_RECORD AttrRecord); -VOID +NTSTATUS InternalSetResidentAttributeLength(PNTFS_ATTR_CONTEXT AttrContext, PFILE_RECORD_HEADER FileRecord, ULONG AttrOffset, Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/rw.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/rw.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/rw.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -126,7 +126,7 @@ return Status; } - StreamSize = AttributeDataLength(&DataContext->Record); + StreamSize = AttributeDataLength(DataContext->pRecord); if (ReadOffset >= StreamSize) { DPRINT1("Reading beyond stream end!\n"); @@ -149,7 +149,7 @@ /* do we need to extend RealLength by one sector? */ if (RealLength + RealReadOffset < ReadOffset + Length) { - if (RealReadOffset + RealLength + DeviceExt->NtfsInfo.BytesPerSector <= AttributeAllocatedLength(&DataContext->Record)) + if (RealReadOffset + RealLength + DeviceExt->NtfsInfo.BytesPerSector <= AttributeAllocatedLength(DataContext->pRecord)) RealLength += DeviceExt->NtfsInfo.BytesPerSector; } @@ -413,7 +413,7 @@ } // Get the size of the stream on disk - StreamSize = AttributeDataLength(&DataContext->Record); + StreamSize = AttributeDataLength(DataContext->pRecord); DPRINT("WriteOffset: %lu\tStreamSize: %I64u\n", WriteOffset, StreamSize); @@ -442,7 +442,7 @@ return Status; } - AllocationSize = AttributeAllocatedLength(&DataContext->Record); + AllocationSize = AttributeAllocatedLength(DataContext->pRecord); // now we need to update this file's size in every directory index entry that references it // TODO: put this code in its own function and adapt it to work with every filename / hardlink Modified: branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/volinfo.c URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2016/NTFS/drivers/filesyst…
============================================================================== --- branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/volinfo.c [iso-8859-1] (original) +++ branches/GSoC_2016/NTFS/drivers/filesystems/ntfs/volinfo.c [iso-8859-1] Sun Aug 6 02:54:15 2017 @@ -69,7 +69,7 @@ return 0; } - BitmapDataSize = AttributeDataLength(&DataContext->Record); + BitmapDataSize = AttributeDataLength(DataContext->pRecord); ASSERT((BitmapDataSize * 8) >= DeviceExt->NtfsInfo.ClusterCount); BitmapData = ExAllocatePoolWithTag(NonPagedPool, ROUND_UP(BitmapDataSize, DeviceExt->NtfsInfo.BytesPerSector), TAG_NTFS); if (BitmapData == NULL) @@ -144,7 +144,7 @@ return Status; } - BitmapDataSize = AttributeDataLength(&DataContext->Record); + BitmapDataSize = AttributeDataLength(DataContext->pRecord); BitmapDataSize = min(BitmapDataSize, 0xffffffff); ASSERT((BitmapDataSize * 8) >= DeviceExt->NtfsInfo.ClusterCount); BitmapData = ExAllocatePoolWithTag(NonPagedPool, ROUND_UP(BitmapDataSize, DeviceExt->NtfsInfo.BytesPerSector), TAG_NTFS);
7 years, 4 months
1
0
0
0
[mjansen] 75492: [FONTSUB] Russian translation by Sergey Stopkin. ROSAPPS-339 #resolve #comment Thanks!
by mjansen@svn.reactos.org
Author: mjansen Date: Sat Aug 5 20:08:00 2017 New Revision: 75492 URL:
http://svn.reactos.org/svn/reactos?rev=75492&view=rev
Log: [FONTSUB] Russian translation by Sergey Stopkin. ROSAPPS-339 #resolve #comment Thanks! Added: trunk/rosapps/applications/sysutils/fontsub/lang/ru-RU.rc (with props) Modified: trunk/rosapps/applications/sysutils/fontsub/fontsub_res.rc Modified: trunk/rosapps/applications/sysutils/fontsub/fontsub_res.rc URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/font…
============================================================================== --- trunk/rosapps/applications/sysutils/fontsub/fontsub_res.rc [iso-8859-1] (original) +++ trunk/rosapps/applications/sysutils/fontsub/fontsub_res.rc [iso-8859-1] Sat Aug 5 20:08:00 2017 @@ -38,6 +38,9 @@ #ifdef LANGUAGE_JA_JP #include "lang/ja-JP.rc" #endif +#ifdef LANGUAGE_RU_RU + #include "lang/ru-RU.rc" +#endif 1 ACCELERATORS BEGIN Added: trunk/rosapps/applications/sysutils/fontsub/lang/ru-RU.rc URL:
http://svn.reactos.org/svn/reactos/trunk/rosapps/applications/sysutils/font…
============================================================================== --- trunk/rosapps/applications/sysutils/fontsub/lang/ru-RU.rc (added) +++ trunk/rosapps/applications/sysutils/fontsub/lang/ru-RU.rc [iso-8859-1] Sat Aug 5 20:08:00 2017 @@ -0,0 +1,106 @@ +/* FontSub by Katayama Hirofumi MZ + * + * To the extent possible under law, the person who associated CC0 with + * FontSub has waived all copyright and related or neighboring rights + * to FontSub. + * + * You should have received a copy of the CC0 legalcode along with this + * work. If not, see <
http://creativecommons.org/publicdomain/zero/1.0/
>. + */ + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +1 MENU +BEGIN + POPUP "&Файл" + BEGIN + MENUITEM "&ÐмпоÑÑ Ð¸Ð·...\tCtrl+O", ID_IMPORT + MENUITEM "&ÐкÑпоÑÑ Ð²...\tCtrl+S", ID_EXPORT + MENUITEM SEPARATOR + MENUITEM "Ðа&гÑÑзиÑÑ Ð¸Ð· ÑееÑÑÑа\tCtrl+L", ID_RELOAD + MENUITEM "ÐапиÑаÑÑ Ð² &ÑееÑÑÑ\tCtrl+U", ID_UPDATE_REGISTRY + MENUITEM SEPARATOR + MENUITEM "ÐÑкÑÑÑÑ Ð² Reg&edit", ID_OPEN_REGKEY + MENUITEM SEPARATOR + MENUITEM "Ð&ÑÑ Ð¾Ð´\tAlt+F4", ID_EXIT + END + POPUP "&ÐÑавка" + BEGIN + MENUITEM "&СоздаÑÑ\tCtrl+N", ID_NEW + MENUITEM SEPARATOR + MENUITEM "&РедакÑиÑоваÑÑ\tEnter", ID_EDIT + MENUITEM SEPARATOR + MENUITEM "&УдалиÑÑ\tDel", ID_DELETE + END + POPUP "&СпÑавка" + BEGIN + MENUITEM "РпÑогÑамм&е", ID_ABOUT + END +END + +2 MENU +BEGIN + POPUP "Popup" + BEGIN + MENUITEM "&ÐобавиÑÑ\tCtrl+N", ID_NEW + MENUITEM SEPARATOR + MENUITEM "&РедакÑиÑоваÑÑ\tEnter", ID_EDIT + MENUITEM SEPARATOR + MENUITEM "&УдалиÑÑ\tDel", ID_DELETE + END +END + +STRINGTABLE +BEGIN + IDS_TITLE, "РедакÑÐ¾Ñ ÑаблиÑÑ ÑооÑвеÑÑÑÐ²Ð¸Ñ ÑÑиÑÑов" + IDS_FONTNAME, "ШÑиÑÑ" + IDS_SUBSTITUTE, "Ðамена" + IDS_ENTERNAME, "(ÐожалÑйÑÑа, вÑбеÑиÑе ÑÑиÑÑ...)" + IDS_IMPORT, "ÐмпоÑÑ" + IDS_EXPORT, "ÐкÑпоÑÑ" + IDS_CANTIMPORT, "Ðе ÑдалоÑÑ Ð¸Ð¼Ð¿Ð¾ÑÑиÑоваÑÑ." + IDS_CANTEXPORT, "Ðе ÑдалоÑÑ ÑкÑпоÑÑиÑоваÑÑ." + IDS_INPFILTER, "Ð¤Ð°Ð¹Ð»Ñ ÑееÑÑÑа (*.reg)|*.reg|ÐÑе ÑÐ°Ð¹Ð»Ñ (*.*)|*.*|" + IDS_OUTFILTER, "Ð¤Ð°Ð¹Ð»Ñ ÑееÑÑÑа (*.reg)|*.reg|" + IDS_QUERYUPDATE, "ÐнÑоÑмаÑÐ¸Ñ Ð¾ ÑооÑвеÑÑÑвии ÑÑиÑÑов бÑла обновлена.\r\nÐбновиÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑееÑÑÑа ÑейÑаÑ?" + IDS_ALREADYEXISTS, "ШÑиÑÑ Ñ Ñаким именем Ñже иÑполÑзÑеÑÑÑ." + IDS_ENTERNAME2, "ÐведиÑе Ð¸Ð¼Ñ ÑÑиÑÑа." + IDS_QUERYDELETE, "ÐÑ Ð´ÐµÐ¹ÑÑвиÑелÑно Ñ Ð¾ÑиÑе ÑдалиÑÑ ÑÑÐ¾Ñ ÑлеменÑ?" + IDS_CANTOPENKEY, "Ðе ÑдалоÑÑ Ð¾ÑкÑÑÑÑ ÐºÐ»ÑÑ ÑееÑÑÑа." + IDS_REBOOTNOW, "РееÑÑÑ Ð±Ñл обновлен. ÐеÑезагÑÑзиÑÑ ÑиÑÑÐµÐ¼Ñ ÑейÑаÑ?" + IDS_ABOUT, "FontSub (РедакÑÐ¾Ñ ÑаблиÑÑ ÑооÑвеÑÑÑÐ²Ð¸Ñ ÑÑиÑÑов) ÐеÑÑÐ¸Ñ 0.5\r\nÐ¾Ñ Katayama Hirofumi MZ и ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ReactOS.\r\n\r\nÐанное пÑогÑаммное обеÑпеÑение вÑпÑÑено\r\nпод лиÑензией CC0 1.0." +END + +IDD_ADD DIALOGEX 0, 0, 315, 65 +STYLE DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU +CAPTION "ÐобавиÑÑ ÑооÑвеÑÑÑвие ÑÑиÑÑов" +FONT 10, "MS Shell Dlg" +BEGIN + CONTROL "&ШÑиÑÑ:", -1, "STATIC", SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 5, 55, 15 + CONTROL "", cmb1, "ComboBoxEx32", CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 70, 6, 120, 120 + CONTROL "", cmb3, "ComboBoxEx32", CBS_DROPDOWNLIST | WS_HSCROLL | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 195, 6, 115, 120 + CONTROL "&Ðамена:", -1, "STATIC", SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 25, 55, 15 + CONTROL "", cmb2, "ComboBoxEx32", CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 70, 26, 120, 120 + CONTROL "", cmb4, "ComboBoxEx32", CBS_DROPDOWNLIST | WS_HSCROLL | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 195, 26, 115, 120 + CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 175, 45, 60, 14 + CONTROL "ÐÑмена", IDCANCEL, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 240, 45, 60, 14 +END + +IDD_EDIT DIALOGEX 0, 0, 315, 65 +STYLE DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU +CAPTION "РедакÑиÑоваÑÑ ÑооÑвеÑÑÑвие ÑÑиÑÑов" +FONT 10, "MS Shell Dlg" +BEGIN + CONTROL "&ШÑиÑÑ:", -1, "STATIC", SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 5, 55, 15 + CONTROL "", edt1, "EDIT", ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_BORDER | WS_TABSTOP, 70, 6, 120, 14 + CONTROL "", cmb3, "ComboBoxEx32", CBS_DROPDOWNLIST | WS_HSCROLL | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 195, 6, 115, 120 + CONTROL "&Ðамена:", -1, "STATIC", SS_RIGHT | SS_CENTERIMAGE | WS_CHILD | WS_VISIBLE | WS_GROUP, 5, 25, 55, 15 + CONTROL "", cmb2, "ComboBoxEx32", CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 70, 26, 120, 120 + CONTROL "", cmb4, "ComboBoxEx32", CBS_DROPDOWNLIST | WS_HSCROLL | WS_VSCROLL | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 195, 26, 115, 120 + CONTROL "OK", IDOK, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 175, 45, 60, 14 + CONTROL "ÐÑмена", IDCANCEL, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 240, 45, 60, 14 + CONTROL "У&далиÑÑ", psh1, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 45, 60, 14 +END Propchange: trunk/rosapps/applications/sysutils/fontsub/lang/ru-RU.rc ------------------------------------------------------------------------------ svn:eol-style = native
7 years, 4 months
1
0
0
0
[mjansen] 75491: [WIN32SS] Improve GetFontResourceInfoW. Patch by Katayama Hirofumi MZ & Doug Lyons. CORE-13365 #resolve #comment Thanks!
by mjansen@svn.reactos.org
Author: mjansen Date: Sat Aug 5 20:04:24 2017 New Revision: 75491 URL:
http://svn.reactos.org/svn/reactos?rev=75491&view=rev
Log: [WIN32SS] Improve GetFontResourceInfoW. Patch by Katayama Hirofumi MZ & Doug Lyons. CORE-13365 #resolve #comment Thanks! Modified: trunk/reactos/win32ss/gdi/ntgdi/freetype.c Modified: trunk/reactos/win32ss/gdi/ntgdi/freetype.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/freetype…
============================================================================== --- trunk/reactos/win32ss/gdi/ntgdi/freetype.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/gdi/ntgdi/freetype.c [iso-8859-1] Sat Aug 5 20:04:24 2017 @@ -2450,53 +2450,84 @@ return FindFaceNameInInfo(FaceName, Info, InfoEntries) < 0; } +static BOOL FASTCALL +FontFamilyFound(PFONTFAMILYINFO InfoEntry, + PFONTFAMILYINFO Info, DWORD InfoCount) +{ + LPLOGFONTW plf1 = &InfoEntry->EnumLogFontEx.elfLogFont; + LPWSTR pFullName1 = InfoEntry->EnumLogFontEx.elfFullName; + LPWSTR pFullName2; + DWORD i; + + for (i = 0; i < InfoCount; ++i) + { + LPLOGFONTW plf2 = &Info[i].EnumLogFontEx.elfLogFont; + if (plf1->lfCharSet != plf2->lfCharSet) + continue; + + pFullName2 = Info[i].EnumLogFontEx.elfFullName; + if (_wcsicmp(pFullName1, pFullName2) != 0) + continue; + + return TRUE; + } + return FALSE; +} + static BOOLEAN FASTCALL GetFontFamilyInfoForList(LPLOGFONTW LogFont, PFONTFAMILYINFO Info, - DWORD *Count, - DWORD Size, + DWORD *pCount, + DWORD MaxCount, PLIST_ENTRY Head) { PLIST_ENTRY Entry; PFONT_ENTRY CurrentEntry; - ANSI_STRING EntryFaceNameA; - UNICODE_STRING EntryFaceNameW; FONTGDI *FontGDI; - NTSTATUS status; - - Entry = Head->Flink; - while (Entry != Head) - { - CurrentEntry = (PFONT_ENTRY) CONTAINING_RECORD(Entry, FONT_ENTRY, ListEntry); - + FONTFAMILYINFO InfoEntry; + DWORD Count = *pCount; + + for (Entry = Head->Flink; Entry != Head; Entry = Entry->Flink) + { + CurrentEntry = CONTAINING_RECORD(Entry, FONT_ENTRY, ListEntry); FontGDI = CurrentEntry->Font; ASSERT(FontGDI); - RtlInitAnsiString(&EntryFaceNameA, FontGDI->SharedFace->Face->family_name); - status = RtlAnsiStringToUnicodeString(&EntryFaceNameW, &EntryFaceNameA, TRUE); - if (!NT_SUCCESS(status)) - { - return FALSE; - } - - if ((LF_FACESIZE - 1) * sizeof(WCHAR) < EntryFaceNameW.Length) - { - EntryFaceNameW.Length = (LF_FACESIZE - 1) * sizeof(WCHAR); - EntryFaceNameW.Buffer[LF_FACESIZE - 1] = L'\0'; - } - - if (FontFamilyInclude(LogFont, &EntryFaceNameW, Info, min(*Count, Size))) - { - if (*Count < Size) - { - FontFamilyFillInfo(Info + *Count, EntryFaceNameW.Buffer, - NULL, FontGDI); - } - (*Count)++; - } - RtlFreeUnicodeString(&EntryFaceNameW); - Entry = Entry->Flink; - } + if (LogFont->lfCharSet != DEFAULT_CHARSET && + LogFont->lfCharSet != FontGDI->CharSet) + { + continue; + } + + if (LogFont->lfFaceName[0] == UNICODE_NULL) + { + if (Count < MaxCount) + { + FontFamilyFillInfo(&Info[Count], NULL, NULL, FontGDI); + } + Count++; + continue; + } + + FontFamilyFillInfo(&InfoEntry, NULL, NULL, FontGDI); + + if (_wcsicmp(LogFont->lfFaceName, InfoEntry.EnumLogFontEx.elfLogFont.lfFaceName) != 0 && + _wcsicmp(LogFont->lfFaceName, InfoEntry.EnumLogFontEx.elfFullName) != 0) + { + continue; + } + + if (!FontFamilyFound(&InfoEntry, Info, min(Count, MaxCount))) + { + if (Count < MaxCount) + { + RtlCopyMemory(&Info[Count], &InfoEntry, sizeof(InfoEntry)); + } + Count++; + } + } + + *pCount = Count; return TRUE; }
7 years, 4 months
1
0
0
0
[dreimer] 75490: [RAPPS] Update RAPPS d/l urls to fix broken links. Update version changes on unchanged direct links.
by dreimer@svn.reactos.org
Author: dreimer Date: Sat Aug 5 16:52:57 2017 New Revision: 75490 URL:
http://svn.reactos.org/svn/reactos?rev=75490&view=rev
Log: [RAPPS] Update RAPPS d/l urls to fix broken links. Update version changes on unchanged direct links. Modified: trunk/reactos/media/rapps/7zip.txt trunk/reactos/media/rapps/bittorrent.txt trunk/reactos/media/rapps/dilinuxreader.txt trunk/reactos/media/rapps/foxit.txt trunk/reactos/media/rapps/gecko.txt trunk/reactos/media/rapps/libreoffice.txt trunk/reactos/media/rapps/libreofficehelp.txt trunk/reactos/media/rapps/libreofficestill.txt trunk/reactos/media/rapps/mesagallium.txt trunk/reactos/media/rapps/miktex.txt trunk/reactos/media/rapps/mirc.txt trunk/reactos/media/rapps/mpc.txt trunk/reactos/media/rapps/msxml3.txt trunk/reactos/media/rapps/samba.txt trunk/reactos/media/rapps/totalcommander.txt trunk/reactos/media/rapps/tsvn.txt trunk/reactos/media/rapps/ultraiso.txt trunk/reactos/media/rapps/utorrent.txt Modified: trunk/reactos/media/rapps/7zip.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/7zip.txt?rev=7…
============================================================================== --- trunk/reactos/media/rapps/7zip.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/7zip.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -36,7 +36,7 @@ [Section.0419] Description = УÑилиÑа Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ оÑкÑÑÑÐ¸Ñ 7zip, zip, tar, rar и дÑÑÐ³Ð¸Ñ Ð°ÑÑ Ð¸Ð²Ð½ÑÑ Ñайлов. -Size = 1,1 MiÐ +Size = 1,1 ÐиР[Section.041f] Description = 7zip, zip, tar, rar ve baÅka birçok belgelik biçimi destekli bir kütük belgelikleme aracı. Modified: trunk/reactos/media/rapps/bittorrent.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/bittorrent.txt…
============================================================================== --- trunk/reactos/media/rapps/bittorrent.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/bittorrent.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -3,7 +3,7 @@ Version = CURRENT License = Freeware for non-commercial uses Description = The original BitTorrent client. -Size = 2.1 MiB +Size = 3.0 MiB Category = 5 URLSite =
http://www.bittorrent.com/
URLDownload =
http://download-new.utorrent.com/endpoint/bittorrent/os/windows/track/stabl…
@@ -12,7 +12,7 @@ [Section.0407] License = Freeware für nichtkommerzielle Nutzung Description = Der Original BitTorrent Client. -Size = 2,1 MiB +Size = 3,0 MiB [Section.0a] License = Gratuito para uso no comercial @@ -28,17 +28,17 @@ [Section.0418] License = GratuitÄ pentru uz necomercial Description = Originalul client BitTorrent. -Size = 2,1 Mio +Size = 3,0 Mio [Section.0419] License = ÐеÑплаÑно, Ð´Ð»Ñ Ð½Ðµ коммеÑÑеÑкого иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Description = ÐÑигиналÑнÑй ÐºÐ»Ð¸ÐµÐ½Ñ BitTorrent -Size = 2,1 ÐиР+Size = 3,0 ÐиР[Section.041f] License = Tecimlik olmayan kullanımlar için ücretsiz. Description = Ãzgün BitTorrent istemcisi. -Size = 2,1 MiB +Size = 3,0 MiB [Section.0804] Description = åæ¬ç BitTorrent 客æ·ç«¯ã Modified: trunk/reactos/media/rapps/dilinuxreader.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/dilinuxreader.…
============================================================================== --- trunk/reactos/media/rapps/dilinuxreader.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/dilinuxreader.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,13 +1,13 @@ [Section] Name = DiskInternals Linux Reader -Version = 2.5 +Version = 2.6 License = Freeware Description = A easy way to bridge between Windows/ReactOS and Ext2/Ext3/Ext4, HFS and ReiserFS file systems. Size = 21.2 MiB Category = 12 URLSite =
http://www.diskinternals.com/linux-reader/
URLDownload =
http://www.diskinternals.com/download/Linux_Reader.exe
-SHA1 = 0158a4472e58069e515a4bf354ddb466c8b49351 +SHA1 = 681c0edd288b2c995b2837e00fcf7a46c9146643 CDPath = none [Section.0407] Modified: trunk/reactos/media/rapps/foxit.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/foxit.txt?rev=…
============================================================================== --- trunk/reactos/media/rapps/foxit.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/foxit.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -7,13 +7,13 @@ Category = 6 URLSite =
http://www.foxitsoftware.com/Secure_PDF_Reader/
URLDownload =
http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/7.x/7.3/en_us/F…
-SHA1 = ed6a6ca77dbd3f6fbd2ff923b661cb384adaeb05 +SHA1 = a0798bb1d11b93b54f6531c93c03592aa41bd5b2 CDPath = none [Section.0407] Version = 7.3.6 Description = Alternativer PDF Reader. Neben Adobe Reader der beste PDF Reader. -Size = 172 MiB +Size = 172,5 MiB URLDownload =
http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/7.x/7.3/L10N/Fo…
SHA1 = 6295bb977a12460a3aee8d3d1209d453832e4095 @@ -21,7 +21,7 @@ Version = 7.3.6 License = Gratuito Description = Uno de los mejores lectores de PDF, parecido a Adobe Reader. -Size = 172 MiB +Size = 172.5 MiB URLDownload =
http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/7.x/7.3/L10N/Fo…
SHA1 = 6295bb977a12460a3aee8d3d1209d453832e4095 @@ -34,7 +34,7 @@ Version = 7.3.6 License = ÐеÑплаÑно Description = ÐеÑплаÑное пÑиложение Ð´Ð»Ñ Ð¿ÑоÑмоÑÑа ÑлекÑÑоннÑÑ Ð´Ð¾ÐºÑменÑов в ÑоÑмаÑе PDF. -Size = 172 ÐиР+Size = 172,5 ÐиРURLDownload =
http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/7.x/7.3/L10N/Fo…
SHA1 = 6295bb977a12460a3aee8d3d1209d453832e4095 @@ -43,7 +43,7 @@ Version = 7.3.6 License = Ãcretsiz Description = BaÅka PDF okuyucusu, iÅlevlilik yöntemi olarak Adobe Okuyucu'yla yarıÅıyor. -Size = 172 MiB +Size = 172,5 MiB URLDownload =
http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/7.x/7.3/L10N/Fo…
SHA1 = 6295bb977a12460a3aee8d3d1209d453832e4095 Modified: trunk/reactos/media/rapps/gecko.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/gecko.txt?rev=…
============================================================================== --- trunk/reactos/media/rapps/gecko.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/gecko.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -26,3 +26,4 @@ Name = Wine Gecko Motoru Description = Gecko Motoru düzgülü olarak birinci kurulum aÅamasında yalnızca Ä°nternet baÄlantısı olduÄunda kurulurdu. mshtml.dll'yi kullanan uygulamalar için gereklidir. Size = 26,7 MiB + Modified: trunk/reactos/media/rapps/libreoffice.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/libreoffice.tx…
============================================================================== --- trunk/reactos/media/rapps/libreoffice.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/libreoffice.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,25 +1,25 @@ [Section] Name = LibreOffice -Version = 5.3.0 +Version = 5.4.0 License = LGPL Description = A powerful and open source office suite. It has been forked from OpenOffice. -Size = 211.0 MiB +Size = 213.3 MiB Category = 6 URLSite =
http://www.documentfoundation.org/
-URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.3.0/win/x86/Lib…
-SHA1 = b81bc9e4a91a013e46cd0ffe319635b85eb339d4 +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.4.0/win/x86/Lib…
+SHA1 = 415c2f726fa0d047ea7390133c4b8cb1084c4119 CDPath = none [Section.0407] Description = Vorher bekannt als OpenOffice. Quelloffene Office Suite. -Size = 211,0 MiB +Size = 213,3 MiB [Section.0a] Description = La suite de ofimática de código abierto. Descendiente de OpenOffice. [Section.040c] Description = Précédemment appelé OpenOffice. Suite bureautique open source. -Size = 211,0 Mio +Size = 213,3 Mio [Section.0410] Description = Precedentemente chiamato OpenOffice. Open Source Office Suite. @@ -32,15 +32,15 @@ [Section.0418] Description = SuitÄ completÄ de aplicaÈii de biroticÄ, cu surse deschise. ReprezintÄ o bifurcare a dezvoltÄrii OpenOffice. -Size = 211,0 Mio +Size = 213,3 Mio [Section.0419] Description = ÐÑоÑплаÑÑоÑменнÑй, Ñвободно ÑаÑпÑоÑÑÑанÑемÑй оÑиÑнÑй Ð¿Ð°ÐºÐµÑ Ñ Ð¾ÑкÑÑÑÑм иÑÑ Ð¾Ð´Ð½Ñм кодом, ÑозданнÑй как оÑвеÑвление OpenOffice. -Size = 211,0 ÐиР+Size = 213,3 ÐиР[Section.041f] Description = Güçlü ve açık kaynak bir ofis paketi. OpenOffice'ten çatallanılmıÅtır. -Size = 211,0 MiB +Size = 213,3 MiB [Section.0422] Description = ÐÑдкÑиÑий оÑÑÑний пакеÑ. Modified: trunk/reactos/media/rapps/libreofficehelp.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/libreofficehel…
============================================================================== --- trunk/reactos/media/rapps/libreofficehelp.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/libreofficehelp.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,21 +1,21 @@ [Section] Name = LibreOffice Help Pack -Version = 5.3.0 +Version = 5.4.0 License = GPLv3 Description = Offline help content of LibreOffice. Size = 5.1 MiB Category = 6 URLSite =
http://www.documentfoundation.org/
-URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.3.0/win/x86/Lib…
-SHA1 = b04981410bab3dd941942cea88b1b9cbe8313019 +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.4.0/win/x86/Lib…
+SHA1 = a9152434e49248bdecbf3bdc2604deaf60ab4da0 CDPath = none [Section.0407] Name = LibreOffice Help Pack Description = Offline Hilfe für LibreOffice. Size = 7,2 MiB -URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.3.0/win/x86/Lib…
-SHA1 = 4ba3cfa801d403da1ff0cfef74596ef77f19d5df +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.4.0/win/x86/Lib…
+SHA1 = 3be98a1cf7ff8dbd07328fad6d55bda554da88b2 [Section.0418] Description = ConÈinut de asistenÈÄ Èi ajutor (în limba englezÄ) pentru LibreOffice. @@ -25,28 +25,28 @@ Name = LibreOffice СпÑавоÑнÑй Ð¿Ð°ÐºÐµÑ Description = ÐÑÑлайн ÑпÑавка Ð´Ð»Ñ LibreOffice. Size = 7,3 ÐиР-URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.3.0/win/x86/Lib…
-SHA1 = ec63e42c1f2d87ea8a1d630ded23b83a7c72fee8 +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.4.0/win/x86/Lib…
+SHA1 = 6fe8a878a22dea1eb896eac97547169c305209ce [Section.0a] Name = LibreOffice â Paquete de ayuda Description = Páginas de ayuda para LibreOffice. Size = 7.1 MiB -URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.3.0/win/x86/Lib…
-SHA1 = 1ad24e19dc73688f8aa0c0f3917782deefc0eb08 +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.4.0/win/x86/Lib…
+SHA1 = f963e1f478e3e3feeced6d5ad46e7316ae5eb8f5 [Section.041f] Name = LibreOffice Yardım Paketi License = GPL sürüm 3 Description = LibreOffice'in çevrim dıÅı yardım içeriÄi. Size = 7,0 MiB -URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.3.0/win/x86/Lib…
-SHA1 = 06033e0e9eb25179047cca753a011cd57095fa0f +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.4.0/win/x86/Lib…
+SHA1 = 40583526ec946f073b53164afed2c68adef1165e [Section.0804] Name = LibreOffice 帮å©å Description = LibreOffice çè±æºå¸®å©å 容ã Size = 9.6 MiB -URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.3.0/win/x86/Lib…
-SHA1 = c88420a80f15b73710bfc063e4f82719474e4c82 +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.4.0/win/x86/Lib…
+SHA1 = 6608a2fb8d10540db74e6461003077c0b32566ce Modified: trunk/reactos/media/rapps/libreofficestill.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/libreofficesti…
============================================================================== --- trunk/reactos/media/rapps/libreofficestill.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/libreofficestill.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,25 +1,25 @@ [Section] Name = LibreOffice -Version = 5.2.6 +Version = 5.3.5 License = LGPL Description = A powerful and open source office suite. It has been forked from OpenOffice. -Size = 213.4 MiB +Size = 204.7 MiB Category = 6 URLSite =
http://www.documentfoundation.org/
-URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.2.6/win/x86/Lib…
-SHA1 = a68330bf78eb449ba1a42b75b9ddc60bfba225fb +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/5.3.5/win/x86/Lib…
+SHA1 = c8ac1971e8a52351f6e4d24462b94a759eadee2b CDPath = none [Section.0407] Description = Vorher bekannt als OpenOffice. Quelloffene Office Suite. -Size = 213,4 MiB +Size = 204,7 MiB [Section.0a] Description = La suite de ofimática de código abierto. Descendiente de OpenOffice. [Section.040c] Description = Précédemment appelé OpenOffice. Suite bureautique open source. -Size = 213,4 Mio +Size = 204,7 Mio [Section.0410] Description = Precedentemente chiamato OpenOffice. Open Source Office Suite. @@ -32,15 +32,15 @@ [Section.0418] Description = SuitÄ completÄ de aplicaÈii de biroticÄ, cu surse deschise. ReprezintÄ o bifurcare a dezvoltÄrii OpenOffice. -Size = 213,4 Mio +Size = 204,7 Mio [Section.0419] Description = ÐÑоÑплаÑÑоÑменнÑй, Ñвободно ÑаÑпÑоÑÑÑанÑемÑй оÑиÑнÑй Ð¿Ð°ÐºÐµÑ Ñ Ð¾ÑкÑÑÑÑм иÑÑ Ð¾Ð´Ð½Ñм кодом, ÑозданнÑй как оÑвеÑвление OpenOffice. -Size = 213,4 ÐиР+Size = 204,7 ÐиР[Section.041f] Description = Güçlü ve açık kaynak bir ofis paketi. OpenOffice'ten çatallanılmıÅtır. -Size = 213,4 MiB +Size = 204,7 MiB [Section.0422] Description = ÐÑдкÑиÑий оÑÑÑний пакеÑ. Modified: trunk/reactos/media/rapps/mesagallium.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/mesagallium.tx…
============================================================================== --- trunk/reactos/media/rapps/mesagallium.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/mesagallium.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -12,7 +12,6 @@ [Section.0405] Description = Grafická knihovna obsahujicà moduly Mesa, Gallium a llvmpipe. Poskytuje vyÅ¡Å¡Ã výkon na systémech bez hardwarové OpenGL akcelerace. Tato knihovna může nahradit výchozà OGL ovladaÄ na VaÅ¡em systému - nastavenà lze provést bÄhem instalace, nebo pomocà ovládacÃho panelu Nastavenà OpenGL. -Size = 5,7 MiB [Section.0407] Description = Beinhaltet Mesa, Gallium und llvmpipe. Signifikanter Geschwindigkeitsschub für Systeme ohne OpenGL Hardwarebeschleunigung. @@ -30,3 +29,4 @@ Name = Mesa3D Ãizge KitaplıÄı Description = Mesa3D'nin bu yapısı Mesa, Gallium ve llvmpipe'tan oluÅmaktadır. OpenGL donanım hızlandırması olmayan dizgeler için önemli bir baÅarım artıÅı saÄlar. Dizgenizde OGL sürücüsünün yerini alabilir, bunu kurulum sırasında ya da OpenGL Yapılandırma denetim masası ögesi yoluyla ayarlanabilir. Size = 5,7 MiB + Modified: trunk/reactos/media/rapps/miktex.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/miktex.txt?rev…
============================================================================== --- trunk/reactos/media/rapps/miktex.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/miktex.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,18 +1,18 @@ [Section] Name = MikTEX 2.9 -Version = 2.9.6236 +Version = 2.9.6361 License = Freeware Description = An up-to-date implementation of TeX/LaTeX and related programs for Windows. -Size = 181.8 MiB +Size = 179.0 MiB Category = 6 URLSite =
http://www.miktex.org/
URLDownload =
http://ftp.gwdg.de/pub/ctan/systems/win32/miktex/setup/basic-miktex.exe
-SHA1 = 49804d4daec38167ec103a40a91ac2fb8f8a58e5 +SHA1 = 365b71cf9f23552b99f8d8c69637e6bec6853979 CDPath = none [Section.0407] Description = Aktuelle Implementierung von TeX/LaTeX und zugehöriger Programme für Windows. -Size = 181,8 MiB +Size = 179,0 MiB [Section.0a] License = Gratuita @@ -21,17 +21,17 @@ [Section.0418] License = GratuitÄ Description = MikTEX este o implementare actualizatÄ de TeX/LaTeX Èi aprogramelor aferente. -Size = 181,8 Mio +Size = 179,0 Mio [Section.0419] License = ÐеÑплаÑно Description = ÐÑкÑÑÑÑй диÑÑÑибÑÑив TeX/LaTeX Ð´Ð»Ñ Ð¿Ð»Ð°ÑÑоÑÐ¼Ñ Windows. -Size = 181,8 ÐиР+Size = 179,0 ÐиР[Section.041f] License = Ãcretsiz Description = Windows için, TeX'in, LaTeX'in ve iliÅkili izlencelerin bir Åimdiki uygulaması. -Size = 181,8 MiB +Size = 179,0 MiB [Section.0804] Description = TeX/LaTeX åç¸å ³çç¨åºç Windows çä¸ä¸ªææ°æ§è¡æ åµã Modified: trunk/reactos/media/rapps/mirc.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/mirc.txt?rev=7…
============================================================================== --- trunk/reactos/media/rapps/mirc.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/mirc.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,13 +1,13 @@ [Section] Name = mIRC 7 -Version = 7.47 +Version = 7.49 License = Shareware Description = The most popular client for the Internet Relay Chat (IRC). Size = 2.6 MiB Category = 5 URLSite =
http://www.mirc.com/
-URLDownload =
http://download.mirc.com/17/mirc747.exe
-SHA1 = b0ec0b88d9e3f26df3731d782bdd8da06c2f9882 +URLDownload =
http://download.mirc.com/19/mirc749.exe
+SHA1 = 741b6c69852c50252ec6b7b3f90ffdefb02b5ffd CDPath = none [Section.0407] Modified: trunk/reactos/media/rapps/mpc.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/mpc.txt?rev=75…
============================================================================== --- trunk/reactos/media/rapps/mpc.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/mpc.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,25 +1,25 @@ [Section] Name = Media Player Classic Home Cinema -Version = 1.7.10 +Version = 1.7.13 License = GPL Description = An alternative media player. -Size = 12.0 MiB +Size = 12.7 MiB Category = 2 URLSite =
http://mpc-hc.org/
-URLDownload =
https://binaries.mpc-hc.org/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.7.10_x86…
-SHA1 = 536cc3143a6fa5dcd0b8674e614afb1be594f592 +URLDownload =
https://binaries.mpc-hc.org/MPC%20HomeCinema%20-%20Win32/MPC-HC_v1.7.13_x86…
+SHA1 = 213e67b32df5585f9fb50302aa317918064c6f62 CDPath = none [Section.0407] Description = Alternativer Mediaplayer. -Size = 12,0 MiB +Size = 12,7 MiB [Section.0a] Description = Reproductor multimedia alternativo. [Section.040c] Description = Un lecteur media. -Size = 12,0 Mio +Size = 12,7 Mio [Section.0410] Description = Lettore multimediale. @@ -32,18 +32,18 @@ [Section.0418] Description = Lector multimedia. -Size = 12,0 Mio +Size = 12,7 Mio [Section.0419] Description = ÐÑлÑÑимедийнÑй пÑоигÑÑваÑелÑ. -Size = 12,0 ÐиР+Size = 12,7 ÐиР[Section.041b] Description = Multimediálny prehrávaÄ. [Section.041f] Description = BaÅka bir ortam oynatıcı. -Size = 12,0 MiB +Size = 12,7 MiB [Section.0422] Description = ÐÑлÑÑимедÑйний пÑогÑаваÑ. Modified: trunk/reactos/media/rapps/msxml3.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/msxml3.txt?rev…
============================================================================== --- trunk/reactos/media/rapps/msxml3.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/msxml3.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -6,7 +6,7 @@ Size = 1.0 MiB Category = 14 URLSite =
http://www.microsoft.com/downloads/details.aspx?FamilyID=28494391-052B-42FF…
-URLDownload =
https://web.archive.org/web/20070126162308/http://download.microsoft.com/do…
+URLDownload =
http://svn.reactos.org/packages/msxml3.msi
SHA1 = d4c2178dfb807e1a0267fce0fd06b8d51106d913 CDPath = none Modified: trunk/reactos/media/rapps/samba.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/samba.txt?rev=…
============================================================================== --- trunk/reactos/media/rapps/samba.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/samba.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -26,3 +26,4 @@ License = GPL sürüm 3 Description = ÃalıÅan uygulamaların gereksinim duyduÄu secur32.dll (ör: NTLM ...) yetkilendirme saÄlayıcılarını saÄlar. Size = 10,8 MiB + Modified: trunk/reactos/media/rapps/totalcommander.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/totalcommander…
============================================================================== --- trunk/reactos/media/rapps/totalcommander.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/totalcommander.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,19 +1,19 @@ [Section] Name = Total Commander -Version = 8.52a +Version = 9.00a License = Shareware Description = A file manager for power users with two panels side by side. -Size = 3.6 MiB +Size = 4.1 MiB Category = 12 URLSite =
http://www.ghisler.com/
-URLDownload =
http://totalcmd2.s3.amazonaws.com/tcmd852ax32.exe
-SHA1 = df21f2b596923d855410a8da865091dcabd4da45 +URLDownload =
http://totalcommander.ch/win/tcmd900ax32.exe
+SHA1 = c5d5c5f1b5ca558de549069beb61d443d09a59d8 CDPath = none [Section.0407] Description = Dateimanager für Power User mit zwei nebeneinander liegenden Panels. URLSite =
http://www.ghisler.com/deutsch.htm
-Size = 3,6 MiB +Size = 4,1 MiB [Section.0a] Description = Un navegador de archivos multipanel para usuarios avanzados. @@ -30,17 +30,17 @@ [Section.0418] License = Versiune de evaluare Description = Gestionar de fiÈiere dupÄ modelul paneluri-alÄturate, pentru utilizatori avansaÈi. -Size = 3,6 Mio +Size = 4,1 Mio [Section.0419] License = УÑловно беÑплаÑно Description = ФайловÑй Ð¼ÐµÐ½ÐµÐ´Ð¶ÐµÑ Ñ Ð´Ð²ÑÐ¼Ñ Ð¿Ð°Ð½ÐµÐ»Ñми. -Size = 3,6 ÐиР+Size = 4,1 ÐиР[Section.041f] License = PaylaÅımlı Description = Güçlü kullanıcılar için yan yana iki bölmeli bir kütük yöneticisi. -Size = 3,6 MiB +Size = 4,1 MiB [Section.0804] Description = çµåç¨æ·æä¾ä¸¤ä¸ªé¢æ¿å¹¶æççæ件管çå¨ã Modified: trunk/reactos/media/rapps/tsvn.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/tsvn.txt?rev=7…
============================================================================== --- trunk/reactos/media/rapps/tsvn.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/tsvn.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -25,3 +25,4 @@ [Section.041f] Description = Kod eÅ zamanlama ve ÅimdikileÅtirme için çizgelik SVN istemcisi. Size = 14,9 MiB + Modified: trunk/reactos/media/rapps/ultraiso.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/ultraiso.txt?r…
============================================================================== --- trunk/reactos/media/rapps/ultraiso.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/ultraiso.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -1,13 +1,13 @@ [Section] Name = UltraISO -Version = 9.6.6.3300 +Version = 9.7.0.3476 License = Trial verison Description = An ISO CD/DVD image file creating/editing/converting tool and a bootable CD/DVD maker, it can directly edit the CD/DVD image file and extract files and folders from it, as well as directly make ISO files from your CD/DVD-ROM or hard disk. Size = 4.3 MiB Category = 12 URLSite =
https://www.ezbsystems.com/ultraiso/
URLDownload =
http://dw.ezbsys.net/uiso9_pe.exe
-SHA1 = 4d059739da3e2e93cd5f52dfee0db7b73e937610 +SHA1 = 14a1f3ff0929185ee5943ecec56d066c3cb0d986 CDPath = none [Section.0418] Modified: trunk/reactos/media/rapps/utorrent.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/rapps/utorrent.txt?r…
============================================================================== --- trunk/reactos/media/rapps/utorrent.txt [iso-8859-1] (original) +++ trunk/reactos/media/rapps/utorrent.txt [iso-8859-1] Sat Aug 5 16:52:57 2017 @@ -3,7 +3,7 @@ Version = CURRENT License = Freeware for non-commercial uses Description = Small and fast BitTorrent Client. -Size = 2.3 MiB +Size = 1.7 MiB Category = 5 URLSite =
http://www.utorrent.com/
URLDownload =
http://download-new.utorrent.com/endpoint/utorrent/os/windows/track/stable/…
@@ -12,7 +12,7 @@ [Section.0407] License = Freeware für nichtkommerzielle Nutzung Description = Kleiner und schneller BitTorrent Client. -Size = 2,3 MiB +Size = 1,7 MiB [Section.0a] License = Gratuito para uso no comercial @@ -21,7 +21,7 @@ [Section.040c] License = Gratuit pour une utilisation non-commerciale Description = Client BitTorrent petit et rapide. -Size = 2,3 Mio +Size = 1,7 Mio [Section.0410] License = Gratuita per un uso non-commerciale @@ -38,17 +38,17 @@ [Section.0418] License = GratuitÄ pentru uz necomercial Description = Client BitTorrent, mic Èi rapid. -Size = 2,3 Mio +Size = 1,7 Mio [Section.0419] License = ÐеÑплаÑÐ½Ð°Ñ Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ð¼Ð¼ÐµÑÑеÑкого иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Description = ÐаленÑкий и бÑÑÑÑÑй ÐºÐ»Ð¸ÐµÐ½Ñ BitTorrent. -Size = 2,3 ÐиР+Size = 1,7 ÐиР[Section.041f] License = Tecimlik olmayan kullanımlar için ücretsiz. Description = Küçük ve hızlı BitTorrent istemcisi. -Size = 2,3 MiB +Size = 1,7 MiB [Section.0422] License = ÐезплаÑна Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ð¼ÐµÑÑÑйного викоÑиÑÑаннÑ
7 years, 4 months
1
0
0
0
[mjansen] 75489: [APPHELP][XML2SDB] Code cleanup + add assertions - Always used pdb or hsdb, no more 'db' - Add property to an PDB that describes if it's opened for read/write, and assert on this -...
by mjansen@svn.reactos.org
Author: mjansen Date: Sat Aug 5 12:05:06 2017 New Revision: 75489 URL:
http://svn.reactos.org/svn/reactos?rev=75489&view=rev
Log: [APPHELP][XML2SDB] Code cleanup + add assertions - Always used pdb or hsdb, no more 'db' - Add property to an PDB that describes if it's opened for read/write, and assert on this - Add comments Modified: trunk/reactos/dll/appcompat/apphelp/apphelp.h trunk/reactos/dll/appcompat/apphelp/hsdb.c trunk/reactos/dll/appcompat/apphelp/layer.c trunk/reactos/dll/appcompat/apphelp/sdbapi.c trunk/reactos/dll/appcompat/apphelp/sdbpapi.h trunk/reactos/dll/appcompat/apphelp/sdbread.c trunk/reactos/dll/appcompat/apphelp/sdbtypes.h trunk/reactos/dll/appcompat/apphelp/sdbwrite.c trunk/reactos/dll/appcompat/shims/genral/themes.c trunk/reactos/sdk/tools/xml2sdb/main.cpp trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h Modified: trunk/reactos/dll/appcompat/apphelp/apphelp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/apph…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/apphelp.h [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/apphelp.h [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -1,6 +1,6 @@ /* * Copyright 2013 Mislav BlaževiÄ - * Copyright 2015-2017 Mark Jansen + * Copyright 2015-2017 Mark Jansen (mark.jansen(a)reactos.org) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -36,7 +36,7 @@ #define SDB_DATABASE_MAIN_DRIVERS 0x80040000 typedef struct _SDB { - PDB db; + PDB pdb; BOOL auto_loaded; } SDB, *HSDB; @@ -98,19 +98,19 @@ void WINAPI SdbCloseDatabase(PDB); BOOL WINAPI SdbIsNullGUID(CONST GUID *Guid); BOOL WINAPI SdbGetAppPatchDir(HSDB db, LPWSTR path, DWORD size); -LPWSTR WINAPI SdbGetStringTagPtr(PDB db, TAGID tagid); -TAGID WINAPI SdbFindFirstNamedTag(PDB db, TAGID root, TAGID find, TAGID nametag, LPCWSTR find_name); +LPWSTR WINAPI SdbGetStringTagPtr(PDB pdb, TAGID tagid); +TAGID WINAPI SdbFindFirstNamedTag(PDB pdb, TAGID root, TAGID find, TAGID nametag, LPCWSTR find_name); /* sdbread.c */ -BOOL WINAPI SdbpReadData(PDB db, PVOID dest, DWORD offset, DWORD num); -TAG WINAPI SdbGetTagFromTagID(PDB db, TAGID tagid); -TAGID WINAPI SdbFindFirstTag(PDB db, TAGID parent, TAG tag); -TAGID WINAPI SdbFindNextTag(PDB db, TAGID parent, TAGID prev_child); -BOOL WINAPI SdbGetDatabaseID(PDB db, GUID* Guid); -DWORD WINAPI SdbReadDWORDTag(PDB db, TAGID tagid, DWORD ret); -QWORD WINAPI SdbReadQWORDTag(PDB db, TAGID tagid, QWORD ret); -TAGID WINAPI SdbGetFirstChild(PDB db, TAGID parent); -TAGID WINAPI SdbGetNextChild(PDB db, TAGID parent, TAGID prev_child); +BOOL WINAPI SdbpReadData(PDB pdb, PVOID dest, DWORD offset, DWORD num); +TAG WINAPI SdbGetTagFromTagID(PDB pdb, TAGID tagid); +TAGID WINAPI SdbFindFirstTag(PDB pdb, TAGID parent, TAG tag); +TAGID WINAPI SdbFindNextTag(PDB pdb, TAGID parent, TAGID prev_child); +BOOL WINAPI SdbGetDatabaseID(PDB pdb, GUID* Guid); +DWORD WINAPI SdbReadDWORDTag(PDB pdb, TAGID tagid, DWORD ret); +QWORD WINAPI SdbReadQWORDTag(PDB pdb, TAGID tagid, QWORD ret); +TAGID WINAPI SdbGetFirstChild(PDB pdb, TAGID parent); +TAGID WINAPI SdbGetNextChild(PDB pdb, TAGID parent, TAGID prev_child); /* sdbfileattr.c*/ BOOL WINAPI SdbGetFileAttributes(LPCWSTR path, PATTRINFO *attr_info_ret, LPDWORD attr_count); Modified: trunk/reactos/dll/appcompat/apphelp/hsdb.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/hsdb…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/hsdb.c [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/hsdb.c [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -48,6 +48,8 @@ return (attr != INVALID_FILE_ATTRIBUTES && !(attr & FILE_ATTRIBUTE_DIRECTORY)); } +/* Given a 'MATCHING_FILE' tag and an ATTRINFO array, + check all tags defined in the MATCHING_FILE against the ATTRINFO */ static BOOL SdbpMatchFileAttributes(PDB pdb, TAGID matching_file, PATTRINFO attribs, DWORD attr_count) { TAGID child; @@ -107,6 +109,8 @@ return TRUE; } +/* Given an 'exe' tag and an ATTRINFO array (for the main file), + verify that the main file and any additional files match */ static BOOL WINAPI SdbpMatchExe(PDB pdb, TAGID exe, const WCHAR* dir, PATTRINFO main_attribs, DWORD main_attr_count) { RTL_UNICODE_STRING_BUFFER FullPathName = { { 0 } }; @@ -132,8 +136,10 @@ if (!Name.Buffer) goto Cleanup; + /* An '*' here means use the main executable' */ if (!wcscmp(Name.Buffer, L"*")) { + /* We already have these attributes, so we do not need to retrieve them */ if (!SdbpMatchFileAttributes(pdb, matching_file, main_attribs, main_attr_count)) goto Cleanup; continue; @@ -153,9 +159,11 @@ RtlAppendUnicodeToString(&FullPathName.String, L"\\"); RtlAppendUnicodeStringToString(&FullPathName.String, &Name); + /* If the file does not exist, do not bother trying to read it's attributes */ if (!SdbpFileExists(FullPathName.String.Buffer)) goto Cleanup; + /* Do we have some attributes from the previous iteration? */ if (attribs) SdbFreeFileAttributes(attribs); @@ -176,24 +184,26 @@ return IsMatch; } -static void SdbpAddDatabaseGuid(PDB db, PSDBQUERYRESULT result) +/* Add a database guid to the query result */ +static void SdbpAddDatabaseGuid(PDB pdb, PSDBQUERYRESULT result) { size_t n; for (n = 0; n < _countof(result->rgGuidDB); ++n) { - if (!memcmp(&result->rgGuidDB[n], &db->database_id, sizeof(db->database_id))) + if (!memcmp(&result->rgGuidDB[n], &pdb->database_id, sizeof(pdb->database_id))) return; if (result->dwCustomSDBMap & (1<<n)) continue; - memcpy(&result->rgGuidDB[n], &db->database_id, sizeof(result->rgGuidDB[n])); + memcpy(&result->rgGuidDB[n], &pdb->database_id, sizeof(result->rgGuidDB[n])); result->dwCustomSDBMap |= (1<<n); return; } } +/* Add one layer to the query result */ static BOOL SdbpAddSingleLayerMatch(TAGREF layer, PSDBQUERYRESULT result) { size_t n; @@ -213,54 +223,55 @@ return TRUE; } - +/* Translate a layer name to a tagref + add it to the query result */ static BOOL SdbpAddNamedLayerMatch(HSDB hsdb, PCWSTR layerName, PSDBQUERYRESULT result) { TAGID database, layer; TAGREF tr; - PDB db = hsdb->db; - - database = SdbFindFirstTag(db, TAGID_ROOT, TAG_DATABASE); + PDB pdb = hsdb->pdb; + + database = SdbFindFirstTag(pdb, TAGID_ROOT, TAG_DATABASE); if (database == TAGID_NULL) return FALSE; - layer = SdbFindFirstNamedTag(db, database, TAG_LAYER, TAG_NAME, layerName); + layer = SdbFindFirstNamedTag(pdb, database, TAG_LAYER, TAG_NAME, layerName); if (layer == TAGID_NULL) return FALSE; - if (!SdbTagIDToTagRef(hsdb, db, layer, &tr)) + if (!SdbTagIDToTagRef(hsdb, pdb, layer, &tr)) return FALSE; if (!SdbpAddSingleLayerMatch(tr, result)) return FALSE; - SdbpAddDatabaseGuid(db, result); + SdbpAddDatabaseGuid(pdb, result); return TRUE; } -static void SdbpAddExeLayers(HSDB hsdb, PDB db, TAGID tagExe, PSDBQUERYRESULT result) -{ - TAGID layer = SdbFindFirstTag(db, tagExe, TAG_LAYER); +/* Add all layers for the exe tag to the query result */ +static void SdbpAddExeLayers(HSDB hsdb, PDB pdb, TAGID tagExe, PSDBQUERYRESULT result) +{ + TAGID layer = SdbFindFirstTag(pdb, tagExe, TAG_LAYER); while (layer != TAGID_NULL) { TAGREF tr; - TAGID layerIdTag = SdbFindFirstTag(db, layer, TAG_LAYER_TAGID); - DWORD tagId = SdbReadDWORDTag(db, layerIdTag, TAGID_NULL); + TAGID layerIdTag = SdbFindFirstTag(pdb, layer, TAG_LAYER_TAGID); + DWORD tagId = SdbReadDWORDTag(pdb, layerIdTag, TAGID_NULL); if (layerIdTag != TAGID_NULL && tagId != TAGID_NULL && - SdbTagIDToTagRef(hsdb, db, tagId, &tr)) + SdbTagIDToTagRef(hsdb, pdb, tagId, &tr)) { SdbpAddSingleLayerMatch(tr, result); } else { /* Try a name lookup */ - TAGID layerTag = SdbFindFirstTag(db, layer, TAG_NAME); + TAGID layerTag = SdbFindFirstTag(pdb, layer, TAG_NAME); if (layerTag != TAGID_NULL) { - LPCWSTR layerName = SdbGetStringTagPtr(db, layerTag); + LPCWSTR layerName = SdbGetStringTagPtr(pdb, layerTag); if (layerName) { SdbpAddNamedLayerMatch(hsdb, layerName, result); @@ -268,16 +279,17 @@ } } - layer = SdbFindNextTag(db, tagExe, layer); - } -} - -static void SdbpAddExeMatch(HSDB hsdb, PDB db, TAGID tagExe, PSDBQUERYRESULT result) + layer = SdbFindNextTag(pdb, tagExe, layer); + } +} + +/* Add an exe tag to the query result */ +static void SdbpAddExeMatch(HSDB hsdb, PDB pdb, TAGID tagExe, PSDBQUERYRESULT result) { size_t n; TAGREF tr; - if (!SdbTagIDToTagRef(hsdb, db, tagExe, &tr)) + if (!SdbTagIDToTagRef(hsdb, pdb, tagExe, &tr)) return; for (n = 0; n < result->dwExeCount; ++n) @@ -292,11 +304,12 @@ result->atrExes[n] = tr; result->dwExeCount++; - SdbpAddExeLayers(hsdb, db, tagExe, result); - - SdbpAddDatabaseGuid(db, result); -} - + SdbpAddExeLayers(hsdb, pdb, tagExe, result); + + SdbpAddDatabaseGuid(pdb, result); +} + +/* Add all named layers to the query result */ static ULONG SdbpAddLayerMatches(HSDB hsdb, PWSTR pwszLayers, DWORD pdwBytes, PSDBQUERYRESULT result) { PWSTR start = pwszLayers, p; @@ -350,7 +363,7 @@ /** - * Opens specified shim database file Handle returned by this function may only be used by + * Opens specified shim database file. Handle returned by this function may only be used by * functions which take HSDB param thus differing it from SdbOpenDatabase. * * @param [in] flags Specifies type of path or predefined database. @@ -389,10 +402,10 @@ flags = HID_DOS_PATHS; } - hsdb->db = SdbOpenDatabase(path ? path : buffer, (flags & 0xF) - 1); + hsdb->pdb = SdbOpenDatabase(path ? path : buffer, (flags & 0xF) - 1); /* If database could not be loaded, a handle doesn't make sense either */ - if (!hsdb->db) + if (!hsdb->pdb) { SdbReleaseDatabase(hsdb); return NULL; @@ -408,7 +421,7 @@ */ void WINAPI SdbReleaseDatabase(HSDB hsdb) { - SdbCloseDatabase(hsdb->db); + SdbCloseDatabase(hsdb->pdb); SdbFree(hsdb); } @@ -438,7 +451,7 @@ LPWSTR file_name; WCHAR wszLayers[MAX_LAYER_LENGTH]; DWORD dwSize; - PDB db; + PDB pdb; /* Load default database if one is not specified */ if (!hsdb) @@ -457,7 +470,7 @@ return FALSE; /* We do not support multiple db's yet! */ - db = hsdb->db; + pdb = hsdb->pdb; RtlInitUnicodeString(&DosApplicationName.String, path); RtlInitBuffer(&DosApplicationName.ByteBuffer, (PUCHAR)DosPathBuffer, sizeof(DosPathBuffer)); @@ -491,24 +504,24 @@ *(file_name++) = UNICODE_NULL; /* DATABASE is list TAG which contains all executables */ - database = SdbFindFirstTag(db, TAGID_ROOT, TAG_DATABASE); + database = SdbFindFirstTag(pdb, TAGID_ROOT, TAG_DATABASE); if (database == TAGID_NULL) { goto Cleanup; } /* EXE is list TAG which contains data required to match executable */ - iter = SdbFindFirstTag(db, database, TAG_EXE); + iter = SdbFindFirstTag(pdb, database, TAG_EXE); /* Search for entry in database, we should look into indexing tags! */ while (iter != TAGID_NULL) { LPWSTR foundName; /* Check if exe name matches */ - name = SdbFindFirstTag(db, iter, TAG_NAME); + name = SdbFindFirstTag(pdb, iter, TAG_NAME); /* If this is a malformed DB, (no TAG_NAME), we should not crash. */ - foundName = SdbGetStringTagPtr(db, name); - if (foundName && !lstrcmpiW(foundName, file_name)) + foundName = SdbGetStringTagPtr(pdb, name); + if (foundName && !wcsicmp(foundName, file_name)) { /* Get information about executable required to match it with database entry */ if (!attribs) @@ -519,15 +532,15 @@ /* We have a null terminator before the application name, so DosApplicationName only contains the path. */ - if (SdbpMatchExe(db, iter, DosApplicationName.String.Buffer, attribs, attr_count)) + if (SdbpMatchExe(pdb, iter, DosApplicationName.String.Buffer, attribs, attr_count)) { ret = TRUE; - SdbpAddExeMatch(hsdb, db, iter, result); + SdbpAddExeMatch(hsdb, pdb, iter, result); } } /* Continue iterating */ - iter = SdbFindNextTag(db, database, iter); + iter = SdbFindNextTag(pdb, database, iter); } /* Restore the full path. */ @@ -561,11 +574,11 @@ /** * Retrieves AppPatch directory. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [out] path Pointer to memory in which path shall be written. * @param [in] size Size of the buffer in characters. */ -BOOL WINAPI SdbGetAppPatchDir(HSDB db, LPWSTR path, DWORD size) +BOOL WINAPI SdbGetAppPatchDir(HSDB hsdb, LPWSTR path, DWORD size) { static WCHAR* default_dir = NULL; static CONST WCHAR szAppPatch[] = {'\\','A','p','p','P','a','t','c','h',0}; @@ -600,13 +613,13 @@ } } - if (!db) + if (!hsdb) { return SUCCEEDED(StringCchCopyW(path, size, default_dir)); } else { - SHIM_ERR("Unimplemented for db != NULL\n"); + SHIM_ERR("Unimplemented for hsdb != NULL\n"); return FALSE; } } @@ -636,7 +649,7 @@ /* There seems to be no range checking on trWhich.. */ if (ppdb) - *ppdb = hsdb->db; + *ppdb = hsdb->pdb; if (ptiWhich) *ptiWhich = trWhich & 0x0fffffff; @@ -655,7 +668,7 @@ */ BOOL WINAPI SdbTagIDToTagRef(HSDB hsdb, PDB pdb, TAGID tiWhich, TAGREF* ptrWhich) { - if (pdb != hsdb->db) + if (pdb != hsdb->pdb) { SHIM_ERR("Multiple shim databases not yet implemented!\n"); if (ptrWhich) @@ -670,7 +683,7 @@ } - +/* Convert a query result to shim data that will be loaded in the child process */ BOOL WINAPI SdbPackAppCompatData(HSDB hsdb, PSDBQUERYRESULT pQueryResult, PVOID* ppData, DWORD *pdwSize) { ShimData* pData; Modified: trunk/reactos/dll/appcompat/apphelp/layer.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/laye…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/layer.c [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/layer.c [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -50,7 +50,7 @@ #define SIGN_MEDIA_FMT L"SIGN.MEDIA=%X %s" #endif - +/* Fixme: use RTL_UNICODE_STRING_BUFFER */ typedef struct SDB_TMP_STR { UNICODE_STRING Str; @@ -131,6 +131,7 @@ return type == DRIVE_REMOVABLE || type == DRIVE_CDROM; } +/* Convert a path on removable media to 'SIGN.MEDIA=%X filename' */ BOOL SdbpBuildSignMediaId(PSDB_TMP_STR LongPath) { SDB_TMP_STR Scratch; @@ -169,6 +170,7 @@ return FALSE; } +/* Convert a given path to a long or media path */ BOOL SdbpResolvePath(PSDB_TMP_STR LongPath, PCWSTR wszPath) { SdbpInitTempStr(LongPath); Modified: trunk/reactos/dll/appcompat/apphelp/sdbapi.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/sdba…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/sdbapi.c [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/sdbapi.c [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -107,7 +107,7 @@ IO_STATUS_BLOCK io; OBJECT_ATTRIBUTES attr; UNICODE_STRING str; - PDB db; + PDB pdb; if (type == DOS_PATH) { @@ -120,8 +120,8 @@ } /* SdbAlloc zeroes the memory. */ - db = (PDB)SdbAlloc(sizeof(DB)); - if (!db) + pdb = (PDB)SdbAlloc(sizeof(DB)); + if (!pdb) { SHIM_ERR("Failed to allocate memory for shim database\n"); return NULL; @@ -129,28 +129,33 @@ InitializeObjectAttributes(&attr, &str, OBJ_CASE_INSENSITIVE, NULL, NULL); - Status = NtCreateFile(&db->file, (write ? FILE_GENERIC_WRITE : FILE_GENERIC_READ )| SYNCHRONIZE, + Status = NtCreateFile(&pdb->file, (write ? FILE_GENERIC_WRITE : FILE_GENERIC_READ )| SYNCHRONIZE, &attr, &io, NULL, FILE_ATTRIBUTE_NORMAL, FILE_SHARE_READ, write ? FILE_SUPERSEDE : FILE_OPEN, FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0); + pdb->for_write = write; + if (type == DOS_PATH) RtlFreeUnicodeString(&str); if (!NT_SUCCESS(Status)) { - SdbCloseDatabase(db); + SdbCloseDatabase(pdb); SHIM_ERR("Failed to create shim database file: %lx\n", Status); return NULL; } - return db; -} - -void WINAPI SdbpFlush(PDB db) + return pdb; +} + +void WINAPI SdbpFlush(PDB pdb) { IO_STATUS_BLOCK io; - NTSTATUS Status = NtWriteFile(db->file, NULL, NULL, NULL, &io, - db->data, db->write_iter, NULL, NULL); + NTSTATUS Status; + + ASSERT(pdb->for_write); + Status = NtWriteFile(pdb->file, NULL, NULL, NULL, &io, + pdb->data, pdb->write_iter, NULL, NULL); if( !NT_SUCCESS(Status)) SHIM_WARN("failed with 0x%lx\n", Status); } @@ -257,9 +262,9 @@ return TRUE; } -BOOL WINAPI SdbpCheckTagIDType(PDB db, TAGID tagid, WORD type) -{ - TAG tag = SdbGetTagFromTagID(db, tagid); +BOOL WINAPI SdbpCheckTagIDType(PDB pdb, TAGID tagid, WORD type) +{ + TAG tag = SdbGetTagFromTagID(pdb, tagid); if (tag == TAG_NULL) return FALSE; return SdbpCheckTagType(tag, type); @@ -269,43 +274,43 @@ { IO_STATUS_BLOCK io; FILE_STANDARD_INFORMATION fsi; - PDB db; + PDB pdb; NTSTATUS Status; BYTE header[12]; - db = SdbpCreate(path, type, FALSE); - if (!db) - return NULL; - - Status = NtQueryInformationFile(db->file, &io, &fsi, sizeof(FILE_STANDARD_INFORMATION), FileStandardInformation); + pdb = SdbpCreate(path, type, FALSE); + if (!pdb) + return NULL; + + Status = NtQueryInformationFile(pdb->file, &io, &fsi, sizeof(FILE_STANDARD_INFORMATION), FileStandardInformation); if (!NT_SUCCESS(Status)) { - SdbCloseDatabase(db); + SdbCloseDatabase(pdb); SHIM_ERR("Failed to get shim database size: 0x%lx\n", Status); return NULL; } - db->size = fsi.EndOfFile.u.LowPart; - db->data = SdbAlloc(db->size); - Status = NtReadFile(db->file, NULL, NULL, NULL, &io, db->data, db->size, NULL, NULL); + pdb->size = fsi.EndOfFile.u.LowPart; + pdb->data = SdbAlloc(pdb->size); + Status = NtReadFile(pdb->file, NULL, NULL, NULL, &io, pdb->data, pdb->size, NULL, NULL); if (!NT_SUCCESS(Status)) { - SdbCloseDatabase(db); + SdbCloseDatabase(pdb); SHIM_ERR("Failed to open shim database file: 0x%lx\n", Status); return NULL; } - if (!SdbpReadData(db, &header, 0, 12)) - { - SdbCloseDatabase(db); + if (!SdbpReadData(pdb, &header, 0, 12)) + { + SdbCloseDatabase(pdb); SHIM_ERR("Failed to read shim database header\n"); return NULL; } if (memcmp(&header[8], "sdbf", 4) != 0) { - SdbCloseDatabase(db); + SdbCloseDatabase(pdb); SHIM_ERR("Shim database header is invalid\n"); return NULL; } @@ -313,7 +318,7 @@ *major = *(DWORD*)&header[0]; *minor = *(DWORD*)&header[4]; - return db; + return pdb; } @@ -327,46 +332,46 @@ */ PDB WINAPI SdbOpenDatabase(LPCWSTR path, PATH_TYPE type) { - PDB db; + PDB pdb; DWORD major, minor; - db = SdbpOpenDatabase(path, type, &major, &minor); - if (!db) + pdb = SdbpOpenDatabase(path, type, &major, &minor); + if (!pdb) return NULL; if (major != 2 && major != 3) { - SdbCloseDatabase(db); + SdbCloseDatabase(pdb); SHIM_ERR("Invalid shim database version\n"); return NULL; } - db->stringtable = SdbFindFirstTag(db, TAGID_ROOT, TAG_STRINGTABLE); - if(!SdbGetDatabaseID(db, &db->database_id)) + pdb->stringtable = SdbFindFirstTag(pdb, TAGID_ROOT, TAG_STRINGTABLE); + if(!SdbGetDatabaseID(pdb, &pdb->database_id)) { SHIM_INFO("Failed to get the database id\n"); } - return db; + return pdb; } /** * Closes specified database and frees its memory. * - * @param [in] db Handle to the shim database. - */ -void WINAPI SdbCloseDatabase(PDB db) -{ - if (!db) + * @param [in] pdb Handle to the shim database. + */ +void WINAPI SdbCloseDatabase(PDB pdb) +{ + if (!pdb) return; - if (db->file) - NtClose(db->file); - if (db->string_buffer) - SdbCloseDatabase(db->string_buffer); - if (db->string_lookup) - SdbpTableDestroy(&db->string_lookup); - SdbFree(db->data); - SdbFree(db); + if (pdb->file) + NtClose(pdb->file); + if (pdb->string_buffer) + SdbCloseDatabase(pdb->string_buffer); + if (pdb->string_lookup) + SdbpTableDestroy(&pdb->string_lookup); + SdbFree(pdb->data); + SdbFree(pdb); } /** @@ -462,11 +467,11 @@ */ BOOL WINAPI SdbGetDatabaseVersion(LPCWSTR database, PDWORD VersionHi, PDWORD VersionLo) { - PDB db; - - db = SdbpOpenDatabase(database, DOS_PATH, VersionHi, VersionLo); - if (db) - SdbCloseDatabase(db); + PDB pdb; + + pdb = SdbpOpenDatabase(database, DOS_PATH, VersionHi, VersionLo); + if (pdb) + SdbCloseDatabase(pdb); return TRUE; } @@ -483,22 +488,22 @@ * * @return The found tag, or TAGID_NULL on failure */ -TAGID WINAPI SdbFindFirstNamedTag(PDB db, TAGID root, TAGID find, TAGID nametag, LPCWSTR find_name) +TAGID WINAPI SdbFindFirstNamedTag(PDB pdb, TAGID root, TAGID find, TAGID nametag, LPCWSTR find_name) { TAGID iter; - iter = SdbFindFirstTag(db, root, find); + iter = SdbFindFirstTag(pdb, root, find); while (iter != TAGID_NULL) { - TAGID tmp = SdbFindFirstTag(db, iter, nametag); + TAGID tmp = SdbFindFirstTag(pdb, iter, nametag); if (tmp != TAGID_NULL) { - LPCWSTR name = SdbGetStringTagPtr(db, tmp); + LPCWSTR name = SdbGetStringTagPtr(pdb, tmp); if (name && !wcsicmp(name, find_name)) return iter; } - iter = SdbFindNextTag(db, root, iter); + iter = SdbFindNextTag(pdb, root, iter); } return TAGID_NULL; } @@ -514,16 +519,16 @@ */ TAGREF WINAPI SdbGetLayerTagRef(HSDB hsdb, LPCWSTR layerName) { - PDB db = hsdb->db; - - TAGID database = SdbFindFirstTag(db, TAGID_ROOT, TAG_DATABASE); + PDB pdb = hsdb->pdb; + + TAGID database = SdbFindFirstTag(pdb, TAGID_ROOT, TAG_DATABASE); if (database != TAGID_NULL) { - TAGID layer = SdbFindFirstNamedTag(db, database, TAG_LAYER, TAG_NAME, layerName); + TAGID layer = SdbFindFirstNamedTag(pdb, database, TAG_LAYER, TAG_NAME, layerName); if (layer != TAGID_NULL) { TAGREF tr; - if (SdbTagIDToTagRef(hsdb, db, layer, &tr)) + if (SdbTagIDToTagRef(hsdb, pdb, layer, &tr)) { return tr; } Modified: trunk/reactos/dll/appcompat/apphelp/sdbpapi.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/sdbp…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/sdbpapi.h [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/sdbpapi.h [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -1,6 +1,6 @@ /* * Copyright 2013 Mislav BlaževiÄ - * Copyright 2015,2016 Mark Jansen + * Copyright 2015-2017 Mark Jansen (mark.jansen(a)reactos.org) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -64,12 +64,12 @@ PDB WINAPI SdbpCreate(LPCWSTR path, PATH_TYPE type, BOOL write); -void WINAPI SdbpFlush(PDB db); +void WINAPI SdbpFlush(PDB pdb); DWORD SdbpStrlen(PCWSTR string); DWORD SdbpStrsize(PCWSTR string); BOOL WINAPI SdbpCheckTagType(TAG tag, WORD type); -BOOL WINAPI SdbpCheckTagIDType(PDB db, TAGID tagid, WORD type); +BOOL WINAPI SdbpCheckTagIDType(PDB pdb, TAGID tagid, WORD type); #ifndef WINAPIV #define WINAPIV Modified: trunk/reactos/dll/appcompat/apphelp/sdbread.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/sdbr…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/sdbread.c [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/sdbread.c [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -22,10 +22,10 @@ #include "apphelp.h" -DWORD WINAPI SdbGetTagDataSize(PDB db, TAGID tagid); - - -BOOL WINAPI SdbpReadData(PDB db, PVOID dest, DWORD offset, DWORD num) +DWORD WINAPI SdbGetTagDataSize(PDB pdb, TAGID tagid); + + +BOOL WINAPI SdbpReadData(PDB pdb, PVOID dest, DWORD offset, DWORD num) { DWORD size = offset + num; @@ -34,23 +34,23 @@ return FALSE; /* Overflow */ - if (db->size < size) + if (pdb->size < size) return FALSE; - memcpy(dest, db->data + offset, num); + memcpy(dest, pdb->data + offset, num); return TRUE; } -static DWORD WINAPI SdbpGetTagSize(PDB db, TAGID tagid) +static DWORD WINAPI SdbpGetTagSize(PDB pdb, TAGID tagid) { WORD type; DWORD size; - type = SdbGetTagFromTagID(db, tagid) & TAG_TYPE_MASK; + type = SdbGetTagFromTagID(pdb, tagid) & TAG_TYPE_MASK; if (type == TAG_NULL) return 0; - size = SdbGetTagDataSize(db, tagid); + size = SdbGetTagDataSize(pdb, tagid); if (type <= TAG_TYPE_STRINGREF) return size += sizeof(TAG); else size += (sizeof(TAG) + sizeof(DWORD)); @@ -58,26 +58,26 @@ return size; } -static LPWSTR WINAPI SdbpGetString(PDB db, TAGID tagid, PDWORD size) +static LPWSTR WINAPI SdbpGetString(PDB pdb, TAGID tagid, PDWORD size) { TAG tag; TAGID offset; - tag = SdbGetTagFromTagID(db, tagid); + tag = SdbGetTagFromTagID(pdb, tagid); if (tag == TAG_NULL) return NULL; if ((tag & TAG_TYPE_MASK) == TAG_TYPE_STRINGREF) { /* No stringtable; all references are invalid */ - if (db->stringtable == TAGID_NULL) + if (pdb->stringtable == TAGID_NULL) return NULL; /* TAG_TYPE_STRINGREF contains offset of string relative to stringtable */ - if (!SdbpReadData(db, &tagid, tagid + sizeof(TAG), sizeof(TAGID))) + if (!SdbpReadData(pdb, &tagid, tagid + sizeof(TAG), sizeof(TAGID))) return NULL; - offset = db->stringtable + tagid + sizeof(TAG) + sizeof(TAGID); + offset = pdb->stringtable + tagid + sizeof(TAG) + sizeof(TAGID); } else if ((tag & TAG_TYPE_MASK) == TAG_TYPE_STRING) { @@ -90,24 +90,24 @@ } /* Optionally read string size */ - if (size && !SdbpReadData(db, size, tagid + sizeof(TAG), sizeof(*size))) + if (size && !SdbpReadData(pdb, size, tagid + sizeof(TAG), sizeof(*size))) return FALSE; - return (LPWSTR)(&db->data[offset]); + return (LPWSTR)(&pdb->data[offset]); } /** * Searches shim database for the tag associated with specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid The TAGID of the tag. * * @return Success: The tag associated with specified tagid, Failure: TAG_NULL. */ -TAG WINAPI SdbGetTagFromTagID(PDB db, TAGID tagid) +TAG WINAPI SdbGetTagFromTagID(PDB pdb, TAGID tagid) { TAG data; - if (!SdbpReadData(db, &data, tagid, sizeof(data))) + if (!SdbpReadData(pdb, &data, tagid, sizeof(data))) return TAG_NULL; return data; } @@ -115,12 +115,12 @@ /** * Retrieves size of data at specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid Tagid of tag whose size is queried. * * @return Success: Size of data at specified tagid, Failure: 0. */ -DWORD WINAPI SdbGetTagDataSize(PDB db, TAGID tagid) +DWORD WINAPI SdbGetTagDataSize(PDB pdb, TAGID tagid) { /* sizes of data types with fixed size */ static const SIZE_T sizes[6] = { @@ -131,7 +131,7 @@ WORD type; DWORD size; - type = SdbGetTagFromTagID(db, tagid) & TAG_TYPE_MASK; + type = SdbGetTagFromTagID(pdb, tagid) & TAG_TYPE_MASK; if (type == TAG_NULL) return 0; @@ -139,7 +139,7 @@ return sizes[(type >> 12) - 1]; /* tag with dynamic size (e.g. list): must read size */ - if (!SdbpReadData(db, &size, tagid + sizeof(TAG), sizeof(size))) + if (!SdbpReadData(pdb, &size, tagid + sizeof(TAG), sizeof(size))) return 0; return size; @@ -148,25 +148,25 @@ /** * Searches shim database for a child of specified parent tag. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] parent TAGID of parent. * * @return Success: TAGID of child tag, Failure: TAGID_NULL. */ -TAGID WINAPI SdbGetFirstChild(PDB db, TAGID parent) +TAGID WINAPI SdbGetFirstChild(PDB pdb, TAGID parent) { /* if we are at beginning of database */ if (parent == TAGID_ROOT) { /* header only database: no tags */ - if (db->size <= _TAGID_ROOT) + if (pdb->size <= _TAGID_ROOT) return TAGID_NULL; /* return *real* root tagid */ else return _TAGID_ROOT; } /* only list tag can have children */ - if ((SdbGetTagFromTagID(db, parent) & TAG_TYPE_MASK) != TAG_TYPE_LIST) + if ((SdbGetTagFromTagID(pdb, parent) & TAG_TYPE_MASK) != TAG_TYPE_LIST) return TAGID_NULL; /* first child is sizeof(TAG) + sizeof(DWORD) bytes after beginning of list */ @@ -176,30 +176,30 @@ /** * Searches shim database for next child of specified parent tag. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] parent TAGID of parent. * @param [in] prev_child TAGID of previous child. * * @return Success: TAGID of next child tag, Failure: TAGID_NULL. */ -TAGID WINAPI SdbGetNextChild(PDB db, TAGID parent, TAGID prev_child) +TAGID WINAPI SdbGetNextChild(PDB pdb, TAGID parent, TAGID prev_child) { TAGID next_child; DWORD prev_child_size, parent_size; - prev_child_size = SdbpGetTagSize(db, prev_child); + prev_child_size = SdbpGetTagSize(pdb, prev_child); if (prev_child_size == 0) return TAGID_NULL; /* Bound check */ next_child = prev_child + prev_child_size; - if (next_child >= db->size) + if (next_child >= pdb->size) return TAGID_NULL; if (parent == TAGID_ROOT) return next_child; - parent_size = SdbpGetTagSize(db, parent); + parent_size = SdbpGetTagSize(pdb, parent); if (parent_size == 0) return TAGID_NULL; @@ -213,22 +213,22 @@ /** * Searches shim database for a tag within specified domain. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] parent TAGID of parent. * @param [in] tag TAG to be located. * * @return Success: TAGID of first matching tag, Failure: TAGID_NULL. */ -TAGID WINAPI SdbFindFirstTag(PDB db, TAGID parent, TAG tag) +TAGID WINAPI SdbFindFirstTag(PDB pdb, TAGID parent, TAG tag) { TAGID iter; - iter = SdbGetFirstChild(db, parent); + iter = SdbGetFirstChild(pdb, parent); while (iter != TAGID_NULL) { - if (SdbGetTagFromTagID(db, iter) == tag) + if (SdbGetTagFromTagID(pdb, iter) == tag) return iter; - iter = SdbGetNextChild(db, parent, iter); + iter = SdbGetNextChild(pdb, parent, iter); } return TAGID_NULL; } @@ -236,25 +236,25 @@ /** * Searches shim database for a next tag which matches prev_child within parent's domain. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] parent TAGID of parent. * @param [in] prev_child TAGID of previous match. * * @return Success: TAGID of next match, Failure: TAGID_NULL. */ -TAGID WINAPI SdbFindNextTag(PDB db, TAGID parent, TAGID prev_child) +TAGID WINAPI SdbFindNextTag(PDB pdb, TAGID parent, TAGID prev_child) { TAG tag; TAGID iter; - tag = SdbGetTagFromTagID(db, prev_child); - iter = SdbGetNextChild(db, parent, prev_child); + tag = SdbGetTagFromTagID(pdb, prev_child); + iter = SdbGetNextChild(pdb, parent, prev_child); while (iter != TAGID_NULL) { - if (SdbGetTagFromTagID(db, iter) == tag) + if (SdbGetTagFromTagID(pdb, iter) == tag) return iter; - iter = SdbGetNextChild(db, parent, iter); + iter = SdbGetNextChild(pdb, parent, iter); } return TAGID_NULL; } @@ -266,7 +266,7 @@ * If size parameter is less than number of characters in string, this function shall fail and * no data shall be copied. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid TAGID of string or stringref associated with the string. * @param [out] buffer Buffer in which string will be copied. * @param [in] size Number of characters to copy. @@ -274,12 +274,12 @@ * @return TRUE if string was successfully copied to the buffer FALSE if string was not copied * to the buffer. */ -BOOL WINAPI SdbReadStringTag(PDB db, TAGID tagid, LPWSTR buffer, DWORD size) +BOOL WINAPI SdbReadStringTag(PDB pdb, TAGID tagid, LPWSTR buffer, DWORD size) { LPWSTR string; DWORD string_size; - string = SdbpGetString(db, tagid, &string_size); + string = SdbpGetString(pdb, tagid, &string_size); if (!string) return FALSE; @@ -294,70 +294,70 @@ /** * Reads WORD value at specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid TAGID of WORD value. * @param [in] ret Default return value in case function fails. * * @return Success: WORD value at specified tagid, or ret on failure. */ -WORD WINAPI SdbReadWORDTag(PDB db, TAGID tagid, WORD ret) -{ - if (SdbpCheckTagIDType(db, tagid, TAG_TYPE_WORD)) - SdbpReadData(db, &ret, tagid + 2, sizeof(WORD)); +WORD WINAPI SdbReadWORDTag(PDB pdb, TAGID tagid, WORD ret) +{ + if (SdbpCheckTagIDType(pdb, tagid, TAG_TYPE_WORD)) + SdbpReadData(pdb, &ret, tagid + 2, sizeof(WORD)); return ret; } /** * Reads DWORD value at specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid TAGID of DWORD value. * @param [in] ret Default return value in case function fails. * * @return Success: DWORD value at specified tagid, otherwise ret. */ -DWORD WINAPI SdbReadDWORDTag(PDB db, TAGID tagid, DWORD ret) -{ - if (SdbpCheckTagIDType(db, tagid, TAG_TYPE_DWORD)) - SdbpReadData(db, &ret, tagid + 2, sizeof(DWORD)); +DWORD WINAPI SdbReadDWORDTag(PDB pdb, TAGID tagid, DWORD ret) +{ + if (SdbpCheckTagIDType(pdb, tagid, TAG_TYPE_DWORD)) + SdbpReadData(pdb, &ret, tagid + 2, sizeof(DWORD)); return ret; } /** * Reads QWORD value at specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid TAGID of QWORD value. * @param [in] ret Default return value in case function fails. * * @return Success: QWORD value at specified tagid, otherwise ret. */ -QWORD WINAPI SdbReadQWORDTag(PDB db, TAGID tagid, QWORD ret) -{ - if (SdbpCheckTagIDType(db, tagid, TAG_TYPE_QWORD)) - SdbpReadData(db, &ret, tagid + sizeof(TAG), sizeof(QWORD)); +QWORD WINAPI SdbReadQWORDTag(PDB pdb, TAGID tagid, QWORD ret) +{ + if (SdbpCheckTagIDType(pdb, tagid, TAG_TYPE_QWORD)) + SdbpReadData(pdb, &ret, tagid + sizeof(TAG), sizeof(QWORD)); return ret; } /** * Reads binary data at specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid TAGID of binary data. * @param [out] buffer Buffer in which data will be copied. * @param [in] size Size of the buffer. * * @return TRUE if data was successfully written, or FALSE otherwise. */ -BOOL WINAPI SdbReadBinaryTag(PDB db, TAGID tagid, PBYTE buffer, DWORD size) +BOOL WINAPI SdbReadBinaryTag(PDB pdb, TAGID tagid, PBYTE buffer, DWORD size) { DWORD data_size = 0; - if (SdbpCheckTagIDType(db, tagid, TAG_TYPE_BINARY)) - { - SdbpReadData(db, &data_size, tagid + sizeof(TAG), sizeof(data_size)); + if (SdbpCheckTagIDType(pdb, tagid, TAG_TYPE_BINARY)) + { + SdbpReadData(pdb, &data_size, tagid + sizeof(TAG), sizeof(data_size)); if (size >= data_size) - return SdbpReadData(db, buffer, tagid + sizeof(TAG) + sizeof(data_size), data_size); + return SdbpReadData(pdb, buffer, tagid + sizeof(TAG) + sizeof(data_size), data_size); } return FALSE; @@ -366,52 +366,52 @@ /** * Retrieves binary data at specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid TAGID of binary data. * * @return Success: Pointer to binary data at specified tagid, or NULL on failure. */ -PVOID WINAPI SdbGetBinaryTagData(PDB db, TAGID tagid) -{ - if (!SdbpCheckTagIDType(db, tagid, TAG_TYPE_BINARY)) +PVOID WINAPI SdbGetBinaryTagData(PDB pdb, TAGID tagid) +{ + if (!SdbpCheckTagIDType(pdb, tagid, TAG_TYPE_BINARY)) return NULL; - return &db->data[tagid + sizeof(TAG) + sizeof(DWORD)]; + return &pdb->data[tagid + sizeof(TAG) + sizeof(DWORD)]; } /** * Searches shim database for string associated with specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid TAGID of string or stringref associated with the string. * * @return the LPWSTR associated with specified tagid, or NULL on failure. */ -LPWSTR WINAPI SdbGetStringTagPtr(PDB db, TAGID tagid) -{ - return SdbpGetString(db, tagid, NULL); +LPWSTR WINAPI SdbGetStringTagPtr(PDB pdb, TAGID tagid) +{ + return SdbpGetString(pdb, tagid, NULL); } /** * Reads binary data at specified tagid. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [out] Guid Database ID. * * @return true if the ID was found FALSE otherwise. */ -BOOL WINAPI SdbGetDatabaseID(PDB db, GUID* Guid) -{ - if(SdbIsNullGUID(&db->database_id)) - { - TAGID root = SdbFindFirstTag(db, TAGID_ROOT, TAG_DATABASE); +BOOL WINAPI SdbGetDatabaseID(PDB pdb, GUID* Guid) +{ + if(SdbIsNullGUID(&pdb->database_id)) + { + TAGID root = SdbFindFirstTag(pdb, TAGID_ROOT, TAG_DATABASE); if(root != TAGID_NULL) { - TAGID id = SdbFindFirstTag(db, root, TAG_DATABASE_ID); + TAGID id = SdbFindFirstTag(pdb, root, TAG_DATABASE_ID); if(id != TAGID_NULL) { - if(!SdbReadBinaryTag(db, id, (PBYTE)&db->database_id, sizeof(db->database_id))) + if(!SdbReadBinaryTag(pdb, id, (PBYTE)&pdb->database_id, sizeof(pdb->database_id))) { - memset(&db->database_id, 0, sizeof(db->database_id)); + memset(&pdb->database_id, 0, sizeof(pdb->database_id)); } } else @@ -426,9 +426,9 @@ SHIM_ERR("Failed to get root tag\n"); } } - if(!SdbIsNullGUID(&db->database_id)) - { - memcpy(Guid, &db->database_id, sizeof(db->database_id)); + if(!SdbIsNullGUID(&pdb->database_id)) + { + memcpy(Guid, &pdb->database_id, sizeof(pdb->database_id)); return TRUE; } return FALSE; Modified: trunk/reactos/dll/appcompat/apphelp/sdbtypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/sdbt…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/sdbtypes.h [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/sdbtypes.h [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -1,6 +1,6 @@ /* * Copyright 2013 Mislav BlaževiÄ - * Copyright 2015,2016 Mark Jansen + * Copyright 2015-2017 Mark Jansen (mark.jansen(a)reactos.org) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -39,6 +39,7 @@ TAGID stringtable; DWORD write_iter; GUID database_id; + BOOL for_write; struct SdbStringHashTable* string_lookup; struct _DB* string_buffer; } DB, *PDB; Modified: trunk/reactos/dll/appcompat/apphelp/sdbwrite.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/apphelp/sdbw…
============================================================================== --- trunk/reactos/dll/appcompat/apphelp/sdbwrite.c [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/apphelp/sdbwrite.c [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -34,60 +34,67 @@ /* Local functions */ -BOOL WINAPI SdbWriteStringRefTag(PDB db, TAG tag, TAGID tagid); -BOOL WINAPI SdbWriteStringTag(PDB db, TAG tag, LPCWSTR string); -TAGID WINAPI SdbBeginWriteListTag(PDB db, TAG tag); -BOOL WINAPI SdbEndWriteListTag(PDB db, TAGID tagid); +BOOL WINAPI SdbWriteStringRefTag(PDB pdb, TAG tag, TAGID tagid); +BOOL WINAPI SdbWriteStringTag(PDB pdb, TAG tag, LPCWSTR string); +TAGID WINAPI SdbBeginWriteListTag(PDB pdb, TAG tag); +BOOL WINAPI SdbEndWriteListTag(PDB pdb, TAGID tagid); /* sdbapi.c */ void WINAPI SdbCloseDatabase(PDB); - -static void WINAPI SdbpWrite(PDB db, const void* data, DWORD size) -{ - if (db->write_iter + size > db->size) +/* Copy data to the allocated database */ +static void WINAPI SdbpWrite(PDB pdb, const void* data, DWORD size) +{ + ASSERT(pdb->for_write); + if (pdb->write_iter + size > pdb->size) { - DWORD oldSize = db->size; + DWORD oldSize = pdb->size; /* Round to powers of two to prevent too many reallocations */ - while (db->size < db->write_iter + size) db->size <<= 1; - db->data = SdbReAlloc(db->data, db->size, oldSize); + while (pdb->size < pdb->write_iter + size) pdb->size <<= 1; + pdb->data = SdbReAlloc(pdb->data, pdb->size, oldSize); } - memcpy(db->data + db->write_iter, data, size); - db->write_iter += size; -} - -static BOOL WINAPI SdbpGetOrAddStringRef(PDB db, LPCWSTR string, TAGID* tagid) -{ - PDB buf = db->string_buffer; - if (db->string_buffer == NULL) + memcpy(pdb->data + pdb->write_iter, data, size); + pdb->write_iter += size; +} + +/* Add a string to the string table (creating it when it did not exist yet), + returning if it succeeded or not */ +static BOOL WINAPI SdbpGetOrAddStringRef(PDB pdb, LPCWSTR string, TAGID* tagid) +{ + PDB buf = pdb->string_buffer; + ASSERT(pdb->for_write); + + if (pdb->string_buffer == NULL) { - db->string_buffer = buf = SdbAlloc(sizeof(DB)); + pdb->string_buffer = buf = SdbAlloc(sizeof(DB)); if (buf == NULL) return FALSE; buf->size = 128; buf->data = SdbAlloc(buf->size); + buf->for_write = TRUE; if (buf->data == NULL) return FALSE; } *tagid = buf->write_iter + sizeof(TAG) + sizeof(DWORD); - if (SdbpAddStringToTable(&db->string_lookup, string, tagid)) + if (SdbpAddStringToTable(&pdb->string_lookup, string, tagid)) return SdbWriteStringTag(buf, TAG_STRINGTABLE_ITEM, string); - return db->string_lookup != NULL; -} - -static BOOL WINAPI SdbpWriteStringtable(PDB db) + return pdb->string_lookup != NULL; +} + +/* Write the in-memory stringtable to the specified db */ +static BOOL WINAPI SdbpWriteStringtable(PDB pdb) { TAGID table; - PDB buf = db->string_buffer; - if (buf == NULL || db->string_lookup == NULL) - return FALSE; - - table = SdbBeginWriteListTag(db, TAG_STRINGTABLE); - SdbpWrite(db, buf->data, buf->write_iter); - return SdbEndWriteListTag(db, table); + PDB buf = pdb->string_buffer; + if (buf == NULL || pdb->string_lookup == NULL) + return FALSE; + + table = SdbBeginWriteListTag(pdb, TAG_STRINGTABLE); + SdbpWrite(pdb, buf->data, buf->write_iter); + return SdbEndWriteListTag(pdb, table); } /** @@ -106,137 +113,138 @@ { static const DWORD version_major = 2, version_minor = 1; static const char* magic = "sdbf"; - PDB db; - - db = SdbpCreate(path, type, TRUE); - if (!db) + PDB pdb; + + pdb = SdbpCreate(path, type, TRUE); + if (!pdb) return NULL; - db->size = sizeof(DWORD) + sizeof(DWORD) + strlen(magic); - db->data = SdbAlloc(db->size); - - SdbpWrite(db, &version_major, sizeof(DWORD)); - SdbpWrite(db, &version_minor, sizeof(DWORD)); - SdbpWrite(db, magic, strlen(magic)); - - return db; + pdb->size = sizeof(DWORD) + sizeof(DWORD) + strlen(magic); + pdb->data = SdbAlloc(pdb->size); + + SdbpWrite(pdb, &version_major, sizeof(DWORD)); + SdbpWrite(pdb, &version_minor, sizeof(DWORD)); + SdbpWrite(pdb, magic, strlen(magic)); + + return pdb; } /** * Closes specified database and writes data to file. * - * @param [in] db Handle to the shim database. - */ -void WINAPI SdbCloseDatabaseWrite(PDB db) -{ - SdbpWriteStringtable(db); - SdbpFlush(db); - SdbCloseDatabase(db); + * @param [in] pdb Handle to the shim database. + */ +void WINAPI SdbCloseDatabaseWrite(PDB pdb) +{ + ASSERT(pdb->for_write); + SdbpWriteStringtable(pdb); + SdbpFlush(pdb); + SdbCloseDatabase(pdb); } /** * Writes a tag-only (NULL) entry to the specified shim database. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag A tag for the entry. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbWriteNULLTag(PDB db, TAG tag) +BOOL WINAPI SdbWriteNULLTag(PDB pdb, TAG tag) { if (!SdbpCheckTagType(tag, TAG_TYPE_NULL)) return FALSE; - SdbpWrite(db, &tag, sizeof(TAG)); + SdbpWrite(pdb, &tag, sizeof(TAG)); return TRUE; } /** * Writes a WORD entry to the specified shim database. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag A tag for the entry. * @param [in] data WORD entry which will be written to the database. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbWriteWORDTag(PDB db, TAG tag, WORD data) +BOOL WINAPI SdbWriteWORDTag(PDB pdb, TAG tag, WORD data) { if (!SdbpCheckTagType(tag, TAG_TYPE_WORD)) return FALSE; - SdbpWrite(db, &tag, sizeof(TAG)); - SdbpWrite(db, &data, sizeof(data)); + SdbpWrite(pdb, &tag, sizeof(TAG)); + SdbpWrite(pdb, &data, sizeof(data)); return TRUE; } /** * Writes a DWORD entry to the specified shim database. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag A tag for the entry. * @param [in] data DWORD entry which will be written to the database. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbWriteDWORDTag(PDB db, TAG tag, DWORD data) +BOOL WINAPI SdbWriteDWORDTag(PDB pdb, TAG tag, DWORD data) { if (!SdbpCheckTagType(tag, TAG_TYPE_DWORD)) return FALSE; - SdbpWrite(db, &tag, sizeof(TAG)); - SdbpWrite(db, &data, sizeof(data)); + SdbpWrite(pdb, &tag, sizeof(TAG)); + SdbpWrite(pdb, &data, sizeof(data)); return TRUE; } /** * Writes a DWORD entry to the specified shim database. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag A tag for the entry. * @param [in] data QWORD entry which will be written to the database. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbWriteQWORDTag(PDB db, TAG tag, QWORD data) +BOOL WINAPI SdbWriteQWORDTag(PDB pdb, TAG tag, QWORD data) { if (!SdbpCheckTagType(tag, TAG_TYPE_QWORD)) return FALSE; - SdbpWrite(db, &tag, sizeof(TAG)); - SdbpWrite(db, &data, sizeof(data)); + SdbpWrite(pdb, &tag, sizeof(TAG)); + SdbpWrite(pdb, &data, sizeof(data)); return TRUE; } /** * Writes a wide string entry to the specified shim database. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag A tag for the entry. * @param [in] string Wide string entry which will be written to the database. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbWriteStringTag(PDB db, TAG tag, LPCWSTR string) +BOOL WINAPI SdbWriteStringTag(PDB pdb, TAG tag, LPCWSTR string) { DWORD size; if (SdbpCheckTagType(tag, TAG_TYPE_STRINGREF)) { TAGID tagid = 0; - if (!SdbpGetOrAddStringRef(db, string, &tagid)) + if (!SdbpGetOrAddStringRef(pdb, string, &tagid)) return FALSE; - return SdbWriteStringRefTag(db, tag, tagid); + return SdbWriteStringRefTag(pdb, tag, tagid); } if (!SdbpCheckTagType(tag, TAG_TYPE_STRING)) return FALSE; size = SdbpStrsize(string); - SdbpWrite(db, &tag, sizeof(TAG)); - SdbpWrite(db, &size, sizeof(size)); - SdbpWrite(db, string, size); + SdbpWrite(pdb, &tag, sizeof(TAG)); + SdbpWrite(pdb, &size, sizeof(size)); + SdbpWrite(pdb, string, size); return TRUE; } @@ -244,40 +252,40 @@ * Writes a stringref tag to specified database * @note Reference (tagid) is not checked for validity. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag TAG which will be written. * @param [in] tagid TAGID of the string tag refers to. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbWriteStringRefTag(PDB db, TAG tag, TAGID tagid) +BOOL WINAPI SdbWriteStringRefTag(PDB pdb, TAG tag, TAGID tagid) { if (!SdbpCheckTagType(tag, TAG_TYPE_STRINGREF)) return FALSE; - SdbpWrite(db, &tag, sizeof(TAG)); - SdbpWrite(db, &tagid, sizeof(tagid)); + SdbpWrite(pdb, &tag, sizeof(TAG)); + SdbpWrite(pdb, &tagid, sizeof(tagid)); return TRUE; } /** * Writes data the specified shim database. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag A tag for the entry. * @param [in] data Pointer to data. * @param [in] size Number of bytes to write. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbWriteBinaryTag(PDB db, TAG tag, const BYTE* data, DWORD size) +BOOL WINAPI SdbWriteBinaryTag(PDB pdb, TAG tag, const BYTE* data, DWORD size) { if (!SdbpCheckTagType(tag, TAG_TYPE_BINARY)) return FALSE; - SdbpWrite(db, &tag, sizeof(TAG)); - SdbpWrite(db, &size, sizeof(size)); - SdbpWrite(db, data, size); + SdbpWrite(pdb, &tag, sizeof(TAG)); + SdbpWrite(pdb, &size, sizeof(size)); + SdbpWrite(pdb, data, size); return TRUE; } @@ -285,13 +293,13 @@ /** * Writes data from a file to the specified shim database. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag A tag for the entry. * @param [in] path Path of the input file. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbWriteBinaryTagFromFile(PDB db, TAG tag, LPCWSTR path) +BOOL WINAPI SdbWriteBinaryTagFromFile(PDB pdb, TAG tag, LPCWSTR path) { MEMMAPPED mapped; @@ -301,7 +309,7 @@ if (!SdbpOpenMemMappedFile(path, &mapped)) return FALSE; - SdbWriteBinaryTag(db, tag, mapped.view, mapped.size); + SdbWriteBinaryTag(pdb, tag, mapped.view, mapped.size); SdbpCloseMemMappedFile(&mapped); return TRUE; } @@ -311,14 +319,14 @@ * Writes a list tag to specified database All subsequent SdbWrite* functions shall write to * newly created list untill TAGID of that list is passed to SdbEndWriteListTag. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tag TAG for the list * * RETURNS Success: TAGID of the newly created list, or TAGID_NULL on failure. * * @return A TAGID. */ -TAGID WINAPI SdbBeginWriteListTag(PDB db, TAG tag) +TAGID WINAPI SdbBeginWriteListTag(PDB pdb, TAG tag) { TAGID list_id; DWORD dum = 0; @@ -326,27 +334,29 @@ if (!SdbpCheckTagType(tag, TAG_TYPE_LIST)) return TAGID_NULL; - list_id = db->write_iter; - SdbpWrite(db, &tag, sizeof(TAG)); - SdbpWrite(db, &dum, sizeof(dum)); /* reserve some memory for storing list size */ + list_id = pdb->write_iter; + SdbpWrite(pdb, &tag, sizeof(TAG)); + SdbpWrite(pdb, &dum, sizeof(dum)); /* reserve some memory for storing list size */ return list_id; } /** * Marks end of the specified list. * - * @param [in] db Handle to the shim database. + * @param [in] pdb Handle to the shim database. * @param [in] tagid TAGID of the list. * * @return TRUE if it succeeds, FALSE if it fails. */ -BOOL WINAPI SdbEndWriteListTag(PDB db, TAGID tagid) -{ - if (!SdbpCheckTagIDType(db, tagid, TAG_TYPE_LIST)) +BOOL WINAPI SdbEndWriteListTag(PDB pdb, TAGID tagid) +{ + ASSERT(pdb->for_write); + + if (!SdbpCheckTagIDType(pdb, tagid, TAG_TYPE_LIST)) return FALSE; /* Write size of list to list tag header */ - *(DWORD*)&db->data[tagid + sizeof(TAG)] = db->write_iter - tagid - sizeof(TAG) - sizeof(TAGID); - return TRUE; -} - + *(DWORD*)&pdb->data[tagid + sizeof(TAG)] = pdb->write_iter - tagid - sizeof(TAG) - sizeof(TAGID); + return TRUE; +} + Modified: trunk/reactos/dll/appcompat/shims/genral/themes.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/appcompat/shims/genral…
============================================================================== --- trunk/reactos/dll/appcompat/shims/genral/themes.c [iso-8859-1] (original) +++ trunk/reactos/dll/appcompat/shims/genral/themes.c [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -3,7 +3,7 @@ * PROJECT: ReactOS Shim library * FILE: dll/appcompat/shims/genral/themes.c * PURPOSE: Theme related shims - * PROGRAMMER: Mark Jansen + * PROGRAMMER: Mark Jansen (mark.jansen(a)reactos.org) */ #include <windows.h> @@ -22,6 +22,7 @@ { if (fdwReason == SHIM_REASON_INIT) { + /* Disable themes for non-client, comctl controls and webcontent */ SetThemeAppProperties(0); } return TRUE; Modified: trunk/reactos/sdk/tools/xml2sdb/main.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/tools/xml2sdb/main.cpp…
============================================================================== --- trunk/reactos/sdk/tools/xml2sdb/main.cpp [iso-8859-1] (original) +++ trunk/reactos/sdk/tools/xml2sdb/main.cpp [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -53,7 +53,7 @@ PDB WINAPI SdbpCreate(LPCWSTR path, PATH_TYPE type, BOOL write) { - PDB db; + PDB pdb; FILE* f; std::string pathA(path, path + SdbpStrlen(path)); @@ -61,30 +61,33 @@ if (!f) return NULL; - db = (PDB)SdbAlloc(sizeof(DB)); - db->file = f; - - return db; -} - -void WINAPI SdbpFlush(PDB db) -{ - fwrite(db->data, db->write_iter, 1, (FILE*)db->file); -} - -void WINAPI SdbCloseDatabase(PDB db) -{ - if (!db) + pdb = (PDB)SdbAlloc(sizeof(DB)); + pdb->file = f; + pdb->for_write = write; + + return pdb; +} + +void WINAPI SdbpFlush(PDB pdb) +{ + ASSERT(pdb->for_write); + + fwrite(pdb->data, pdb->write_iter, 1, (FILE*)pdb->file); +} + +void WINAPI SdbCloseDatabase(PDB pdb) +{ + if (!pdb) return; - if (db->file) - fclose((FILE*)db->file); - if (db->string_buffer) - SdbCloseDatabase(db->string_buffer); - if (db->string_lookup) - SdbpTableDestroy(&db->string_lookup); - SdbFree(db->data); - SdbFree(db); + if (pdb->file) + fclose((FILE*)pdb->file); + if (pdb->string_buffer) + SdbCloseDatabase(pdb->string_buffer); + if (pdb->string_lookup) + SdbpTableDestroy(&pdb->string_lookup); + SdbFree(pdb->data); + SdbFree(pdb); } BOOL WINAPI SdbpCheckTagType(TAG tag, WORD type) @@ -94,7 +97,7 @@ return TRUE; } -BOOL WINAPI SdbpReadData(PDB db, PVOID dest, DWORD offset, DWORD num) +BOOL WINAPI SdbpReadData(PDB pdb, PVOID dest, DWORD offset, DWORD num) { DWORD size = offset + num; @@ -103,24 +106,24 @@ return FALSE; /* Overflow */ - if (db->size < size) - return FALSE; - - memcpy(dest, db->data + offset, num); + if (pdb->size < size) + return FALSE; + + memcpy(dest, pdb->data + offset, num); return TRUE; } -TAG WINAPI SdbGetTagFromTagID(PDB db, TAGID tagid) +TAG WINAPI SdbGetTagFromTagID(PDB pdb, TAGID tagid) { TAG data; - if (!SdbpReadData(db, &data, tagid, sizeof(data))) + if (!SdbpReadData(pdb, &data, tagid, sizeof(data))) return TAG_NULL; return data; } -BOOL WINAPI SdbpCheckTagIDType(PDB db, TAGID tagid, WORD type) -{ - TAG tag = SdbGetTagFromTagID(db, tagid); +BOOL WINAPI SdbpCheckTagIDType(PDB pdb, TAGID tagid, WORD type) +{ + TAG tag = SdbGetTagFromTagID(pdb, tagid); if (tag == TAG_NULL) return FALSE; return SdbpCheckTagType(tag, type); Modified: trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/tools/xml2sdb/xml2sdb.…
============================================================================== --- trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp [iso-8859-1] (original) +++ trunk/reactos/sdk/tools/xml2sdb/xml2sdb.cpp [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -491,14 +491,14 @@ SdbWriteDWORDTag(pdb, tag, value); } -TAGID Database::BeginWriteListTag(PDB db, TAG tag) -{ - return SdbBeginWriteListTag(db, tag); -} - -BOOL Database::EndWriteListTag(PDB db, TAGID tagid) -{ - return SdbEndWriteListTag(db, tagid); +TAGID Database::BeginWriteListTag(PDB pdb, TAG tag) +{ + return SdbBeginWriteListTag(pdb, tag); +} + +BOOL Database::EndWriteListTag(PDB pdb, TAGID tagid) +{ + return SdbEndWriteListTag(pdb, tagid); } bool Database::fromXml(XMLHandle dbNode) Modified: trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/tools/xml2sdb/xml2sdb.…
============================================================================== --- trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h [iso-8859-1] (original) +++ trunk/reactos/sdk/tools/xml2sdb/xml2sdb.h [iso-8859-1] Sat Aug 5 12:05:06 2017 @@ -128,8 +128,8 @@ void WriteBinary(PDB pdb, TAG tag, const GUID& guid, bool always = false); void WriteBinary(PDB pdb, TAG tag, const std::vector<BYTE>& data, bool always = false); void WriteDWord(PDB pdb, TAG tag, DWORD value, bool always = false); - TAGID BeginWriteListTag(PDB db, TAG tag); - BOOL EndWriteListTag(PDB db, TAGID tagid); + TAGID BeginWriteListTag(PDB pdb, TAG tag); + BOOL EndWriteListTag(PDB pdb, TAGID tagid); void InsertShimTagid(const sdbstring& name, TAGID tagid); inline void InsertShimTagid(const std::string& name, TAGID tagid)
7 years, 4 months
1
0
0
0
[gadamopoulos] 75488: [COMCTL32] -BUTTON_PaintWithTheme: Draw checked pushlike buttons as pressed.
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Sat Aug 5 10:23:07 2017 New Revision: 75488 URL:
http://svn.reactos.org/svn/reactos?rev=75488&view=rev
Log: [COMCTL32] -BUTTON_PaintWithTheme: Draw checked pushlike buttons as pressed. Modified: trunk/reactos/dll/win32/comctl32/theme_button.c Modified: trunk/reactos/dll/win32/comctl32/theme_button.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/theme_b…
============================================================================== --- trunk/reactos/dll/win32/comctl32/theme_button.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/comctl32/theme_button.c [iso-8859-1] Sat Aug 5 10:23:07 2017 @@ -471,12 +471,19 @@ if(IsWindowEnabled(hwnd)) { - if(state & BST_PUSHED) drawState = STATE_PRESSED; - else if(state & BST_HOT) drawState = STATE_HOT; - else if(state & BST_FOCUS) drawState = STATE_DEFAULTED; - else drawState = STATE_NORMAL; - } - else drawState = STATE_DISABLED; + if(state & BST_PUSHED) + drawState = STATE_PRESSED; + else if ((dwStyle & BS_PUSHLIKE) && (state & (BST_CHECKED|BST_INDETERMINATE))) + drawState = STATE_PRESSED; + else if(state & BST_HOT) + drawState = STATE_HOT; + else if(state & BST_FOCUS) + drawState = STATE_DEFAULTED; + else + drawState = STATE_NORMAL; + } + else + drawState = STATE_DISABLED; #ifndef __REACTOS__ /* r73873 */ hDC = hParamDC ? hParamDC : BeginPaint(hwnd, &ps);
7 years, 4 months
1
0
0
0
[pschweitzer] 75487: [RDBSS] - Implement RxSetRenameInfo() - Implement the SL_OPEN_TARGET_DIRECTORY case in RxCreateFromNetRoot() This implements renaming in RDBSS, and thus in NFS. So far, renamin...
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Sat Aug 5 08:12:23 2017 New Revision: 75487 URL:
http://svn.reactos.org/svn/reactos?rev=75487&view=rev
Log: [RDBSS] - Implement RxSetRenameInfo() - Implement the SL_OPEN_TARGET_DIRECTORY case in RxCreateFromNetRoot() This implements renaming in RDBSS, and thus in NFS. So far, renaming fails due to different NET_ROOT, I need to check why. So far, files are properly copied on rename failure. CORE-8204 CORE-11327 CORE-13632 Modified: trunk/reactos/sdk/lib/drivers/rdbsslib/rdbss.c Modified: trunk/reactos/sdk/lib/drivers/rdbsslib/rdbss.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/lib/drivers/rdbsslib/r…
============================================================================== --- trunk/reactos/sdk/lib/drivers/rdbsslib/rdbss.c [iso-8859-1] (original) +++ trunk/reactos/sdk/lib/drivers/rdbsslib/rdbss.c [iso-8859-1] Sat Aug 5 08:12:23 2017 @@ -4909,11 +4909,63 @@ DesiredAccess = Stack->Parameters.Create.SecurityContext->DesiredAccess & FILE_ALL_ACCESS; - /* We don't support renaming yet */ + /* Get file object */ + FileObject = Stack->FileObject; + + /* Do we have to open target directory for renaming? */ if (BooleanFlagOn(Stack->Flags, SL_OPEN_TARGET_DIRECTORY)) { - UNIMPLEMENTED; - return STATUS_NOT_IMPLEMENTED; + DPRINT("Opening target directory\n"); + + /* If we have been asked for delete, try to purge first */ + if (BooleanFlagOn(Context->Create.NtCreateParameters.DesiredAccess, DELETE)) + { + RxPurgeRelatedFobxs((PNET_ROOT)Context->Create.pVNetRoot->pNetRoot, Context, + ATTEMPT_FINALIZE_ON_PURGE, NULL); + } + + /* Create the FCB */ + Fcb = RxCreateNetFcb(Context, (PV_NET_ROOT)Context->Create.pVNetRoot, NetRootName); + if (Fcb == NULL) + { + return STATUS_INSUFFICIENT_RESOURCES; + } + + /* Fake it: it will be used only renaming */ + NodeType(Fcb) = RDBSS_NTC_OPENTARGETDIR_FCB; + Context->Create.FcbAcquired = FALSE; + Context->Create.NetNamePrefixEntry = NULL; + + /* Assign it to the FO */ + FileObject->FsContext = Fcb; + + /* If we have a FOBX already, check whether it's for DFS opening */ + if (Context->pFobx != NULL) + { + /* If so, reflect this in the FOBX */ + if (NodeType(FileObject->FsContext2) == DFS_OPEN_CONTEXT) + { + SetFlag(Context->pFobx->Flags, FOBX_FLAG_DFS_OPEN); + } + else + { + ClearFlag(Context->pFobx->Flags, FOBX_FLAG_DFS_OPEN); + } + } + + /* Acquire the FCB */ + Status = RxAcquireExclusiveFcb(Context, Fcb); + if (Status != STATUS_SUCCESS) + { + return Status; + } + + /* Reference the FCB and release */ + RxReferenceNetFcb(Fcb); + RxReleaseFcb(Context, Fcb); + + /* We're done! */ + return STATUS_SUCCESS; } /* Try to find (or create) the FCB for the file */ @@ -4948,7 +5000,6 @@ } /* Not mailslot! */ - FileObject = Stack->FileObject; /* Check SA for conflict */ if (Fcb->OpenCount > 0) { @@ -8672,12 +8723,77 @@ return STATUS_NOT_IMPLEMENTED; } +/* + * @implemented + */ NTSTATUS RxSetRenameInfo( PRX_CONTEXT RxContext) { - UNIMPLEMENTED; - return STATUS_NOT_IMPLEMENTED; + ULONG Length; + NTSTATUS Status; + PFCB RenameFcb, Fcb; + PIO_STACK_LOCATION Stack; + PFILE_RENAME_INFORMATION RenameInfo, UserInfo; + + PAGED_CODE(); + + DPRINT("RxSetRenameInfo(%p)\n", RxContext); + + Stack = RxContext->CurrentIrpSp; + DPRINT("FO: %p, Replace: %d\n", Stack->Parameters.SetFile.FileObject, Stack->Parameters.SetFile.ReplaceIfExists); + + /* If there's no FO, we won't do extra operation, so directly pass to mini-rdr and quit */ + RxContext->Info.ReplaceIfExists = Stack->Parameters.SetFile.ReplaceIfExists; + if (Stack->Parameters.SetFile.FileObject == NULL) + { + return RxpSetInfoMiniRdr(RxContext, Stack->Parameters.SetFile.FileInformationClass); + } + + Fcb = (PFCB)RxContext->pFcb; + RenameFcb = Stack->Parameters.SetFile.FileObject->FsContext; + /* First, validate the received file object */ + ASSERT(NodeType(RenameFcb) == RDBSS_NTC_OPENTARGETDIR_FCB); + if (Fcb->pNetRoot != RenameFcb->pNetRoot) + { + DPRINT1("Not the same device: %p:%p (%wZ) - %p:%p (%wZ)\n", Fcb, Fcb->pNetRoot, Fcb->pNetRoot->pNetRootName, RenameFcb, RenameFcb->pNetRoot, RenameFcb->pNetRoot->pNetRootName); + return STATUS_NOT_SAME_DEVICE; + } + + /* We'll reallocate a safe buffer */ + Length = Fcb->pNetRoot->DiskParameters.RenameInfoOverallocationSize + RenameFcb->FcbTableEntry.Path.Length + FIELD_OFFSET(FILE_RENAME_INFORMATION, FileName); + RenameInfo = RxAllocatePoolWithTag(PagedPool, Length, '??xR'); + if (RenameInfo == NULL) + { + return STATUS_INSUFFICIENT_RESOURCES; + } + + _SEH2_TRY + { + /* Copy the data */ + UserInfo = RxContext->CurrentIrp->AssociatedIrp.SystemBuffer; + RenameInfo->ReplaceIfExists = UserInfo->ReplaceIfExists; + RenameInfo->RootDirectory = UserInfo->RootDirectory; + RenameInfo->FileNameLength = RenameFcb->FcbTableEntry.Path.Length; + RtlMoveMemory(&RenameInfo->FileName[0], RenameFcb->FcbTableEntry.Path.Buffer, RenameFcb->FcbTableEntry.Path.Length); + + /* Set them in the RX_CONTEXT */ + RxContext->Info.FileInformationClass = Stack->Parameters.SetFile.FileInformationClass; + RxContext->Info.Buffer = RenameInfo; + RxContext->Info.Length = Length; + + /* And call the mini-rdr */ + MINIRDR_CALL(Status, RxContext, Fcb->MRxDispatch, MRxSetFileInfo, (RxContext)); + } + _SEH2_FINALLY + { + /* Free */ + RxFreePoolWithTag(RenameInfo, '??xR'); + } + _SEH2_END; + + /* Done! */ + return Status; } #if DBG
7 years, 4 months
1
0
0
0
← Newer
1
...
21
22
23
24
25
26
27
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
Results per page:
10
25
50
100
200