From 00109ad544f23f53746e89026596d65c4b4d4190 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Mon, 13 Oct 2014 12:25:30 +0000 Subject: [PATCH 001/108] [GDI32_APITEST] - Add a test for EnumFontFamilies* returning no results CORE-8628 svn path=/trunk/; revision=64719 --- rostests/apitests/gdi32/CMakeLists.txt | 1 + rostests/apitests/gdi32/EnumFontFamilies.c | 175 +++++++++++++++++++++ rostests/apitests/gdi32/testlist.c | 2 + 3 files changed, 178 insertions(+) create mode 100644 rostests/apitests/gdi32/EnumFontFamilies.c diff --git a/rostests/apitests/gdi32/CMakeLists.txt b/rostests/apitests/gdi32/CMakeLists.txt index 3607d65df32..b44193adea7 100644 --- a/rostests/apitests/gdi32/CMakeLists.txt +++ b/rostests/apitests/gdi32/CMakeLists.txt @@ -22,6 +22,7 @@ list(APPEND SOURCE EngCreateSemaphore.c EngDeleteSemaphore.c EngReleaseSemaphore.c + EnumFontFamilies.c ExcludeClipRect.c ExtCreatePen.c GdiConvertBitmap.c diff --git a/rostests/apitests/gdi32/EnumFontFamilies.c b/rostests/apitests/gdi32/EnumFontFamilies.c new file mode 100644 index 00000000000..861d320f699 --- /dev/null +++ b/rostests/apitests/gdi32/EnumFontFamilies.c @@ -0,0 +1,175 @@ +/* + * PROJECT: ReactOS API tests + * LICENSE: LGPLv2.1+ - See COPYING.LIB in the top level directory + * PURPOSE: Test for EnumFontFamilies[Ex] + * PROGRAMMERS: Thomas Faber + */ + +#include + +#include +#include +#include + +static BYTE ContextContinue; +static BYTE ContextStop; + +static int EnumProcCalls; +static ENUMLOGFONTA LastFontA; +static ENUMLOGFONTW LastFontW; + +static +int +CALLBACK +EnumProcA( + _In_ const LOGFONTA *elf, + _In_ const TEXTMETRICA *ntm, + _In_ DWORD FontType, + _In_ LPARAM lParam) +{ + EnumProcCalls++; + + ok(lParam == (LPARAM)&ContextContinue || + lParam == (LPARAM)&ContextStop, + "Context is %p, expected %p or %p\n", + (PVOID)lParam, &ContextContinue, &ContextStop); + + LastFontA = *(ENUMLOGFONTA *)elf; + return lParam == (LPARAM)&ContextContinue ? 7 : 0; +} + +static +int +CALLBACK +EnumProcW( + _In_ const LOGFONTW *elf, + _In_ const TEXTMETRICW *ntm, + _In_ DWORD FontType, + _In_ LPARAM lParam) +{ + EnumProcCalls++; + + ok(lParam == (LPARAM)&ContextContinue || + lParam == (LPARAM)&ContextStop, + "Context is %p, expected %p or %p\n", + (PVOID)lParam, &ContextContinue, &ContextStop); + + LastFontW = *(ENUMLOGFONTW *)elf; + return lParam == (LPARAM)&ContextContinue ? 7 : 0; +} + +static +void +TestEnumFontFamiliesA( + _In_ HDC hdc, + _In_ PCSTR FontName) +{ + int ret; + DWORD error; + + EnumProcCalls = 0; + SetLastError(0xdeadbeef); + ret = EnumFontFamiliesA(hdc, + FontName, + EnumProcA, + (LPARAM)&ContextContinue); + error = GetLastError(); + ok(ret == 1, "ret is %d, expected 0\n", ret); + ok(error == 0xdeadbeef, "error is %lu\n", error); + ok(EnumProcCalls == 0, "EnumProcCalls is %d\n", EnumProcCalls); +} + +static +void +TestEnumFontFamiliesW( + _In_ HDC hdc, + _In_ PCWSTR FontName) +{ + int ret; + DWORD error; + + EnumProcCalls = 0; + SetLastError(0xdeadbeef); + ret = EnumFontFamiliesW(hdc, + FontName, + EnumProcW, + (LPARAM)&ContextContinue); + error = GetLastError(); + ok(ret == 1, "ret is %d, expected 0\n", ret); + ok(error == 0xdeadbeef, "error is %lu\n", error); + ok(EnumProcCalls == 0, "EnumProcCalls is %d\n", EnumProcCalls); +} + +static +void +TestEnumFontFamiliesExA( + _In_ HDC hdc, + _In_ PCSTR FontName) +{ + int ret; + DWORD error; + LOGFONTA lf; + + EnumProcCalls = 0; + ZeroMemory(&lf, sizeof(lf)); + lf.lfCharSet = DEFAULT_CHARSET; + lf.lfPitchAndFamily = 0; + StringCbCopyA(lf.lfFaceName, sizeof(lf.lfFaceName), FontName); + SetLastError(0xdeadbeef); + ret = EnumFontFamiliesExA(hdc, + &lf, + EnumProcA, + (LPARAM)&ContextContinue, + 0); + error = GetLastError(); + ok(ret == 1, "ret is %d, expected 0\n", ret); + ok(error == 0xdeadbeef, "error is %lu\n", error); + ok(EnumProcCalls == 0, "EnumProcCalls is %d\n", EnumProcCalls); +} + +static +void +TestEnumFontFamiliesExW( + _In_ HDC hdc, + _In_ PCWSTR FontName) +{ + int ret; + DWORD error; + LOGFONTW lf; + + EnumProcCalls = 0; + ZeroMemory(&lf, sizeof(lf)); + lf.lfCharSet = DEFAULT_CHARSET; + lf.lfPitchAndFamily = 0; + StringCbCopyW(lf.lfFaceName, sizeof(lf.lfFaceName), FontName); + SetLastError(0xdeadbeef); + ret = EnumFontFamiliesExW(hdc, + &lf, + EnumProcW, + (LPARAM)&ContextContinue, + 0); + error = GetLastError(); + ok(ret == 1, "ret is %d, expected 0\n", ret); + ok(error == 0xdeadbeef, "error is %lu\n", error); + ok(EnumProcCalls == 0, "EnumProcCalls is %d\n", EnumProcCalls); +} + +START_TEST(EnumFontFamilies) +{ + HDC hdc; + + hdc = CreateCompatibleDC(NULL); + if (!hdc) + { + skip("No DC\n"); + return; + } + + TestEnumFontFamiliesA(hdc, "ThisFontDoesNotExist"); + TestEnumFontFamiliesW(hdc, L"ThisFontDoesNotExist"); + TestEnumFontFamiliesExA(hdc, "ThisFontDoesNotExist"); + TestEnumFontFamiliesExW(hdc, L"ThisFontDoesNotExist"); + + DeleteDC(hdc); +} + diff --git a/rostests/apitests/gdi32/testlist.c b/rostests/apitests/gdi32/testlist.c index 9ca6d278ef7..2c2b84777bf 100644 --- a/rostests/apitests/gdi32/testlist.c +++ b/rostests/apitests/gdi32/testlist.c @@ -23,6 +23,7 @@ extern void func_EngAcquireSemaphore(void); extern void func_EngCreateSemaphore(void); extern void func_EngDeleteSemaphore(void); extern void func_EngReleaseSemaphore(void); +extern void func_EnumFontFamilies(void); extern void func_ExcludeClipRect(void); extern void func_ExtCreatePen(void); extern void func_GdiConvertBitmap(void); @@ -85,6 +86,7 @@ const struct test winetest_testlist[] = { "EngCreateSemaphore", func_EngCreateSemaphore }, { "EngDeleteSemaphore", func_EngDeleteSemaphore }, { "EngReleaseSemaphore", func_EngReleaseSemaphore }, + { "EnumFontFamilies", func_EnumFontFamilies }, { "ExcludeClipRect", func_ExcludeClipRect }, { "ExtCreatePen", func_ExtCreatePen }, { "GdiConvertBitmap", func_GdiConvertBitmap }, From d5b17b908232c2081c4f7af7998a28a84e242e40 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Mon, 13 Oct 2014 14:06:40 +0000 Subject: [PATCH 002/108] [GDI32] - Return 1 on failure in IntEnumFontFamilies, as shown by the test CORE-8628 #resolve svn path=/trunk/; revision=64720 --- reactos/win32ss/gdi/gdi32/objects/font.c | 10 +++++----- rostests/apitests/gdi32/EnumFontFamilies.c | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/reactos/win32ss/gdi/gdi32/objects/font.c b/reactos/win32ss/gdi/gdi32/objects/font.c index 1d0122ca019..d580e5f3085 100644 --- a/reactos/win32ss/gdi/gdi32/objects/font.c +++ b/reactos/win32ss/gdi/gdi32/objects/font.c @@ -206,7 +206,7 @@ IntEnumFontFamilies(HDC Dc, LPLOGFONTW LogFont, PVOID EnumProc, LPARAM lParam, int FontFamilyCount; int FontFamilySize; PFONTFAMILYINFO Info; - int Ret = 0; + int Ret = 1; int i; ENUMLOGFONTEXA EnumLogFontExA; NEWTEXTMETRICEXA NewTextMetricExA; @@ -216,7 +216,7 @@ IntEnumFontFamilies(HDC Dc, LPLOGFONTW LogFont, PVOID EnumProc, LPARAM lParam, INITIAL_FAMILY_COUNT * sizeof(FONTFAMILYINFO)); if (NULL == Info) { - return 0; + return 1; } if (!LogFont) @@ -231,7 +231,7 @@ IntEnumFontFamilies(HDC Dc, LPLOGFONTW LogFont, PVOID EnumProc, LPARAM lParam, if (FontFamilyCount < 0) { RtlFreeHeap(GetProcessHeap(), 0, Info); - return 0; + return 1; } if (INITIAL_FAMILY_COUNT < FontFamilyCount) { @@ -241,13 +241,13 @@ IntEnumFontFamilies(HDC Dc, LPLOGFONTW LogFont, PVOID EnumProc, LPARAM lParam, FontFamilyCount * sizeof(FONTFAMILYINFO)); if (NULL == Info) { - return 0; + return 1; } FontFamilyCount = NtGdiGetFontFamilyInfo(Dc, LogFont, Info, FontFamilySize); if (FontFamilyCount < 0 || FontFamilySize < FontFamilyCount) { RtlFreeHeap(GetProcessHeap(), 0, Info); - return 0; + return 1; } } diff --git a/rostests/apitests/gdi32/EnumFontFamilies.c b/rostests/apitests/gdi32/EnumFontFamilies.c index 861d320f699..290997d85d1 100644 --- a/rostests/apitests/gdi32/EnumFontFamilies.c +++ b/rostests/apitests/gdi32/EnumFontFamilies.c @@ -74,7 +74,7 @@ TestEnumFontFamiliesA( EnumProcA, (LPARAM)&ContextContinue); error = GetLastError(); - ok(ret == 1, "ret is %d, expected 0\n", ret); + ok(ret == 1, "ret is %d, expected 1\n", ret); ok(error == 0xdeadbeef, "error is %lu\n", error); ok(EnumProcCalls == 0, "EnumProcCalls is %d\n", EnumProcCalls); } @@ -95,7 +95,7 @@ TestEnumFontFamiliesW( EnumProcW, (LPARAM)&ContextContinue); error = GetLastError(); - ok(ret == 1, "ret is %d, expected 0\n", ret); + ok(ret == 1, "ret is %d, expected 1\n", ret); ok(error == 0xdeadbeef, "error is %lu\n", error); ok(EnumProcCalls == 0, "EnumProcCalls is %d\n", EnumProcCalls); } @@ -122,7 +122,7 @@ TestEnumFontFamiliesExA( (LPARAM)&ContextContinue, 0); error = GetLastError(); - ok(ret == 1, "ret is %d, expected 0\n", ret); + ok(ret == 1, "ret is %d, expected 1\n", ret); ok(error == 0xdeadbeef, "error is %lu\n", error); ok(EnumProcCalls == 0, "EnumProcCalls is %d\n", EnumProcCalls); } @@ -149,7 +149,7 @@ TestEnumFontFamiliesExW( (LPARAM)&ContextContinue, 0); error = GetLastError(); - ok(ret == 1, "ret is %d, expected 0\n", ret); + ok(ret == 1, "ret is %d, expected 1\n", ret); ok(error == 0xdeadbeef, "error is %lu\n", error); ok(EnumProcCalls == 0, "EnumProcCalls is %d\n", EnumProcCalls); } From 339f0e568acf85986e736b92c1c416e7b3689329 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 13 Oct 2014 15:24:08 +0000 Subject: [PATCH 003/108] =?UTF-8?q?[TRANSLATIONS]=20*=20Romanian=20transla?= =?UTF-8?q?tions=20update=20by=20=C8=98tefan=20Fulea.=20CORE-8520?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=64721 --- .../applications/cmdutils/reg/lang/ro-RO.rc | 8 +- .../cmdutils/taskkill/lang/ro-RO.rc | 2 +- .../games/solitaire/lang/ro-RO.rc | 2 +- .../base/applications/mplay32/lang/ro-RO.rc | 12 +-- .../mscutils/servman/lang/ro-RO.rc | 41 ++++---- .../base/applications/mspaint/lang/ro-RO.rc | 36 +++---- .../base/applications/notepad/lang/ro-RO.rc | 29 +++--- reactos/base/applications/rapps/lang/ro-RO.rc | 6 +- .../base/applications/taskmgr/lang/ro-RO.rc | 94 ++++++++++--------- reactos/base/applications/winhlp32/lang/Ro.rc | 53 ++++++----- reactos/base/applications/wordpad/lang/Ro.rc | 34 +++---- reactos/base/setup/reactos/lang/ro-RO.rc | 2 +- reactos/base/setup/usetup/lang/ro-RO.h | 38 ++++---- reactos/base/setup/vmwinst/lang/ro-RO.rc | 22 ++--- reactos/base/shell/explorer/explorer-ro.rc | 4 +- reactos/base/system/runonce/lang/ro-RO.rc | 6 +- reactos/base/system/winlogon/lang/ro-RO.rc | 2 +- reactos/dll/cpl/console/lang/ro-RO.rc | 30 +++--- reactos/dll/cpl/desk/lang/ro-RO.rc | 9 +- reactos/dll/cpl/hdwwiz/lang/ro-RO.rc | 6 +- reactos/dll/cpl/powercfg/lang/ro-RO.rc | 7 +- reactos/dll/cpl/sysdm/lang/ro-RO.rc | 2 +- reactos/dll/win32/comdlg32/lang/cdlg_Ro.rc | 22 ++--- reactos/dll/win32/crypt32/lang/crypt32_Ro.rc | 3 +- reactos/dll/win32/cryptui/lang/cryptui_Ro.rc | 20 ++-- reactos/dll/win32/hhctrl.ocx/lang/Ro.rc | 24 ++--- reactos/dll/win32/jscript/lang/jscript_Ro.rc | 33 +++---- reactos/dll/win32/msacm32/lang/msacm_Ro.rc | 2 +- reactos/dll/win32/msgina/lang/ro-RO.rc | 4 +- reactos/dll/win32/newdev/lang/ro-RO.rc | 16 ++-- reactos/dll/win32/oleacc/lang/oleacc_Ro.rc | 68 +++++++------- reactos/dll/win32/rasdlg/lang/ro-RO.rc | 6 +- reactos/dll/win32/shell32/lang/ro-RO.rc | 61 ++++++------ reactos/dll/win32/shlwapi/lang/shlwapi_Ro.rc | 4 +- reactos/dll/win32/syssetup/lang/ro-RO.rc | 10 +- reactos/dll/win32/wininet/lang/wininet_Ro.rc | 22 ++--- .../media/doc/Romanian translation notes.txt | 42 +++++---- reactos/subsystems/ntvdm/lang/ro-RO.rc | 4 +- reactos/win32ss/user/user32/lang/ro-RO.rc | 7 +- .../winsrv/consrv/frontends/gui/lang/ro-RO.rc | 19 ++-- .../consrv_new/frontends/gui/lang/ro-RO.rc | 18 ++-- 41 files changed, 431 insertions(+), 399 deletions(-) diff --git a/reactos/base/applications/cmdutils/reg/lang/ro-RO.rc b/reactos/base/applications/cmdutils/reg/lang/ro-RO.rc index eb5a1bad8f5..6301650bc81 100644 --- a/reactos/base/applications/cmdutils/reg/lang/ro-RO.rc +++ b/reactos/base/applications/cmdutils/reg/lang/ro-RO.rc @@ -1,3 +1,9 @@ +/* +Translators: Claudia Cotună + Michael Stefaniuc + Ștefan Fulea (stefan dot fulea at mail dot md) +*/ + LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE @@ -6,7 +12,7 @@ STRINGTABLE STRING_ADD_USAGE, "REG ADD nume_cheie [/v nume_valoare | /ve] [/t tip] [/s separator] [/d date] [/f]\n" STRING_DELETE_USAGE, "REG DELETE nume_cheie [/v nume_valoare | /ve | /va] [/f]\n" STRING_QUERY_USAGE, "REG QUERY nume_cheie [/v nume_valoare | /ve] [/s]\n" - STRING_SUCCESS, "Operațiunea a fost finalizată cu succes\n" + STRING_SUCCESS, "Operația a fost îndeplinită cu succes\n" STRING_INVALID_KEY, "Eroare: Nume de cheie nevalid\n" STRING_INVALID_CMDLINE, "Eroare: Parametri nevalizi pentru linia de comandă\n" STRING_NO_REMOTE, "Eroare: Nu se pot adăuga chei pe calculatorul de la distanță\n" diff --git a/reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc b/reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc index 16b150197d7..3efa3b23aba 100644 --- a/reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc +++ b/reactos/base/applications/cmdutils/taskkill/lang/ro-RO.rc @@ -4,7 +4,7 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE { - STRING_USAGE, "Usage: taskkill [/?] [/f] [/im NumeProces | /pid IdProces]\n" + STRING_USAGE, "Utilizare: taskkill [/?] [/f] [/im NumeProces | /pid IdProces]\n" STRING_INVALID_OPTION, "Eroare: Opțiune specificată nevalidă sau necunoscută.\n" STRING_INVALID_PARAM, "Eroare: Parametrul de comandă specificat este nevalid.\n" STRING_MISSING_OPTION, "Eroare: Trebuie specificată una dintre opțiunile /im sau /pid.\n" diff --git a/reactos/base/applications/games/solitaire/lang/ro-RO.rc b/reactos/base/applications/games/solitaire/lang/ro-RO.rc index ed6a1f975ed..13e948f271d 100644 --- a/reactos/base/applications/games/solitaire/lang/ro-RO.rc +++ b/reactos/base/applications/games/solitaire/lang/ro-RO.rc @@ -4,7 +4,7 @@ * FILE: base/applications/games/solitaire/lang/ro-RO.rc * PURPOSE: Romanian Language File for Solitaire * TRANSLATORS: - * Petre Dumitriu + * Petru Dumitriu (petrimetri at gmail dot com) * Ștefan Fulea (stefan dot fulea at mail dot md) */ diff --git a/reactos/base/applications/mplay32/lang/ro-RO.rc b/reactos/base/applications/mplay32/lang/ro-RO.rc index fc217178e5a..d2d4d757efa 100644 --- a/reactos/base/applications/mplay32/lang/ro-RO.rc +++ b/reactos/base/applications/mplay32/lang/ro-RO.rc @@ -15,16 +15,16 @@ BEGIN MENUITEM SEPARATOR MENUITEM "I&eșire", IDM_EXIT END - POPUP "&Play" + POPUP "&Lectură" BEGIN - MENUITEM "Play/&Pause\tCtrl+P", IDC_PLAY - MENUITEM "St&op\tCtrl+S", IDC_STOP + MENUITEM "Lecturează/&Pauză\tCtrl+P", IDC_PLAY + MENUITEM "&Oprește\tCtrl+S", IDC_STOP MENUITEM SEPARATOR - MENUITEM "Repea&t\tCtrl+T", IDM_REPEAT + MENUITEM "&Repetă\tCtrl+T", IDM_REPEAT END - POPUP "&View" + POPUP "&Afișare" BEGIN - MENUITEM "Single-Window &Mode", IDM_SWITCHVIEW + MENUITEM "&Mod fereastră-solitară", IDM_SWITCHVIEW END POPUP "&Dispozitiv" BEGIN diff --git a/reactos/base/applications/mscutils/servman/lang/ro-RO.rc b/reactos/base/applications/mscutils/servman/lang/ro-RO.rc index 92992df4277..d17be9c3041 100644 --- a/reactos/base/applications/mscutils/servman/lang/ro-RO.rc +++ b/reactos/base/applications/mscutils/servman/lang/ro-RO.rc @@ -1,4 +1,7 @@ -/* 2011.10.19 - Fulea Ștefan: minor changes */ +/* +Translators: Petru Dumitriu (petrimetri at gmail dot com) + Ștefan Fulea (stefan dot fulea at mail dot md) +*/ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL @@ -14,28 +17,28 @@ BEGIN BEGIN MENUITEM "Co&nectare la…", ID_CONNECT, GRAYED MENUITEM SEPARATOR - MENUITEM "&Pornește", ID_START, GRAYED + MENUITEM "P&ornește", ID_START, GRAYED MENUITEM "&Oprește", ID_STOP, GRAYED - MENUITEM "&Suspendă", ID_PAUSE, GRAYED - MENUITEM "Contin&uă", ID_RESUME, GRAYED + MENUITEM "S&uspendă", ID_PAUSE, GRAYED + MENUITEM "&Continuă", ID_RESUME, GRAYED MENUITEM "&Repornește", ID_RESTART, GRAYED MENUITEM SEPARATOR MENUITEM "Împrospătea&ză", ID_REFRESH MENUITEM SEPARATOR MENUITEM "Mo&dificare…", ID_EDIT, GRAYED - MENUITEM "&Creare…", ID_CREATE, GRAYED + MENUITEM "Cre&are…", ID_CREATE, GRAYED MENUITEM "&Eliminare…", ID_DELETE, GRAYED MENUITEM SEPARATOR - MENUITEM "Propr&ietăți…", ID_PROP, GRAYED + MENUITEM "&Proprietăți…", ID_PROP, GRAYED END POPUP "&Afișare" BEGIN - MENUITEM "Pictograme m&ari", ID_VIEW_LARGE - MENUITEM "Pictograme m&ici", ID_VIEW_SMALL + MENUITEM "D&ale", ID_VIEW_LARGE + MENUITEM "&Pictograme", ID_VIEW_SMALL MENUITEM "&Listă", ID_VIEW_LIST MENUITEM "&Detalii", ID_VIEW_DETAILS MENUITEM SEPARATOR - MENUITEM "&Particularizare…", ID_VIEW_CUST, GRAYED + MENUITEM "Pa&rticularizare…", ID_VIEW_CUST, GRAYED END POPUP "&?" BEGIN @@ -48,10 +51,10 @@ IDR_POPUP MENU BEGIN POPUP "popup" BEGIN - MENUITEM "&Pornește", ID_START, GRAYED + MENUITEM "P&ornește", ID_START, GRAYED MENUITEM "&Oprește", ID_STOP, GRAYED - MENUITEM "&Suspendă", ID_PAUSE, GRAYED - MENUITEM "Contin&uă", ID_RESUME, GRAYED + MENUITEM "S&uspendă", ID_PAUSE, GRAYED + MENUITEM "&Continuă", ID_RESUME, GRAYED MENUITEM "&Repornește", ID_RESTART, GRAYED MENUITEM SEPARATOR MENUITEM "Împrospătea&ză", ID_REFRESH @@ -59,7 +62,7 @@ BEGIN MENUITEM "Mo&dificare…", ID_EDIT, GRAYED MENUITEM "&Eliminare…", ID_DELETE, GRAYED MENUITEM SEPARATOR - MENUITEM "Propr&ietăți…", ID_PROP, GRAYED + MENUITEM "&Proprietăți…", ID_PROP, GRAYED MENUITEM SEPARATOR MENUITEM "&Manual…", ID_HELP END @@ -86,10 +89,10 @@ BEGIN EDITTEXT IDC_DESCRIPTION, 70, 46, 176, 24, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_MULTILINE | ES_READONLY EDITTEXT IDC_EXEPATH, 6, 86, 240, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY COMBOBOX IDC_START_TYPE, 70, 107, 176, 40, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST - PUSHBUTTON "&Pornește", IDC_START, 6, 155, 54, 15, WS_DISABLED + PUSHBUTTON "P&ornește", IDC_START, 6, 155, 54, 15, WS_DISABLED PUSHBUTTON "&Oprește", IDC_STOP, 68, 155, 54, 15, WS_DISABLED - PUSHBUTTON "&Suspendă", IDC_PAUSE, 130, 155, 54, 15, WS_DISABLED - PUSHBUTTON "Contin&uă", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED + PUSHBUTTON "S&uspendă", IDC_PAUSE, 130, 155, 54, 15, WS_DISABLED + PUSHBUTTON "&Continuă", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED LTEXT "Nume serviciu:", IDC_STATIC, 4, 11, 53, 11 LTEXT "Nume afișat:", IDC_STATIC, 4, 29, 53, 11 LTEXT "Descriere:", IDC_STATIC, 4, 51, 53, 11 @@ -100,7 +103,7 @@ BEGIN LTEXT "Aici se pot specifica parametrii de pornire aplicabili lansării serviciului.", IDC_STATIC, 6, 177, 240, 15 LTEXT "Parametri de pornire:", IDC_STATIC, 6, 200, 68, 11 EDITTEXT IDC_START_PARAM, 78, 199, 168, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP - PUSHBUTTON "&Editare", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED + PUSHBUTTON "Mo&dificare", IDC_EDIT, 192, 215, 54, 15, WS_DISABLED END IDD_DLG_DEPEND DIALOGEX 6, 6, 253, 225 @@ -150,7 +153,7 @@ BEGIN LTEXT "", IDC_DEL_NAME, 15, 53, 160, 15 EDITTEXT IDC_DEL_DESC, 6, 73, 174, 48, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_EX_STATICEDGE | ES_MULTILINE | ES_READONLY - PUSHBUTTON "&Da", IDOK, 26, 129, 54, 13 + PUSHBUTTON "D&a", IDOK, 26, 129, 54, 13 DEFPUSHBUTTON "N&u", IDCANCEL, 102, 129, 54, 13 END @@ -163,7 +166,7 @@ BEGIN LTEXT "", IDC_STOP_DEPENDS, 40, 8, 170, 25 LISTBOX IDC_STOP_DEPENDS_LB, 15, 40, 210, 70, WS_CHILD | WS_VISIBLE | WS_EX_STATICEDGE | LBS_NOSEL LTEXT "Doriți oprirea acestor servicii?", IDC_STATIC, 15, 110, 150, 10 - DEFPUSHBUTTON "&Da", IDOK, 60, 129, 54, 14 + DEFPUSHBUTTON "D&a", IDOK, 60, 129, 54, 14 PUSHBUTTON "N&u", IDCANCEL, 120, 129, 54, 14 END diff --git a/reactos/base/applications/mspaint/lang/ro-RO.rc b/reactos/base/applications/mspaint/lang/ro-RO.rc index 13e5bba07fa..5fd3f740a91 100644 --- a/reactos/base/applications/mspaint/lang/ro-RO.rc +++ b/reactos/base/applications/mspaint/lang/ro-RO.rc @@ -13,13 +13,13 @@ BEGIN POPUP "&Fișier" BEGIN MENUITEM "&Nou\tCtrl+N", IDM_FILENEW - MENUITEM "&Deschidere…\tCtrl+D", IDM_FILEOPEN - MENUITEM "Pă&strează\tCtrl+S", IDM_FILESAVE - MENUITEM "&Păstrare în…", IDM_FILESAVEAS + MENUITEM "&Deschidere…\tCtrl+O", IDM_FILEOPEN + MENUITEM "&Păstrează\tCtrl+S", IDM_FILESAVE + MENUITEM "Păst&rare în…", IDM_FILESAVEAS MENUITEM SEPARATOR - MENUITEM "Pune pe fundal (în ca&rou)", IDM_FILEASWALLPAPERPLANE - MENUITEM "Pune pe fundal (¢rată)", IDM_FILEASWALLPAPERCENTERED - MENUITEM "Pune pe fundal (e&xtinsă)", IDM_FILEASWALLPAPERSTRETCHED + MENUITEM "Decor de birou (în c&arou)", IDM_FILEASWALLPAPERPLANE + MENUITEM "Decor de birou (¢rat)", IDM_FILEASWALLPAPERCENTERED + MENUITEM "Decor de birou (e&xtins)", IDM_FILEASWALLPAPERSTRETCHED MENUITEM SEPARATOR MENUITEM "I&eșire\tAlt+F4", IDM_FILEEXIT END @@ -32,11 +32,11 @@ BEGIN MENUITEM "&Copiază\tCtrl+C", IDM_EDITCOPY MENUITEM "&Lipește\tCtrl+V", IDM_EDITPASTE MENUITEM "Șt&erge selecția\tDel", IDM_EDITDELETESELECTION - MENUITEM "&Inversează selecția", IDM_EDITINVERTSELECTION + MENUITEM "In&versează selecția", IDM_EDITINVERTSELECTION MENUITEM "Selecte&ază tot\tCtrl+A", IDM_EDITSELECTALL MENUITEM SEPARATOR MENUITEM "C&opiere în…", IDM_EDITCOPYTO - MENUITEM "L&ipire din…", IDM_EDITPASTEFROM + MENUITEM "Lipire di&n…", IDM_EDITPASTEFROM END POPUP "&Afișare" BEGIN @@ -63,15 +63,15 @@ BEGIN END MENUITEM "Pe t&ot ecranul\tCtrl+F", IDM_VIEWFULLSCREEN END - POPUP "&Imagine" + POPUP "I&magine" BEGIN - MENUITEM "R&otire/Oglindire…\tCtrl+R", IDM_IMAGEROTATEMIRROR + MENUITEM "&Rotire/Oglindire…\tCtrl+R", IDM_IMAGEROTATEMIRROR MENUITEM "Întin&dere/Înclinare…\tCtrl+W", IDM_IMAGESTRETCHSKEW - MENUITEM "&Recoltează", IDM_IMAGECROP + MENUITEM "Recoltea&ză", IDM_IMAGECROP MENUITEM "In&versează culorile\tCtrl+I", IDM_IMAGEINVERTCOLORS MENUITEM "&Atribute…\tCtrl+E", IDM_IMAGEATTRIBUTES MENUITEM "Șt&erge imaginea", IDM_IMAGEDELETEIMAGE - MENUITEM "&Mod opac", IDM_IMAGEDRAWOPAQUE + MENUITEM "Mod &opac", IDM_IMAGEDRAWOPAQUE END POPUP "&Culori" BEGIN @@ -91,7 +91,7 @@ END ID_ACCELERATORS ACCELERATORS BEGIN "^N", IDM_FILENEW - "^D", IDM_FILEOPEN + "^O", IDM_FILEOPEN "^S", IDM_FILESAVE "^Z", IDM_EDITUNDO "^Y", IDM_EDITREDO @@ -151,7 +151,7 @@ BEGIN AUTORADIOBUTTON "Color", IDD_ATTRIBUTESRB5, 92, 100, 35, 10 DEFPUSHBUTTON "Con&firmă", IDOK, 170, 8, 48, 14 PUSHBUTTON "A&nulează", IDCANCEL, 170, 24, 48, 14 - PUSHBUTTON "I&mplicite", IDD_ATTRIBUTESSTANDARD, 170, 40, 48, 14 + PUSHBUTTON "Impli&cite", IDD_ATTRIBUTESSTANDARD, 170, 40, 48, 14 END IDD_STRETCHSKEW DIALOGEX 100, 100, 225, 150 @@ -161,20 +161,20 @@ CAPTION "Întindere și înclinare imagine" BEGIN GROUPBOX "Întindere", IDD_STRETCHSKEWGROUPSTRETCH, 6, 6, 158, 66 ICON IDI_HORZSTRETCH, IDD_STRETCHSKEWICONHSTRETCH, 12, 18, 32, 32 - LTEXT "Orizontală:", IDD_STRETCHSKEWTEXTHSTRETCH, 45, 24, 40, 10 + LTEXT "&Orizontală:", IDD_STRETCHSKEWTEXTHSTRETCH, 45, 24, 40, 10 EDITTEXT IDD_STRETCHSKEWEDITHSTRETCH, 90, 23, 32, 12 LTEXT "%", IDD_STRETCHSKEWTEXTHPERCENT, 125, 24, 15, 10 ICON IDI_VERTSTRETCH, IDD_STRETCHSKEWICONVSTRETCH, 12, 43, 32, 32 - LTEXT "Verticală:", IDD_STRETCHSKEWTEXTVSTRETCH, 45, 49, 40, 10 + LTEXT "&Verticală:", IDD_STRETCHSKEWTEXTVSTRETCH, 45, 49, 40, 10 EDITTEXT IDD_STRETCHSKEWEDITVSTRETCH, 90, 48, 32, 12 LTEXT "%", IDD_STRETCHSKEWTEXTVPERCENT, 125, 49, 15, 10 GROUPBOX "Înclinare", IDD_STRETCHSKEWGROUPSKEW, 6, 76, 158, 66 ICON IDI_HORZSKEW, IDD_STRETCHSKEWICONHSKEW, 12, 88, 32, 32 - LTEXT "Orizontală:", IDD_STRETCHSKEWTEXTHSKEW, 45, 94, 40, 10 + LTEXT "Ori&zontală:", IDD_STRETCHSKEWTEXTHSKEW, 45, 94, 40, 10 EDITTEXT IDD_STRETCHSKEWEDITHSKEW, 90, 93, 32, 12 LTEXT "grade", IDD_STRETCHSKEWTEXTHDEG, 125, 94, 30, 10 ICON IDI_VERTSKEW, IDD_STRETCHSKEWICONVSKEW, 12, 113, 32, 32 - LTEXT "Verticală:", IDD_STRETCHSKEWTEXTVSKEW, 45, 119, 40, 10 + LTEXT "V&erticală:", IDD_STRETCHSKEWTEXTVSKEW, 45, 119, 40, 10 EDITTEXT IDD_STRETCHSKEWEDITVSKEW, 90, 118, 32, 12 LTEXT "grade", IDD_STRETCHSKEWTEXTVDEG, 125, 119, 30, 10 DEFPUSHBUTTON "Con&firmă", IDOK, 170, 8, 48, 14 diff --git a/reactos/base/applications/notepad/lang/ro-RO.rc b/reactos/base/applications/notepad/lang/ro-RO.rc index fdc4e76098d..4a6a07a7f52 100644 --- a/reactos/base/applications/notepad/lang/ro-RO.rc +++ b/reactos/base/applications/notepad/lang/ro-RO.rc @@ -1,3 +1,8 @@ +/* +Translators: Petru Dumitriu (petrimetri at gmail dot com) + Ștefan Fulea (stefan dot fulea at mail dot md) +*/ + LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL ID_ACCEL ACCELERATORS @@ -8,7 +13,7 @@ BEGIN "^G", CMD_GOTO "H", CMD_REPLACE, VIRTKEY, CONTROL "^N", CMD_NEW - "^D", CMD_OPEN + "^O", CMD_OPEN "^P", CMD_PRINT "^S", CMD_SAVE "^V", CMD_PASTE @@ -23,13 +28,13 @@ BEGIN POPUP "&Fișier" BEGIN MENUITEM "&Nou\tCtrl+N", CMD_NEW - MENUITEM "&Deschidere…\tCtrl+D", CMD_OPEN - MENUITEM "Pă&strează\tCtrl+S", CMD_SAVE - MENUITEM "&Păstrare în…", CMD_SAVE_AS + MENUITEM "&Deschidere…\tCtrl+O", CMD_OPEN + MENUITEM "&Păstrează\tCtrl+S", CMD_SAVE + MENUITEM "Păst&rare în…", CMD_SAVE_AS MENUITEM SEPARATOR MENUITEM "&Configurare pagină…", CMD_PAGE_SETUP - MENUITEM "&Imprimă\tCtrl+P", CMD_PRINT - MENUITEM "Configurare i&mprimantă…", CMD_PRINTER_SETUP + MENUITEM "I&mprimă\tCtrl+P", CMD_PRINT + MENUITEM "C&onfigurare imprimantă…", CMD_PRINTER_SETUP MENUITEM SEPARATOR MENUITEM "I&eșire", CMD_EXIT END @@ -45,9 +50,9 @@ BEGIN MENUITEM "&Găsire…\tCtrl+F", CMD_SEARCH MENUITEM "Găsește &următoarea\tF3", CMD_SEARCH_NEXT MENUITEM "Î&nlocuiește\tCtrl+H", CMD_REPLACE - MENUITEM "&Salt la…\tCtrl+G", CMD_GOTO + MENUITEM "S&alt la…\tCtrl+G", CMD_GOTO MENUITEM SEPARATOR - MENUITEM "Selecte&ază tot\tCtrl+A", CMD_SELECT_ALL + MENUITEM "Selectea&ză tot\tCtrl+A", CMD_SELECT_ALL MENUITEM "Inserează &oră și dată\tF5", CMD_TIME_DATE END POPUP "F&ormatare" @@ -76,12 +81,12 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU FONT 8, "MS Shell Dlg" CAPTION "Configurare pagină" BEGIN - LTEXT "&Antet:", 0x140, 10, 07, 40, 15 + LTEXT "Ant&et:", 0x140, 10, 07, 40, 15 EDITTEXT 0x141, 60, 05, 110, 12, WS_BORDER | WS_TABSTOP - LTEXT "&Subsol:", 0x142, 10, 24, 40, 15 + LTEXT "Su&bsol:", 0x142, 10, 24, 40, 15 EDITTEXT 0x143, 60, 22, 110, 12, WS_BORDER | WS_TABSTOP - GROUPBOX "&Margini:", 0x144, 10, 43, 160, 45 - LTEXT "S&tânga:", 0x145, 20, 55, 30, 10, WS_CHILD + GROUPBOX "Margini:", 0x144, 10, 43, 160, 45 + LTEXT "Stâng&a:", 0x145, 20, 55, 30, 10, WS_CHILD EDITTEXT /*STRING_PAGESETUP_LEFTVALUE,*/ 0x147, 50, 55, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP LTEXT "S&us:", 0x148, 20, 73, 30, 10, WS_CHILD EDITTEXT /*STRING_PAGESETUP_TOPVALUE,*/ 0x14A, 50, 73, 35, 11, WS_CHILD | WS_BORDER | WS_TABSTOP diff --git a/reactos/base/applications/rapps/lang/ro-RO.rc b/reactos/base/applications/rapps/lang/ro-RO.rc index 3f86fce3857..cec10d4d637 100644 --- a/reactos/base/applications/rapps/lang/ro-RO.rc +++ b/reactos/base/applications/rapps/lang/ro-RO.rc @@ -65,13 +65,13 @@ FONT 8, "MS Shell Dlg" BEGIN GROUPBOX "Generale", -1, 4, 2, 240, 61 AUTOCHECKBOX "&Păstrează poziția ferestrei", IDC_SAVE_WINDOW_POS, 15, 12, 219, 12 - AUTOCHECKBOX "&Actualizează la pornire lista aplicațiilor disponibile", IDC_UPDATE_AVLIST, 15, 29, 222, 12 - AUTOCHECKBOX "&Menține jurnal de instalare/dezinstalare a aplicațiilor", IDC_LOG_ENABLED, 15, 46, 219, 12 + AUTOCHECKBOX "&Actualizează la pornire lista programelor disponibile", IDC_UPDATE_AVLIST, 15, 29, 222, 12 + AUTOCHECKBOX "&Menține jurnal de instalare/dezinstalare a programelor", IDC_LOG_ENABLED, 15, 46, 219, 12 GROUPBOX "Descărcări", -1, 4, 65, 240, 51 LTEXT "Dosarul pentru descărcări:", -1, 16, 75, 100, 9 EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL PUSHBUTTON "Spe&cificare…", IDC_CHOOSE, 187, 85, 50, 14 - AUTOCHECKBOX "Șt&erge instalatorul aplicației după instalare", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 + AUTOCHECKBOX "Șt&erge aplicația de instalare după instalarea programului", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 PUSHBUTTON "&Implicite", IDC_DEFAULT_SETTINGS, 8, 124, 60, 14 PUSHBUTTON "Con&firmă", IDOK, 116, 124, 60, 14 PUSHBUTTON "A&nulează", IDCANCEL, 181, 124, 60, 14 diff --git a/reactos/base/applications/taskmgr/lang/ro-RO.rc b/reactos/base/applications/taskmgr/lang/ro-RO.rc index 3e4514eb3b6..e6c2665acb9 100644 --- a/reactos/base/applications/taskmgr/lang/ro-RO.rc +++ b/reactos/base/applications/taskmgr/lang/ro-RO.rc @@ -1,4 +1,8 @@ -/* Ștefan Fulea (stefan dot fulea at mail dot md) */ +/* +Translators: Petru Dumitriu (petrimetri at gmail dot com) + Ștefan Fulea (stefan dot fulea at mail dot md) +*/ + LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL @@ -28,37 +32,37 @@ BEGIN MENUITEM "&Stagnantă", ID_VIEW_UPDATESPEED_PAUSED END MENUITEM SEPARATOR - MENUITEM "Pictograme m&ari", ID_VIEW_LARGE - MENUITEM "Pictograme m&ici", ID_VIEW_SMALL + MENUITEM "D&ale", ID_VIEW_LARGE + MENUITEM "&Pictograme", ID_VIEW_SMALL MENUITEM "&Detalii", ID_VIEW_DETAILS, CHECKED - MENUITEM "&Selectare coloane…", ID_VIEW_SELECTCOLUMNS - POPUP "Istoric &procesor" + MENUITEM "Selectare &coloane…", ID_VIEW_SELECTCOLUMNS + POPUP "Ist&oric procesor" BEGIN MENUITEM "Grafic general &comun", ID_VIEW_CPUHISTORY_ONEGRAPHALL - MENUITEM "Grafice &individuale", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, CHECKED + MENUITEM "Grafice indi&viduale", ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, CHECKED END - MENUITEM "Afișează &timpi nucleu", ID_VIEW_SHOWKERNELTIMES + MENUITEM "Afișea&ză timpi nucleu", ID_VIEW_SHOWKERNELTIMES END - POPUP "F&erestre" + POPUP "Fe&restre" BEGIN MENUITEM "Aranjări &orizontale", ID_WINDOWS_TILEHORIZONTALLY MENUITEM "Aranjări &verticale", ID_WINDOWS_TILEVERTICALLY MENUITEM "Mi&nimizează", ID_WINDOWS_MINIMIZE MENUITEM "Ma&ximizează", ID_WINDOWS_MAXIMIZE MENUITEM "Aranjări în casca&dă", ID_WINDOWS_CASCADE - MENUITEM "&Aduce în prim plan", ID_WINDOWS_BRINGTOFRONT + MENUITEM "Ad&uce în prim plan", ID_WINDOWS_BRINGTOFRONT END - POPUP "Sh&ut Down" + POPUP "Î&nchidere calculator" BEGIN - MENUITEM "Stand &By", ID_SHUTDOWN_STANDBY - MENUITEM "&Hibernate", ID_SHUTDOWN_HIBERNATE - MENUITEM "T&urn Off", ID_SHUTDOWN_POWEROFF - MENUITEM "&Restart", ID_SHUTDOWN_REBOOT - MENUITEM "&Log Off %s", ID_SHUTDOWN_LOGOFF - MENUITEM "&Switch User\tWinKey+L", ID_SHUTDOWN_SWITCHUSER, GRAYED - MENUITEM "Loc&k Computer\tWinKey+L", ID_SHUTDOWN_LOCKCOMPUTER - MENUITEM "&Disconnect", ID_SHUTDOWN_DISCONNECT, GRAYED - MENUITEM "&Eject Computer", ID_SHUTDOWN_EJECT_COMPUTER, GRAYED + MENUITEM "Intră în starea de &veche", ID_SHUTDOWN_STANDBY + MENUITEM "Intră în &hibernare", ID_SHUTDOWN_HIBERNATE + MENUITEM "Î&nchide calculatorul", ID_SHUTDOWN_POWEROFF + MENUITEM "&Repornește calculatorul", ID_SHUTDOWN_REBOOT + MENUITEM "&Deautentifică-mă (%s)", ID_SHUTDOWN_LOGOFF + MENUITEM "&Comută utilizator\tWinKey+L", ID_SHUTDOWN_SWITCHUSER, GRAYED + MENUITEM "&Blochează calculatorul\tWinKey+L", ID_SHUTDOWN_LOCKCOMPUTER + MENUITEM "Deconectea&ză", ID_SHUTDOWN_DISCONNECT, GRAYED + MENUITEM "&Elimină calculator", ID_SHUTDOWN_EJECT_COMPUTER, GRAYED END POPUP "&?" BEGIN @@ -84,8 +88,8 @@ BEGIN BEGIN MENUITEM "Activitate nouă (E&xecutare…)", ID_FILE_NEW MENUITEM SEPARATOR - MENUITEM "Pictograme m&ari", ID_VIEW_LARGE - MENUITEM "Pictograme m&ici", ID_VIEW_SMALL + MENUITEM "D&ale", ID_VIEW_LARGE + MENUITEM "&Pictograme", ID_VIEW_SMALL MENUITEM "&Detalii", ID_VIEW_DETAILS, CHECKED END END @@ -95,7 +99,7 @@ BEGIN POPUP "DUMMY" BEGIN MENUITEM "&Comută la", ID_APPLICATION_PAGE_SWITCHTO - MENUITEM "&Aduce în prim plan", ID_WINDOWS_BRINGTOFRONT + MENUITEM "Ad&uce în prim-plan", ID_WINDOWS_BRINGTOFRONT MENUITEM SEPARATOR MENUITEM "Aranjări &orizontale", ID_WINDOWS_TILEHORIZONTALLY MENUITEM "Aranjări &verticale", ID_WINDOWS_TILEVERTICALLY @@ -103,8 +107,8 @@ BEGIN MENUITEM "Ma&ximizează", ID_WINDOWS_MAXIMIZE MENUITEM "Aranjări în casca&dă", ID_WINDOWS_CASCADE MENUITEM SEPARATOR - MENUITEM "Op&rește", ID_APPLICATION_PAGE_ENDTASK - MENUITEM "&Salt la proces", ID_APPLICATION_PAGE_GOTOPROCESS + MENUITEM "Opr&ește", ID_APPLICATION_PAGE_ENDTASK + MENUITEM "S&alt la proces", ID_APPLICATION_PAGE_GOTOPROCESS END END @@ -123,16 +127,16 @@ IDR_PROCESS_PAGE_CONTEXT MENU BEGIN POPUP "DUMMY" BEGIN - MENUITEM "Op&rește procesul", ID_PROCESS_PAGE_ENDPROCESS + MENUITEM "Opr&ește procesul", ID_PROCESS_PAGE_ENDPROCESS MENUITEM "Oprește &arborele de procese", ID_PROCESS_PAGE_ENDPROCESSTREE MENUITEM "&Depanează", ID_PROCESS_PAGE_DEBUG MENUITEM SEPARATOR - POPUP "&Stabilire prioritate" + POPUP "Sta&bilire prioritate" BEGIN - MENUITEM "Prioritate de &timp real", ID_PROCESS_PAGE_SETPRIORITY_REALTIME - MENUITEM "Prioritate î&naltă", ID_PROCESS_PAGE_SETPRIORITY_HIGH - MENUITEM "Regim p&rioritar", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL - MENUITEM "Regim n&ormal", ID_PROCESS_PAGE_SETPRIORITY_NORMAL + MENUITEM "Prioritate de timp &real", ID_PROCESS_PAGE_SETPRIORITY_REALTIME + MENUITEM "Prioritate în&altă", ID_PROCESS_PAGE_SETPRIORITY_HIGH + MENUITEM "Regim pri&oritar", ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL + MENUITEM "Regim &normal", ID_PROCESS_PAGE_SETPRIORITY_NORMAL MENUITEM "Regim n&eprioritar", ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL MENUITEM "Prioritate &minimă", ID_PROCESS_PAGE_SETPRIORITY_LOW END @@ -163,7 +167,7 @@ BEGIN WS_BORDER | WS_TABSTOP, 7, 7, 233, 177 PUSHBUTTON "E&xecutare…", IDC_NEWTASK, 187, 189, 53, 14 PUSHBUTTON "&Comută la", IDC_SWITCHTO, 131, 189, 53, 14, WS_DISABLED - PUSHBUTTON "&Temină", IDC_ENDTASK, 75, 189, 53, 14, WS_DISABLED + PUSHBUTTON "Închid&e", IDC_ENDTASK, 75, 189, 53, 14, WS_DISABLED END IDD_PROCESS_PAGE DIALOGEX 0, 0, 247, 210 @@ -172,7 +176,7 @@ FONT 8, "MS Shell Dlg" BEGIN CONTROL "List2", IDC_PROCESSLIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 7, 7, 233, 177 - PUSHBUTTON "Op&rește procesul", IDC_ENDPROCESS, 171, 189, 69, 14 + PUSHBUTTON "Opr&ește procesul", IDC_ENDPROCESS, 171, 189, 69, 14 CONTROL "Afișea&ză procesele tuturor utilizatorilor", IDC_SHOWALLPROCESSES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 191, 150, 10 END @@ -335,8 +339,8 @@ BEGIN ID_OPTIONS_MINIMIZEONUSE "Gestionarul se minimizează automat când se comută la o aplicație." ID_OPTIONS_HIDEWHENMINIMIZED "La minimizare, ascunde Gestionarul de activități în zona de notificare." ID_VIEW_REFRESH "Forțează Gestionarul să se actualizeze acum, indiferent Rata de împrospătare." - ID_VIEW_LARGE "Afișează aplicațiile reprezentându-le ca pictograme mari." - ID_VIEW_SMALL "Afișează aplicațiile reprezentându-le ca pictograme mici." + ID_VIEW_LARGE "Afișează aplicațiile reprezentându-le ca dale (pictograme mari)." + ID_VIEW_SMALL "Afișează aplicațiile reprezentându-le ca pictograme (mici)." ID_VIEW_DETAILS "Afișează informații despre fiecare aplicație." ID_VIEW_UPDATESPEED_HIGH "Actualizează fereastra de două ori pe secundă." ID_VIEW_UPDATESPEED_NORMAL "Actualizează fereastra o dată la două secunde." @@ -355,11 +359,11 @@ BEGIN ID_HELP_TOPICS "Afișează Manualul de utilizare al Gestionarului." ID_HELP_ABOUT "Afișează informații despre program, versiune și drepturi de autor." ID_FILE_EXIT "Închide Gestionarul de activități." - ID_OPTIONS_SHOW16BITTASKS "Afișează programele pe 16 biți executate în mediul ntvdm.exe" + ID_OPTIONS_SHOW16BITTASKS "Afișează programele pe 16 biți executate în mediul „ntvdm.exe”." ID_VIEW_SELECTCOLUMNS "Specificarea informațiilor afișate în compartimentul „Procese”." - ID_VIEW_SHOWKERNELTIMES "Include și activitatea nucleului în graficele de performanță" - ID_VIEW_CPUHISTORY_ONEGRAPHALL "Folosește un singur grafic pentru toate procesoarele" - ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Folosește câte un grafic pentru fiecare procesor" + ID_VIEW_SHOWKERNELTIMES "Include și activitatea nucleului în graficele de performanță." + ID_VIEW_CPUHISTORY_ONEGRAPHALL "Folosește un singur grafic pentru toate procesoarele." + ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU "Folosește câte un grafic pentru fiecare procesor." ID_APPLICATION_PAGE_SWITCHTO "Aduce fereastra aplicației selectate în prim plan, activând-o." END @@ -367,17 +371,17 @@ STRINGTABLE BEGIN ID_ENDTASK "Comandă închiderea aplicației selectate." ID_GOTOPROCESS "Arată procesul aplicației selectate." - ID_RESTORE "Restabilește Gestionarul." + ID_RESTORE "Restabilește Gestionarul de activități." ID_PROCESS_PAGE_ENDPROCESS "Comandă închiderea procesului selectat." ID_PROCESS_PAGE_ENDPROCESSTREE "Închide procesul și toate procesele pornite de acesta." ID_PROCESS_PAGE_DEBUG "Atașează aplicația de depanare la acest proces." ID_PROCESS_PAGE_SETAFFINITY "Restricționează execuția procesului pe anumite procesoare." - ID_PROCESS_PAGE_SETPRIORITY_REALTIME "Desemnează prioritate maximă" - ID_PROCESS_PAGE_SETPRIORITY_HIGH "Desemnează prioritate înaltă" - ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL "Desemnează regim prioritar" - ID_PROCESS_PAGE_SETPRIORITY_NORMAL "Desemnează prioritate ordinară" - ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL "Desemnează regim neprioritar" - ID_PROCESS_PAGE_SETPRIORITY_LOW "Desemnează prioritate minimă" + ID_PROCESS_PAGE_SETPRIORITY_REALTIME "Desemnează prioritate maximă." + ID_PROCESS_PAGE_SETPRIORITY_HIGH "Desemnează prioritate înaltă." + ID_PROCESS_PAGE_SETPRIORITY_ABOVENORMAL "Desemnează regim prioritar." + ID_PROCESS_PAGE_SETPRIORITY_NORMAL "Desemnează prioritate ordinară." + ID_PROCESS_PAGE_SETPRIORITY_BELOWNORMAL "Desemnează regim neprioritar." + ID_PROCESS_PAGE_SETPRIORITY_LOW "Desemnează prioritate minimă." END STRINGTABLE diff --git a/reactos/base/applications/winhlp32/lang/Ro.rc b/reactos/base/applications/winhlp32/lang/Ro.rc index 7b3b7f9ea8f..0ae741cf608 100644 --- a/reactos/base/applications/winhlp32/lang/Ro.rc +++ b/reactos/base/applications/winhlp32/lang/Ro.rc @@ -4,6 +4,7 @@ * Copyright 1996 Ulrich Schmid * Copyright 2002 Sylvain Petreolle * Copyright 2009 Michael Stefaniuc + * Copyright 2014 Ștefan Fulea * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -29,32 +30,32 @@ MAIN_MENU MENU POPUP "&Fișier" { MENUITEM "&Deschide", MNID_FILE_OPEN MENUITEM SEPARATOR - MENUITEM "&Tipărește", MNID_FILE_PRINT - MENUITEM "&Setare imprimantă", MNID_FILE_SETUP + MENUITEM "I&mprimare…", MNID_FILE_PRINT + MENUITEM "&Configurare imprimantă…", MNID_FILE_SETUP MENUITEM SEPARATOR - MENUITEM "&Ieșire", MNID_FILE_EXIT + MENUITEM "I&eșire", MNID_FILE_EXIT } POPUP "&Editare" { - MENUITEM "&Copiază...", MNID_EDIT_COPYDLG + MENUITEM "&Copiere…", MNID_EDIT_COPYDLG MENUITEM SEPARATOR - MENUITEM "&Adnotează...", MNID_EDIT_ANNOTATE + MENUITEM "&Adnotare…", MNID_EDIT_ANNOTATE } - POPUP "&Se&mn de carte" { - MENUITEM "&Definește...", MNID_BKMK_DEFINE + POPUP "Se&mn de carte" { + MENUITEM "&Definire…", MNID_BKMK_DEFINE } POPUP "&Opțiuni" { - MENUITEM "Istorie", MNID_OPTS_HISTORY + MENUITEM "Ist&oric", MNID_OPTS_HISTORY POPUP "&Font" BEGIN - MENUITEM "Mic", MNID_OPTS_FONTS_SMALL - MENUITEM "Normal", MNID_OPTS_FONTS_NORMAL - MENUITEM "Mare", MNID_OPTS_FONTS_LARGE + MENUITEM "&Mic", MNID_OPTS_FONTS_SMALL + MENUITEM "&Normal", MNID_OPTS_FONTS_NORMAL + MENUITEM "M&are", MNID_OPTS_FONTS_LARGE END } - POPUP "&Ajutor" { - MENUITEM "Ajut&or despre ajutor", MNID_HELP_HELPON - MENUITEM "În&totdeauna deasupra", MNID_HELP_HELPTOP - MENUITEM "&Informații...", MNID_HELP_ABOUT + POPUP "&?" { + MENUITEM "&Despre…", MNID_HELP_HELPON + MENUITEM "Î&ntotdeauna deasupra", MNID_HELP_HELPTOP + MENUITEM "In&formații…", MNID_HELP_ABOUT } } @@ -62,10 +63,10 @@ CONTEXT_MENU MENU BEGIN POPUP "" BEGIN - MENUITEM "Adnotare...", MNID_CTXT_ANNOTATE + MENUITEM "Adnotare…", MNID_CTXT_ANNOTATE MENUITEM "Copiază", MNID_CTXT_COPY - MENUITEM "Tipărește...", MNID_CTXT_PRINT - POPUP "Fonturi" + MENUITEM "Imprimare…", MNID_CTXT_PRINT + POPUP "Font" BEGIN MENUITEM "Mic", MNID_CTXT_FONTS_SMALL MENUITEM "Normal", MNID_CTXT_FONTS_NORMAL @@ -76,20 +77,20 @@ END STRINGTABLE { -STID_WINE_HELP, "Ajutor Wine" +STID_WINE_HELP, "Manual" STID_WHERROR, "EROARE" STID_WARNING, "AVERTISMENT" STID_INFO, "Informație" STID_NOT_IMPLEMENTED, "Neimplementat" -STID_HLPFILE_ERROR_s, "Eroare la citirea fișierului de ajutor „%s”" -STID_INDEX, "&Index" +STID_HLPFILE_ERROR_s, "Eroare la citirea manualului „%s”" +STID_INDEX, "Inde&x" STID_CONTENTS, "Rezumat" -STID_BACK, "În&apoi" +STID_BACK, "Înap&oi" STID_ALL_FILES, "Toate fișierele (*.*)" -STID_HELP_FILES_HLP, "Fișierele de ajutor (*.hlp)" -STID_FILE_NOT_FOUND_s "Fișierul „%s” nu poate fi găsit. Vreți să-l cautați?" -STID_NO_RICHEDIT "Nu am găsit o implementare pentru richedit... Abandonez" -STID_PSH_INDEX, "Subiecte de ajutor:" +STID_HELP_FILES_HLP, "Fișierele manual (*.hlp)" +STID_FILE_NOT_FOUND_s "Fișierul „%s” nu poate fi găsit. Doriți să-l căutați?" +STID_NO_RICHEDIT "Nu s-a găsit o implementare pentru richedit… Operația este abandonată" +STID_PSH_INDEX, "Subiecte în manual:" } IDD_INDEX DIALOG 0, 0, 200, 190 diff --git a/reactos/base/applications/wordpad/lang/Ro.rc b/reactos/base/applications/wordpad/lang/Ro.rc index 541a9d4e513..0fb89d61144 100644 --- a/reactos/base/applications/wordpad/lang/Ro.rc +++ b/reactos/base/applications/wordpad/lang/Ro.rc @@ -2,7 +2,7 @@ * Copyright 2004 Krzysztof Foltman * Copyright 2010 Claudia Cotună * Michael Stefaniuc - * 2011 Fulea Ștefan + * 2011 Ștefan Fulea * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -29,34 +29,34 @@ BEGIN BEGIN MENUITEM "&Nou…\tCtrl+N", ID_FILE_NEW MENUITEM "&Deschidere…\tCtrl+O", ID_FILE_OPEN - MENUITEM "Pă&strează\tCtrl+S", ID_FILE_SAVE - MENUITEM "&Păstrare în…", ID_FILE_SAVEAS + MENUITEM "&Pă&trează\tCtrl+S", ID_FILE_SAVE + MENUITEM "Păst&rare în…", ID_FILE_SAVEAS MENUITEM SEPARATOR - MENUITEM "&Imprimare…\tCtrl+P", ID_PRINT + MENUITEM "I&mprimare…\tCtrl+P", ID_PRINT MENUITEM "Pre&vizionare imprimare…", ID_PREVIEW - MENUITEM "&Opțiuni pagină…", ID_PRINTSETUP + MENUITEM "&Configurare pagină…", ID_PRINTSETUP MENUITEM SEPARATOR MENUITEM "I&eșire", ID_FILE_EXIT END POPUP "&Editare" BEGIN - MENUITEM "Des&face\tCtrl+Z", ID_EDIT_UNDO - MENUITEM "&Reface\tCtrl+Y", ID_EDIT_REDO + MENUITEM "Desface\tCtrl+&Z", ID_EDIT_UNDO + MENUITEM "Reface\tCtrl+&Y", ID_EDIT_REDO MENUITEM SEPARATOR - MENUITEM "&Decupează\tCtrl+X", ID_EDIT_CUT - MENUITEM "&Copiază\tCtrl+C", ID_EDIT_COPY - MENUITEM "&Lipește\tCtrl+V", ID_EDIT_PASTE - MENUITEM "Șt&erge\tDEL", ID_EDIT_CLEAR - MENUITEM "Selecte&ază tot\tCtrl+A", ID_EDIT_SELECTALL + MENUITEM "Decupează\tCtrl+&X", ID_EDIT_CUT + MENUITEM "Copiază\tCtrl+&C", ID_EDIT_COPY + MENUITEM "Lipește\tCtrl+&V", ID_EDIT_PASTE + MENUITEM "Șterge\tD&EL", ID_EDIT_CLEAR + MENUITEM "Selectează tot\tCtrl+&A", ID_EDIT_SELECTALL MENUITEM SEPARATOR - MENUITEM "Că&utare…\tCrtl+F", ID_FIND + MENUITEM "Căutare…\tCrtl+&F", ID_FIND MENUITEM "Caută u&rmătorul\tF3", ID_FIND_NEXT - MENUITEM "Î&nlocuire…\tCtrl+H", ID_REPLACE + MENUITEM "Înlocuire…\tCtrl+&H", ID_REPLACE MENUITEM SEPARATOR - MENUITEM "Nem&odificabil", ID_EDIT_READONLY + MENUITEM "&Nemodificabil", ID_EDIT_READONLY MENUITEM "&Modificat", ID_EDIT_MODIFIED MENUITEM SEPARATOR - POPUP "&Suplimente" + POPUP "S&uplimente" BEGIN MENUITEM "&Detalii pentru selecție", ID_EDIT_SELECTIONINFO MENUITEM "Format &caracter", ID_EDIT_CHARFORMAT @@ -74,7 +74,7 @@ BEGIN MENUITEM SEPARATOR MENUITEM "&Opțiuni…", ID_VIEWPROPERTIES END - POPUP "&Inserare" + POPUP "I&nserare" BEGIN MENUITEM "&Data și ora…", ID_DATETIME END diff --git a/reactos/base/setup/reactos/lang/ro-RO.rc b/reactos/base/setup/reactos/lang/ro-RO.rc index 7ab4b540b73..7e27fcb1595 100644 --- a/reactos/base/setup/reactos/lang/ro-RO.rc +++ b/reactos/base/setup/reactos/lang/ro-RO.rc @@ -3,7 +3,7 @@ * FILE: base/setup/reactos/lang/ro-RO.rc * PURPOSE: Romanian Language File for ReactOS GUI first stage setup * TRANSLATORS: - * Petre Dumitriu (petrimetri-at-gmail-dot-com) + * Petru Dumitriu (petrimetri at gmail dot com) * Ștefan Fulea (stefan dot fulea at mail dot md) */ diff --git a/reactos/base/setup/usetup/lang/ro-RO.h b/reactos/base/setup/usetup/lang/ro-RO.h index 13980d63bf1..dcac8972059 100644 --- a/reactos/base/setup/usetup/lang/ro-RO.h +++ b/reactos/base/setup/usetup/lang/ro-RO.h @@ -107,7 +107,7 @@ static MUI_ENTRY roROWelcomePageEntries[] = { 8, 21, - "\x07 Tastai L pentru Termenii i Condiiile de Liceniere", + "\x07 Tastai L pentru Termenii i Condiiile de Liceniere.", TEXT_STYLE_NORMAL }, { @@ -325,13 +325,13 @@ static MUI_ENTRY roROLicensePageEntries[] = { 8, 18, - "ct i internaional. Licenierea se refer doar la", + "ct i internaional. Licenierea se refer doar la distri-", TEXT_STYLE_NORMAL }, { 8, 19, - "distribuirea sistemului ReactOS ctre pri tere.", + "buirea sistemului ReactOS ctre pri tere.", TEXT_STYLE_NORMAL }, { @@ -413,7 +413,7 @@ static MUI_ENTRY roRODevicePageEntries[] = { 6, 8, - "Configurarea dispozitivelor de baz.", + "Configurare dispozitive de baz", TEXT_STYLE_NORMAL }, { @@ -478,13 +478,13 @@ static MUI_ENTRY roRODevicePageEntries[] = { 6, 24, - "selectai \"Accept configuraia dispozitivelor\", apoi", + "selectai \"Accept configuraia dispozitivelor\", apoi confirmai", TEXT_STYLE_NORMAL }, { 6, 25, - "confirmai-o apsnd ENTER.", + "apsnd ENTER.", TEXT_STYLE_NORMAL }, { @@ -575,7 +575,7 @@ static MUI_ENTRY roROComputerPageEntries[] = { 6, 8, - "Dorii specificarea arhitecturii de calcul?", + "Dorii specificarea unei alte arhitecturi de calcul?", TEXT_STYLE_NORMAL }, { @@ -627,19 +627,19 @@ static MUI_ENTRY roROFlushPageEntries[] = { 10, 6, - "Verificarea stocrii datelor necesare.", + "Se verific stocarea datelor necesare.", TEXT_STYLE_NORMAL }, { 10, 8, - "La final, calculatorul va fi repornit automat.", + "Aceasta poate dura cteva momente.", TEXT_STYLE_NORMAL }, { 10, 9, - "Ateptai...", + "La final, calculatorul va fi repornit automat.", TEXT_STYLE_NORMAL }, { @@ -679,7 +679,7 @@ static MUI_ENTRY roROQuitPageEntries[] = { 10, 9, - "i toate CD-ROM din unitile CD.", + "i toate mediile CD-ROM din unitile CD.", TEXT_STYLE_NORMAL }, { @@ -770,13 +770,13 @@ static MUI_ENTRY roROSuccessPageEntries[] = { 10, 8, - "Scoatei discul flexibil din unitatea A: i toate CD-ROM", + "Scoatei discul flexibil din unitatea A: i toate mediile", TEXT_STYLE_NORMAL }, { 10, 9, - "din unitile CD.", + "CD-ROM din unitile CD.", TEXT_STYLE_NORMAL }, { @@ -857,13 +857,13 @@ static MUI_ENTRY roROSelectPartitionEntries[] = { 6, 8, - "Urmtoarea list cuprinde partiiile existente precum", + "Urmtoarea list cuprinde partiiile existente, precum i", TEXT_STYLE_NORMAL }, { 6, 9, - "i spaiul nefolosit pentru crearea de noi partiii.", + "spaiul liber disponibil pentru crearea de noi partiii.", TEXT_STYLE_NORMAL }, { @@ -1041,7 +1041,7 @@ static MUI_ENTRY roROBootLoaderEntries[] = { 6, 8, - "Instalarea aplicaiei de iniializare a calculatorului", + "Instalare aplicaie de iniializare a calculatorului", TEXT_STYLE_NORMAL }, { @@ -1198,7 +1198,7 @@ static MUI_ENTRY roROPrepareCopyEntries[] = { 6, 8, - "Se fac pregtirile necesare pentru copierea de fiiere.", + "Se fac pregtirile necesare pentru copierea de fiiere...", TEXT_STYLE_NORMAL }, { @@ -1702,7 +1702,7 @@ MUI_STRING roROStrings[] = {STRING_INSTALLCREATEPARTITION, " ENTER = Instalare P/E = Creare partiie Primar/Extins F3 = Ieire"}, {STRING_INSTALLCREATELOGICAL, - " ENTER = Install L = Create Logical Partition F3 = Quit"}, + " ENTER = Instalare L = Creare partiie Logic F3 = Ieire"}, {STRING_INSTALLDELETEPARTITION, " ENTER = Instalare D = tergere partiie F3 = Ieire"}, {STRING_DELETEPARTITION, @@ -1720,7 +1720,7 @@ MUI_STRING roROStrings[] = {STRING_CREATEPARTITION, " ENTER = Creare partiie ESC = Anulare F3 = Ieire"}, {STRING_PARTFORMAT, - "Aceast Partiie urmeaz s fie formatat."}, + "Aceast partiie urmeaz s fie formatat."}, {STRING_NONFORMATTEDPART, "Alegei s instalai ReactOS pe partiie nou sau neformatat."}, {STRING_INSTALLONPART, diff --git a/reactos/base/setup/vmwinst/lang/ro-RO.rc b/reactos/base/setup/vmwinst/lang/ro-RO.rc index f44a31b1164..6c093543b3c 100644 --- a/reactos/base/setup/vmwinst/lang/ro-RO.rc +++ b/reactos/base/setup/vmwinst/lang/ro-RO.rc @@ -11,7 +11,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Asistent de instalare module video" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Instalatorul ReactOS a descoperit faptul că ReactOS este executat în VMware(r).", -1, 117, 8, 140, 24 + LTEXT "Asistentul de instalare a descoperit faptul că ReactOS este executat în VMware(r).", -1, 117, 8, 140, 24 LTEXT "Dacă doriți instalarea modulelor pilot VMware(r) SVGA, apăsați pe „Înainte”, altfel omiteți această instalare apăsând „Anulează”.", -1, 117, 130, 140, 34 END @@ -20,7 +20,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Asistent de instalare module video" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Instalatorul ReactOS nu are inclus modulul pilot VMware(r) SVGA.\n\nDe aceea, mergeți la „VM” din meniul stației de lucru VMware(r) și alegeți instalarea instrumentelor VMware\n\n\nApăsați „Înainte” pentru a continua sau „Anulează” pentru a omite instalarea modulului pilot video SVGA.", -1, 25, 25, 225, 85 + LTEXT "Asistentul de instalare nu are inclus modulul pilot VMware(r) SVGA.\n\nDe aceea, mergeți la „VM” din meniul stației de lucru VMware(r) și alegeți instalarea instrumentelor VMware\n\n\nApăsați „Înainte” pentru a continua sau „Anulează” pentru a omite instalarea modulului pilot video SVGA.", -1, 25, 25, 225, 85 END IDD_INSTALLING_VMWARE_TOOLS DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT @@ -58,7 +58,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Asistent de instalare module video" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Instalatorul ReactOS nu a reușit instalarea modulului pilot VMware(r) SVGA.\n\n\nAlegeți „Sfârșit” pentru a reveni la instalarea ReactOS.", -1, 25, 25, 225, 85 + LTEXT "Asistentul de instalare nu a reușit instalarea modulului pilot VMware(r) SVGA.\n\n\nAlegeți „Sfârșit” pentru a reveni la instalarea ReactOS.", -1, 25, 25, 225, 85 END IDD_CHOOSEACTION DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT @@ -67,9 +67,9 @@ CAPTION "Asistent de instalare module video" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "Modulul pilot video VMware(r) SVGA este deja instalat.\n\nPuteți în continuare să:", -1, 25, 5, 225, 30 - PUSHBUTTON "Configurați preferințele ecranului", IDC_CONFIGSETTINGS, 25, 40, 200, 15, BS_AUTORADIOBUTTON - PUSHBUTTON "Utilizați un alt modul pilot video", IDC_USEOTHERDRIVER, 25, 55, 200, 15, BS_AUTORADIOBUTTON - PUSHBUTTON "Dezinstalați modulul pilot VMware(r) SVGA", IDC_UNINSTALL, 25, 70, 200, 15, BS_AUTORADIOBUTTON + PUSHBUTTON "&Configurați preferințele ecranului", IDC_CONFIGSETTINGS, 25, 40, 200, 15, BS_AUTORADIOBUTTON + PUSHBUTTON "&Utilizați un alt modul pilot video", IDC_USEOTHERDRIVER, 25, 55, 200, 15, BS_AUTORADIOBUTTON + PUSHBUTTON "&Dezinstalați modulul pilot VMware(r) SVGA", IDC_UNINSTALL, 25, 70, 200, 15, BS_AUTORADIOBUTTON LTEXT "Alegeți „Înainte” pentru a continua sau „Anulează” pentru a părăsi acest asistent.", -1, 25, 93, 225, 19 END @@ -89,14 +89,14 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Asistent de instalare module video" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Instalatorul ReactOS e pe cale de a vă dezinstala modulul pilot VMware(r) SVGA!!!\n\n\nApăsați „Sfârșit” pentru a dezinstala modulul pilot sau „Anulează” pentru a-l lăsa așa cum este.", -1, 25, 25, 225, 85 + LTEXT "Asistentul de instalare e pe cale de a vă dezinstala modulul pilot VMware(r) SVGA!!!\n\n\nApăsați „Sfârșit” pentru a dezinstala modulul pilot sau „Anulează” pentru a-l lăsa așa cum este.", -1, 25, 25, 225, 85 END STRINGTABLE BEGIN IDS_WIZARD_NAME "VMware(r) depistat" - IDS_FAILEDTOLOCATEDRIVERS "Instalatorul ReactOS Setup nu a reușit găsirea fișierelor necesare.\nVerificați dacă este introdus suportul CD-ROM cu instrumentele VMware(r)." - IDS_FAILEDTOCOPYFILES "Instalatorul ReactOS nu a reușit să copieze fișierele necesare.\nVerificați dacă este introdus suportul CD-ROM cu instrumentele VMware(r).\n" + IDS_FAILEDTOLOCATEDRIVERS "Asistentul de instalare nu a reușit găsirea fișierelor necesare.\nVerificați dacă este introdus suportul CD-ROM cu instrumentele VMware(r)." + IDS_FAILEDTOCOPYFILES "Asistentul de instalare nu a reușit să copieze fișierele necesare.\nVerificați dacă este introdus suportul CD-ROM cu instrumentele VMware(r).\n" IDS_FAILEDTOACTIVATEDRIVER "Activarea modulului pilot VMware(r) SVGA a eșuat!" IDS_FAILEDTOSELVGADRIVER "Activarea modulului pilot VMware(r) VGA a eșuat!" IDS_FAILEDTOSELVBEDRIVER "Activarea modulului pilot VMware(r) VBE a eșuat!" @@ -113,9 +113,9 @@ END STRINGTABLE BEGIN - IDS_SEARCHINGFORCDROM "Accesarea suportului CD-ROM cu instrumentele VMware(r)…" + IDS_SEARCHINGFORCDROM "Se accesează suportul CD-ROM cu instrumentele VMware(r)…" IDS_COPYINGFILES "Se copie fișierele…" - IDS_ENABLINGDRIVER "Activarea modulului pilot VMware(r) SVGA…" + IDS_ENABLINGDRIVER "Se activează modulul pilot VMware(r) SVGA…" END STRINGTABLE diff --git a/reactos/base/shell/explorer/explorer-ro.rc b/reactos/base/shell/explorer/explorer-ro.rc index 95b121f1ef6..f2ef1371661 100644 --- a/reactos/base/shell/explorer/explorer-ro.rc +++ b/reactos/base/shell/explorer/explorer-ro.rc @@ -31,7 +31,7 @@ BEGIN MENUITEM "Aranjare &automată", ID_WINDOW_AUTOSORT MENUITEM "Aranjare s&imboluri", ID_WINDOW_ARRANGE END - POPUP "&Instrumente" + POPUP "I&nstrumente" BEGIN MENUITEM "&Opțiuni", ID_TOOLS_OPTIONS END @@ -94,7 +94,7 @@ BEGIN MENUITEM "Pe &tot ecranul\tCtrl+Shift+S", ID_VIEW_FULLSCREEN MENUITEM "&MDI", ID_VIEW_MDI END - POPUP "&Instrumente" + POPUP "I&nstrumente" BEGIN MENUITEM "&Opțiuni", ID_TOOLS_OPTIONS END diff --git a/reactos/base/system/runonce/lang/ro-RO.rc b/reactos/base/system/runonce/lang/ro-RO.rc index 0a38e9015b6..a77b326df4b 100644 --- a/reactos/base/system/runonce/lang/ro-RO.rc +++ b/reactos/base/system/runonce/lang/ro-RO.rc @@ -1,16 +1,14 @@ /* * FILE: base/system/runonce/lang/ro-RO.rc * ReactOS Project (http://www.reactos.org) - * TRANSLATOR: Fulea Ștefan (PM on ReactOS Forum to fulea.stefan) - * CHANGE LOG: 2011-08-29 initial translation - * 2011-11-05 minor change + * TRANSLATOR: Ștefan Fulea (stefan dot fulea at mail dot md) */ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL IDD_RUNONCE_DLG DIALOG 0, 0, 239, 170 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Instalatorul ReactOS" +CAPTION "Asistent de instalare" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Se instalează următoarele elemente:", -1, 38, 8, 196, 18 diff --git a/reactos/base/system/winlogon/lang/ro-RO.rc b/reactos/base/system/winlogon/lang/ro-RO.rc index d290b69459c..62f17afdb36 100644 --- a/reactos/base/system/winlogon/lang/ro-RO.rc +++ b/reactos/base/system/winlogon/lang/ro-RO.rc @@ -3,7 +3,7 @@ * FILE: base/system/winlogon/lang/ro-RO.rc * PURPOSE: Romanian Language File for Winlogon * TRANSLATORS: - * Petre Dumitriu + * Petru Dumitriu (petrimetri at gmail dot com) * Ștefan Fulea (stefan dot fulea at mail dot md) */ diff --git a/reactos/dll/cpl/console/lang/ro-RO.rc b/reactos/dll/cpl/console/lang/ro-RO.rc index fda9e11e1e9..5f5be0e1b6c 100644 --- a/reactos/dll/cpl/console/lang/ro-RO.rc +++ b/reactos/dll/cpl/console/lang/ro-RO.rc @@ -4,7 +4,7 @@ * FILE: dll/cpl/console/lang/ro-RO.rc * PURPOSE: Romanian resource file * TRANSLATOR: Petru Dimitriu (petrimetri AT gmail.com) - * 2011-11-07 Fulea Ștefan: minor changes + * Ștefan Fulea (stefan dot fulea at mail dot md) */ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL @@ -14,26 +14,26 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION CAPTION "Opțiuni" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Mărime cursor", -1, 7, 7, 120, 70, WS_CHILD | WS_VISIBLE | WS_GROUP - CONTROL "M&ică", IDC_RADIO_SMALL_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 20, 90, 10 - CONTROL "M&edie", IDC_RADIO_MEDIUM_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 40, 90, 10 - CONTROL "M&are", IDC_RADIO_LARGE_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 60, 90, 10 + GROUPBOX "Dimensiune cursor", -1, 7, 7, 120, 70, WS_CHILD | WS_VISIBLE | WS_GROUP + CONTROL "Red&usă", IDC_RADIO_SMALL_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 20, 90, 10 + CONTROL "Me&die", IDC_RADIO_MEDIUM_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 40, 90, 10 + CONTROL "&Mărită", IDC_RADIO_LARGE_CURSOR, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 15, 60, 90, 10 GROUPBOX "Mod de afișare", -1, 133, 7, 112, 70, WS_CHILD | WS_VISIBLE | WS_GROUP - CONTROL "În fe&reastră", IDC_RADIO_DISPLAY_WINDOW, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 142, 20, 70, 10 - CONTROL "Pe &tot ecranul", IDC_RADIO_DISPLAY_FULL, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 142, 40, 70, 10 + CONTROL "În fere&astră", IDC_RADIO_DISPLAY_WINDOW, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 142, 20, 70, 10 + CONTROL "Pe t&ot ecranul", IDC_RADIO_DISPLAY_FULL, "Button", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 142, 40, 70, 10 GROUPBOX "Istoric pentru comenzi", -1, 7, 85, 120, 77, WS_CHILD | WS_VISIBLE | WS_GROUP - LTEXT "N&umăr de înregistrări:", -1, 14, 101, 70, 12 + LTEXT "Ma&xim înregistrări:", -1, 14, 101, 70, 12 EDITTEXT IDC_EDIT_BUFFER_SIZE, 90, 97, 30, 15, ES_RIGHT | ES_NUMBER | WS_GROUP CONTROL "", IDC_UPDOWN_BUFFER_SIZE, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_GROUP, 119, 97, 12, 15 - LTEXT "Nu&măr de registre:", -1, 14, 124, 70, 12 + LTEXT "&Cantitate registre:", -1, 14, 124, 70, 12 EDITTEXT IDC_EDIT_NUM_BUFFER, 90, 120, 30, 15, ES_RIGHT | ES_NUMBER | WS_GROUP CONTROL "", IDC_UPDOWN_NUM_BUFFER, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_GROUP, 119, 120, 12, 15 - CHECKBOX "Înlătură dublicatele &vechi", IDC_CHECK_DISCARD_DUPLICATES, 12, 140, 110, 15 + CHECKBOX "Înlătură duplicatele &vechi", IDC_CHECK_DISCARD_DUPLICATES, 12, 140, 110, 15 GROUPBOX "Opțiuni de editare", -1, 133, 85, 112, 77, BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP - CHECKBOX "Mod E&ditareRapidă", IDC_CHECK_QUICK_EDIT, 140, 97, 102, 15, WS_CHILD | WS_VISIBLE | WS_TABSTOP - CHECKBOX "Mod In&serție", IDC_CHECK_INSERT_MODE, 140, 113, 76, 15, WS_CHILD | WS_VISIBLE | WS_TABSTOP + CHECKBOX "Mod de &editare rapidă”", IDC_CHECK_QUICK_EDIT, 140, 97, 102, 15, WS_CHILD | WS_VISIBLE | WS_TABSTOP + CHECKBOX "Mod de inse&rție”", IDC_CHECK_INSERT_MODE, 140, 113, 76, 15, WS_CHILD | WS_VISIBLE | WS_TABSTOP END IDD_PROPPAGEFONT DIALOGEX 0, 0, 253, 220 @@ -42,7 +42,7 @@ CAPTION "Font" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Previzionare:", -1, 10, 10, 94, 10 - LTEXT "&Mărime:", -1, 180, 10, 36, 10 + LTEXT "Mărime:", -1, 180, 10, 36, 10 CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "F&ont:", -1, 10, 105, 33, 10 @@ -82,7 +82,7 @@ BEGIN CONTROL "", IDC_UPDOWN_WINDOW_SIZE_HEIGHT, UPDOWN_CLASS, UDS_NOTHOUSANDS | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_GROUP, 238, 92, 13, 14 GROUPBOX "Poziția fereastrei", -1, 130, 116, 115, 64 - LTEXT "&Stânga:", -1, 140, 132, 38, 10 + LTEXT "Stâng&a:", -1, 140, 132, 38, 10 LTEXT "S&us:", -1, 140, 149, 40, 10 EDITTEXT IDC_EDIT_WINDOW_POS_LEFT, 203, 128, 35, 14, ES_RIGHT | ES_NUMBER | WS_GROUP CONTROL "", IDC_UPDOWN_WINDOW_POS_LEFT, UPDOWN_CLASS, UDS_NOTHOUSANDS | @@ -90,7 +90,7 @@ BEGIN EDITTEXT IDC_EDIT_WINDOW_POS_TOP, 203, 146, 35, 14, ES_RIGHT | ES_NUMBER | WS_GROUP CONTROL "", IDC_UPDOWN_WINDOW_POS_TOP, UPDOWN_CLASS, UDS_NOTHOUSANDS | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_GROUP, 238, 146, 13, 14 - CHECKBOX "&Amplasare automată", IDC_CHECK_SYSTEM_POS_WINDOW, 137, 165, 104, 10 + CHECKBOX "A&mplasare automată", IDC_CHECK_SYSTEM_POS_WINDOW, 137, 165, 104, 10 END IDD_PROPPAGECOLORS DIALOGEX 0, 0, 253, 220 diff --git a/reactos/dll/cpl/desk/lang/ro-RO.rc b/reactos/dll/cpl/desk/lang/ro-RO.rc index 4a953cd1f2e..9e21949e52e 100644 --- a/reactos/dll/cpl/desk/lang/ro-RO.rc +++ b/reactos/dll/cpl/desk/lang/ro-RO.rc @@ -1,4 +1,7 @@ -/* Ștefan Fulea (stefan dot fulea at mail dot md) */ +/* +Translators: Petru Dumitriu (petrimetri at gmail dot com) + Ștefan Fulea (stefan dot fulea at mail dot md) +*/ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL @@ -32,7 +35,7 @@ BEGIN CONTROL "", IDC_SCREENS_TIME, UPDOWN_CLASS, UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_BORDER | WS_GROUP, 56, 123, 12, 13 LTEXT "minute", IDC_MINTEXT, 70, 125, 26, 9 - CONTROL "&Solicită parolă la revenire", IDC_SCREENS_USEPASSCHK, "button", + CONTROL "Solicită pa&rolă la revenire", IDC_SCREENS_USEPASSCHK, "button", BS_AUTOCHECKBOX | WS_TABSTOP, 108, 120, 117, 19 GROUPBOX "Me&canisme de gestiune a consumului", IDC_SCREENS_DUMMY2, 6, 155, 232, 41 LTEXT "Aici veți putea ajusta parametrii actuali pentru gestiunea consumului de energie.", IDC_STATIC, 14, 166, 146, 27 @@ -79,7 +82,7 @@ BEGIN LTEXT "F&ont", IDC_ADVAPPEARANCE_FONT_T, 5, 190, 50, 9 COMBOBOX IDC_ADVAPPEARANCE_FONT_C, 5, 200, 130, 90, CBS_DROPDOWN | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP - LTEXT "Măr&ime", IDC_ADVAPPEARANCE_FONTSIZE_T, 142, 190, 39, 9 + LTEXT "Mă&rime", IDC_ADVAPPEARANCE_FONTSIZE_T, 142, 190, 39, 9 COMBOBOX IDC_ADVAPPEARANCE_FONTSIZE_E, 142, 200, 38, 200, CBS_DROPDOWN | WS_VSCROLL LTEXT "&Culoare", IDC_ADVAPPEARANCE_FONTCOLOR_T, 184, 190, 28, 9 CHECKBOX "", IDC_ADVAPPEARANCE_FONTCOLOR_B, 184, 200, 28, 13, BS_PUSHLIKE | BS_BITMAP diff --git a/reactos/dll/cpl/hdwwiz/lang/ro-RO.rc b/reactos/dll/cpl/hdwwiz/lang/ro-RO.rc index e2067a47c8f..ef1033f175c 100644 --- a/reactos/dll/cpl/hdwwiz/lang/ro-RO.rc +++ b/reactos/dll/cpl/hdwwiz/lang/ro-RO.rc @@ -3,7 +3,7 @@ * FILE: dll/cpl/hdwwiz/lang/ro-RO.rc * PURPOSE: Romanian Language File for add hardware control panel * TRANSLATORS: - * Petre Dumitriu + * Petru Dumitriu (petrimetri at gmail dot com) * Ștefan Fulea (stefan dot fulea at mail dot md) */ @@ -38,8 +38,8 @@ CAPTION "Asistent de adăugare a componentelor fizice" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Componenta fizică este conectată la calculator?", -1, 20, 11, 275, 8 - AUTORADIOBUTTON "&Da, am conectat deja componenta fizică.", IDC_CONNECTED, 29, 23, 266, 8, WS_GROUP - AUTORADIOBUTTON "N&u, încă nu am conectat componenta fizică.", IDC_NOTCONNECTED, 29, 35, 266, 8 + AUTORADIOBUTTON "Componenta fizică &este deja conectată.", IDC_CONNECTED, 29, 23, 266, 8, WS_GROUP + AUTORADIOBUTTON "Componenta fizică încă n&u a fost conectată.", IDC_NOTCONNECTED, 29, 35, 266, 8 END IDD_PROBELISTPAGE DIALOG 0, 0, 317, 143 diff --git a/reactos/dll/cpl/powercfg/lang/ro-RO.rc b/reactos/dll/cpl/powercfg/lang/ro-RO.rc index eedf64a53fe..f9d3e363680 100644 --- a/reactos/dll/cpl/powercfg/lang/ro-RO.rc +++ b/reactos/dll/cpl/powercfg/lang/ro-RO.rc @@ -1,4 +1,7 @@ -/* 2011.11.26 - Fulea Ștefan: minor changes */ +/* +Translators: Petru Dumitriu (petrimetri at gmail dot com) + Ștefan Fulea (stefan dot fulea at mail dot md) +*/ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL @@ -92,7 +95,7 @@ CAPTION "Hibernare" FONT 8, "MS Shell Dlg" BEGIN ICON IDI_HIBERNATE, IDI_HIBERNATE, 7, 7, 20, 20 - LTEXT "Intrarea în starea de hibernare presupune stocarea pe disc a întregului conținut de memorie apoi închiderea completă. La revenirea din hibernare, calculatorul revine exact la starea anterioară hibernării.", -1, 37, 6, 210, 35 + LTEXT "Intrarea în starea de hibernare presupune stocarea pe disc a întregului conținut de memorie operativă, urmată de închiderea completă a calculatorului. La revenirea din hibernare, calculatorul revine exact la starea anterioară hibernării.", -1, 37, 6, 210, 35 GROUPBOX "Hibernare", -1, 6, 41, 240, 32 CONTROL "Doresc folosirea funcționalității &Hibernare", IDC_HIBERNATEFILE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 17, 55, 210, 10 GROUPBOX "Spațiul necesar pentru hibernare", -1, 6, 80, 240, 76 diff --git a/reactos/dll/cpl/sysdm/lang/ro-RO.rc b/reactos/dll/cpl/sysdm/lang/ro-RO.rc index 1baa62513dc..03923e18001 100644 --- a/reactos/dll/cpl/sysdm/lang/ro-RO.rc +++ b/reactos/dll/cpl/sysdm/lang/ro-RO.rc @@ -3,7 +3,7 @@ * FILE: dll/cpl/sysdm/lang/ro-RO.rc * PURPOSE: Romanian Language File for System Control Panel Applet * TRANSLATORS: - * Petre Dumitriu + * Petru Dumitriu (petrimetri at gmail dot com) * Ștefan Fulea (stefan dot fulea at mail dot md) */ diff --git a/reactos/dll/win32/comdlg32/lang/cdlg_Ro.rc b/reactos/dll/win32/comdlg32/lang/cdlg_Ro.rc index c32ecbe365b..cb1ded4fc68 100644 --- a/reactos/dll/win32/comdlg32/lang/cdlg_Ro.rc +++ b/reactos/dll/win32/comdlg32/lang/cdlg_Ro.rc @@ -4,7 +4,7 @@ * Copyright 1999 Bertho Stultiens * Copyright 1999 Klaas van Gend * Copyright 2008 Michael Stefaniuc - * 2012 Fulea Ștefan + * 2012 Ștefan Fulea * * 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 @@ Doriți să îl suprascrieți?" / : < > |" IDS_PATHNOTEXISTING "Calea nu există" IDS_FILENOTEXISTING "Fișierul nu există" - IDS_INVALID_FOLDERNAME "The selection contains a non-folder object" + IDS_INVALID_FOLDERNAME "Selecția nu conține un dosar" } STRINGTABLE @@ -67,7 +67,7 @@ Introduceți un număr între 1 și %d." PD32_OUT_OF_MEMORY "Memorie insuficientă." PD32_GENERIC_ERROR "S-a produs o eroare." PD32_DRIVER_UNKNOWN "Modulul pilot de imprimantă este necunoscut." - PD32_NO_DEVICES "Este necesară instalarea unei imprimante înainte de a putea efectua activități aferente imprimantei ca spre exemplu accesarea opțiunilor de pagină sau imprimarea unui document. Instalați o imprimantă apoi reîncercați." + PD32_NO_DEVICES "Este necesară instalarea unei imprimante înainte de a putea efectua activități aferente imprimantei (cum ar fi accesarea opțiunilor de pagină sau imprimarea unui document). Instalați o imprimantă apoi reîncercați." PD32_DEFAULT_PRINTER "Imprimantă implicită; " PD32_NR_OF_DOCUMENTS_IN_QUEUE "%d documente sunt în coadă" @@ -139,7 +139,7 @@ STRINGTABLE IDS_SAVE "Păstrare" IDS_SAVE_AS "Păstrare în:" IDS_OPEN_FILE "Deschidere fișier" - IDS_SELECT_FOLDER "Select Folder" + IDS_SELECT_FOLDER "Selecează dosar" } /* @@ -244,10 +244,10 @@ STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Font" FONT 8, "MS Shell Dlg" { - LTEXT "F&ont:", stc1 ,6,3,90,9 + LTEXT "N&ume font:", stc1 ,6,3,90,9 COMBOBOX cmb1, 6,13,94,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_SORT | WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE - LTEXT "&Stil font:", stc2 ,108,3,60,9 + LTEXT "Stil f&ont:", stc2 ,108,3,60,9 COMBOBOX cmb2,108,13,64,54, CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE LTEXT "Mă&rime:", stc3,179,3,32,9 @@ -259,13 +259,13 @@ FONT 8, "MS Shell Dlg" PUSHBUTTON "&Manual…", pshHelp,218,57,50,14,WS_GROUP | WS_TABSTOP GROUPBOX "Efecte", grp1,6,72,84,36,WS_GROUP CHECKBOX "&Tăiat", chx1, 10,82,78,10, BS_AUTOCHECKBOX | WS_TABSTOP - CHECKBOX "S&ubliniat", chx2, 10,94,78,10, BS_AUTOCHECKBOX + CHECKBOX "Su&bliniat", chx2, 10,94,78,10, BS_AUTOCHECKBOX LTEXT "&Culoare:", stc4 ,6,114,80,9 COMBOBOX cmb4,6,124,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP GROUPBOX "Mostră", grp2,98,72,120,36,WS_GROUP CTEXT "AaBbYyZz", stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE - LTEXT "Scr&ipt:", stc7 ,98,114,40,9 + LTEXT "Sist&em de scriere:", stc7 ,98,114,40,9 COMBOBOX cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } @@ -283,13 +283,13 @@ FONT 8, "MS Shell Dlg" EDITTEXT 706, 295,124,18,12, WS_BORDER | WS_GROUP | WS_TABSTOP RTEXT "&Verde:", 727/*1095*/,262,140,30,10 EDITTEXT 707, 295,138,18,12, WS_BORDER | WS_GROUP | WS_TABSTOP - RTEXT "&Albastru:", 728 /*1096*/,262,154,30,10 + RTEXT "Al&bastru:", 728 /*1096*/,262,154,30,10 EDITTEXT 708, 295,152,18,12, WS_BORDER | WS_GROUP | WS_TABSTOP RTEXT "N&uanță:", 723 /*1091*/,194,126,40,10 EDITTEXT 703, 236,124,18,12, WS_BORDER | WS_GROUP | WS_TABSTOP - RTEXT "Sa&turație:", 724 /*1092*/,194,140,40,10 + RTEXT "S&aturație:", 724 /*1092*/,194,140,40,10 EDITTEXT 704, 236,138,18,12, WS_BORDER | WS_GROUP | WS_TABSTOP - RTEXT "&Strălucire:", 725 /*1093*/,194,154,40,10 + RTEXT "St&rălucire:", 725 /*1093*/,194,154,40,10 EDITTEXT 705, 236,152,18,12, WS_BORDER | WS_GROUP | WS_TABSTOP CONTROL "", 720,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,14,140,86 CONTROL "", 721,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,116,140,28 diff --git a/reactos/dll/win32/crypt32/lang/crypt32_Ro.rc b/reactos/dll/win32/crypt32/lang/crypt32_Ro.rc index ba9c6c14a1c..26680f924b0 100644 --- a/reactos/dll/win32/crypt32/lang/crypt32_Ro.rc +++ b/reactos/dll/win32/crypt32/lang/crypt32_Ro.rc @@ -2,6 +2,7 @@ * crypt32 dll Romanian resources * * Copyright (C) 2009 Paul Chitescu + * 2014 Ștefan Fulea * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -177,7 +178,7 @@ STRINGTABLE STRINGTABLE { - IDS_KEY_ID "KeyID=" + IDS_KEY_ID "ID cheie=" IDS_CERT_ISSUER "Emitentul certificatului" IDS_CERT_SERIAL_NUMBER "Numărul de serie al certificatului=" IDS_ALT_NAME_OTHER_NAME "Nume alternativ=" diff --git a/reactos/dll/win32/cryptui/lang/cryptui_Ro.rc b/reactos/dll/win32/cryptui/lang/cryptui_Ro.rc index c085868922d..e3bdc74dd2f 100644 --- a/reactos/dll/win32/cryptui/lang/cryptui_Ro.rc +++ b/reactos/dll/win32/cryptui/lang/cryptui_Ro.rc @@ -187,7 +187,7 @@ BEGIN CONTROL "", IDC_CERTIFICATE_STATUS,"RichEdit20W", ES_READONLY|ES_MULTILINE,8,38,238,78 CONTROL "", -1, "Static", SS_BLACKFRAME, 16,116,222,1 CONTROL "", IDC_CERTIFICATE_NAMES,"RichEdit20W", ES_READONLY|ES_MULTILINE|WS_DISABLED,8,118,238,90 - PUSHBUTTON "&Instalare certificat…", IDC_ADDTOSTORE,53,216,95,14 + PUSHBUTTON "Instala&re certificat…", IDC_ADDTOSTORE,53,216,95,14 PUSHBUTTON "&Declarația emitentului", IDC_ISSUERSTATEMENT,152,216,95,14 END @@ -214,7 +214,7 @@ BEGIN CONTROL "",IDC_CERTPATH, "SysTreeView32", TVS_HASLINES|WS_BORDER, 13,22,231,130 PUSHBUTTON "&Afișează certificat", IDC_VIEWCERTIFICATE,155,156,90,14 - LTEXT "&Stare certificat:", IDC_CERTIFICATESTATUS,6,183,200,14 + LTEXT "Sta&re certificat:", IDC_CERTIFICATESTATUS,6,183,200,14 CONTROL "", IDC_CERTIFICATESTATUSTEXT,"RichEdit20W", WS_BORDER|ES_READONLY|ES_MULTILINE|WS_DISABLED,6,195,245,36 END @@ -292,7 +292,7 @@ FONT 8, "MS Shell Dlg" BEGIN LTEXT "N&ume fișier:", -1, 21,1,195,10 EDITTEXT IDC_IMPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP - PUSHBUTTON "&Răsfoire…", IDC_IMPORT_BROWSE_FILE, 236,11,60,14 + PUSHBUTTON "&Căutare…", IDC_IMPORT_BROWSE_FILE, 236,11,60,14 LTEXT "Notă: Următoarele formate de fișier pot conține mai multe certificate, liste de certificate revocate sau liste de certificate acreditate:", -1, 21,30,265,16 LTEXT "Standard sintaxă mesaje criptografice/Mesaje PKCS #7 (*.p7b)", @@ -314,7 +314,7 @@ BEGIN AUTORADIOBUTTON "&Plasează toate certificatele în următorul depozit:", IDC_IMPORT_SPECIFY_STORE, 31,42,220,12, BS_AUTORADIOBUTTON EDITTEXT IDC_IMPORT_STORE, 44,61,185,14, ES_READONLY - PUSHBUTTON "&Răsfoire…", IDC_IMPORT_BROWSE_STORE, 236,61,60,14 + PUSHBUTTON "&Căutare…", IDC_IMPORT_BROWSE_STORE, 236,61,60,14 END IDD_IMPORT_FINISH DIALOG 0,0,317,178 @@ -340,7 +340,7 @@ BEGIN COMBOBOX IDC_MGR_PURPOSE_SELECTION, 83,7,245,14, CBS_DROPDOWNLIST|WS_BORDER|WS_VSCROLL|WS_TABSTOP CONTROL "", IDC_MGR_STORES, "SysTabControl32", WS_CLIPSIBLINGS|WS_TABSTOP, 7,25,321,140 CONTROL "", IDC_MGR_CERTS, "SysListView32", LVS_REPORT|WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER, 15,46,305,111 - PUSHBUTTON "&Importare…", IDC_MGR_IMPORT, 7,172,65,14 + PUSHBUTTON "I&mportare…", IDC_MGR_IMPORT, 7,172,65,14 PUSHBUTTON "E&xportare…", IDC_MGR_EXPORT, 76,172,65,14, WS_DISABLED PUSHBUTTON "Șt&erge", IDC_MGR_REMOVE, 145,172,65,14, WS_DISABLED PUSHBUTTON "A&vansate…", IDC_MGR_ADVANCED, 263,172,65,14 @@ -382,7 +382,7 @@ FONT 8, "MS Shell Dlg" BEGIN LTEXT "Dacă alegeți să exportați cheia privată, vi se va solicita pe o pagină următoare o parolă pentru a proteja această cheie privată.", -1, 21,1,195,25 LTEXT "Doriți să exportați cheia privată?", -1, 21,27,195,10 - AUTORADIOBUTTON "&Da, exportă cheia privată", + AUTORADIOBUTTON "D&a, exportă cheia privată", IDC_EXPORT_PRIVATE_KEY_YES, 31,36,200,12, BS_AUTORADIOBUTTON|WS_TABSTOP AUTORADIOBUTTON "N&u, nu exporta cheia privată", IDC_EXPORT_PRIVATE_KEY_NO, 31,48,200,12, BS_AUTORADIOBUTTON @@ -393,9 +393,9 @@ IDD_EXPORT_PASSWORD DIALOG 0,0,317,143 CAPTION "Exportare certificate" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Parola:", -1, 21,1,195,10 + LTEXT "&Parolă:", -1, 21,1,195,10 EDITTEXT IDC_EXPORT_PASSWORD, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP - LTEXT "&Confirmați parola:", -1, 21,35,195,10 + LTEXT "&Confirmare parolă:", -1, 21,35,195,10 EDITTEXT IDC_EXPORT_PASSWORD_CONFIRM, 21,45,208,14, ES_AUTOHSCROLL|WS_TABSTOP END @@ -410,7 +410,7 @@ BEGIN IDC_EXPORT_FORMAT_BASE64, 31,30,280,12, BS_AUTORADIOBUTTON AUTORADIOBUTTON "Standard sintaxă mesaje criptografice/Mesaj &PKCS #7 (*.p7b)", IDC_EXPORT_FORMAT_CMS, 31,42,280,12, BS_AUTORADIOBUTTON - CHECKBOX "&Include toate certificatele din calea de certificare, dacă este posibil", + CHECKBOX "In&clude toate certificatele din calea de certificare, dacă este posibil", IDC_EXPORT_CMS_INCLUDE_CHAIN, 44,57,280,8, BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED AUTORADIOBUTTON "Schimb de informații personale/P&KCS #12 (*.pfx)", IDC_EXPORT_FORMAT_PFX, 31,72,280,12, BS_AUTORADIOBUTTON|WS_DISABLED @@ -428,7 +428,7 @@ FONT 8, "MS Shell Dlg" BEGIN LTEXT "N&ume fișier:", -1, 21,1,195,10 EDITTEXT IDC_EXPORT_FILENAME, 21,11,208,14, ES_AUTOHSCROLL|WS_TABSTOP - PUSHBUTTON "&Răsfoire…", IDC_EXPORT_BROWSE_FILE, 236,11,60,14 + PUSHBUTTON "&Căutare…", IDC_EXPORT_BROWSE_FILE, 236,11,60,14 END IDD_EXPORT_FINISH DIALOG 0,0,317,178 diff --git a/reactos/dll/win32/hhctrl.ocx/lang/Ro.rc b/reactos/dll/win32/hhctrl.ocx/lang/Ro.rc index 58063b7b62a..eae92f223ab 100644 --- a/reactos/dll/win32/hhctrl.ocx/lang/Ro.rc +++ b/reactos/dll/win32/hhctrl.ocx/lang/Ro.rc @@ -4,7 +4,7 @@ * Copyright 2005 James Hawkins * Copyright 2010 Claudia Cotună * Michael Stefaniuc - * Fulea Ștefan + * Ștefan Fulea * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -27,13 +27,13 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_CONTENTS "&Cuprins" - IDS_INDEX "&Index" + IDS_CONTENTS "C&uprins" + IDS_INDEX "In&dex" IDS_SEARCH "&Caută" IDS_FAVORITES "F&avorite" - IDS_HIDETABS "Hide &Tabs" - IDS_SHOWTABS "Show &Tabs" + IDS_HIDETABS "Ascunde ta&buri" + IDS_SHOWTABS "Afișează ta&buri" END STRINGTABLE @@ -55,12 +55,12 @@ MENU_POPUP MENU POPUP "" /* Options */ { MENUITEM "", IDTB_EXPAND - MENUITEM "S&ync", IDTB_SYNC - MENUITEM "&Back", IDTB_BACK - MENUITEM "&Forward", IDTB_FORWARD - MENUITEM "&Home", IDTB_HOME - MENUITEM "&Stop", IDTB_STOP - MENUITEM "&Refresh", IDTB_REFRESH - MENUITEM "&Print...", IDTB_PRINT + MENUITEM "Sinc&r", IDTB_SYNC + MENUITEM "Înap&oi", IDTB_BACK + MENUITEM "În&ainte", IDTB_FORWARD + MENUITEM "A&casă", IDTB_HOME + MENUITEM "Opr&ește", IDTB_STOP + MENUITEM "Împrospătea&ză", IDTB_REFRESH + MENUITEM "I&mprimă…", IDTB_PRINT } } diff --git a/reactos/dll/win32/jscript/lang/jscript_Ro.rc b/reactos/dll/win32/jscript/lang/jscript_Ro.rc index e791fe43a2c..55c027c524a 100644 --- a/reactos/dll/win32/jscript/lang/jscript_Ro.rc +++ b/reactos/dll/win32/jscript/lang/jscript_Ro.rc @@ -2,6 +2,7 @@ * Copyright 2009 Piotr Caban * Copyright 2010 Claudia Cotună * Michael Stefaniuc + * Ștefan Fulea * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -26,24 +27,24 @@ STRINGTABLE { IDS_TO_PRIMITIVE "Eroare la convertirea obiectului la un tip primitiv" IDS_INVALID_CALL_ARG "Apel de procedură sau argument nevalid" - IDS_SUBSCRIPT_OUT_OF_RANGE "Subscript out of range" - IDS_OBJECT_REQUIRED "Object required" + IDS_SUBSCRIPT_OUT_OF_RANGE "Subscript în afara limitelor admise" + IDS_OBJECT_REQUIRED "Obiect necesar" IDS_CREATE_OBJ_ERROR "Serverul de automatizare nu poate crea obiectul" - IDS_NO_PROPERTY "Obiectul nu suportă această proprietate sau metodă" - IDS_UNSUPPORTED_ACTION "Object doesn't support this action" + IDS_NO_PROPERTY "Proprietatea sau metoda este neaplicabilă obiectului" + IDS_UNSUPPORTED_ACTION "Acțiunea este neaplicabilă obiectului" IDS_ARG_NOT_OPT "Argumentul nu este opțional" IDS_SYNTAX_ERROR "Eroare de sintaxă" IDS_SEMICOLON "Se așteaptă „;”" IDS_LBRACKET "Se așteaptă „(”" IDS_RBRACKET "Se așteaptă „)”" - IDS_INVALID_CHAR "Invalid character" + IDS_INVALID_CHAR "Caracter nevalid" IDS_UNTERMINATED_STR "Șir constant neterminat" - IDS_MISPLACED_RETURN "'return' statement outside of function" - IDS_INVALID_BREAK "Can't have 'break' outside of loop" - IDS_INVALID_CONTINUE "Can't have 'continue' outside of loop" - IDS_LABEL_REDEFINED "Label redefined" - IDS_LABEL_NOT_FOUND "Label not found" - IDS_DISABLED_CC "Conditional compilation is turned off" + IDS_MISPLACED_RETURN "Poziția 'return' este în afara funcției" + IDS_INVALID_BREAK "Nu se poate admite 'break' în afara buclelor" + IDS_INVALID_CONTINUE "Nu se poate admite 'continue' în afara buclelor" + IDS_LABEL_REDEFINED "Eticheta este redefinită" + IDS_LABEL_NOT_FOUND "Etichetă nu este găsită" + IDS_DISABLED_CC "Compilarea condițională este dezactivată" IDS_NOT_FUNC "Se așteaptă o funcție" IDS_NOT_DATE "„[obiect]” nu este un obiect de tip dată" IDS_NOT_NUM "Se așteaptă un număr" @@ -51,14 +52,14 @@ STRINGTABLE IDS_ILLEGAL_ASSIGN "Atribuire ilegală" IDS_UNDEFINED "„|” nu este definit" IDS_NOT_BOOL "Se așteaptă un obiect boolean" - IDS_INVALID_DELETE "Cannot delete '|'" - IDS_NOT_VBARRAY "VBArray object expected" + IDS_INVALID_DELETE "'|' nu poate fi șters" + IDS_NOT_VBARRAY "Este aștepat obiect de tip VBArray" IDS_JSCRIPT_EXPECTED "Se așteaptă un obiect JScript" IDS_REGEXP_SYNTAX_ERROR "Eroare de sintaxă în expresia regulată" - IDS_URI_INVALID_CODING "URI to be decoded is incorrect" + IDS_URI_INVALID_CODING "URI ce urmează a fi decodificat nu este corect" IDS_URI_INVALID_CHAR "URI care trebuie codificat conține caractere nevalide" - IDS_FRACTION_DIGITS_OUT_OF_RANGE "Number of fraction digits is out of range" - IDS_PRECISION_OUT_OF_RANGE "Precision is out of range" + IDS_FRACTION_DIGITS_OUT_OF_RANGE "Numărul cifrelor fracționare este în afara limitelor admise" + IDS_PRECISION_OUT_OF_RANGE "Precizia este în afara limitelor admise" IDS_INVALID_LENGTH "Lungimea unei matrice trebuie să fie un număr întreg pozitiv" IDS_ARRAY_EXPECTED "Se așteaptă un obiect matrice" } diff --git a/reactos/dll/win32/msacm32/lang/msacm_Ro.rc b/reactos/dll/win32/msacm32/lang/msacm_Ro.rc index cd5ec0d33ed..83270677175 100644 --- a/reactos/dll/win32/msacm32/lang/msacm_Ro.rc +++ b/reactos/dll/win32/msacm32/lang/msacm_Ro.rc @@ -33,7 +33,7 @@ BEGIN COMBOBOX IDD_ACMFORMATCHOOSE_CMB_CUSTOM, 5, 15, 135, 60, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Pă&strare ca…", IDD_ACMFORMATCHOOSE_BTN_SETNAME, 150, 14, 70, 14 + PUSHBUTTON "&Păstrare ca…", IDD_ACMFORMATCHOOSE_BTN_SETNAME, 150, 14, 70, 14 PUSHBUTTON "&Elimină", IDD_ACMFORMATCHOOSE_BTN_DELNAME, 150, 32, 70, 14 LTEXT "F&ormat:", -1, 5, 56, 44, 8, NOT WS_GROUP diff --git a/reactos/dll/win32/msgina/lang/ro-RO.rc b/reactos/dll/win32/msgina/lang/ro-RO.rc index fc0d12b4463..752b781066d 100644 --- a/reactos/dll/win32/msgina/lang/ro-RO.rc +++ b/reactos/dll/win32/msgina/lang/ro-RO.rc @@ -3,7 +3,7 @@ * FILE: dll/win32/msgina/lang/ro-RO.rc * PURPOSE: Romanian Language File for ReactOS Logon GINA DLL * TRANSLATORS: - * Petre Dumitriu + * Petru Dumitriu (petrimetri at gmail dot com) * Ștefan Fulea (stefan dot fulea at mail dot md) */ @@ -119,7 +119,7 @@ FONT 8, "MS Shell Dlg", 400, 0, 1 BEGIN ICON IDI_LOCKICON, -1, 7, 7, 20, 20 LTEXT "Sigur doriți să vă deautentificați?", IDC_STATIC, 35, 16, 146, 8 - PUSHBUTTON "&Da", IDYES, 41, 39, 50, 14, BS_DEFPUSHBUTTON + PUSHBUTTON "D&a", IDYES, 41, 39, 50, 14, BS_DEFPUSHBUTTON PUSHBUTTON "N&u", IDNO, 95, 39, 50, 14 END diff --git a/reactos/dll/win32/newdev/lang/ro-RO.rc b/reactos/dll/win32/newdev/lang/ro-RO.rc index ab06dba86e0..1426665f69b 100644 --- a/reactos/dll/win32/newdev/lang/ro-RO.rc +++ b/reactos/dll/win32/newdev/lang/ro-RO.rc @@ -3,7 +3,7 @@ * FILE: dll/win32/newdev/lang/ro-RO.rc * PURPOSE: Romanian Language File for new device installer * TRANSLATORS: - * Petre Dumitriu + * Petru Dumitriu (petrimetri at gmail dot com) * Ștefan Fulea (stefan dot fulea at mail dot md) */ @@ -19,8 +19,8 @@ BEGIN LTEXT "Apăsați „Înainte” pentru a continua.", IDC_STATIC, 120, 169, 195, 17 LTEXT "DISPOZITIV NECUNOSCUT", IDC_DEVICE, 134, 36, 164, 11 LTEXT "AVERTISMENT: INSTALAREA UNUI DISPOZITIV NECUNOSCUT POATE AVEA EFECTE GRAVE ASUPRA CALCULATORULUI DUMNEAVOASTRĂ!", IDC_STATIC, 120, 59, 195, 30 - CONTROL "Instalează modulele pilot &automat", IDC_RADIO_AUTO, "Button", BS_AUTORADIOBUTTON, 120, 112, 178, 13 - CONTROL "Instalează &modulele pilot dintr-o locație specificată", IDC_RADIO_MANUAL, "Button", BS_AUTORADIOBUTTON, 120, 133, 164, 14 + CONTROL "Instalează modulele pilot a&utomat", IDC_RADIO_AUTO, "Button", BS_AUTORADIOBUTTON, 120, 112, 178, 13 + CONTROL "Instalează modulele pilot din locație &specificată", IDC_RADIO_MANUAL, "Button", BS_AUTORADIOBUTTON, 120, 133, 164, 14 END IDD_NODRIVER DIALOGEX 0, 0, 317, 193 @@ -97,9 +97,9 @@ END STRINGTABLE BEGIN - IDS_INSTALLWIZARDTITLE "New hardware wizard" - IDS_UPDATEWIZARDTITLE "Update driver wizard" - IDS_CHSOURCE_TITLE "Choose search and install options" - IDS_SEARCHDRV_TITLE "Searching..." - IDS_INSTALLDRV_TITLE "Installing..." + IDS_INSTALLWIZARDTITLE "Asistent pentru un nou dispozitiv" + IDS_UPDATEWIZARDTITLE "Asistent pentru actualizare modul-pilot" + IDS_CHSOURCE_TITLE "Alegere opțiuni de căutare și instalare" + IDS_SEARCHDRV_TITLE "Căutare…" + IDS_INSTALLDRV_TITLE "Instalare…" END diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Ro.rc b/reactos/dll/win32/oleacc/lang/oleacc_Ro.rc index 87ff65e92e6..a73b31a4be2 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Ro.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Ro.rc @@ -1,7 +1,7 @@ /* * Copyright 2008 Nikolay Sivov * Copyright 2009 Michael Stefaniuc - * 2011 Fulea Ștefan + * 2011 Ștefan Fulea * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -30,8 +30,8 @@ STRINGTABLE ROLE_SYSTEM_SCROLLBAR "bară de defilare" ROLE_SYSTEM_GRIP "ghidaj" ROLE_SYSTEM_SOUND "sunet" - ROLE_SYSTEM_CURSOR "cursor" - ROLE_SYSTEM_CARET "circumflex" + ROLE_SYSTEM_CURSOR "indicator" + ROLE_SYSTEM_CARET "cursor" ROLE_SYSTEM_ALERT "atenționare" ROLE_SYSTEM_WINDOW "fereastră" ROLE_SYSTEM_CLIENT "client" @@ -91,35 +91,35 @@ STRINGTABLE ROLE_SYSTEM_OUTLINEBUTTON "buton contur" IDS_STATE_NORMAL "normal" - IDS_STATE_UNAVAILABLE "unavailable" - IDS_STATE_SELECTED "selected" - IDS_STATE_FOCUSED "focused" - IDS_STATE_PRESSED "pressed" - IDS_STATE_CHECKED "checked" - IDS_STATE_MIXED "mixed" - IDS_STATE_READONLY "read only" - IDS_STATE_HOTTRACKED "hot tracked" - IDS_STATE_DEFAULT "default" - IDS_STATE_EXPANDED "expanded" - IDS_STATE_COLLAPSED "collapsed" - IDS_STATE_BUSY "busy" - IDS_STATE_FLOATING "floating" - IDS_STATE_MARQUEED "marqueed" - IDS_STATE_ANIMATED "animated" - IDS_STATE_INVISIBLE "invisible" - IDS_STATE_OFFSCREEN "offscreen" - IDS_STATE_SIZEABLE "sizeable" - IDS_STATE_MOVEABLE "moveable" - IDS_STATE_SELFVOICING "self voicing" - IDS_STATE_FOCUSABLE "focusable" - IDS_STATE_SELECTABLE "selectable" - IDS_STATE_LINKED "linked" - IDS_STATE_TRAVERSED "traversed" - IDS_STATE_MULTISELECTABLE "multi selectable" - IDS_STATE_EXTSELECTABLE "extended selectable" - IDS_STATE_ALERT_LOW "alert low" - IDS_STATE_ALERT_MEDIUM "alert medium" - IDS_STATE_ALERT_HIGH "alert high" - IDS_STATE_PROTECTED "protected" - IDS_STATE_HASPOPUP "has popup" + IDS_STATE_UNAVAILABLE "indisponibil" + IDS_STATE_SELECTED "selectat" + IDS_STATE_FOCUSED "focalizat" + IDS_STATE_PRESSED "apăsat" + IDS_STATE_CHECKED "bifat" + IDS_STATE_MIXED "mixat" + IDS_STATE_READONLY "doar citire" + IDS_STATE_HOTTRACKED "urmărit" + IDS_STATE_DEFAULT "implicit" + IDS_STATE_EXPANDED "extins" + IDS_STATE_COLLAPSED "restrâns" + IDS_STATE_BUSY "ocupat" + IDS_STATE_FLOATING "flotant" + IDS_STATE_MARQUEED "sclipitor" + IDS_STATE_ANIMATED "animat" + IDS_STATE_INVISIBLE "invizibil" + IDS_STATE_OFFSCREEN "extra-ecran" + IDS_STATE_SIZEABLE "dimensionabil" + IDS_STATE_MOVEABLE "mobil" + IDS_STATE_SELFVOICING "auto-vociferant" + IDS_STATE_FOCUSABLE "focalizabil" + IDS_STATE_SELECTABLE "selectabil" + IDS_STATE_LINKED "legat" + IDS_STATE_TRAVERSED "traversat" + IDS_STATE_MULTISELECTABLE "multi-selectabil" + IDS_STATE_EXTSELECTABLE "selectabil extins" + IDS_STATE_ALERT_LOW "alertă preventivă" + IDS_STATE_ALERT_MEDIUM "alertă medie" + IDS_STATE_ALERT_HIGH "alertă maximă" + IDS_STATE_PROTECTED "protejat" + IDS_STATE_HASPOPUP "intempestiv" } diff --git a/reactos/dll/win32/rasdlg/lang/ro-RO.rc b/reactos/dll/win32/rasdlg/lang/ro-RO.rc index 34ae1203f3e..abb28b661c5 100644 --- a/reactos/dll/win32/rasdlg/lang/ro-RO.rc +++ b/reactos/dll/win32/rasdlg/lang/ro-RO.rc @@ -201,7 +201,7 @@ FONT 8, "MS Shell Dlg" BEGIN ICON 563, 1098, 7, 6, 20, 20, WS_GROUP LTEXT "Încercarea de apelare automată a eșuat. Doriți dezactivarea apelării automate de la această locație?", 1099, 40, 6, 181, 34, NOT WS_GROUP - PUSHBUTTON "&Da", 1, 60, 42, 50, 14 + PUSHBUTTON "D&a", 1, 60, 42, 50, 14 DEFPUSHBUTTON "&Nu", 2, 115, 42, 50, 14 END @@ -1266,7 +1266,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION CAPTION "Conectare inițială" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "&Da", 6, 68, 68, 50, 14 + DEFPUSHBUTTON "D&a", 6, 68, 68, 50, 14 PUSHBUTTON "N&u", 7, 125, 68, 50, 14 ICON 32516, 1575, 7, 7, 20, 20 LTEXT "", 1576, 40, 7, 190, 33 @@ -1634,7 +1634,7 @@ BEGIN ICON 32515, -1, 7, 7, 20, 20 LTEXT "Dezactivarea paravanului conexiunii la Internet poate expune calculatorul unui risc de acces neautorizat (din Inernet). Sigur doriți dezactivarrea lui?", -1, 44, 5, 212, 24 AUTOCHECKBOX "Nu dor&esc recurența acestui mesaj", 1662, 42, 40, 210, 10 - DEFPUSHBUTTON "&Da", 6, 74, 60, 50, 14 + DEFPUSHBUTTON "D&a", 6, 74, 60, 50, 14 PUSHBUTTON "N&u", 7, 128, 60, 50, 14 END diff --git a/reactos/dll/win32/shell32/lang/ro-RO.rc b/reactos/dll/win32/shell32/lang/ro-RO.rc index 4ebf552799e..16f7d87ec00 100644 --- a/reactos/dll/win32/shell32/lang/ro-RO.rc +++ b/reactos/dll/win32/shell32/lang/ro-RO.rc @@ -1,10 +1,11 @@ /* Ștefan Fulea (stefan dot fulea at mail dot md) */ + LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL MENU_001 MENU BEGIN - MENUITEM "Pictograme m&ari", FCIDM_SHVIEW_BIGICON - MENUITEM "Pictograme m&ici", FCIDM_SHVIEW_SMALLICON + MENUITEM "D&ale", FCIDM_SHVIEW_BIGICON + MENUITEM "&Pictograme", FCIDM_SHVIEW_SMALLICON MENUITEM "&Listă", FCIDM_SHVIEW_LISTVIEW MENUITEM "&Detalii", FCIDM_SHVIEW_REPORTVIEW END @@ -16,8 +17,8 @@ BEGIN BEGIN POPUP "&Afișare" BEGIN - MENUITEM "Pictograme m&ari", FCIDM_SHVIEW_BIGICON - MENUITEM "Pictograme m&ici", FCIDM_SHVIEW_SMALLICON + MENUITEM "D&ale", FCIDM_SHVIEW_BIGICON + MENUITEM "&Pictograme", FCIDM_SHVIEW_SMALLICON MENUITEM "&Listă", FCIDM_SHVIEW_LISTVIEW MENUITEM "&Detailii", FCIDM_SHVIEW_REPORTVIEW END @@ -25,9 +26,9 @@ BEGIN POPUP "&Ordonare" BEGIN MENUITEM "După &nume", 0x30 /* column 0 */ - MENUITEM "După &tip", 0x32 /* column 2 */ - MENUITEM "După &mărime", 0x31 /* ... */ - MENUITEM "După &dată", 0x33 + MENUITEM "După tip&uri", 0x32 /* column 2 */ + MENUITEM "După &mărimi", 0x31 /* ... */ + MENUITEM "După &date", 0x33 MENUITEM SEPARATOR MENUITEM "&Automată", FCIDM_SHVIEW_AUTOARRANGE END @@ -93,7 +94,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Mesaj" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "&Da", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP + DEFPUSHBUTTON "D&a", IDYES, 34, 69, 53, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "Da pentru t&oate", IDC_YESTOALL, 92, 69, 65, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "N&u", IDNO, 162, 69, 53, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "A&nulează", IDCANCEL, 220, 69, 53, 14, WS_GROUP | WS_TABSTOP @@ -157,22 +158,22 @@ BEGIN ICON "", 14000, 8, 8, 21, 20, WS_VISIBLE EDITTEXT 14001, 49, 10, 180, 14, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL LTEXT "", -1, 8, 31, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE - LTEXT "Tip țintă:", 14004, 8, 38, 68, 10 + LTEXT "Tipul destinației:", 14004, 8, 38, 68, 10 EDITTEXT 14005, 79, 37, 150, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "Locație țintă:", 14006, 8, 55, 68, 10 + LTEXT "Locația destinației:", 14006, 8, 55, 68, 10 EDITTEXT 14007, 79, 53, 150, 12, ES_LEFT | ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP | ES_AUTOHSCROLL - LTEXT "Ț&intă:", 14008, 8, 71, 68, 10 + LTEXT "D&estinația:", 14008, 8, 71, 68, 10 EDITTEXT 14009, 79, 69, 150, 14, ES_AUTOHSCROLL LTEXT "", -1, 8, 88, 223, 1, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE - LTEXT "P&ornire în:", 14010, 8, 98, 68, 10 + LTEXT "C&alea de lansare:", 14010, 8, 98, 68, 10 EDITTEXT 14011, 79, 96, 150, 14, ES_AUTOHSCROLL - LTEXT "&Taste rapide:", 14014, 8, 117, 68, 10 + LTEXT "Taste &rapide:", 14014, 8, 117, 68, 10 CONTROL "", 14015, "msctls_hotkey32", WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP, 79, 115, 150, 14 LTEXT "E&xecuție:", 14016, 8, 136, 68, 10 COMBOBOX 14017, 79, 134, 150, 14, CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP LTEXT "&Comentariu:", 14018, 8, 154, 68, 10 EDITTEXT 14019, 79, 152, 150, 14, ES_AUTOHSCROLL - PUSHBUTTON "&Găsire țintă…", 14020, 9, 172, 70, 14, ES_LEFT + PUSHBUTTON "&Deschide loc. destinației", 14020, 9, 172, 70, 14, ES_LEFT PUSHBUTTON "&Pictogramă…", 14021, 84, 172, 70, 14, ES_LEFT PUSHBUTTON "A&vansate…", 14022, 159, 172, 70, 14, ES_LEFT END @@ -449,8 +450,8 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_CENTER | WS_POPUPWIND CAPTION "Confirmare înlocuire fișier" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "&Da", IDYES, 20, 122, 60, 14 - PUSHBUTTON "Da pentru &toate", 12807, 85, 122, 60, 14 + DEFPUSHBUTTON "D&a", IDYES, 20, 122, 60, 14 + PUSHBUTTON "Da pentru t&oate", 12807, 85, 122, 60, 14 PUSHBUTTON "N&u", IDNO, 150, 122, 60, 14 PUSHBUTTON "A&nulează", IDCANCEL, 215, 122, 60, 14 ICON 146, -1, 11, 10, 21, 20, SS_REALSIZECONTROL @@ -642,21 +643,21 @@ BEGIN IDS_ADMINISTRATIVETOOLS "Instrumente administrative" /* context menus */ - IDS_VIEW_LARGE "Pictograme &mari" - IDS_VIEW_SMALL "Pictograme m&ici" + IDS_VIEW_LARGE "D&ale" + IDS_VIEW_SMALL "&Pictograme" IDS_VIEW_LIST "&Listă" IDS_VIEW_DETAILS "&Detalii" IDS_SELECT "Selectează" - IDS_OPEN "Deschide" + IDS_OPEN "&Deschide" IDS_CREATELINK "Creează sc&urtătură" - IDS_COPY "Copiază" - IDS_DELETE "Șterge" - IDS_PROPERTIES "Proprietăți" - IDS_CUT "Decupează" - IDS_RESTORE "Restabilește" - IDS_FORMATDRIVE "Formatare…" - IDS_RENAME "Redenumește" - IDS_INSERT "Inserează" + IDS_COPY "&Copiază" + IDS_DELETE "Șt&erge" + IDS_PROPERTIES "&Proprietăți" + IDS_CUT "&Decupează" + IDS_RESTORE "&Restabilește" + IDS_FORMATDRIVE "F&ormatare…" + IDS_RENAME "Rede&numește" + IDS_INSERT "Inserea&ză" IDS_CREATEFOLDER_DENIED "Nu s-a putut crea dosar nou: Eroare de permisiune." IDS_CREATEFOLDER_CAPTION "Eroare la crearea unui nou dosar" @@ -698,9 +699,9 @@ BEGIN IDS_MYMUSIC "Audio" IDS_MYVIDEO "Video" IDS_DESKTOPDIRECTORY "Birou" - IDS_NETHOOD "Rețele" - IDS_TEMPLATES "Șabloane" - IDS_APPDATA "Date aplicații" + IDS_NETHOOD "Retele" + IDS_TEMPLATES "Sabloane" + IDS_APPDATA "Date aplicatii" IDS_PRINTHOOD "Imprimante" IDS_LOCAL_APPDATA "Preferinte locale\\Date aplicatii" IDS_INTERNET_CACHE "Preferinte locale\\Fisiere de Internet temporare" diff --git a/reactos/dll/win32/shlwapi/lang/shlwapi_Ro.rc b/reactos/dll/win32/shlwapi/lang/shlwapi_Ro.rc index e8b7faf692a..f41395bb23a 100644 --- a/reactos/dll/win32/shlwapi/lang/shlwapi_Ro.rc +++ b/reactos/dll/win32/shlwapi/lang/shlwapi_Ro.rc @@ -1,7 +1,7 @@ /* * Copyright 2004 Jon Griffiths * Copyright 2008 Michael Stefaniuc - * 2011 Fulea Ștefan + * 2011 Ștefan Fulea * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -40,6 +40,6 @@ FONT 8, "MS Shell Dlg" CHECKBOX "Nu dor&esc recurența acestui mesaj", IDC_ERR_DONT_SHOW, 5, 20, 210, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP PUSHBUTTON "Con&firmă", IDOK, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "A&nulează", IDCANCEL, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&Da", IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "D&a", IDYES, 105, 40, 50, 14, WS_GROUP | WS_TABSTOP PUSHBUTTON "N&u", IDNO, 160, 40, 50, 14, WS_GROUP | WS_TABSTOP } diff --git a/reactos/dll/win32/syssetup/lang/ro-RO.rc b/reactos/dll/win32/syssetup/lang/ro-RO.rc index b5884cec666..c102cd85deb 100644 --- a/reactos/dll/win32/syssetup/lang/ro-RO.rc +++ b/reactos/dll/win32/syssetup/lang/ro-RO.rc @@ -3,7 +3,7 @@ * FILE: dll/win32/syssetup/lang/ro-RO.rc * PURPOSE: Romanian Language File for system setup * TRANSLATORS: - * Petre Dumitriu + * Petru Dumitriu (petrimetri at gmail dot com) * Ștefan Fulea (stefan dot fulea at mail dot md) */ @@ -135,13 +135,13 @@ BEGIN IDS_ACKTITLE "Conștientizări" IDS_ACKSUBTITLE "Contribuții aduse și informații despre licență" IDS_OWNERTITLE "Personalizare sistem" - IDS_OWNERSUBTITLE "Asistentul va folosi câteva informații pentru a personaliza ReactOS." + IDS_OWNERSUBTITLE "Prelevare informații pentru a personaliza sistemul de operare" IDS_COMPUTERTITLE "Nume calculator și parolă de administrator" - IDS_COMPUTERSUBTITLE "Pentru calculator sunt necesare un nume și o parolă de administrator." + IDS_COMPUTERSUBTITLE "Furnizare nume pentru calculator și parolă pentru utilizatorul Administrator" IDS_LOCALETITLE "Particularizări regionale" - IDS_LOCALESUBTITLE "Particularizarea ReactOS pentru anumite regiuni sau limbi." + IDS_LOCALESUBTITLE "Particularizare sistem pentru anumite regiuni sau limbi" IDS_DATETIMETITLE "Dată și oră" - IDS_DATETIMESUBTITLE "Stabiliți data și ora corectă pentru calculator." + IDS_DATETIMESUBTITLE "Stabilire dată și oră corectă pentru calculator" IDS_PROCESSTITLE "Înregistrare componente" IDS_PROCESSSUBTITLE "Așteptați…" END diff --git a/reactos/dll/win32/wininet/lang/wininet_Ro.rc b/reactos/dll/win32/wininet/lang/wininet_Ro.rc index 64ab0449db7..075eedda0de 100644 --- a/reactos/dll/win32/wininet/lang/wininet_Ro.rc +++ b/reactos/dll/win32/wininet/lang/wininet_Ro.rc @@ -1,7 +1,7 @@ /* * Copyright 2003 Mike McCormack for CodeWeavers * Copyright 2008 Michael Stefaniuc - * 2011 Fulea Ștefan + * 2011 Ștefan Fulea * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -24,11 +24,11 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE { - IDS_LANCONNECTION "LAN Connection" - IDS_CERT_CA_INVALID "The certificate is issued by an unknown or untrusted publisher." - IDS_CERT_DATE_INVALID "The date on the certificate is invalid." - IDS_CERT_CN_INVALID "The name on the certificate does not match the site." - IDS_CERT_ERRORS "There is at least one unspecified security problem with this certificate." + IDS_LANCONNECTION "Conexiune de rețea locală" + IDS_CERT_CA_INVALID "Certificatul este emis de o parte necunoscută sau nesigură." + IDS_CERT_DATE_INVALID "Data din certificat nu este validă." + IDS_CERT_CN_INVALID "Numele din certificat nu corespunde cu cel al sitului." + IDS_CERT_ERRORS "Există cel puțin o problemă nespecificată de securitate cu acest certificat." } IDD_PROXYDLG DIALOG 36, 24, 220, 146 @@ -73,12 +73,12 @@ FONT 8, "MS Shell Dlg" IDD_INVCERTDLG DIALOG 3, 24, 250, 86 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Security Warning" +CAPTION "Avertisment de securitate" FONT 8, "MS Shell Dlg" { - LTEXT "There is a problem with the certificate for this site.", -1, 40, 6, 200, 20 + LTEXT "Există o problemă cu certificatul acestui sit.", -1, 40, 6, 200, 20 LTEXT "", IDC_CERT_ERROR, 40, 26, 200, 20 - LTEXT "Do you want to continue anyway?", -1, 40, 46, 200, 20 - PUSHBUTTON "Yes", IDOK, 40, 66, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON - PUSHBUTTON "No", IDCANCEL, 100, 66, 56, 14, WS_GROUP | WS_TABSTOP + LTEXT "Doriți totuși să continuați?", -1, 40, 46, 200, 20 + PUSHBUTTON "D&a", IDOK, 40, 66, 56, 14, WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON + PUSHBUTTON "N&u", IDCANCEL, 100, 66, 56, 14, WS_GROUP | WS_TABSTOP } diff --git a/reactos/media/doc/Romanian translation notes.txt b/reactos/media/doc/Romanian translation notes.txt index fe8d355d5aa..71838e030aa 100644 --- a/reactos/media/doc/Romanian translation notes.txt +++ b/reactos/media/doc/Romanian translation notes.txt @@ -12,35 +12,37 @@ Normele de traducere curente conțin în mare parte normele de traducere adoptat http://i18n.ro/Ghidul_traducătorului_de_software Astfel: 1. Se folosesc diacriticele corecte ale limbii române. - 2. În relația utilizator - calculator se adoptă o atitudine informal-autoritară (cu verbe la modul imperativ singular). - 3. În relația utilizator - calculator, în cazul etapelor intermediare (având texte delimitate de puncte de suspensie), (în cazul verbelor) se folosește modul infinitiv lung. - 4. În relația calculator - utilizator se adoptă o atitudine formal-politicoasă (cu verbe la modul indicativ/conjunctiv, persoana a 2-a, plural). - 5. În relația calculator - utilizator, la raportarea de informații se folosesc verbe la diateza pasivă sau reflexivă/impersonală. - 6. Se evită politețea excesivă prin omiterea expresiilor de politețe explicite. - 7. Este recomandată o formulare independentă de gen (gramatical). - 8. Nu se capitalizează decât prima literă dintr-un text. - 9. Traducerile trebuiesc adaptate respectând topica limbii române. - 10. Se evită utilizarea diacriticelor ca taste active (acceleratori sau taste de acces). - 11. Se evită utilizarea pe post de taste de acces (evidențiate prin subliniere), a literelor „i”, „l” și „I”, din cauza lățimii lor reduse care le face dificilă reperarea, și a literelor „g”, „j”, „p”, „q” și „y” care ar intersecta marcajul de evidențiere. - 12. Ghilimelele folosite în limba română sunt perechea ghilimelele-deschise (99 jos) cu ghilimele-închise (99 sus), și ghilimelele unghiulare. + 2. Traducerile trebuiesc adaptate respectând topica limbii române. + 3. În relația utilizator - calculator se adoptă o atitudine informal-autoritară (cu verbe la modul imperativ singular). + 4. În relația utilizator - calculator, în cazul etapelor intermediare (având texte delimitate de puncte de suspensie), (în cazul verbelor) se folosește modul infinitiv lung. + 5. În relația calculator - utilizator se adoptă o atitudine formal-politicoasă (cu verbe la modul indicativ/conjunctiv, persoana a 2-a, plural). + 6. În relația calculator - utilizator, la raportarea de informații se folosesc verbe la diateza pasivă sau reflexivă/impersonală. + 7. Se evită politețea excesivă prin omiterea expresiilor de politețe explicite. + 8. Este recomandată o formulare independentă de gen (gramatical). + 9. Se evită utilizarea diacriticelor ca taste active (acceleratori sau taste de acces). + 10. Se evită utilizarea pe post de taste de acces (evidențiate prin subliniere), a literelor „i”, „l” și „I”, din cauza lățimii lor reduse care le face dificilă reperarea, și a literelor „g”, „j”, „p”, „q” și „y” care ar intersecta marcajul de evidențiere. + 11. Ghilimelele folosite în limba română sunt perechea ghilimelele-deschise (99 jos) cu ghilimele-închise (99 sus), și ghilimelele unghiulare. La acestea se adaugă și câteva norme (deduse) din „greșeli frecvente” raportate tot la i18n.ro: http://i18n.ro/Greșeli_frecvente - 13. Se evită articularea inutilă, însă adaptarea mesajelor traduse trebuie totuși să primeaze. - 14. Nu se traduc numele proprii, însă numele traductibile ale componentelor/subcomponentelor unui program sau pachet de programe pot fi traduse. + 12. Se evită articularea inutilă, însă adaptarea mesajelor traduse trebuie totuși să primeaze. + 13. Nu se traduc numele proprii, însă numele traductibile ale componentelor/subcomponentelor unui program sau pachet de programe pot fi traduse. + 14. Nu se capitalizează decât prima literă dintr-un text. * Particularizări locale În resursele românești din ReactOS există și o serie de particularizări care fie nu se regăsesc în alte traduceri fie din cauza diferențelor de natură ale proiectelor, fie e vorba de termeni încă disputați sau neadoptați în localizările altor proiecte din diverse motive. Multe dintre acestea au fost menționate/discutate în grupul „Diacritice” (http://groups.google.com/group/diacritice). Câteva dintre cele mai relevante: - 1. În glosar sunt preferate: + 15. În glosar sunt preferate: - „logică computațională” vs. „software” - „configurare”/„particularizare” vs. „Setare” - „modul pilot” (sau doar „pilot”) vs. „driver” - „păstrează” vs. „salvează” - „Confirmă”/„Anulează” vs. „OK”/„Renunță” - 2. Acceleratorii (combinațiile de taste de gen „Ctrl + «tastă»”) rămân aceiași ca în limba engleză. - 3. Tastele de acces (combinațiile de taste de gen „Alt + «tastă»”) nu rămân neapărat la fel ca în limba engleză. În mulțimea de taste cu această utilizare: + 16. Acceleratorii (combinațiile de taste de gen „«Ctrl» + «tastă»”) rămân aceiași ca în limba engleză. + 17. Tastele de acces (combinațiile de taste de gen „«Alt» + «tastă»”) nu rămân neapărat la fel ca în limba engleză. În mulțimea de taste cu această utilizare: - Se recomandă a evita utilizarea literelor „s” și „t” pe post de taste de acces pentru a preveni confuzia între acestea și diacriticele „ș” și „ț”. - - „f” și „n” sunt rezervate pentru „Confirmă” și „Anulează” (sau „Sfârșit” și „Termină” în cazul ferestrelor-asistent). - - În cazul ferestrelor-asistent, „a” și „o” sunt rezervate pentru „Înainte” și „Înapoi”. + - „f” și „n” sunt rezervate pentru „Confirmă” și respectiv „Anulează”; „a” pentru „Aplică” (dacă există în aceiași fereastră). + - În cazul ferestrelor-asistent, „a”, „o”, „f” și „n” sunt rezervate pentru „Înainte”, „Înapoi”, „Sfârșit” și „Anulează”. - În cazul interfețelor grafice opțiunilor „Da” și „Nu” le corespund tastele de acces „a” și „u”. (În cazul interfețelor linie-de-comandă, corespunzătoare opțiunilor „Da|Nu”, care NU sunt taste de acces, rămân „d” și „n”.) - 4. Din considerente de lizibilitate, în cazul programelor executate în linie-de-comandă se folosesc doar ghilimele unghiulare. - 5. În cazul unor subiecte unice (dintr-un context local sau global), se folosește forma articulată. Exemple: „Calculatorul meu” (numai unul, conținut concret), „Sistemul de operare” (unic în cadrul său), „Documentele mele” (conținut concret) vs. „Locații în rețea” (nedefinit), „Linie de comandă” (cu multiple posibile instanțe distincte/independente), etc. + 18. Din considerente de lizibilitate, în cazul programelor executate în linie-de-comandă se folosesc doar ghilimele unghiulare. Tot ghilimelele unghiulare sunt preferate și pentru citarea tastelor fizice în mesajele elementelor GUI. + 19. Enunțul de la convenția 2 se poate extinde la „traducerile trebuiesc adaptate respectând (și beneficiind de) particularitățile limbii române”, iar următoarele zece coonvenții ce urmează după el (3-13) definesc de fapt reguli implicite aplicabile în lipsa unui context bine definit în toate aspectele sale. Unde este posibil, o adaptare la context este dezirabilă: + - În cazul opțiunilor despre care există suficiente informații de context, este recomandată flexionarea. De exemplu, opțiunea nulă pentru lista de animații pentru ecran inactiv se poate flexiona în siguranță specificându-i-se genul gramatical feminin - „(nespecificată)”. + - În cazul unor subiecte unice (dintr-un context local sau global), se folosește forma articulată. Exemple: „Calculatorul meu” (numai unul, conținut concret), „Sistemul de operare” (unic în cadrul său), „Documentele mele” (conținut concret) vs. „Locații în rețea” (nedefinit), „Linie de comandă” (cu multiple posibile instanțe distincte/independente), etc. diff --git a/reactos/subsystems/ntvdm/lang/ro-RO.rc b/reactos/subsystems/ntvdm/lang/ro-RO.rc index 8212934b524..6c918558657 100644 --- a/reactos/subsystems/ntvdm/lang/ro-RO.rc +++ b/reactos/subsystems/ntvdm/lang/ro-RO.rc @@ -9,7 +9,7 @@ END STRINGTABLE BEGIN - IDS_VDM_DUMPMEM_TXT, "Dump Memory (&Text)" - IDS_VDM_DUMPMEM_BIN, "Dump Memory (&Binary)" + IDS_VDM_DUMPMEM_TXT, "Captură memorie (te&xt)" + IDS_VDM_DUMPMEM_BIN, "Captură memorie (&binară)" IDS_VDM_QUIT , "I&eșire din ReactOS VDM" END diff --git a/reactos/win32ss/user/user32/lang/ro-RO.rc b/reactos/win32ss/user/user32/lang/ro-RO.rc index 1d82c63d4df..f0eb07f400b 100644 --- a/reactos/win32ss/user/user32/lang/ro-RO.rc +++ b/reactos/win32ss/user/user32/lang/ro-RO.rc @@ -1,4 +1,7 @@ -/* Translator: Ștefan Fulea (stefan dot fulea at mail dot md) */ +/* +Translators: Petru Dumitriu (petrimetri at gmail dot com) + Ștefan Fulea (stefan dot fulea at mail dot md) +*/ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL @@ -65,7 +68,7 @@ BEGIN IDS_ABORT "Aba&ndon" IDS_RETRY "&Reîncearcă" IDS_IGNORE "&Ignoră" - IDS_YES "&Da" + IDS_YES "D&a" IDS_NO "N&u" IDS_HELP "&Manual…" IDS_TRYAGAIN "&Reîncearcă" diff --git a/reactos/win32ss/user/winsrv/consrv/frontends/gui/lang/ro-RO.rc b/reactos/win32ss/user/winsrv/consrv/frontends/gui/lang/ro-RO.rc index 01eb400053f..94668353d68 100644 --- a/reactos/win32ss/user/winsrv/consrv/frontends/gui/lang/ro-RO.rc +++ b/reactos/win32ss/user/winsrv/consrv/frontends/gui/lang/ro-RO.rc @@ -1,17 +1,18 @@ /* Translator: Ștefan Fulea (stefan dot fulea at mail dot md) */ + LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_EDIT "Editare" - IDS_MARK "Marchează" - IDS_COPY "Copiază\tEnter" - IDS_PASTE "Lipește" - IDS_SELECTALL "Selectează tot" - IDS_SCROLL "Derulează" - IDS_FIND "Găsire…" - IDS_DEFAULTS "Implicite" - IDS_PROPERTIES "Proprietăți" + IDS_EDIT "Edit&are" + IDS_MARK "&Marchează" + IDS_COPY "&Copiază\tEnter" + IDS_PASTE "&Lipește" + IDS_SELECTALL "Selectează t&ot" + IDS_SCROLL "Derulea&ză" + IDS_FIND "&Găsire…" + IDS_DEFAULTS "Impli&cite" + IDS_PROPERTIES "&Proprietăți" /* IDS_SCROLLHERE "Derulează aici" IDS_SCROLLTOP "Derulează la început" diff --git a/reactos/win32ss/user/winsrv/consrv_new/frontends/gui/lang/ro-RO.rc b/reactos/win32ss/user/winsrv/consrv_new/frontends/gui/lang/ro-RO.rc index 75c9d6f5c9b..5916f48fa0b 100644 --- a/reactos/win32ss/user/winsrv/consrv_new/frontends/gui/lang/ro-RO.rc +++ b/reactos/win32ss/user/winsrv/consrv_new/frontends/gui/lang/ro-RO.rc @@ -4,15 +4,15 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE BEGIN - IDS_EDIT "Editare" - IDS_MARK "Marchează" - IDS_COPY "Copiază\tEnter" - IDS_PASTE "Lipește" - IDS_SELECTALL "Selectează tot" - IDS_SCROLL "Derulează" - IDS_FIND "Găsire…" - IDS_DEFAULTS "Implicite" - IDS_PROPERTIES "Proprietăți" + IDS_EDIT "Edit&are" + IDS_MARK "&Marchează" + IDS_COPY "&Copiază\tEnter" + IDS_PASTE "&Lipește" + IDS_SELECTALL "Selectează t&ot" + IDS_SCROLL "Derulea&ză" + IDS_FIND "&Găsire…" + IDS_DEFAULTS "Impli&cite" + IDS_PROPERTIES "&Proprietăți" /* IDS_SCROLLHERE "Derulează aici" IDS_SCROLLTOP "Derulează la început" From 06a450f2b5eb3bafccce1a8cb192e6b19e42ed5e Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 13 Oct 2014 15:26:46 +0000 Subject: [PATCH 004/108] =?UTF-8?q?[BOOTDATA][MEDIA/INF]=20*=20Romanian=20?= =?UTF-8?q?translations=20update=20by=20=C8=98tefan=20Fulea.=20CORE-8520?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=64722 --- reactos/boot/bootdata/hivedef.inf | 6 +++--- reactos/media/inf/shortcuts.inf | Bin 86750 -> 86726 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/boot/bootdata/hivedef.inf b/reactos/boot/bootdata/hivedef.inf index cb6fdef3d54..ba5a50514e0 100644 --- a/reactos/boot/bootdata/hivedef.inf +++ b/reactos/boot/bootdata/hivedef.inf @@ -1,4 +1,4 @@ -[Version] +[Version] Signature="$ReactOS$" [AddReg] @@ -2477,8 +2477,8 @@ DESKTOP_SCHEME_18="Ardezie" DESKTOP_SCHEME_19="Furtună" DESKTOP_SCHEME_20="Turcoaz" DESKTOP_SCHEME_21="Grâu" -DESKTOP_SCHEME_SIZE_0="Default size" -TEMP_DIR="%USERPROFILE%\Preferințe locale\Temp" +DESKTOP_SCHEME_SIZE_0="Dimensiune implicită" +TEMP_DIR="%USERPROFILE%\Preferinte locale\Temp" ; LANG_RUSSIAN SUBLANG_NEUTRAL diff --git a/reactos/media/inf/shortcuts.inf b/reactos/media/inf/shortcuts.inf index 8d7ff549a89715ed1d540a8f69c459a45329bb68..7c4f2d51c7f83632539373a20102ccd24ef7413f 100644 GIT binary patch delta 31 ncmcb&l=awB)`l&NA*_=F>UE~)F*EW^Phe$~+P;sKQNb4gy-W%z delta 31 ncmX@Ml=a?H)`l&NA*_=pxbRG4W8|3Zku1QNx;>GVG1V6UxyuS8 From 43b5d75525071f4078a65ec76d62485b445dae0d Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 13 Oct 2014 15:55:56 +0000 Subject: [PATCH 005/108] [BOOTDATA] * Partial revert of r64722 due to change of encoding. Spotted by Sylvain. CORE-8520 svn path=/trunk/; revision=64723 --- reactos/boot/bootdata/hivedef.inf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/boot/bootdata/hivedef.inf b/reactos/boot/bootdata/hivedef.inf index ba5a50514e0..cb6fdef3d54 100644 --- a/reactos/boot/bootdata/hivedef.inf +++ b/reactos/boot/bootdata/hivedef.inf @@ -1,4 +1,4 @@ -[Version] +[Version] Signature="$ReactOS$" [AddReg] @@ -2477,8 +2477,8 @@ DESKTOP_SCHEME_18="Ardezie" DESKTOP_SCHEME_19="Furtună" DESKTOP_SCHEME_20="Turcoaz" DESKTOP_SCHEME_21="Grâu" -DESKTOP_SCHEME_SIZE_0="Dimensiune implicită" -TEMP_DIR="%USERPROFILE%\Preferinte locale\Temp" +DESKTOP_SCHEME_SIZE_0="Default size" +TEMP_DIR="%USERPROFILE%\Preferințe locale\Temp" ; LANG_RUSSIAN SUBLANG_NEUTRAL From 5d13c65d57c4a0dd23f81e4fbc3345e527bb9b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Mon, 13 Oct 2014 16:04:40 +0000 Subject: [PATCH 006/108] [WINED3D] - Rename wined3d.dll as d3dwine.dll, so that the VBox additions don't erase it. Dedicated to Daniel: Now you can safely use the opti-hacked vbox 3d additions. svn path=/trunk/; revision=64724 --- reactos/dll/directx/wine/d3d8/CMakeLists.txt | 2 +- reactos/dll/directx/wine/d3d9/CMakeLists.txt | 2 +- reactos/dll/directx/wine/ddraw/CMakeLists.txt | 2 +- reactos/dll/directx/wine/dxgi/CMakeLists.txt | 2 +- .../dll/directx/wine/wined3d/CMakeLists.txt | 18 ++++++++++-------- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/reactos/dll/directx/wine/d3d8/CMakeLists.txt b/reactos/dll/directx/wine/d3d8/CMakeLists.txt index cb111aee279..5e3f47314b5 100644 --- a/reactos/dll/directx/wine/d3d8/CMakeLists.txt +++ b/reactos/dll/directx/wine/d3d8/CMakeLists.txt @@ -28,6 +28,6 @@ add_library(d3d8 SHARED set_module_type(d3d8 win32dll UNICODE HOTPATCHABLE) target_link_libraries(d3d8 uuid wine) -add_importlibs(d3d8 wined3d msvcrt kernel32 ntdll) +add_importlibs(d3d8 d3dwine msvcrt kernel32 ntdll) add_pch(d3d8 d3d8_private.h SOURCE) add_cd_file(TARGET d3d8 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/d3d9/CMakeLists.txt b/reactos/dll/directx/wine/d3d9/CMakeLists.txt index 330dc93ca07..4cc1ad1a34c 100644 --- a/reactos/dll/directx/wine/d3d9/CMakeLists.txt +++ b/reactos/dll/directx/wine/d3d9/CMakeLists.txt @@ -31,6 +31,6 @@ add_library(d3d9 SHARED set_module_type(d3d9 win32dll UNICODE HOTPATCHABLE) target_link_libraries(d3d9 wine) -add_importlibs(d3d9 wined3d msvcrt kernel32 ntdll) +add_importlibs(d3d9 d3dwine msvcrt kernel32 ntdll) add_pch(d3d9 d3d9_private.h SOURCE) add_cd_file(TARGET d3d9 DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/ddraw/CMakeLists.txt b/reactos/dll/directx/wine/ddraw/CMakeLists.txt index aa34f1760c7..7de597c3ca0 100644 --- a/reactos/dll/directx/wine/ddraw/CMakeLists.txt +++ b/reactos/dll/directx/wine/ddraw/CMakeLists.txt @@ -36,7 +36,7 @@ add_library(ddraw SHARED set_module_type(ddraw win32dll HOTPATCHABLE) target_link_libraries(ddraw wine uuid dxguid ${PSEH_LIB}) -add_importlibs(ddraw advapi32 gdi32 user32 wined3d msvcrt kernel32 ntdll) +add_importlibs(ddraw advapi32 gdi32 user32 d3dwine msvcrt kernel32 ntdll) add_dependencies(ddraw wineheaders) add_pch(ddraw ddraw_private.h SOURCE) add_cd_file(TARGET ddraw DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/dxgi/CMakeLists.txt b/reactos/dll/directx/wine/dxgi/CMakeLists.txt index 3d795229744..53dc609ead9 100644 --- a/reactos/dll/directx/wine/dxgi/CMakeLists.txt +++ b/reactos/dll/directx/wine/dxgi/CMakeLists.txt @@ -23,7 +23,7 @@ add_library(dxgi SHARED set_module_type(dxgi win32dll) target_link_libraries(dxgi uuid dxgi_uuids wine) -add_importlibs(dxgi wined3d user32 msvcrt kernel32 ntdll) +add_importlibs(dxgi d3dwine user32 msvcrt kernel32 ntdll) add_dependencies(dxgi wineheaders) add_pch(dxgi dxgi_private.h SOURCE) add_cd_file(TARGET dxgi DESTINATION reactos/system32 FOR all) diff --git a/reactos/dll/directx/wine/wined3d/CMakeLists.txt b/reactos/dll/directx/wine/wined3d/CMakeLists.txt index ade664ab1cd..46157e3b874 100644 --- a/reactos/dll/directx/wine/wined3d/CMakeLists.txt +++ b/reactos/dll/directx/wine/wined3d/CMakeLists.txt @@ -6,7 +6,9 @@ add_definitions( include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine) -spec2def(wined3d.dll wined3d.spec ADD_IMPORTLIB) +# We name this d3dwine.dll, because the Virtualbox additions ship with a custom wined3d.dll +# and it breaks everything if it is installed. +spec2def(d3dwine.dll wined3d.spec ADD_IMPORTLIB) list(APPEND SOURCE arb_program_shader.c @@ -39,18 +41,18 @@ list(APPEND SOURCE wined3d_main.c wined3d_private.h) -add_library(wined3d SHARED +add_library(d3dwine SHARED ${SOURCE} version.rc ${CMAKE_CURRENT_BINARY_DIR}/wined3d.def) -set_module_type(wined3d win32dll) -target_link_libraries(wined3d wine) +set_module_type(d3dwine win32dll) +target_link_libraries(d3dwine wine) if(CMAKE_C_COMPILER_ID STREQUAL "Clang") - target_link_libraries(wined3d mingwex) + target_link_libraries(d3dwine mingwex) endif() -add_importlibs(wined3d user32 opengl32 gdi32 advapi32 msvcrt kernel32 ntdll) -add_pch(wined3d wined3d_private.h SOURCE) -add_cd_file(TARGET wined3d DESTINATION reactos/system32 FOR all) +add_importlibs(d3dwine user32 opengl32 gdi32 advapi32 msvcrt kernel32 ntdll) +add_pch(d3dwine wined3d_private.h SOURCE) +add_cd_file(TARGET d3dwine DESTINATION reactos/system32 FOR all) From d554ce375feb4985c2ee8739de9f53df16cb0acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Mon, 13 Oct 2014 16:07:46 +0000 Subject: [PATCH 007/108] [WINED3D] - Fix build: This is wha happens when youknow you should perform a clean build but don't. svn path=/trunk/; revision=64726 --- reactos/dll/directx/wine/wined3d/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/dll/directx/wine/wined3d/CMakeLists.txt b/reactos/dll/directx/wine/wined3d/CMakeLists.txt index 46157e3b874..a35703fd731 100644 --- a/reactos/dll/directx/wine/wined3d/CMakeLists.txt +++ b/reactos/dll/directx/wine/wined3d/CMakeLists.txt @@ -44,7 +44,7 @@ list(APPEND SOURCE add_library(d3dwine SHARED ${SOURCE} version.rc - ${CMAKE_CURRENT_BINARY_DIR}/wined3d.def) + ${CMAKE_CURRENT_BINARY_DIR}/d3dwine.def) set_module_type(d3dwine win32dll) target_link_libraries(d3dwine wine) From 622ae3a60643b8eb077c22efc3008c4313e86cb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Mon, 13 Oct 2014 16:21:48 +0000 Subject: [PATCH 008/108] [CMAKE] - Also give a base address to d3dwine.dll svn path=/trunk/; revision=64728 --- reactos/cmake/baseaddress.cmake | 4 ++-- reactos/cmake/baseaddress_dwarf.cmake | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/cmake/baseaddress.cmake b/reactos/cmake/baseaddress.cmake index 8224848b3cb..c95ffe6c5ec 100644 --- a/reactos/cmake/baseaddress.cmake +++ b/reactos/cmake/baseaddress.cmake @@ -1,4 +1,4 @@ -set(baseaddress_ntdll 0x7c920000) # should be above 0x7c920000 +set(baseaddress_ntdll a 0x7c920000) # should be above 0x7c920000 set(baseaddress_kernel32 0x77d80000) set(baseaddress_msvcrt 0x77cd0000) set(baseaddress_advapi32 0x77c20000) @@ -272,7 +272,7 @@ set(baseaddress_wbemdisp 0x70cd0000) set(baseaddress_wbemprox 0x70c70000) set(baseaddress_windowscodecs 0x70b60000) set(baseaddress_windowscodecsext 0x70b30000) -set(baseaddress_wined3d 0x70960000) +set(baseaddress_d3dwine 0x70960000) set(baseaddress_winfax 0x70930000) set(baseaddress_wing32 0x70900000) set(baseaddress_winhttp 0x708a0000) diff --git a/reactos/cmake/baseaddress_dwarf.cmake b/reactos/cmake/baseaddress_dwarf.cmake index 19d7c899cb7..3082c2552cb 100644 --- a/reactos/cmake/baseaddress_dwarf.cmake +++ b/reactos/cmake/baseaddress_dwarf.cmake @@ -280,7 +280,7 @@ set(baseaddress_wbemdisp 0x6ec80000) set(baseaddress_wbemprox 0x6ebf0000) set(baseaddress_windowscodecs 0x6ea60000) set(baseaddress_windowscodecsext 0x6ea30000) -set(baseaddress_wined3d 0x6e790000) +set(baseaddress_d3dwine 0x6e790000) set(baseaddress_winfax 0x6e760000) set(baseaddress_wing32 0x6e730000) set(baseaddress_winhttp 0x6e6b0000) From 63dff05e619b3b7e6e4240412872a8e4ed169675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Mon, 13 Oct 2014 16:25:23 +0000 Subject: [PATCH 009/108] Arch, stop screwing up your commits. svn path=/trunk/; revision=64729 --- reactos/cmake/baseaddress.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/cmake/baseaddress.cmake b/reactos/cmake/baseaddress.cmake index c95ffe6c5ec..7a4a1a12ee1 100644 --- a/reactos/cmake/baseaddress.cmake +++ b/reactos/cmake/baseaddress.cmake @@ -1,4 +1,4 @@ -set(baseaddress_ntdll a 0x7c920000) # should be above 0x7c920000 +set(baseaddress_ntdll 0x7c920000) # should be above 0x7c920000 set(baseaddress_kernel32 0x77d80000) set(baseaddress_msvcrt 0x77cd0000) set(baseaddress_advapi32 0x77c20000) From e9aecdf259e49361c1cfb5a9801b9cd1031ccad2 Mon Sep 17 00:00:00 2001 From: James Tabor Date: Mon, 13 Oct 2014 17:15:04 +0000 Subject: [PATCH 010/108] [Win32k] - Remove code that breaks API SetActiveWindow tests. See CORE-7447. - Dedicated to Victor Martinez Calvo. svn path=/trunk/; revision=64730 --- reactos/win32ss/user/ntuser/winpos.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/reactos/win32ss/user/ntuser/winpos.c b/reactos/win32ss/user/ntuser/winpos.c index b4343175917..6a06b8f1839 100644 --- a/reactos/win32ss/user/ntuser/winpos.c +++ b/reactos/win32ss/user/ntuser/winpos.c @@ -1544,22 +1544,17 @@ WinPosFixupFlags(WINDOWPOS *WinPos, PWND Wnd) WinPos->flags |= SWP_NOMOVE; } - if (WinPos->hwnd == UserGetForegroundWindow()) + if (WinPos->hwnd != UserGetForegroundWindow() && (Wnd->style & (WS_POPUP | WS_CHILD)) != WS_CHILD) { - WinPos->flags |= SWP_NOACTIVATE; /* Already active */ - } - else - if ((Wnd->style & (WS_POPUP | WS_CHILD)) != WS_CHILD) + /* Bring to the top when activating */ + if (!(WinPos->flags & (SWP_NOACTIVATE|SWP_HIDEWINDOW)) && + (WinPos->flags & SWP_NOZORDER || + (WinPos->hwndInsertAfter != HWND_TOPMOST && WinPos->hwndInsertAfter != HWND_NOTOPMOST))) { - /* Bring to the top when activating */ - if (!(WinPos->flags & (SWP_NOACTIVATE|SWP_HIDEWINDOW)) && - (WinPos->flags & SWP_NOZORDER || - (WinPos->hwndInsertAfter != HWND_TOPMOST && WinPos->hwndInsertAfter != HWND_NOTOPMOST))) - { - WinPos->flags &= ~SWP_NOZORDER; - WinPos->hwndInsertAfter = (0 != (Wnd->ExStyle & WS_EX_TOPMOST) ? HWND_TOPMOST : HWND_TOP); - } + WinPos->flags &= ~SWP_NOZORDER; + WinPos->hwndInsertAfter = (0 != (Wnd->ExStyle & WS_EX_TOPMOST) ? HWND_TOPMOST : HWND_TOP); } + } /* Check hwndInsertAfter */ if (!(WinPos->flags & SWP_NOZORDER)) From 5f83d34467f6418e34dd46d2d7290a24438a8b64 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 13 Oct 2014 17:50:17 +0000 Subject: [PATCH 011/108] [CRT] * Update setvbuf() and ungetc(). * Fixes some msvcrt:file tests. CORE-8540 svn path=/trunk/; revision=64731 --- reactos/lib/sdk/crt/stdio/file.c | 61 ++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 4bb99da0c89..1b673bc6230 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -3674,23 +3674,39 @@ int CDECL _wrename(const wchar_t *oldpath,const wchar_t *newpath) */ int CDECL setvbuf(FILE* file, char *buf, int mode, size_t size) { - _lock_file(file); - if(file->_bufsiz) { - free(file->_base); - file->_bufsiz = 0; - file->_cnt = 0; - } - if(mode == _IOFBF) { - file->_flag &= ~_IONBF; - file->_base = file->_ptr = buf; - if(buf) { - file->_bufsiz = size; - } - } else { - file->_flag |= _IONBF; - } - _unlock_file(file); - return 0; + if(!MSVCRT_CHECK_PMT(file != NULL)) return -1; + if(!MSVCRT_CHECK_PMT(mode==_IONBF || mode==_IOFBF || mode==_IOLBF)) return -1; + if(!MSVCRT_CHECK_PMT(mode==_IONBF || (size>=2 && size<=INT_MAX))) return -1; + + _lock_file(file); + + fflush(file); + if(file->_flag & _IOMYBUF) + free(file->_base); + file->_flag &= ~(_IONBF | _IOMYBUF | _USERBUF); + file->_cnt = 0; + + if(mode == _IONBF) { + file->_flag |= _IONBF; + file->_base = file->_ptr = (char*)&file->_charbuf; + file->_bufsiz = 2; + }else if(buf) { + file->_base = file->_ptr = buf; + file->_flag |= _USERBUF; + file->_bufsiz = size; + }else { + file->_base = file->_ptr = malloc(size); + if(!file->_base) { + file->_bufsiz = 0; + _unlock_file(file); + return -1; + } + + file->_flag |= _IOMYBUF; + file->_bufsiz = size; + } + _unlock_file(file); + return 0; } /********************************************************************* @@ -3798,12 +3814,18 @@ FILE* CDECL tmpfile(void) */ int CDECL ungetc(int c, FILE * file) { - if (c == EOF) + if(!MSVCRT_CHECK_PMT(file != NULL)) return EOF; + + if (c == EOF || !(file->_flag&_IOREAD || + (file->_flag&_IORW && !(file->_flag&_IOWRT)))) return EOF; _lock_file(file); - if(file->_bufsiz == 0 && alloc_buffer(file)) + if((!(file->_flag & (_IONBF | _IOMYBUF | _USERBUF)) + && alloc_buffer(file)) + || (!file->_cnt && file->_ptr==file->_base)) file->_ptr++; + if(file->_ptr>file->_base) { file->_ptr--; if(file->_flag & _IOSTRG) { @@ -3817,6 +3839,7 @@ int CDECL ungetc(int c, FILE * file) } file->_cnt++; clearerr(file); + file->_flag |= _IOREAD; _unlock_file(file); return c; } From 2598a46b0109eae78e629026eb0f41fbbeff88ed Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Mon, 13 Oct 2014 17:57:25 +0000 Subject: [PATCH 012/108] [NTFS] So far, keep our NTFS read-only. Booh, that's sad! *sob*. I know. svn path=/trunk/; revision=64732 --- reactos/drivers/filesystems/ntfs/create.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/reactos/drivers/filesystems/ntfs/create.c b/reactos/drivers/filesystems/ntfs/create.c index 858b48998f8..4ebb9d48b15 100644 --- a/reactos/drivers/filesystems/ntfs/create.c +++ b/reactos/drivers/filesystems/ntfs/create.c @@ -243,6 +243,28 @@ NtfsCreateFile(PDEVICE_OBJECT DeviceObject, NtfsCloseFile(DeviceExt, FileObject); return STATUS_NOT_A_DIRECTORY; } + + /* HUGLY HACK: remain RO so far... */ + if (RequestedDisposition == FILE_OVERWRITE || + RequestedDisposition == FILE_OVERWRITE_IF || + RequestedDisposition == FILE_SUPERSEDE) + { + DPRINT1("Denying write request on NTFS volume\n"); + NtfsCloseFile(DeviceExt, FileObject); + return STATUS_ACCESS_DENIED; + } + } + else + { + /* HUGLY HACK: remain RO so far... */ + if (RequestedDisposition == FILE_CREATE || + RequestedDisposition == FILE_OPEN_IF || + RequestedDisposition == FILE_OVERWRITE_IF || + RequestedDisposition == FILE_SUPERSEDE) + { + DPRINT1("Denying write request on NTFS volume\n"); + return STATUS_ACCESS_DENIED; + } } /* From 6d6e0cda0c5d4cbf40716e94201d1cdeb3cc2f76 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 13 Oct 2014 18:08:34 +0000 Subject: [PATCH 013/108] [CRT] * Update free_fd(). * Fixes some msvcrt:file tests. CORE-8540 svn path=/trunk/; revision=64733 --- reactos/lib/sdk/crt/stdio/file.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 1b673bc6230..6327cf6a805 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -233,40 +233,37 @@ static inline BOOL is_valid_fd(int fd) /* INTERNAL: free a file entry fd */ static void free_fd(int fd) { - HANDLE old_handle; ioinfo *fdinfo; LOCK_FILES(); fdinfo = get_ioinfo(fd); - old_handle = fdinfo->handle; if(fdinfo != &__badioinfo) { fdinfo->handle = INVALID_HANDLE_VALUE; fdinfo->wxflag = 0; } TRACE(":fd (%d) freed\n",fd); - if (fd < 3) /* don't use 0,1,2 for user files */ + + if (fd < 3) { switch (fd) { case 0: - if (GetStdHandle(STD_INPUT_HANDLE) == old_handle) SetStdHandle(STD_INPUT_HANDLE, 0); + SetStdHandle(STD_INPUT_HANDLE, 0); break; case 1: - if (GetStdHandle(STD_OUTPUT_HANDLE) == old_handle) SetStdHandle(STD_OUTPUT_HANDLE, 0); + SetStdHandle(STD_OUTPUT_HANDLE, 0); break; case 2: - if (GetStdHandle(STD_ERROR_HANDLE) == old_handle) SetStdHandle(STD_ERROR_HANDLE, 0); + SetStdHandle(STD_ERROR_HANDLE, 0); break; } } - else - { - if (fd == fdend - 1) - fdend--; - if (fd < fdstart) - fdstart = fd; - } + + if (fd == fdend - 1) + fdend--; + if (fd < fdstart) + fdstart = fd; UNLOCK_FILES(); } From 4173674a62103d401b8befd43d7a6ee08ce782bd Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Mon, 13 Oct 2014 18:31:55 +0000 Subject: [PATCH 014/108] [SETUPAPI] Load a property sheet extension dll only once, otherwise we might leak module handles. svn path=/trunk/; revision=64734 --- reactos/dll/win32/setupapi/devclass.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/reactos/dll/win32/setupapi/devclass.c b/reactos/dll/win32/setupapi/devclass.c index 2bdd6e91d9e..60c92fe8fc1 100644 --- a/reactos/dll/win32/setupapi/devclass.c +++ b/reactos/dll/win32/setupapi/devclass.c @@ -1272,14 +1272,22 @@ SetupDiGetClassDevPropertySheetsW( if (DeviceInfoData) { struct DeviceInfo *devInfo = (struct DeviceInfo *)DeviceInfoData->Reserved; - devInfo->hmodDevicePropPageProvider = hModule; - devInfo->pDevicePropPageProvider = pPropPageProvider; + + if (devInfo->hmodDevicePropPageProvider == NULL) + { + devInfo->hmodDevicePropPageProvider = hModule; + devInfo->pDevicePropPageProvider = pPropPageProvider; + } } else { struct DeviceInfoSet *devInfoSet = (struct DeviceInfoSet *)DeviceInfoSet; - devInfoSet->hmodClassPropPageProvider = hModule; - devInfoSet->pClassPropPageProvider = pPropPageProvider; + + if (devInfoSet->hmodClassPropPageProvider == NULL) + { + devInfoSet->hmodClassPropPageProvider = hModule; + devInfoSet->pClassPropPageProvider = pPropPageProvider; + } } InitialNumberOfPages = PropertySheetHeader->nPages; From 8b80957dae7c642c61f6c158083026be411bef52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Mon, 13 Oct 2014 18:47:44 +0000 Subject: [PATCH 015/108] [NTOS/SE] - Use the authentication ID to determine if a token represents a child of the current process. CORE-8631 #resolve #comment the installer now works fine, but chrome fails to start svn path=/trunk/; revision=64735 --- reactos/ntoskrnl/se/token.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/ntoskrnl/se/token.c b/reactos/ntoskrnl/se/token.c index 4acfb34b095..1e56e9ed102 100644 --- a/reactos/ntoskrnl/se/token.c +++ b/reactos/ntoskrnl/se/token.c @@ -571,13 +571,13 @@ SeIsTokenChild(IN PTOKEN Token, ProcessToken = PsReferencePrimaryToken(PsGetCurrentProcess()); /* Get the ID */ - ProcessLuid = ProcessToken->TokenId; + ProcessLuid = ProcessToken->AuthenticationId; /* Dereference the token */ ObFastDereferenceObject(&PsGetCurrentProcess()->Token, ProcessToken); /* Get our LUID */ - CallerLuid = Token->TokenId; + CallerLuid = Token->AuthenticationId; /* Compare the LUIDs */ if (RtlEqualLuid(&CallerLuid, &ProcessLuid)) *IsChild = TRUE; From 4703670a3c19c5e7b78880cfddee460b5f6b7f6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Mon, 13 Oct 2014 18:49:09 +0000 Subject: [PATCH 016/108] [ADVAPI32_APITESTS] - Add a few tests for DuplicateTokenEx svn path=/trunk/; revision=64736 --- rostests/apitests/advapi32/CMakeLists.txt | 1 + rostests/apitests/advapi32/DuplicateTokenEx.c | 63 +++++++++++++++++++ rostests/apitests/advapi32/testlist.c | 2 + 3 files changed, 66 insertions(+) create mode 100644 rostests/apitests/advapi32/DuplicateTokenEx.c diff --git a/rostests/apitests/advapi32/CMakeLists.txt b/rostests/apitests/advapi32/CMakeLists.txt index f148e220060..dd8802967fa 100644 --- a/rostests/apitests/advapi32/CMakeLists.txt +++ b/rostests/apitests/advapi32/CMakeLists.txt @@ -1,6 +1,7 @@ list(APPEND SOURCE CreateService.c + DuplicateTokenEx.c HKEY_CLASSES_ROOT.c LockDatabase.c QueryServiceConfig2.c diff --git a/rostests/apitests/advapi32/DuplicateTokenEx.c b/rostests/apitests/advapi32/DuplicateTokenEx.c new file mode 100644 index 00000000000..b8e64c69570 --- /dev/null +++ b/rostests/apitests/advapi32/DuplicateTokenEx.c @@ -0,0 +1,63 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPLv2+ - See COPYING in the top level directory + * PURPOSE: Test for DupicateTokenEx + * PROGRAMMER: Jérôme Gardou + */ + +#include +#include +#include + +#define ok_luid_equal(Luid, Expected) \ + ok(RtlEqualLuid((Luid), (Expected)), "Got wrong LUID %08lx%08lx, expected (%08lx%08lx).\n", \ + (Luid)->HighPart, (Luid)->LowPart, (Expected)->HighPart, (Expected)->LowPart) +#define ok_luid_notequal(Luid, Comparand) \ + ok(!RtlEqualLuid((Luid), (Comparand)), "LUID is %08lx%08lx and should not be.\n", \ + (Luid)->HighPart, (Luid)->LowPart) + +START_TEST(DuplicateTokenEx) +{ + HANDLE ProcessToken, TokenDup; + TOKEN_STATISTICS ProcessTokenStats, TokenDupStats; + BOOL Result; + DWORD ReturnLength; + + /* Get the current process token */ + Result = OpenProcessToken(GetCurrentProcess(), TOKEN_DUPLICATE | TOKEN_QUERY, &ProcessToken); + ok(Result, "OpenProcessToken failed. GLE: %lu.\n", GetLastError()); + /* And its statistics */ + Result = GetTokenInformation(ProcessToken, + TokenStatistics, + &ProcessTokenStats, + sizeof(ProcessTokenStats), + &ReturnLength); + ok(Result, "GetTokenInformation failed. GLE: %lu.\n", GetLastError()); + ok_size_t(ReturnLength, sizeof(ProcessTokenStats)); + + /* Duplicate it as primary token with the same access rights. */ + Result = DuplicateTokenEx(ProcessToken, 0, NULL, SecurityImpersonation, TokenPrimary, &TokenDup); + ok(Result, "DuplicateTokenEx failed. GLE: %lu.\n", GetLastError()); + /* Get the stats */ + Result = GetTokenInformation(TokenDup, + TokenStatistics, + &TokenDupStats, + sizeof(ProcessTokenStats), + &ReturnLength); + ok(Result, "GetTokenInformation failed. GLE: %lu.\n", GetLastError()); + ok_size_t(ReturnLength, sizeof(ProcessTokenStats)); + /* And test them */ + ok_luid_notequal(&TokenDupStats.TokenId, &ProcessTokenStats.TokenId); + ok_luid_equal(&TokenDupStats.AuthenticationId, &ProcessTokenStats.AuthenticationId); + ok(TokenDupStats.TokenType == TokenPrimary, "Duplicate token type is %d.\n", TokenDupStats.TokenType); + ok(TokenDupStats.ImpersonationLevel == SecurityImpersonation, + "Duplicate token impersonation level is %d.\n", TokenDupStats.ImpersonationLevel); + ok_dec(TokenDupStats.DynamicCharged, ProcessTokenStats.DynamicCharged); + ok_dec(TokenDupStats.DynamicAvailable, ProcessTokenStats.DynamicAvailable); + ok_dec(TokenDupStats.GroupCount, ProcessTokenStats.GroupCount); + ok_dec(TokenDupStats.PrivilegeCount, ProcessTokenStats.PrivilegeCount); + ok_luid_equal(&TokenDupStats.ModifiedId, &ProcessTokenStats.ModifiedId); + + CloseHandle(ProcessToken); + CloseHandle(TokenDup); +} diff --git a/rostests/apitests/advapi32/testlist.c b/rostests/apitests/advapi32/testlist.c index 80ad3d3f2d6..4c35a7b85d9 100644 --- a/rostests/apitests/advapi32/testlist.c +++ b/rostests/apitests/advapi32/testlist.c @@ -4,6 +4,7 @@ #include extern void func_CreateService(void); +extern void func_DuplicateTokenEx(void); extern void func_HKEY_CLASSES_ROOT(void); extern void func_LockDatabase(void); extern void func_QueryServiceConfig2(void); @@ -14,6 +15,7 @@ extern void func_SaferIdentifyLevel(void); const struct test winetest_testlist[] = { { "CreateService", func_CreateService }, + { "DuplicateTokenEx", func_DuplicateTokenEx }, { "HKEY_CLASSES_ROOT", func_HKEY_CLASSES_ROOT }, { "LockDatabase" , func_LockDatabase }, { "QueryServiceConfig2", func_QueryServiceConfig2 }, From 0c4ba28402ad7803d9f67924e81b2dc13e82421d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Mon, 13 Oct 2014 18:51:40 +0000 Subject: [PATCH 017/108] [NTVDM]: it is always interesting to dump the full CPU state when an exception occurs. svn path=/trunk/; revision=64737 --- reactos/subsystems/ntvdm/emulator.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reactos/subsystems/ntvdm/emulator.c b/reactos/subsystems/ntvdm/emulator.c index 84e41bd6942..22eb25e847d 100644 --- a/reactos/subsystems/ntvdm/emulator.c +++ b/reactos/subsystems/ntvdm/emulator.c @@ -167,6 +167,8 @@ VOID EmulatorException(BYTE ExceptionNumber, LPWORD Stack) Opcode[8], Opcode[9]); + Fast486DumpState(&EmulatorContext); + /* Stop the VDM */ EmulatorTerminate(); return; From 628b200fa4ee6dd44a6fb39c02c4074f39b9d68c Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 13 Oct 2014 19:48:08 +0000 Subject: [PATCH 018/108] [CRT] * Update fwrite(). * Fixes some msvcrt:file tests. CORE-8540 svn path=/trunk/; revision=64738 --- reactos/lib/sdk/crt/stdio/file.c | 40 +++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/reactos/lib/sdk/crt/stdio/file.c b/reactos/lib/sdk/crt/stdio/file.c index 6327cf6a805..ff425a484f7 100644 --- a/reactos/lib/sdk/crt/stdio/file.c +++ b/reactos/lib/sdk/crt/stdio/file.c @@ -2972,28 +2972,46 @@ size_t CDECL fwrite(const void *ptr, size_t size, size_t nmemb, FILE* file) _lock_file(file); while(wrcnt) { +#ifndef __REACTOS__ + if(file->_cnt < 0) { + WARN("negative file->_cnt value in %p\n", file); + file->_flag |= MSVCRT__IOERR; + break; + } else +#endif if(file->_cnt) { - int pcnt=((unsigned)file->_cnt>wrcnt)? wrcnt: file->_cnt; + int pcnt=(file->_cnt>wrcnt)? wrcnt: file->_cnt; memcpy(file->_ptr, ptr, pcnt); file->_cnt -= pcnt; file->_ptr += pcnt; written += pcnt; wrcnt -= pcnt; ptr = (const char*)ptr + pcnt; - } else if(!file->_bufsiz && (file->_flag & _IONBF)) { - if(!(file->_flag & _IOWRT)) { - if(file->_flag & _IORW) - file->_flag |= _IOWRT; - else - break; - } + } else if((file->_flag & _IONBF) + || ((file->_flag & (_IOMYBUF | _USERBUF)) && wrcnt >= file->_bufsiz) + || (!(file->_flag & (_IOMYBUF | _USERBUF)) && wrcnt >= MSVCRT_INTERNAL_BUFSIZ)) { + size_t pcnt; + int bufsiz; - if(_write(file->_file, ptr, wrcnt) <= 0) { + if(file->_flag & _IONBF) + bufsiz = 1; + else if(!(file->_flag & (_IOMYBUF | _USERBUF))) + bufsiz = MSVCRT_INTERNAL_BUFSIZ; + else + bufsiz = file->_bufsiz; + + pcnt = (wrcnt / bufsiz) * bufsiz; + + if(flush_buffer(file) == EOF) + break; + + if(_write(file->_file, ptr, pcnt) <= 0) { file->_flag |= _IOERR; break; } - written += wrcnt; - wrcnt = 0; + written += pcnt; + wrcnt -= pcnt; + ptr = (const char*)ptr + pcnt; } else { if(_flsbuf(*(const char*)ptr, file) == EOF) break; From db6be8948b491d14d93e1e142e92a7133fdd3213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Mon, 13 Oct 2014 21:49:01 +0000 Subject: [PATCH 019/108] [FAST486] - Add doc for INT instructions, - Move debug functions to an appropriate file. svn path=/trunk/; revision=64739 --- reactos/lib/fast486/CMakeLists.txt | 1 + reactos/lib/fast486/fast486.c | 147 +--------------- reactos/lib/fast486/fast486dbg.c | 266 +++++++++++++++++++++++++++++ reactos/lib/fast486/opcodes.c | 6 +- 4 files changed, 271 insertions(+), 149 deletions(-) create mode 100644 reactos/lib/fast486/fast486dbg.c diff --git a/reactos/lib/fast486/CMakeLists.txt b/reactos/lib/fast486/CMakeLists.txt index 2fbdb31586f..fd71551de3c 100644 --- a/reactos/lib/fast486/CMakeLists.txt +++ b/reactos/lib/fast486/CMakeLists.txt @@ -3,6 +3,7 @@ include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/fast486) list(APPEND SOURCE fast486.c + fast486dbg.c opcodes.c opgroups.c extraops.c diff --git a/reactos/lib/fast486/fast486.c b/reactos/lib/fast486/fast486.c index 51960b7b30f..9c87a1219fd 100644 --- a/reactos/lib/fast486/fast486.c +++ b/reactos/lib/fast486/fast486.c @@ -43,7 +43,7 @@ typedef enum /* PRIVATE FUNCTIONS **********************************************************/ -static inline VOID +VOID NTAPI Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command) { @@ -277,151 +277,6 @@ Fast486Reset(PFAST486_STATE State) State->Tlb = Tlb; } -VOID -NTAPI -Fast486DumpState(PFAST486_STATE State) -{ - DbgPrint("\nFast486DumpState -->\n"); - DbgPrint("\nCPU currently executing in %s mode at %04X:%08X\n", - (State->ControlRegisters[0] & FAST486_CR0_PE) ? "protected" : "real", - State->SegmentRegs[FAST486_REG_CS].Selector, - State->InstPtr.Long); - DbgPrint("\nGeneral purpose registers:\n" - "EAX = %08X\tECX = %08X\tEDX = %08X\tEBX = %08X\n" - "ESP = %08X\tEBP = %08X\tESI = %08X\tEDI = %08X\n", - State->GeneralRegs[FAST486_REG_EAX].Long, - State->GeneralRegs[FAST486_REG_ECX].Long, - State->GeneralRegs[FAST486_REG_EDX].Long, - State->GeneralRegs[FAST486_REG_EBX].Long, - State->GeneralRegs[FAST486_REG_ESP].Long, - State->GeneralRegs[FAST486_REG_EBP].Long, - State->GeneralRegs[FAST486_REG_ESI].Long, - State->GeneralRegs[FAST486_REG_EDI].Long); - DbgPrint("\nSegment registers:\n" - "ES = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" - "CS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" - "SS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" - "DS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" - "FS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" - "GS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n", - State->SegmentRegs[FAST486_REG_ES].Selector, - State->SegmentRegs[FAST486_REG_ES].Base, - State->SegmentRegs[FAST486_REG_ES].Limit, - State->SegmentRegs[FAST486_REG_ES].Dpl, - State->SegmentRegs[FAST486_REG_CS].Selector, - State->SegmentRegs[FAST486_REG_CS].Base, - State->SegmentRegs[FAST486_REG_CS].Limit, - State->SegmentRegs[FAST486_REG_CS].Dpl, - State->SegmentRegs[FAST486_REG_SS].Selector, - State->SegmentRegs[FAST486_REG_SS].Base, - State->SegmentRegs[FAST486_REG_SS].Limit, - State->SegmentRegs[FAST486_REG_SS].Dpl, - State->SegmentRegs[FAST486_REG_DS].Selector, - State->SegmentRegs[FAST486_REG_DS].Base, - State->SegmentRegs[FAST486_REG_DS].Limit, - State->SegmentRegs[FAST486_REG_DS].Dpl, - State->SegmentRegs[FAST486_REG_FS].Selector, - State->SegmentRegs[FAST486_REG_FS].Base, - State->SegmentRegs[FAST486_REG_FS].Limit, - State->SegmentRegs[FAST486_REG_FS].Dpl, - State->SegmentRegs[FAST486_REG_GS].Selector, - State->SegmentRegs[FAST486_REG_GS].Base, - State->SegmentRegs[FAST486_REG_GS].Limit, - State->SegmentRegs[FAST486_REG_GS].Dpl); - DbgPrint("\nFlags: %08X (%s %s %s %s %s %s %s %s %s %s %s %s %s) Iopl: %u\n", - State->Flags.Long, - State->Flags.Cf ? "CF" : "cf", - State->Flags.Pf ? "PF" : "pf", - State->Flags.Af ? "AF" : "af", - State->Flags.Zf ? "ZF" : "zf", - State->Flags.Sf ? "SF" : "sf", - State->Flags.Tf ? "TF" : "tf", - State->Flags.If ? "IF" : "if", - State->Flags.Df ? "DF" : "df", - State->Flags.Of ? "OF" : "of", - State->Flags.Nt ? "NT" : "nt", - State->Flags.Rf ? "RF" : "rf", - State->Flags.Vm ? "VM" : "vm", - State->Flags.Ac ? "AC" : "ac", - State->Flags.Iopl); - DbgPrint("\nControl Registers:\n" - "CR0 = %08X\tCR2 = %08X\tCR3 = %08X\n", - State->ControlRegisters[FAST486_REG_CR0], - State->ControlRegisters[FAST486_REG_CR2], - State->ControlRegisters[FAST486_REG_CR3]); - DbgPrint("\nDebug Registers:\n" - "DR0 = %08X\tDR1 = %08X\tDR2 = %08X\n" - "DR3 = %08X\tDR4 = %08X\tDR5 = %08X\n", - State->DebugRegisters[FAST486_REG_DR0], - State->DebugRegisters[FAST486_REG_DR1], - State->DebugRegisters[FAST486_REG_DR2], - State->DebugRegisters[FAST486_REG_DR3], - State->DebugRegisters[FAST486_REG_DR4], - State->DebugRegisters[FAST486_REG_DR5]); - -#ifndef FAST486_NO_FPU - DbgPrint("\nFPU Registers:\n" - "ST0 = %04X%016llX\tST1 = %04X%016llX\n" - "ST2 = %04X%016llX\tST3 = %04X%016llX\n" - "ST4 = %04X%016llX\tST5 = %04X%016llX\n" - "ST6 = %04X%016llX\tST7 = %04X%016llX\n" - "Status: %04X\tControl: %04X\tTag: %04X\n", - FPU_ST(0).Exponent | ((USHORT)FPU_ST(0).Sign << 15), - FPU_ST(0).Mantissa, - FPU_ST(1).Exponent | ((USHORT)FPU_ST(1).Sign << 15), - FPU_ST(1).Mantissa, - FPU_ST(2).Exponent | ((USHORT)FPU_ST(2).Sign << 15), - FPU_ST(2).Mantissa, - FPU_ST(3).Exponent | ((USHORT)FPU_ST(3).Sign << 15), - FPU_ST(3).Mantissa, - FPU_ST(4).Exponent | ((USHORT)FPU_ST(4).Sign << 15), - FPU_ST(4).Mantissa, - FPU_ST(5).Exponent | ((USHORT)FPU_ST(5).Sign << 15), - FPU_ST(5).Mantissa, - FPU_ST(6).Exponent | ((USHORT)FPU_ST(6).Sign << 15), - FPU_ST(6).Mantissa, - FPU_ST(7).Exponent | ((USHORT)FPU_ST(7).Sign << 15), - FPU_ST(7).Mantissa, - State->FpuStatus, - State->FpuControl, - State->FpuTag); -#endif - - DbgPrint("\n<-- Fast486DumpState\n\n"); -} - -VOID -NTAPI -Fast486Continue(PFAST486_STATE State) -{ - /* Call the internal function */ - Fast486ExecutionControl(State, FAST486_CONTINUE); -} - -VOID -NTAPI -Fast486StepInto(PFAST486_STATE State) -{ - /* Call the internal function */ - Fast486ExecutionControl(State, FAST486_STEP_INTO); -} - -VOID -NTAPI -Fast486StepOver(PFAST486_STATE State) -{ - /* Call the internal function */ - Fast486ExecutionControl(State, FAST486_STEP_OVER); -} - -VOID -NTAPI -Fast486StepOut(PFAST486_STATE State) -{ - /* Call the internal function */ - Fast486ExecutionControl(State, FAST486_STEP_OUT); -} - VOID NTAPI Fast486Interrupt(PFAST486_STATE State, UCHAR Number) diff --git a/reactos/lib/fast486/fast486dbg.c b/reactos/lib/fast486/fast486dbg.c new file mode 100644 index 00000000000..0e1082083e0 --- /dev/null +++ b/reactos/lib/fast486/fast486dbg.c @@ -0,0 +1,266 @@ +/* + * Fast486 386/486 CPU Emulation Library + * fast486dbg.c + * + * Copyright (C) 2014 Aleksandar Andrejevic + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/* INCLUDES *******************************************************************/ + +#include + +// #define NDEBUG +#include + +#include +#include "common.h" +#include "opcodes.h" +#include "fpu.h" + +/* DEFINES ********************************************************************/ + +typedef enum +{ + FAST486_STEP_INTO, + FAST486_STEP_OVER, + FAST486_STEP_OUT, + FAST486_CONTINUE +} FAST486_EXEC_CMD; + +/* PRIVATE FUNCTIONS **********************************************************/ + +#if 0 +static inline VOID +NTAPI +Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command) +{ + UCHAR Opcode; + FAST486_OPCODE_HANDLER_PROC CurrentHandler; + INT ProcedureCallCount = 0; + + /* Main execution loop */ + do + { +NextInst: + /* Check if this is a new instruction */ + if (State->PrefixFlags == 0) State->SavedInstPtr = State->InstPtr; + + /* Perform an instruction fetch */ + if (!Fast486FetchByte(State, &Opcode)) + { + /* Exception occurred */ + State->PrefixFlags = 0; + continue; + } + + // TODO: Check for CALL/RET to update ProcedureCallCount. + + /* Call the opcode handler */ + CurrentHandler = Fast486OpcodeHandlers[Opcode]; + CurrentHandler(State, Opcode); + + /* If this is a prefix, go to the next instruction immediately */ + if (CurrentHandler == Fast486OpcodePrefix) goto NextInst; + + /* A non-prefix opcode has been executed, reset the prefix flags */ + State->PrefixFlags = 0; + + /* + * Check if there is an interrupt to execute, or a hardware interrupt signal + * while interrupts are enabled. + */ + if (State->IntStatus == FAST486_INT_EXECUTE) + { + /* Perform the interrupt */ + Fast486PerformInterrupt(State, State->PendingIntNum); + + /* Clear the interrupt status */ + State->IntStatus = FAST486_INT_NONE; + } + else if (State->Flags.If && (State->IntStatus == FAST486_INT_SIGNAL) + && (State->IntAckCallback != NULL)) + { + /* Acknowledge the interrupt to get the number */ + State->PendingIntNum = State->IntAckCallback(State); + + /* Set the interrupt status to execute on the next instruction */ + State->IntStatus = FAST486_INT_EXECUTE; + } + else if (State->IntStatus == FAST486_INT_DELAYED) + { + /* Restore the old state */ + State->IntStatus = FAST486_INT_EXECUTE; + } + } + while ((Command == FAST486_CONTINUE) || + (Command == FAST486_STEP_OVER && ProcedureCallCount > 0) || + (Command == FAST486_STEP_OUT && ProcedureCallCount >= 0)); +} +#else +VOID +NTAPI +Fast486ExecutionControl(PFAST486_STATE State, FAST486_EXEC_CMD Command); +#endif + +/* PUBLIC FUNCTIONS ***********************************************************/ + +VOID +NTAPI +Fast486DumpState(PFAST486_STATE State) +{ + DbgPrint("\nFast486DumpState -->\n"); + DbgPrint("\nCPU currently executing in %s mode at %04X:%08X\n", + (State->ControlRegisters[0] & FAST486_CR0_PE) ? "protected" : "real", + State->SegmentRegs[FAST486_REG_CS].Selector, + State->InstPtr.Long); + DbgPrint("\nGeneral purpose registers:\n" + "EAX = %08X\tECX = %08X\tEDX = %08X\tEBX = %08X\n" + "ESP = %08X\tEBP = %08X\tESI = %08X\tEDI = %08X\n", + State->GeneralRegs[FAST486_REG_EAX].Long, + State->GeneralRegs[FAST486_REG_ECX].Long, + State->GeneralRegs[FAST486_REG_EDX].Long, + State->GeneralRegs[FAST486_REG_EBX].Long, + State->GeneralRegs[FAST486_REG_ESP].Long, + State->GeneralRegs[FAST486_REG_EBP].Long, + State->GeneralRegs[FAST486_REG_ESI].Long, + State->GeneralRegs[FAST486_REG_EDI].Long); + DbgPrint("\nSegment registers:\n" + "ES = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" + "CS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" + "SS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" + "DS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" + "FS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n" + "GS = %04X (Base: %08X, Limit: %08X, Dpl: %u)\n", + State->SegmentRegs[FAST486_REG_ES].Selector, + State->SegmentRegs[FAST486_REG_ES].Base, + State->SegmentRegs[FAST486_REG_ES].Limit, + State->SegmentRegs[FAST486_REG_ES].Dpl, + State->SegmentRegs[FAST486_REG_CS].Selector, + State->SegmentRegs[FAST486_REG_CS].Base, + State->SegmentRegs[FAST486_REG_CS].Limit, + State->SegmentRegs[FAST486_REG_CS].Dpl, + State->SegmentRegs[FAST486_REG_SS].Selector, + State->SegmentRegs[FAST486_REG_SS].Base, + State->SegmentRegs[FAST486_REG_SS].Limit, + State->SegmentRegs[FAST486_REG_SS].Dpl, + State->SegmentRegs[FAST486_REG_DS].Selector, + State->SegmentRegs[FAST486_REG_DS].Base, + State->SegmentRegs[FAST486_REG_DS].Limit, + State->SegmentRegs[FAST486_REG_DS].Dpl, + State->SegmentRegs[FAST486_REG_FS].Selector, + State->SegmentRegs[FAST486_REG_FS].Base, + State->SegmentRegs[FAST486_REG_FS].Limit, + State->SegmentRegs[FAST486_REG_FS].Dpl, + State->SegmentRegs[FAST486_REG_GS].Selector, + State->SegmentRegs[FAST486_REG_GS].Base, + State->SegmentRegs[FAST486_REG_GS].Limit, + State->SegmentRegs[FAST486_REG_GS].Dpl); + DbgPrint("\nFlags: %08X (%s %s %s %s %s %s %s %s %s %s %s %s %s) Iopl: %u\n", + State->Flags.Long, + State->Flags.Cf ? "CF" : "cf", + State->Flags.Pf ? "PF" : "pf", + State->Flags.Af ? "AF" : "af", + State->Flags.Zf ? "ZF" : "zf", + State->Flags.Sf ? "SF" : "sf", + State->Flags.Tf ? "TF" : "tf", + State->Flags.If ? "IF" : "if", + State->Flags.Df ? "DF" : "df", + State->Flags.Of ? "OF" : "of", + State->Flags.Nt ? "NT" : "nt", + State->Flags.Rf ? "RF" : "rf", + State->Flags.Vm ? "VM" : "vm", + State->Flags.Ac ? "AC" : "ac", + State->Flags.Iopl); + DbgPrint("\nControl Registers:\n" + "CR0 = %08X\tCR2 = %08X\tCR3 = %08X\n", + State->ControlRegisters[FAST486_REG_CR0], + State->ControlRegisters[FAST486_REG_CR2], + State->ControlRegisters[FAST486_REG_CR3]); + DbgPrint("\nDebug Registers:\n" + "DR0 = %08X\tDR1 = %08X\tDR2 = %08X\n" + "DR3 = %08X\tDR4 = %08X\tDR5 = %08X\n", + State->DebugRegisters[FAST486_REG_DR0], + State->DebugRegisters[FAST486_REG_DR1], + State->DebugRegisters[FAST486_REG_DR2], + State->DebugRegisters[FAST486_REG_DR3], + State->DebugRegisters[FAST486_REG_DR4], + State->DebugRegisters[FAST486_REG_DR5]); + +#ifndef FAST486_NO_FPU + DbgPrint("\nFPU Registers:\n" + "ST0 = %04X%016llX\tST1 = %04X%016llX\n" + "ST2 = %04X%016llX\tST3 = %04X%016llX\n" + "ST4 = %04X%016llX\tST5 = %04X%016llX\n" + "ST6 = %04X%016llX\tST7 = %04X%016llX\n" + "Status: %04X\tControl: %04X\tTag: %04X\n", + FPU_ST(0).Exponent | ((USHORT)FPU_ST(0).Sign << 15), + FPU_ST(0).Mantissa, + FPU_ST(1).Exponent | ((USHORT)FPU_ST(1).Sign << 15), + FPU_ST(1).Mantissa, + FPU_ST(2).Exponent | ((USHORT)FPU_ST(2).Sign << 15), + FPU_ST(2).Mantissa, + FPU_ST(3).Exponent | ((USHORT)FPU_ST(3).Sign << 15), + FPU_ST(3).Mantissa, + FPU_ST(4).Exponent | ((USHORT)FPU_ST(4).Sign << 15), + FPU_ST(4).Mantissa, + FPU_ST(5).Exponent | ((USHORT)FPU_ST(5).Sign << 15), + FPU_ST(5).Mantissa, + FPU_ST(6).Exponent | ((USHORT)FPU_ST(6).Sign << 15), + FPU_ST(6).Mantissa, + FPU_ST(7).Exponent | ((USHORT)FPU_ST(7).Sign << 15), + FPU_ST(7).Mantissa, + State->FpuStatus, + State->FpuControl, + State->FpuTag); +#endif + + DbgPrint("\n<-- Fast486DumpState\n\n"); +} + +VOID +NTAPI +Fast486Continue(PFAST486_STATE State) +{ + /* Call the internal function */ + Fast486ExecutionControl(State, FAST486_CONTINUE); +} + +VOID +NTAPI +Fast486StepInto(PFAST486_STATE State) +{ + /* Call the internal function */ + Fast486ExecutionControl(State, FAST486_STEP_INTO); +} + +VOID +NTAPI +Fast486StepOver(PFAST486_STATE State) +{ + /* Call the internal function */ + Fast486ExecutionControl(State, FAST486_STEP_OVER); +} + +VOID +NTAPI +Fast486StepOut(PFAST486_STATE State) +{ + /* Call the internal function */ + Fast486ExecutionControl(State, FAST486_STEP_OUT); +} + +/* EOF */ diff --git a/reactos/lib/fast486/opcodes.c b/reactos/lib/fast486/opcodes.c index 1d773f90800..a7199887103 100644 --- a/reactos/lib/fast486/opcodes.c +++ b/reactos/lib/fast486/opcodes.c @@ -4630,14 +4630,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInt) switch (Opcode) { - case 0xCC: + case 0xCC: // INT 3 { /* This is the INT3 instruction */ IntNum = 3; break; } - case 0xCD: + case 0xCD: // INT xx { /* Fetch the interrupt number */ if (!Fast486FetchByte(State, &IntNum)) @@ -4649,7 +4649,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInt) break; } - case 0xCE: + case 0xCE: // INTO { /* Don't do anything if OF is cleared */ if (!State->Flags.Of) return TRUE; From 499561d86cb5f1eecf468d3710fe295b0fc99627 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Mon, 13 Oct 2014 22:08:08 +0000 Subject: [PATCH 020/108] [FAST486]: Rename fast486dbg.c to debug.c as per opular demand :P svn path=/trunk/; revision=64740 --- reactos/lib/fast486/CMakeLists.txt | 2 +- reactos/lib/fast486/{fast486dbg.c => debug.c} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename reactos/lib/fast486/{fast486dbg.c => debug.c} (100%) diff --git a/reactos/lib/fast486/CMakeLists.txt b/reactos/lib/fast486/CMakeLists.txt index fd71551de3c..1c995fb9f5a 100644 --- a/reactos/lib/fast486/CMakeLists.txt +++ b/reactos/lib/fast486/CMakeLists.txt @@ -2,8 +2,8 @@ include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/fast486) list(APPEND SOURCE + debug.c fast486.c - fast486dbg.c opcodes.c opgroups.c extraops.c diff --git a/reactos/lib/fast486/fast486dbg.c b/reactos/lib/fast486/debug.c similarity index 100% rename from reactos/lib/fast486/fast486dbg.c rename to reactos/lib/fast486/debug.c From f4e263796c3f9ba639adffce4e58ee14af67a27e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 14 Oct 2014 00:14:56 +0000 Subject: [PATCH 021/108] [NTVDM] - Call CpuUnsimulate in EmulatorTerminate so that we really stop the CPU, before stopping the rest of the VM. - We can reset CpuRunning to TRUE in CpuSimulate *only* if the VM is still running AND the CpuCallLevel is strictly positive (>=1 means, CPU halted or running; ==0 means, CPU stopped). svn path=/trunk/; revision=64741 --- reactos/subsystems/ntvdm/cpu/cpu.c | 16 +++------------- reactos/subsystems/ntvdm/cpu/cpu.h | 1 - reactos/subsystems/ntvdm/emulator.c | 1 + 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/reactos/subsystems/ntvdm/cpu/cpu.c b/reactos/subsystems/ntvdm/cpu/cpu.c index 662edfcb4e0..d9c3940b894 100644 --- a/reactos/subsystems/ntvdm/cpu/cpu.c +++ b/reactos/subsystems/ntvdm/cpu/cpu.c @@ -37,9 +37,7 @@ BOOLEAN CpuRunning = FALSE; /* No more than 'MaxCpuCallLevel' recursive CPU calls are allowed */ static const INT MaxCpuCallLevel = 32; -static INT CpuCallLevel = 0; - -// BOOLEAN VdmRunning = TRUE; +static INT CpuCallLevel = 0; // == 0: CPU stopped; >= 1: CPU running or halted #if 0 LPCWSTR ExceptionName[] = @@ -131,10 +129,10 @@ VOID CpuSimulate(VOID) DPRINT("CpuSimulate <-- Level %d\n", CpuCallLevel); CpuCallLevel--; - if (CpuCallLevel < 0) CpuCallLevel = 0; + if (!VdmRunning || CpuCallLevel < 0) CpuCallLevel = 0; /* This takes into account for reentrance */ - CpuRunning = TRUE; + if (VdmRunning && (CpuCallLevel > 0)) CpuRunning = TRUE; } VOID CpuUnsimulate(VOID) @@ -148,14 +146,6 @@ static VOID WINAPI CpuUnsimulateBop(LPWORD Stack) CpuUnsimulate(); } -#if 0 -VOID EmulatorTerminate(VOID) -{ - /* Stop the VDM */ - VdmRunning = FALSE; -} -#endif - /* PUBLIC FUNCTIONS ***********************************************************/ BOOLEAN CpuInitialize(VOID) diff --git a/reactos/subsystems/ntvdm/cpu/cpu.h b/reactos/subsystems/ntvdm/cpu/cpu.h index fd51b49da4c..d60d30d3d08 100644 --- a/reactos/subsystems/ntvdm/cpu/cpu.h +++ b/reactos/subsystems/ntvdm/cpu/cpu.h @@ -55,7 +55,6 @@ enum }; #endif extern FAST486_STATE EmulatorContext; -// extern BOOLEAN VdmRunning; /* FUNCTIONS ******************************************************************/ diff --git a/reactos/subsystems/ntvdm/emulator.c b/reactos/subsystems/ntvdm/emulator.c index 22eb25e847d..ac98ec6b931 100644 --- a/reactos/subsystems/ntvdm/emulator.c +++ b/reactos/subsystems/ntvdm/emulator.c @@ -177,6 +177,7 @@ VOID EmulatorException(BYTE ExceptionNumber, LPWORD Stack) VOID EmulatorTerminate(VOID) { /* Stop the VDM */ + CpuUnsimulate(); // Halt the CPU VdmRunning = FALSE; } From f8c828f21c7552a5ae3e6352a29ecd621fff1810 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Tue, 14 Oct 2014 18:41:38 +0000 Subject: [PATCH 022/108] [NTFS] - Prepare (only prototype so far) NtfsFindMftRecord() for directory search & enumeration with WC. - Modify CompareFileName() so that comparisons can be done with or without WC. - Fix NtfsLookupFileAt() accordingly svn path=/trunk/; revision=64742 --- reactos/drivers/filesystems/ntfs/mft.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/mft.c b/reactos/drivers/filesystems/ntfs/mft.c index c6add131a11..8deb937e6cb 100644 --- a/reactos/drivers/filesystems/ntfs/mft.c +++ b/reactos/drivers/filesystems/ntfs/mft.c @@ -462,7 +462,8 @@ ReadLCN(PDEVICE_EXTENSION Vcb, BOOLEAN CompareFileName(PUNICODE_STRING FileName, - PINDEX_ENTRY_ATTRIBUTE IndexEntry) + PINDEX_ENTRY_ATTRIBUTE IndexEntry, + BOOLEAN DirSearch) { UNICODE_STRING EntryName; @@ -470,12 +471,24 @@ CompareFileName(PUNICODE_STRING FileName, EntryName.Length = EntryName.MaximumLength = IndexEntry->FileName.NameLength; - return (RtlCompareUnicodeString(FileName, &EntryName, !!(IndexEntry->FileName.NameType != NTFS_FILE_NAME_POSIX)) == TRUE); + if (DirSearch) + { + return FsRtlIsNameInExpression(FileName, &EntryName, (IndexEntry->FileName.NameType != NTFS_FILE_NAME_POSIX), NULL); + } + else + { + return (RtlCompareUnicodeString(FileName, &EntryName, (IndexEntry->FileName.NameType != NTFS_FILE_NAME_POSIX)) == TRUE); + } } NTSTATUS -NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONGLONG MFTIndex, PUNICODE_STRING FileName, ULONGLONG *OutMFTIndex) +NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, + ULONGLONG MFTIndex, + PUNICODE_STRING FileName, + ULONG FirstEntry, + BOOLEAN DirSearch, + ULONGLONG *OutMFTIndex) { PFILE_RECORD_HEADER MftRecord; //ULONG Magic; @@ -530,7 +543,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONGLONG MFTIndex, PUNICODE_STRING Fil while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) { - if (CompareFileName(FileName, IndexEntry)) + if (CompareFileName(FileName, IndexEntry, DirSearch)) { *OutMFTIndex = IndexEntry->Data.Directory.IndexedFile; ExFreePoolWithTag(IndexRecord, TAG_NTFS); @@ -613,7 +626,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONGLONG MFTIndex, PUNICODE_STRING Fil while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) { - if (CompareFileName(FileName, IndexEntry)) + if (CompareFileName(FileName, IndexEntry, DirSearch)) { DPRINT("File found\n"); *OutMFTIndex = IndexEntry->Data.Directory.IndexedFile; @@ -663,7 +676,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, { DPRINT1("Lookup: %wZ\n", &Current); - Status = NtfsFindMftRecord(Vcb, CurrentMFTIndex, &Current, &CurrentMFTIndex); + Status = NtfsFindMftRecord(Vcb, CurrentMFTIndex, &Current, 0, FALSE, &CurrentMFTIndex); if (!NT_SUCCESS(Status)) { return Status; From 1042f3d24d427f266f27be814fff413360c46720 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Tue, 14 Oct 2014 19:11:49 +0000 Subject: [PATCH 023/108] [NTFS] - Also make NtfsFindMftRecord() return the name of the record it found - Implement support for entry enumeration (from 0 or not) in NtfsFindMftRecord() - Experimental fix in NtfsLookupFileAt(), look for the attribute using the name of the record, and not the full path - Implement NtfsFindFileAt() which is used to look for a file/directory using WC in a given directory svn path=/trunk/; revision=64743 --- reactos/drivers/filesystems/ntfs/mft.c | 85 ++++++++++++++++++++++--- reactos/drivers/filesystems/ntfs/ntfs.h | 9 +++ 2 files changed, 84 insertions(+), 10 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/mft.c b/reactos/drivers/filesystems/ntfs/mft.c index 8deb937e6cb..38337bec678 100644 --- a/reactos/drivers/filesystems/ntfs/mft.c +++ b/reactos/drivers/filesystems/ntfs/mft.c @@ -488,7 +488,8 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, PUNICODE_STRING FileName, ULONG FirstEntry, BOOLEAN DirSearch, - ULONGLONG *OutMFTIndex) + ULONGLONG *OutMFTIndex, + PWSTR OutName) { PFILE_RECORD_HEADER MftRecord; //ULONG Magic; @@ -504,6 +505,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONG RecordOffset; ULONG IndexBlockSize; NTSTATUS Status; + ULONG CurrentEntry = 0; MftRecord = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, @@ -543,14 +545,18 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) { - if (CompareFileName(FileName, IndexEntry, DirSearch)) + if (CurrentEntry >= FirstEntry && CompareFileName(FileName, IndexEntry, DirSearch)) { *OutMFTIndex = IndexEntry->Data.Directory.IndexedFile; + RtlCopyMemory(OutName, IndexEntry->FileName.Name, IndexEntry->FileName.NameLength); + OutName[IndexEntry->FileName.NameLength / sizeof(WCHAR)] = UNICODE_NULL; ExFreePoolWithTag(IndexRecord, TAG_NTFS); ExFreePoolWithTag(MftRecord, TAG_NTFS); return STATUS_SUCCESS; } - IndexEntry = (PINDEX_ENTRY_ATTRIBUTE)((PCHAR)IndexEntry + IndexEntry->Length); + + ++CurrentEntry; + IndexEntry = (PINDEX_ENTRY_ATTRIBUTE)((PCHAR)IndexEntry + IndexEntry->Length); } if (IndexRoot->Header.Flags & INDEX_ROOT_LARGE) @@ -626,16 +632,20 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) { - if (CompareFileName(FileName, IndexEntry, DirSearch)) + if (CurrentEntry >= FirstEntry && CompareFileName(FileName, IndexEntry, DirSearch)) { DPRINT("File found\n"); *OutMFTIndex = IndexEntry->Data.Directory.IndexedFile; + RtlCopyMemory(OutName, IndexEntry->FileName.Name, IndexEntry->FileName.NameLength); + OutName[IndexEntry->FileName.NameLength / sizeof(WCHAR)] = UNICODE_NULL; ExFreePoolWithTag(BitmapData, TAG_NTFS); ExFreePoolWithTag(IndexRecord, TAG_NTFS); ExFreePoolWithTag(MftRecord, TAG_NTFS); ReleaseAttributeContext(IndexAllocationCtx); return STATUS_SUCCESS; } + + ++CurrentEntry; IndexEntry = (PINDEX_ENTRY_ATTRIBUTE)((PCHAR)IndexEntry + IndexEntry->Length); } @@ -665,8 +675,9 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, PULONGLONG MFTIndex, ULONGLONG CurrentMFTIndex) { - UNICODE_STRING Current, Remaining; + UNICODE_STRING Current, Remaining, Found; NTSTATUS Status; + WCHAR FoundName[MAX_PATH + 1]; DPRINT1("NtfsLookupFileAt(%p, %wZ, %p, %p, %I64x)\n", Vcb, PathName, FileRecord, DataContext, CurrentMFTIndex); @@ -676,7 +687,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, { DPRINT1("Lookup: %wZ\n", &Current); - Status = NtfsFindMftRecord(Vcb, CurrentMFTIndex, &Current, 0, FALSE, &CurrentMFTIndex); + Status = NtfsFindMftRecord(Vcb, CurrentMFTIndex, &Current, 0, FALSE, &CurrentMFTIndex, FoundName); if (!NT_SUCCESS(Status)) { return Status; @@ -688,22 +699,24 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, *FileRecord = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); if (*FileRecord == NULL) { - DPRINT("NtfsLookupFile: Can't allocate MFT record\n"); + DPRINT("NtfsLookupFileAt: Can't allocate MFT record\n"); return STATUS_INSUFFICIENT_RESOURCES; } Status = ReadFileRecord(Vcb, CurrentMFTIndex, *FileRecord); if (!NT_SUCCESS(Status)) { - DPRINT("NtfsLookupFile: Can't read MFT record\n"); + DPRINT("NtfsLookupFileAt: Can't read MFT record\n"); ExFreePoolWithTag(FileRecord, TAG_NTFS); return Status; } - Status = FindAttribute(Vcb, *FileRecord, AttributeData, PathName, DataContext); + RtlInitUnicodeString(&Found, FoundName); + + Status = FindAttribute(Vcb, *FileRecord, AttributeData, &Found, DataContext); if (!NT_SUCCESS(Status)) { - DPRINT("NtfsLookupFile: Can't find data attribute\n"); + DPRINT("NtfsLookupFileAt: Can't find data attribute\n"); ExFreePoolWithTag(FileRecord, TAG_NTFS); return Status; } @@ -722,4 +735,56 @@ NtfsLookupFile(PDEVICE_EXTENSION Vcb, { return NtfsLookupFileAt(Vcb, PathName, FileRecord, DataContext, MFTIndex, NTFS_FILE_ROOT); } + +NTSTATUS +NtfsFindFileAt(PDEVICE_EXTENSION Vcb, + PUNICODE_STRING SearchPattern, + ULONG FirstEntry, + PFILE_RECORD_HEADER *FileRecord, + PNTFS_ATTR_CONTEXT *DataContext, + PULONGLONG MFTIndex, + ULONGLONG CurrentMFTIndex) +{ + UNICODE_STRING Found; + NTSTATUS Status; + WCHAR FoundName[MAX_PATH + 1]; + + DPRINT1("NtfsFindFileAt(%p, %wZ, %p, %p, %I64x)\n", Vcb, SearchPattern, FileRecord, DataContext, CurrentMFTIndex); + + Status = NtfsFindMftRecord(Vcb, CurrentMFTIndex, SearchPattern, FirstEntry, TRUE, &CurrentMFTIndex, FoundName); + if (!NT_SUCCESS(Status)) + { + return Status; + } + + *FileRecord = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + if (*FileRecord == NULL) + { + DPRINT("NtfsFindFileAt: Can't allocate MFT record\n"); + return STATUS_INSUFFICIENT_RESOURCES; + } + + Status = ReadFileRecord(Vcb, CurrentMFTIndex, *FileRecord); + if (!NT_SUCCESS(Status)) + { + DPRINT("NtfsFindFileAt: Can't read MFT record\n"); + ExFreePoolWithTag(FileRecord, TAG_NTFS); + return Status; + } + + RtlInitUnicodeString(&Found, FoundName); + + Status = FindAttribute(Vcb, *FileRecord, AttributeData, &Found, DataContext); + if (!NT_SUCCESS(Status)) + { + DPRINT("NtfsFindFileAt: Can't find data attribute\n"); + ExFreePoolWithTag(FileRecord, TAG_NTFS); + return Status; + } + + *MFTIndex = CurrentMFTIndex; + + return STATUS_SUCCESS; +} + /* EOF */ diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 6fadaebcb09..7d9143c52b6 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -654,6 +654,15 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, PULONGLONG MFTIndex, ULONGLONG CurrentMFTIndex); +NTSTATUS +NtfsFindFileAt(PDEVICE_EXTENSION Vcb, + PUNICODE_STRING SearchPattern, + ULONG FirstEntry, + PFILE_RECORD_HEADER *FileRecord, + PNTFS_ATTR_CONTEXT *DataContext, + PULONGLONG MFTIndex, + ULONGLONG CurrentMFTIndex); + /* misc.c */ BOOLEAN From 4102165feab98fec61afac2f1bb23dd9e978e5e9 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Tue, 14 Oct 2014 20:34:38 +0000 Subject: [PATCH 024/108] [NTFS] Also return the index of the entry which was found svn path=/trunk/; revision=64744 --- reactos/drivers/filesystems/ntfs/mft.c | 15 +++++++++------ reactos/drivers/filesystems/ntfs/ntfs.h | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/mft.c b/reactos/drivers/filesystems/ntfs/mft.c index 38337bec678..17e5553d005 100644 --- a/reactos/drivers/filesystems/ntfs/mft.c +++ b/reactos/drivers/filesystems/ntfs/mft.c @@ -486,7 +486,7 @@ NTSTATUS NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONGLONG MFTIndex, PUNICODE_STRING FileName, - ULONG FirstEntry, + PULONG FirstEntry, BOOLEAN DirSearch, ULONGLONG *OutMFTIndex, PWSTR OutName) @@ -545,9 +545,10 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) { - if (CurrentEntry >= FirstEntry && CompareFileName(FileName, IndexEntry, DirSearch)) + if (CurrentEntry >= *FirstEntry && CompareFileName(FileName, IndexEntry, DirSearch)) { *OutMFTIndex = IndexEntry->Data.Directory.IndexedFile; + *FirstEntry = CurrentEntry; RtlCopyMemory(OutName, IndexEntry->FileName.Name, IndexEntry->FileName.NameLength); OutName[IndexEntry->FileName.NameLength / sizeof(WCHAR)] = UNICODE_NULL; ExFreePoolWithTag(IndexRecord, TAG_NTFS); @@ -632,10 +633,11 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) { - if (CurrentEntry >= FirstEntry && CompareFileName(FileName, IndexEntry, DirSearch)) + if (CurrentEntry >= *FirstEntry && CompareFileName(FileName, IndexEntry, DirSearch)) { DPRINT("File found\n"); *OutMFTIndex = IndexEntry->Data.Directory.IndexedFile; + *FirstEntry = CurrentEntry; RtlCopyMemory(OutName, IndexEntry->FileName.Name, IndexEntry->FileName.NameLength); OutName[IndexEntry->FileName.NameLength / sizeof(WCHAR)] = UNICODE_NULL; ExFreePoolWithTag(BitmapData, TAG_NTFS); @@ -678,6 +680,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, UNICODE_STRING Current, Remaining, Found; NTSTATUS Status; WCHAR FoundName[MAX_PATH + 1]; + ULONG FirstEntry = 0; DPRINT1("NtfsLookupFileAt(%p, %wZ, %p, %p, %I64x)\n", Vcb, PathName, FileRecord, DataContext, CurrentMFTIndex); @@ -687,7 +690,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, { DPRINT1("Lookup: %wZ\n", &Current); - Status = NtfsFindMftRecord(Vcb, CurrentMFTIndex, &Current, 0, FALSE, &CurrentMFTIndex, FoundName); + Status = NtfsFindMftRecord(Vcb, CurrentMFTIndex, &Current, &FirstEntry, FALSE, &CurrentMFTIndex, FoundName); if (!NT_SUCCESS(Status)) { return Status; @@ -739,7 +742,7 @@ NtfsLookupFile(PDEVICE_EXTENSION Vcb, NTSTATUS NtfsFindFileAt(PDEVICE_EXTENSION Vcb, PUNICODE_STRING SearchPattern, - ULONG FirstEntry, + PULONG FirstEntry, PFILE_RECORD_HEADER *FileRecord, PNTFS_ATTR_CONTEXT *DataContext, PULONGLONG MFTIndex, @@ -749,7 +752,7 @@ NtfsFindFileAt(PDEVICE_EXTENSION Vcb, NTSTATUS Status; WCHAR FoundName[MAX_PATH + 1]; - DPRINT1("NtfsFindFileAt(%p, %wZ, %p, %p, %I64x)\n", Vcb, SearchPattern, FileRecord, DataContext, CurrentMFTIndex); + DPRINT1("NtfsFindFileAt(%p, %wZ, %p, %p, %p, %p, %I64x)\n", Vcb, SearchPattern, FirstEntry, FileRecord, DataContext, MFTIndex, CurrentMFTIndex); Status = NtfsFindMftRecord(Vcb, CurrentMFTIndex, SearchPattern, FirstEntry, TRUE, &CurrentMFTIndex, FoundName); if (!NT_SUCCESS(Status)) diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 7d9143c52b6..1333a249080 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -657,7 +657,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, NTSTATUS NtfsFindFileAt(PDEVICE_EXTENSION Vcb, PUNICODE_STRING SearchPattern, - ULONG FirstEntry, + PULONG FirstEntry, PFILE_RECORD_HEADER *FileRecord, PNTFS_ATTR_CONTEXT *DataContext, PULONGLONG MFTIndex, From 2859d00536a09cc5badfba6e33f629821600737e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 14 Oct 2014 21:51:00 +0000 Subject: [PATCH 025/108] [FAST486] - Invalid extended opcodes get a special handler, so that we are not anymore obliged to check for NULL before running an extended opcode. - To quickly retrieve extended opcode numbers, add their numbers in regard to their handlers. svn path=/trunk/; revision=64745 --- reactos/lib/fast486/extraops.c | 456 +++++++++++++++++---------------- 1 file changed, 234 insertions(+), 222 deletions(-) diff --git a/reactos/lib/fast486/extraops.c b/reactos/lib/fast486/extraops.c index 3496c7ac2ca..12670a46774 100644 --- a/reactos/lib/fast486/extraops.c +++ b/reactos/lib/fast486/extraops.c @@ -37,135 +37,135 @@ FAST486_OPCODE_HANDLER_PROC Fast486ExtendedHandlers[FAST486_NUM_OPCODE_HANDLERS] = { - Fast486OpcodeGroup0F00, + Fast486OpcodeGroup0F00, /* 0x00 - 0x01 */ Fast486OpcodeGroup0F01, - Fast486ExtOpcodeLar, - Fast486ExtOpcodeLsl, - NULL, // Invalid - NULL, // Invalid - Fast486ExtOpcodeClts, - NULL, // Invalid - NULL, // TODO: OPCODE 0x08 NOT IMPLEMENTED - NULL, // TODO: OPCODE 0x09 NOT IMPLEMENTED - NULL, // Invalid - NULL, // Reserved (UD1) - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - Fast486ExtOpcodeStoreControlReg, - Fast486ExtOpcodeStoreDebugReg, - Fast486ExtOpcodeLoadControlReg, - Fast486ExtOpcodeLoadDebugReg, - NULL, // TODO: OPCODE 0x24 NOT IMPLEMENTED - NULL, // Invalid - NULL, // TODO: OPCODE 0x26 NOT IMPLEMENTED - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - Fast486ExtOpcodeConditionalJmp, + Fast486ExtOpcodeLar, /* 0x02 */ + Fast486ExtOpcodeLsl, /* 0x03 */ + Fast486ExtOpcodeInvalid, /* 0x04 - 0x05 */ // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeClts, /* 0x06 */ + Fast486ExtOpcodeInvalid, /* 0x07 */ // Invalid + Fast486ExtOpcodeUnimplemented, // TODO: OPCODE 0x08 NOT IMPLEMENTED + Fast486ExtOpcodeUnimplemented, // TODO: OPCODE 0x09 NOT IMPLEMENTED + Fast486ExtOpcodeInvalid, /* 0x0A */ // Invalid + Fast486ExtOpcode0F0B, /* 0x0B */ // Reserved (UD2) + Fast486ExtOpcodeInvalid, /* 0x0C - 0x1F */ // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeStoreControlReg, /* 0x20 */ + Fast486ExtOpcodeStoreDebugReg, /* 0x21 */ + Fast486ExtOpcodeLoadControlReg, /* 0x22 */ + Fast486ExtOpcodeLoadDebugReg, /* 0x23 */ + Fast486ExtOpcodeUnimplemented, // TODO: OPCODE 0x24 NOT IMPLEMENTED + Fast486ExtOpcodeInvalid, /* 0x25 */ // Invalid + Fast486ExtOpcodeUnimplemented, // TODO: OPCODE 0x26 NOT IMPLEMENTED + Fast486ExtOpcodeInvalid, /* 0x27 - 0x7F */ // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeConditionalJmp, /* 0x80 - 0x8F */ Fast486ExtOpcodeConditionalJmp, Fast486ExtOpcodeConditionalJmp, Fast486ExtOpcodeConditionalJmp, @@ -181,6 +181,7 @@ Fast486ExtendedHandlers[FAST486_NUM_OPCODE_HANDLERS] = Fast486ExtOpcodeConditionalJmp, Fast486ExtOpcodeConditionalJmp, Fast486ExtOpcodeConditionalJmp, + Fast486ExtOpcodeConditionalSet, /* 0x90 - 0x9F */ Fast486ExtOpcodeConditionalSet, Fast486ExtOpcodeConditionalSet, Fast486ExtOpcodeConditionalSet, @@ -196,47 +197,47 @@ Fast486ExtendedHandlers[FAST486_NUM_OPCODE_HANDLERS] = Fast486ExtOpcodeConditionalSet, Fast486ExtOpcodeConditionalSet, Fast486ExtOpcodeConditionalSet, - Fast486ExtOpcodeConditionalSet, - Fast486ExtOpcodePushFs, - Fast486ExtOpcodePopFs, - NULL, // Invalid - Fast486ExtOpcodeBitTest, + Fast486ExtOpcodePushFs, /* 0xA0 */ + Fast486ExtOpcodePopFs, /* 0xA1 */ + Fast486ExtOpcodeInvalid, /* 0xA2 */ // Invalid + Fast486ExtOpcodeBitTest, /* 0xA3 */ + Fast486ExtOpcodeShld, /* 0xA4 - 0xA5 */ Fast486ExtOpcodeShld, - Fast486ExtOpcodeShld, - NULL, // Invalid - NULL, // Invalid - Fast486ExtOpcodePushGs, + Fast486ExtOpcodeInvalid, /* 0xA6 - 0xA7 */ // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodePushGs, /* 0xA8 - 0xA9 */ Fast486ExtOpcodePopGs, - NULL, // Invalid - Fast486ExtOpcodeBts, + Fast486ExtOpcodeInvalid, /* 0xAA */ // Invalid + Fast486ExtOpcodeBts, /* 0xAB */ + Fast486ExtOpcodeShrd, /* 0xAC - 0xAD */ Fast486ExtOpcodeShrd, - Fast486ExtOpcodeShrd, - NULL, // Invalid - Fast486ExtOpcodeImul, - Fast486ExtOpcodeCmpXchgByte, - Fast486ExtOpcodeCmpXchg, - Fast486ExtOpcodeLss, - Fast486ExtOpcodeBtr, + Fast486ExtOpcodeInvalid, /* 0xAE */ // Invalid + Fast486ExtOpcodeImul, /* 0xAF */ + Fast486ExtOpcodeCmpXchgByte, /* 0xB0 */ + Fast486ExtOpcodeCmpXchg, /* 0xB1 */ + Fast486ExtOpcodeLss, /* 0xB2 */ + Fast486ExtOpcodeBtr, /* 0xB3 */ + Fast486ExtOpcodeLfsLgs, /* 0xB4 - 0xB5 */ Fast486ExtOpcodeLfsLgs, - Fast486ExtOpcodeLfsLgs, - Fast486ExtOpcodeMovzxByte, + Fast486ExtOpcodeMovzxByte, /* 0xB6 - 0xB7 */ Fast486ExtOpcodeMovzxWord, - NULL, // Invalid - Fast486OpcodeGroup0FB9, - Fast486OpcodeGroup0FBA, - Fast486ExtOpcodeBtc, - Fast486ExtOpcodeBsf, - Fast486ExtOpcodeBsr, - Fast486ExtOpcodeMovsxByte, + Fast486ExtOpcodeInvalid, /* 0xB8 */ // Invalid + Fast486OpcodeGroup0FB9, /* 0xB9 */ + Fast486OpcodeGroup0FBA, /* 0xBA */ + Fast486ExtOpcodeBtc, /* 0xBB */ + Fast486ExtOpcodeBsf, /* 0xBC */ + Fast486ExtOpcodeBsr, /* 0xBD */ + Fast486ExtOpcodeMovsxByte, /* 0xBE - 0xBF */ Fast486ExtOpcodeMovsxWord, - Fast486ExtOpcodeXaddByte, + Fast486ExtOpcodeXaddByte, /* 0xC0 - 0xC1 */ Fast486ExtOpcodeXadd, - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid + Fast486ExtOpcodeInvalid, /* 0xC2 - 0xC7 */ // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeBswap, /* 0xC8 - 0xCF */ Fast486ExtOpcodeBswap, Fast486ExtOpcodeBswap, Fast486ExtOpcodeBswap, @@ -244,59 +245,79 @@ Fast486ExtendedHandlers[FAST486_NUM_OPCODE_HANDLERS] = Fast486ExtOpcodeBswap, Fast486ExtOpcodeBswap, Fast486ExtOpcodeBswap, - Fast486ExtOpcodeBswap, - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid - NULL, // Invalid + Fast486ExtOpcodeInvalid, /* 0xD0 - 0xFF */ // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid + Fast486ExtOpcodeInvalid, // Invalid }; /* PUBLIC FUNCTIONS ***********************************************************/ +FAST486_OPCODE_HANDLER(Fast486ExtOpcodeInvalid) +{ + DPRINT1("FAST486 -- Extended opcode 0x%02X is INVALID!\n", Opcode); + Fast486Exception(State, FAST486_EXCEPTION_UD); + return FALSE; +} + +FAST486_OPCODE_HANDLER(Fast486ExtOpcodeUnimplemented) +{ + DPRINT1("FAST486 -- Extended opcode 0x%02X is UNIMPLEMENTED\n", Opcode); + // Fast486Exception(State, FAST486_EXCEPTION_UD); + return FALSE; +} + +FAST486_OPCODE_HANDLER(Fast486ExtOpcode0F0B) +{ + /* Reserved opcode (UD2) */ + Fast486Exception(State, FAST486_EXCEPTION_UD); + return FALSE; +} + FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar) { BOOLEAN OperandSize, AddressSize; @@ -2372,17 +2393,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeExtended) return FALSE; } - if (Fast486ExtendedHandlers[SecondOpcode] != NULL) - { - /* Call the extended opcode handler */ - return Fast486ExtendedHandlers[SecondOpcode](State, SecondOpcode); - } - else - { - /* This is not a valid opcode */ - Fast486Exception(State, FAST486_EXCEPTION_UD); - return FALSE; - } + /* Call the extended opcode handler */ + return Fast486ExtendedHandlers[SecondOpcode](State, SecondOpcode); } /* EOF */ From 9718330254dd78bf2b5b2695ce1c886c994bb989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 14 Oct 2014 21:53:07 +0000 Subject: [PATCH 026/108] Forgot this file :) svn path=/trunk/; revision=64746 --- reactos/lib/fast486/extraops.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reactos/lib/fast486/extraops.h b/reactos/lib/fast486/extraops.h index 164219b561f..0a8effd2ef7 100644 --- a/reactos/lib/fast486/extraops.h +++ b/reactos/lib/fast486/extraops.h @@ -26,6 +26,10 @@ /* DEFINES ********************************************************************/ +FAST486_OPCODE_HANDLER(Fast486ExtOpcodeInvalid); +FAST486_OPCODE_HANDLER(Fast486ExtOpcodeUnimplemented); +FAST486_OPCODE_HANDLER(Fast486ExtOpcode0F0B); + FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLar); FAST486_OPCODE_HANDLER(Fast486ExtOpcodeLsl); FAST486_OPCODE_HANDLER(Fast486ExtOpcodeClts); From 1fd3e7e17e4aaf06056c6ea21242f3b6bd97420f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Tue, 14 Oct 2014 22:46:40 +0000 Subject: [PATCH 027/108] [NTVDM]: Zero-fill memory with RtlZeroMemory (that exists also in NT mode), and use sizeof(object) instead of sizeof(type_of_object). svn path=/trunk/; revision=64747 --- reactos/subsystems/ntvdm/dos/dem.c | 6 +++--- reactos/subsystems/ntvdm/dos/dos32krnl/bios.c | 2 +- reactos/subsystems/ntvdm/dos/dos32krnl/dos.c | 12 ++++++------ reactos/subsystems/ntvdm/dos/mouse32.c | 2 +- reactos/subsystems/ntvdm/hardware/cmos.c | 4 ++-- reactos/subsystems/ntvdm/hardware/mouse.c | 3 ++- reactos/subsystems/ntvdm/hardware/vga.c | 8 ++++---- reactos/subsystems/ntvdm/io.c | 4 ++-- 8 files changed, 21 insertions(+), 20 deletions(-) diff --git a/reactos/subsystems/ntvdm/dos/dem.c b/reactos/subsystems/ntvdm/dos/dem.c index 2e20a9c4003..0389ac1863b 100644 --- a/reactos/subsystems/ntvdm/dos/dem.c +++ b/reactos/subsystems/ntvdm/dos/dem.c @@ -134,8 +134,8 @@ static VOID WINAPI DosCmdInterpreterBop(LPWORD Stack) strcpy(CommandLine, "cmd.exe /c "); strcat(CommandLine, Command); - ZeroMemory(&StartupInfo, sizeof(StartupInfo)); - ZeroMemory(&ProcessInformation, sizeof(ProcessInformation)); + RtlZeroMemory(&StartupInfo, sizeof(StartupInfo)); + RtlZeroMemory(&ProcessInformation, sizeof(ProcessInformation)); StartupInfo.cb = sizeof(StartupInfo); @@ -209,7 +209,7 @@ CommandThreadProc(LPVOID Parameter) do { /* Clear the structure */ - ZeroMemory(&CommandInfo, sizeof(CommandInfo)); + RtlZeroMemory(&CommandInfo, sizeof(CommandInfo)); /* Initialize the structure members */ CommandInfo.TaskId = SessionId; diff --git a/reactos/subsystems/ntvdm/dos/dos32krnl/bios.c b/reactos/subsystems/ntvdm/dos/dos32krnl/bios.c index 428807e0699..5c0fbcc7d34 100644 --- a/reactos/subsystems/ntvdm/dos/dos32krnl/bios.c +++ b/reactos/subsystems/ntvdm/dos/dos32krnl/bios.c @@ -168,7 +168,7 @@ BOOLEAN DosBIOSInitialize(VOID) #if 0 /* Clear the current directory buffer */ - ZeroMemory(CurrentDirectories, sizeof(CurrentDirectories)); + RtlZeroMemory(CurrentDirectories, sizeof(CurrentDirectories)); /* Get the current directory */ if (!GetCurrentDirectoryA(MAX_PATH, CurrentDirectory)) diff --git a/reactos/subsystems/ntvdm/dos/dos32krnl/dos.c b/reactos/subsystems/ntvdm/dos/dos32krnl/dos.c index 3b9620589a8..f98ef757ba0 100644 --- a/reactos/subsystems/ntvdm/dos/dos32krnl/dos.c +++ b/reactos/subsystems/ntvdm/dos/dos32krnl/dos.c @@ -860,7 +860,7 @@ VOID DosInitializePsp(WORD PspSegment, LPCSTR CommandLine, WORD ProgramSize, WOR PDOS_PSP PspBlock = SEGMENT_TO_PSP(PspSegment); LPDWORD IntVecTable = (LPDWORD)((ULONG_PTR)BaseAddress); - ZeroMemory(PspBlock, sizeof(DOS_PSP)); + RtlZeroMemory(PspBlock, sizeof(*PspBlock)); /* Set the exit interrupt */ PspBlock->Exit[0] = 0xCD; // int 0x20 @@ -1204,8 +1204,8 @@ WORD DosCreateProcess(DOS_EXEC_TYPE LoadType, } /* Set up the startup info structure */ - ZeroMemory(&StartupInfo, sizeof(STARTUPINFOA)); - StartupInfo.cb = sizeof(STARTUPINFOA); + RtlZeroMemory(&StartupInfo, sizeof(StartupInfo)); + StartupInfo.cb = sizeof(StartupInfo); /* Create the process */ if (!CreateProcessA(ProgramName, @@ -1230,7 +1230,7 @@ WORD DosCreateProcess(DOS_EXEC_TYPE LoadType, case SCS_WOW_BINARY: { /* Clear the structure */ - ZeroMemory(&CommandInfo, sizeof(CommandInfo)); + RtlZeroMemory(&CommandInfo, sizeof(CommandInfo)); /* Initialize the structure members */ CommandInfo.TaskId = SessionId; @@ -1362,7 +1362,7 @@ Done: GetNextVDMCommand(&CommandInfo); /* Clear the structure */ - ZeroMemory(&CommandInfo, sizeof(CommandInfo)); + RtlZeroMemory(&CommandInfo, sizeof(CommandInfo)); /* Update the VDM state of the task */ CommandInfo.TaskId = SessionId; @@ -2901,7 +2901,7 @@ BOOLEAN DosKRNLInitialize(VOID) WCHAR Buffer[256]; /* Clear the current directory buffer */ - ZeroMemory(CurrentDirectories, sizeof(CurrentDirectories)); + RtlZeroMemory(CurrentDirectories, sizeof(CurrentDirectories)); /* Get the current directory */ if (!GetCurrentDirectoryA(MAX_PATH, CurrentDirectory)) diff --git a/reactos/subsystems/ntvdm/dos/mouse32.c b/reactos/subsystems/ntvdm/dos/mouse32.c index 5b0a526844e..acf3f83f951 100644 --- a/reactos/subsystems/ntvdm/dos/mouse32.c +++ b/reactos/subsystems/ntvdm/dos/mouse32.c @@ -665,7 +665,7 @@ VOID MouseBiosUpdateButtons(WORD ButtonState) BOOLEAN DosMouseInitialize(VOID) { /* Clear the state */ - ZeroMemory(&DriverState, sizeof(DriverState)); + RtlZeroMemory(&DriverState, sizeof(DriverState)); /* Initialize the interrupt handler */ RegisterDosInt32(BIOS_MOUSE_INTERRUPT, BiosMouseService); diff --git a/reactos/subsystems/ntvdm/hardware/cmos.c b/reactos/subsystems/ntvdm/hardware/cmos.c index 47306ebcd8d..72393681ded 100644 --- a/reactos/subsystems/ntvdm/hardware/cmos.c +++ b/reactos/subsystems/ntvdm/hardware/cmos.c @@ -428,7 +428,7 @@ VOID CmosInitialize(VOID) ASSERT(hCmosRam == INVALID_HANDLE_VALUE); /* Clear the CMOS memory */ - ZeroMemory(&CmosMemory, sizeof(CmosMemory)); + RtlZeroMemory(&CmosMemory, sizeof(CmosMemory)); /* Always open (and if needed, create) a RAM file with shared access */ SetLastError(0); // For debugging purposes @@ -452,7 +452,7 @@ VOID CmosInitialize(VOID) { /* Bad CMOS Ram file. Reinitialize the CMOS memory. */ DPRINT1("Invalid CMOS file, read bytes %u, expected bytes %u\n", CmosSize, sizeof(CmosMemory)); - ZeroMemory(&CmosMemory, sizeof(CmosMemory)); + RtlZeroMemory(&CmosMemory, sizeof(CmosMemory)); } DPRINT1("CMOS loading %s ; GetLastError() = %u\n", Success ? "succeeded" : "failed", GetLastError()); SetFilePointer(hCmosRam, 0, NULL, FILE_BEGIN); diff --git a/reactos/subsystems/ntvdm/hardware/mouse.c b/reactos/subsystems/ntvdm/hardware/mouse.c index 9c5c84ec7b8..f480d5ba4e5 100644 --- a/reactos/subsystems/ntvdm/hardware/mouse.c +++ b/reactos/subsystems/ntvdm/hardware/mouse.c @@ -12,6 +12,7 @@ #include "mouse.h" #include "ps2.h" +// #include "pic.h" // HACK: For the PS/2 bypass and MOUSE.COM driver direct call #include "dos/mouse32.h" @@ -69,7 +70,7 @@ static VOID MouseReset(VOID) static VOID MouseGetPacket(PMOUSE_PACKET Packet) { /* Clear the packet */ - ZeroMemory(Packet, sizeof(MOUSE_PACKET)); + RtlZeroMemory(Packet, sizeof(*Packet)); Packet->Flags |= MOUSE_ALWAYS_SET; diff --git a/reactos/subsystems/ntvdm/hardware/vga.c b/reactos/subsystems/ntvdm/hardware/vga.c index 2200c574981..94d17b786c5 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.c +++ b/reactos/subsystems/ntvdm/hardware/vga.c @@ -976,8 +976,8 @@ static BOOL VgaEnterGraphicsMode(PCOORD Resolution) } /* Fill the bitmap info header */ - ZeroMemory(&BitmapInfo->bmiHeader, sizeof(BITMAPINFOHEADER)); - BitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + RtlZeroMemory(&BitmapInfo->bmiHeader, sizeof(BitmapInfo->bmiHeader)); + BitmapInfo->bmiHeader.biSize = sizeof(BitmapInfo->bmiHeader); BitmapInfo->bmiHeader.biWidth = Width; BitmapInfo->bmiHeader.biHeight = Height; BitmapInfo->bmiHeader.biBitCount = 8; @@ -1006,7 +1006,7 @@ static BOOL VgaEnterGraphicsMode(PCOORD Resolution) ConsoleMutex = GraphicsBufferInfo.hMutex; /* Clear the framebuffer */ - ZeroMemory(ConsoleFramebuffer, BitmapInfo->bmiHeader.biSizeImage); + RtlZeroMemory(ConsoleFramebuffer, BitmapInfo->bmiHeader.biSizeImage); /* Set the active buffer */ VgaSetActiveScreenBuffer(GraphicsConsoleBuffer); @@ -1901,7 +1901,7 @@ VOID VgaWriteMemory(DWORD Address, LPBYTE Buffer, DWORD Size) VOID VgaClearMemory(VOID) { - ZeroMemory(VgaMemory, sizeof(VgaMemory)); + RtlZeroMemory(VgaMemory, sizeof(VgaMemory)); } VOID VgaResetPalette(VOID) diff --git a/reactos/subsystems/ntvdm/io.c b/reactos/subsystems/ntvdm/io.c index 9a85a114cf5..7fa28918fd0 100644 --- a/reactos/subsystems/ntvdm/io.c +++ b/reactos/subsystems/ntvdm/io.c @@ -342,7 +342,7 @@ VOID UnregisterIoPort(ULONG Port) * the hVdd gets unregistered as well as all the handlers. */ // IoPortProc[Port] = {NULL}; - ZeroMemory(&IoPortProc[Port], sizeof(IoPortProc[Port])); + RtlZeroMemory(&IoPortProc[Port], sizeof(IoPortProc[Port])); } VOID WINAPI @@ -594,7 +594,7 @@ VDDDeInstallIOHook(HANDLE hVdd, * the hVdd gets unregistered as well as all the handlers. */ // IoPortProc[i] = {NULL}; - ZeroMemory(&IoPortProc[i], sizeof(IoPortProc[i])); + RtlZeroMemory(&IoPortProc[i], sizeof(IoPortProc[i])); } /* Go to the next range */ From 724f87c880734b8538a697b60df50cb74b131e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Wed, 15 Oct 2014 00:42:19 +0000 Subject: [PATCH 028/108] [NTVDM]: Implement double-width and double-height separately; used when eg. an app displays in 640*180, etc... svn path=/trunk/; revision=64748 --- reactos/subsystems/ntvdm/hardware/vga.c | 67 +++++++++++++++++-------- 1 file changed, 47 insertions(+), 20 deletions(-) diff --git a/reactos/subsystems/ntvdm/hardware/vga.c b/reactos/subsystems/ntvdm/hardware/vga.c index 94d17b786c5..1e33af5938a 100644 --- a/reactos/subsystems/ntvdm/hardware/vga.c +++ b/reactos/subsystems/ntvdm/hardware/vga.c @@ -240,7 +240,9 @@ static HANDLE TextConsoleBuffer = NULL; /* Graphics mode */ static HANDLE GraphicsConsoleBuffer = NULL; static HANDLE ConsoleMutex = NULL; -static BOOLEAN DoubleVision = FALSE; +/* DoubleVision support */ +static BOOLEAN DoubleWidth = FALSE; +static BOOLEAN DoubleHeight = FALSE; /* * VGA Hardware @@ -964,16 +966,10 @@ static BOOL VgaEnterGraphicsMode(PCOORD Resolution) LONG Height = Resolution->Y; /* Use DoubleVision mode if the resolution is too small */ - if (Width < VGA_MINIMUM_WIDTH && Height < VGA_MINIMUM_HEIGHT) - { - DoubleVision = TRUE; - Width *= 2; - Height *= 2; - } - else - { - DoubleVision = FALSE; - } + DoubleWidth = (Width < VGA_MINIMUM_WIDTH); + if (DoubleWidth) Width *= 2; + DoubleHeight = (Height < VGA_MINIMUM_HEIGHT); + if (DoubleHeight) Height *= 2; /* Fill the bitmap info header */ RtlZeroMemory(&BitmapInfo->bmiHeader, sizeof(BitmapInfo->bmiHeader)); @@ -1036,7 +1032,9 @@ static VOID VgaLeaveGraphicsMode(VOID) ConsoleFramebuffer = NULL; CloseHandle(GraphicsConsoleBuffer); GraphicsConsoleBuffer = NULL; - DoubleVision = FALSE; + + DoubleWidth = FALSE; + DoubleHeight = FALSE; } static BOOL VgaEnterTextMode(PCOORD Resolution) @@ -1307,14 +1305,14 @@ static VOID VgaUpdateFramebuffer(VOID) } /* Take into account DoubleVision mode when checking for pixel updates */ - if (DoubleVision) + if (DoubleWidth && DoubleHeight) { /* Now check if the resulting pixel data has changed */ - if (GraphicsBuffer[(i * Resolution.X * 4) + (j * 2)] != PixelData) + if (GraphicsBuffer[(i * 2 * Resolution.X * 2) + (j * 2)] != PixelData) { /* Yes, write the new value */ - GraphicsBuffer[(i * Resolution.X * 4) + (j * 2)] = PixelData; - GraphicsBuffer[(i * Resolution.X * 4) + (j * 2 + 1)] = PixelData; + GraphicsBuffer[(i * 2 * Resolution.X * 2) + (j * 2)] = PixelData; + GraphicsBuffer[(i * 2 * Resolution.X * 2) + (j * 2 + 1)] = PixelData; GraphicsBuffer[((i * 2 + 1) * Resolution.X * 2) + (j * 2)] = PixelData; GraphicsBuffer[((i * 2 + 1) * Resolution.X * 2) + (j * 2 + 1)] = PixelData; @@ -1322,7 +1320,33 @@ static VOID VgaUpdateFramebuffer(VOID) VgaMarkForUpdate(i, j); } } - else + else if (DoubleWidth && !DoubleHeight) + { + /* Now check if the resulting pixel data has changed */ + if (GraphicsBuffer[(i * Resolution.X * 2) + (j * 2)] != PixelData) + { + /* Yes, write the new value */ + GraphicsBuffer[(i * Resolution.X * 2) + (j * 2)] = PixelData; + GraphicsBuffer[(i * Resolution.X * 2) + (j * 2 + 1)] = PixelData; + + /* Mark the specified pixel as changed */ + VgaMarkForUpdate(i, j); + } + } + else if (!DoubleWidth && DoubleHeight) + { + /* Now check if the resulting pixel data has changed */ + if (GraphicsBuffer[(i * 2 * Resolution.X) + j] != PixelData) + { + /* Yes, write the new value */ + GraphicsBuffer[(i * 2 * Resolution.X) + j] = PixelData; + GraphicsBuffer[((i * 2 + 1) * Resolution.X) + j] = PixelData; + + /* Mark the specified pixel as changed */ + VgaMarkForUpdate(i, j); + } + } + else // if (!DoubleWidth && !DoubleHeight) { /* Now check if the resulting pixel data has changed */ if (GraphicsBuffer[i * Resolution.X + j] != PixelData) @@ -1797,11 +1821,14 @@ VOID VgaRefreshDisplay(VOID) ConsoleBufferHandle = GraphicsConsoleBuffer; /* In DoubleVision mode, scale the update rectangle */ - if (DoubleVision) + if (DoubleWidth) { UpdateRectangle.Left *= 2; - UpdateRectangle.Top *= 2; - UpdateRectangle.Right = UpdateRectangle.Right * 2 + 1; + UpdateRectangle.Right = UpdateRectangle.Right * 2 + 1; + } + if (DoubleHeight) + { + UpdateRectangle.Top *= 2; UpdateRectangle.Bottom = UpdateRectangle.Bottom * 2 + 1; } } From 96b8f1971f1d4c29ba4479ac84012a60595babd8 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Wed, 15 Oct 2014 16:38:13 +0000 Subject: [PATCH 029/108] [PSDK] - Use macro version of RtlUlonglongByteSwap in winternl.h because using the fastcall version causes stack corruption CORE-8632 #resolve svn path=/trunk/; revision=64749 --- reactos/include/psdk/winternl.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reactos/include/psdk/winternl.h b/reactos/include/psdk/winternl.h index 274bff0420c..085dd1b209b 100644 --- a/reactos/include/psdk/winternl.h +++ b/reactos/include/psdk/winternl.h @@ -2310,7 +2310,12 @@ BOOLEAN WINAPI RtlTimeToSecondsSince1970(const LARGE_INTEGER *,LPDWORD); BOOLEAN WINAPI RtlTimeToSecondsSince1980(const LARGE_INTEGER *,LPDWORD); BOOL WINAPI RtlTryEnterCriticalSection(RTL_CRITICAL_SECTION *); +#ifdef __REACTOS__ ULONGLONG __fastcall RtlUlonglongByteSwap(ULONGLONG); +#define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x)) +#else +ULONGLONG __cdecl RtlUlonglongByteSwap(ULONGLONG); +#endif DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING*); NTSTATUS WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING,PCUNICODE_STRING,BOOLEAN); NTSTATUS WINAPI RtlUnicodeStringToInteger(const UNICODE_STRING *,ULONG,ULONG *); From 096445bc16da891b004380c84293cd43671cb66c Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Wed, 15 Oct 2014 17:46:49 +0000 Subject: [PATCH 030/108] [TRANSLATIONS] * Turkish translations update by Erdem Ersoy. CORE-7861 svn path=/trunk/; revision=64750 --- reactos/base/applications/calc/lang/tr-TR.rc | 2 +- .../base/applications/charmap/lang/tr-TR.rc | 2 +- .../base/applications/fontview/lang/tr-TR.rc | 2 +- .../applications/games/spider/lang/tr-TR.rc | 2 +- .../applications/games/winmine/lang/tr-TR.rc | 2 +- .../base/applications/kbswitch/lang/tr-TR.rc | 2 +- .../base/applications/magnify/lang/tr-TR.rc | 2 +- reactos/base/applications/mmc/lang/tr-TR.rc | 2 +- .../mscutils/devmgmt/lang/tr-TR.rc | 2 +- .../mscutils/devmgmt_new/lang/tr-TR.rc | 2 +- .../mscutils/servman/lang/tr-TR.rc | 2 +- .../base/applications/mspaint/lang/tr-TR.rc | 2 +- reactos/base/applications/mstsc/lang/tr-TR.rc | 2 +- .../base/applications/notepad/lang/tr-TR.rc | 2 +- reactos/base/applications/rapps/lang/tr-TR.rc | 2 +- .../applications/regedit/clb/lang/tr-TR.rc | 2 +- .../base/applications/regedit/lang/tr-TR.rc | 2 +- .../screensavers/3dtext/lang/tr-TR.rc | 2 +- .../screensavers/logon/lang/tr-TR.rc | 2 +- .../base/applications/sndvol32/lang/tr-TR.rc | 2 +- .../base/applications/taskmgr/lang/tr-TR.rc | 2 +- reactos/base/applications/wordpad/lang/Tr.rc | 2 +- reactos/base/applications/write/lang/Tr.rc | 2 +- reactos/base/setup/reactos/lang/tr-TR.rc | 2 +- reactos/base/setup/vmwinst/lang/tr-TR.rc | 2 +- reactos/base/setup/welcome/lang/tr-TR.rc | 2 +- reactos/base/shell/explorer-new/lang/tr-TR.rc | 2 +- reactos/base/system/rundll32/lang/tr-TR.rc | 2 +- reactos/base/system/runonce/lang/tr-TR.rc | 2 +- reactos/base/system/userinit/lang/tr-TR.rc | 2 +- reactos/base/system/winlogon/lang/tr-TR.rc | 2 +- reactos/boot/freeldr/fdebug/lang/tr-TR.rc | 2 +- reactos/dll/cpl/access/lang/tr-TR.rc | 2 +- reactos/dll/cpl/appwiz/lang/tr-TR.rc | 2 +- reactos/dll/cpl/console/lang/tr-TR.rc | 2 +- reactos/dll/cpl/desk/lang/tr-TR.rc | 2 +- reactos/dll/cpl/hdwwiz/lang/tr-TR.rc | 2 +- reactos/dll/cpl/inetcpl/lang/tr-TR.rc | 2 +- reactos/dll/cpl/input/lang/tr-TR.rc | 2 +- reactos/dll/cpl/joy/lang/tr-TR.rc | 2 +- reactos/dll/cpl/liccpa/lang/tr-TR.rc | 2 +- reactos/dll/cpl/main/lang/tr-TR.rc | 2 +- reactos/dll/cpl/mmsys/lang/tr-TR.rc | 2 +- reactos/dll/cpl/telephon/lang/tr-TR.rc | 2 +- reactos/dll/cpl/timedate/lang/tr-TR.rc | 2 +- reactos/dll/shellext/deskadp/lang/tr-TR.rc | 2 +- reactos/dll/shellext/deskmon/lang/tr-TR.rc | 2 +- reactos/dll/shellext/slayer/lang/tr-TR.rc | 2 +- reactos/dll/win32/comctl32/lang/comctl_Tr.rc | 2 +- reactos/dll/win32/comdlg32/lang/cdlg_Tr.rc | 2 +- reactos/dll/win32/credui/lang/credui_Tr.rc | 2 +- reactos/dll/win32/crypt32/lang/crypt32_Tr.rc | 2 +- .../dll/win32/cryptdlg/lang/cryptdlg_Tr.rc | 2 +- reactos/dll/win32/lsasrv/lang/tr-TR.rc | 2 +- reactos/dll/win32/mpr/lang/mpr_Tr.rc | 2 +- reactos/dll/win32/msacm32/lang/msacm_Tr.rc | 2 +- reactos/dll/win32/mshtml/lang/Tr.rc | 2 +- reactos/dll/win32/msrle32/lang/msrle_Tr.rc | 2 +- reactos/dll/win32/msvfw32/lang/msvfw32_Tr.rc | 2 +- .../dll/win32/msvidc32/lang/msvidc32_Tr.rc | 2 +- reactos/dll/win32/newdev/lang/tr-TR.rc | 10 +- reactos/dll/win32/oleacc/lang/oleacc_Tr.rc | 64 ++-- reactos/dll/win32/oledlg/lang/oledlg_Tr.rc | 2 +- reactos/dll/win32/rasdlg/lang/tr-TR.rc | 288 +++++++++--------- reactos/dll/win32/wininet/lang/wininet_Tr.rc | 10 +- reactos/dll/win32/wldap32/lang/wldap32_Tr.rc | 2 +- 66 files changed, 248 insertions(+), 248 deletions(-) diff --git a/reactos/base/applications/calc/lang/tr-TR.rc b/reactos/base/applications/calc/lang/tr-TR.rc index ccfcf0276c6..090a4e4b8e6 100644 --- a/reactos/base/applications/calc/lang/tr-TR.rc +++ b/reactos/base/applications/calc/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/charmap/lang/tr-TR.rc b/reactos/base/applications/charmap/lang/tr-TR.rc index d39cf78b400..d341c57e22c 100644 --- a/reactos/base/applications/charmap/lang/tr-TR.rc +++ b/reactos/base/applications/charmap/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/fontview/lang/tr-TR.rc b/reactos/base/applications/fontview/lang/tr-TR.rc index 19755a4f403..f6cb3442d2d 100644 --- a/reactos/base/applications/fontview/lang/tr-TR.rc +++ b/reactos/base/applications/fontview/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE diff --git a/reactos/base/applications/games/spider/lang/tr-TR.rc b/reactos/base/applications/games/spider/lang/tr-TR.rc index 6057b15e5af..29db01e18da 100644 --- a/reactos/base/applications/games/spider/lang/tr-TR.rc +++ b/reactos/base/applications/games/spider/lang/tr-TR.rc @@ -3,7 +3,7 @@ * LICENSE: See COPYING in top level directory * FILE: base/applications/games/spider/lang/tr-TR.rc * PURPOSE: Turkish Resource File for ReactOS Spider Solitaire - * TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/games/winmine/lang/tr-TR.rc b/reactos/base/applications/games/winmine/lang/tr-TR.rc index b099f26c890..3ada667c5d4 100644 --- a/reactos/base/applications/games/winmine/lang/tr-TR.rc +++ b/reactos/base/applications/games/winmine/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATORS: 2006 Fatih Aşıcı, 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATORS: 2006 Fatih Aşıcı; 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/kbswitch/lang/tr-TR.rc b/reactos/base/applications/kbswitch/lang/tr-TR.rc index 612c24585e7..5d8073d811a 100644 --- a/reactos/base/applications/kbswitch/lang/tr-TR.rc +++ b/reactos/base/applications/kbswitch/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/magnify/lang/tr-TR.rc b/reactos/base/applications/magnify/lang/tr-TR.rc index 5eb162d02f0..e7e45fac8ad 100644 --- a/reactos/base/applications/magnify/lang/tr-TR.rc +++ b/reactos/base/applications/magnify/lang/tr-TR.rc @@ -3,7 +3,7 @@ * LICENSE: GPL - See COPYING in the top level directory * FILE: base/applications/magnify/lang/tr-TR.rc * PURPOSE: Turkish Resource File for RecatOS Magnifier - * TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/mmc/lang/tr-TR.rc b/reactos/base/applications/mmc/lang/tr-TR.rc index 517b0249cd1..e8a79119867 100644 --- a/reactos/base/applications/mmc/lang/tr-TR.rc +++ b/reactos/base/applications/mmc/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/mscutils/devmgmt/lang/tr-TR.rc b/reactos/base/applications/mscutils/devmgmt/lang/tr-TR.rc index 76638bff41d..eb84a0ee557 100644 --- a/reactos/base/applications/mscutils/devmgmt/lang/tr-TR.rc +++ b/reactos/base/applications/mscutils/devmgmt/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/mscutils/devmgmt_new/lang/tr-TR.rc b/reactos/base/applications/mscutils/devmgmt_new/lang/tr-TR.rc index 1e8e036f6e1..072db2ad9a8 100644 --- a/reactos/base/applications/mscutils/devmgmt_new/lang/tr-TR.rc +++ b/reactos/base/applications/mscutils/devmgmt_new/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/mscutils/servman/lang/tr-TR.rc b/reactos/base/applications/mscutils/servman/lang/tr-TR.rc index 2735a12be22..247ea5437fe 100644 --- a/reactos/base/applications/mscutils/servman/lang/tr-TR.rc +++ b/reactos/base/applications/mscutils/servman/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/mspaint/lang/tr-TR.rc b/reactos/base/applications/mspaint/lang/tr-TR.rc index 270af868997..efc551b345f 100644 --- a/reactos/base/applications/mspaint/lang/tr-TR.rc +++ b/reactos/base/applications/mspaint/lang/tr-TR.rc @@ -3,7 +3,7 @@ * LICENSE: LGPL * FILE: base/applications/mspaint/lang/tr-TR.rc * PURPOSE: Turkish Resource file for ReactOS Paint - * TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/mstsc/lang/tr-TR.rc b/reactos/base/applications/mstsc/lang/tr-TR.rc index 3944313cd71..da164cf0862 100644 --- a/reactos/base/applications/mstsc/lang/tr-TR.rc +++ b/reactos/base/applications/mstsc/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/notepad/lang/tr-TR.rc b/reactos/base/applications/notepad/lang/tr-TR.rc index 470c2ce968a..14754069dfa 100644 --- a/reactos/base/applications/notepad/lang/tr-TR.rc +++ b/reactos/base/applications/notepad/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATORS: 2012 Arda Tanrıkulu (ardatan) (ardatanrikulu@gmail.com), 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATORS: 2012 Arda Tanrıkulu (ardatan) (ardatanrikulu@gmail.com); 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/rapps/lang/tr-TR.rc b/reactos/base/applications/rapps/lang/tr-TR.rc index 62c9c7fd19b..b9f4051e519 100644 --- a/reactos/base/applications/rapps/lang/tr-TR.rc +++ b/reactos/base/applications/rapps/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/regedit/clb/lang/tr-TR.rc b/reactos/base/applications/regedit/clb/lang/tr-TR.rc index d2fdd97b8f1..89ae8ece682 100644 --- a/reactos/base/applications/regedit/clb/lang/tr-TR.rc +++ b/reactos/base/applications/regedit/clb/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/regedit/lang/tr-TR.rc b/reactos/base/applications/regedit/lang/tr-TR.rc index 86a7b72529d..c990a2d575a 100644 --- a/reactos/base/applications/regedit/lang/tr-TR.rc +++ b/reactos/base/applications/regedit/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/screensavers/3dtext/lang/tr-TR.rc b/reactos/base/applications/screensavers/3dtext/lang/tr-TR.rc index aab24a011c8..986b113549e 100644 --- a/reactos/base/applications/screensavers/3dtext/lang/tr-TR.rc +++ b/reactos/base/applications/screensavers/3dtext/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/screensavers/logon/lang/tr-TR.rc b/reactos/base/applications/screensavers/logon/lang/tr-TR.rc index a0a6c7aa171..187fc403a86 100644 --- a/reactos/base/applications/screensavers/logon/lang/tr-TR.rc +++ b/reactos/base/applications/screensavers/logon/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/sndvol32/lang/tr-TR.rc b/reactos/base/applications/sndvol32/lang/tr-TR.rc index 409507afa5b..f8f9a663bd1 100644 --- a/reactos/base/applications/sndvol32/lang/tr-TR.rc +++ b/reactos/base/applications/sndvol32/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/taskmgr/lang/tr-TR.rc b/reactos/base/applications/taskmgr/lang/tr-TR.rc index 3dc3554f24f..1e56cbc2467 100644 --- a/reactos/base/applications/taskmgr/lang/tr-TR.rc +++ b/reactos/base/applications/taskmgr/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/applications/wordpad/lang/Tr.rc b/reactos/base/applications/wordpad/lang/Tr.rc index 5f8b8d5b219..95a01737ba0 100644 --- a/reactos/base/applications/wordpad/lang/Tr.rc +++ b/reactos/base/applications/wordpad/lang/Tr.rc @@ -1,7 +1,7 @@ /* * Turkish Resources for ReactOS Wordpad * - * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org), 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org); 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/base/applications/write/lang/Tr.rc b/reactos/base/applications/write/lang/Tr.rc index 44f6220d9cd..b806c0f6ce1 100644 --- a/reactos/base/applications/write/lang/Tr.rc +++ b/reactos/base/applications/write/lang/Tr.rc @@ -1,7 +1,7 @@ /* * Turkish Resources for ReactOS Write * - * Copyright: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyright: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/base/setup/reactos/lang/tr-TR.rc b/reactos/base/setup/reactos/lang/tr-TR.rc index 6f21236e7d4..3d26c858242 100644 --- a/reactos/base/setup/reactos/lang/tr-TR.rc +++ b/reactos/base/setup/reactos/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATORS: 2012 Arda Tanrıkulu (ardatan) (ardatanrikulu@gmail.com), 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATORS: 2012 Arda Tanrıkulu (ardatan) (ardatanrikulu@gmail.com); 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/setup/vmwinst/lang/tr-TR.rc b/reactos/base/setup/vmwinst/lang/tr-TR.rc index 4bbf06b54cd..241be142c9e 100644 --- a/reactos/base/setup/vmwinst/lang/tr-TR.rc +++ b/reactos/base/setup/vmwinst/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/setup/welcome/lang/tr-TR.rc b/reactos/base/setup/welcome/lang/tr-TR.rc index abde0ea6344..211cc08e17f 100644 --- a/reactos/base/setup/welcome/lang/tr-TR.rc +++ b/reactos/base/setup/welcome/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/shell/explorer-new/lang/tr-TR.rc b/reactos/base/shell/explorer-new/lang/tr-TR.rc index 95ea9523ca6..85c6722a24e 100644 --- a/reactos/base/shell/explorer-new/lang/tr-TR.rc +++ b/reactos/base/shell/explorer-new/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/system/rundll32/lang/tr-TR.rc b/reactos/base/system/rundll32/lang/tr-TR.rc index e33c668bc4e..1bb23f64cae 100644 --- a/reactos/base/system/rundll32/lang/tr-TR.rc +++ b/reactos/base/system/rundll32/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE diff --git a/reactos/base/system/runonce/lang/tr-TR.rc b/reactos/base/system/runonce/lang/tr-TR.rc index 76de1eab405..c5b5060f49c 100644 --- a/reactos/base/system/runonce/lang/tr-TR.rc +++ b/reactos/base/system/runonce/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/system/userinit/lang/tr-TR.rc b/reactos/base/system/userinit/lang/tr-TR.rc index 870c00f1342..c1959d3778e 100644 --- a/reactos/base/system/userinit/lang/tr-TR.rc +++ b/reactos/base/system/userinit/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/base/system/winlogon/lang/tr-TR.rc b/reactos/base/system/winlogon/lang/tr-TR.rc index 3ed9b5e12f6..1cb112ff8bc 100644 --- a/reactos/base/system/winlogon/lang/tr-TR.rc +++ b/reactos/base/system/winlogon/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/boot/freeldr/fdebug/lang/tr-TR.rc b/reactos/boot/freeldr/fdebug/lang/tr-TR.rc index 0f577efb25d..96935a1b1a6 100644 --- a/reactos/boot/freeldr/fdebug/lang/tr-TR.rc +++ b/reactos/boot/freeldr/fdebug/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATORS: 2005 un.real, 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATORS: 2005 un.real; 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/access/lang/tr-TR.rc b/reactos/dll/cpl/access/lang/tr-TR.rc index 09f8bde2d4d..d040802edcc 100644 --- a/reactos/dll/cpl/access/lang/tr-TR.rc +++ b/reactos/dll/cpl/access/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/appwiz/lang/tr-TR.rc b/reactos/dll/cpl/appwiz/lang/tr-TR.rc index 81322807f44..b800c3b38ee 100644 --- a/reactos/dll/cpl/appwiz/lang/tr-TR.rc +++ b/reactos/dll/cpl/appwiz/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/console/lang/tr-TR.rc b/reactos/dll/cpl/console/lang/tr-TR.rc index 568d28d4dd6..76652dbe66a 100644 --- a/reactos/dll/cpl/console/lang/tr-TR.rc +++ b/reactos/dll/cpl/console/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/desk/lang/tr-TR.rc b/reactos/dll/cpl/desk/lang/tr-TR.rc index b18abe4ec58..5ca4e40980b 100644 --- a/reactos/dll/cpl/desk/lang/tr-TR.rc +++ b/reactos/dll/cpl/desk/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/hdwwiz/lang/tr-TR.rc b/reactos/dll/cpl/hdwwiz/lang/tr-TR.rc index 600dc04faf0..da1c959ab58 100644 --- a/reactos/dll/cpl/hdwwiz/lang/tr-TR.rc +++ b/reactos/dll/cpl/hdwwiz/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/inetcpl/lang/tr-TR.rc b/reactos/dll/cpl/inetcpl/lang/tr-TR.rc index aa5101a2617..d8d66fdb42f 100644 --- a/reactos/dll/cpl/inetcpl/lang/tr-TR.rc +++ b/reactos/dll/cpl/inetcpl/lang/tr-TR.rc @@ -1,7 +1,7 @@ /* * Turkish resources for the Internet control panel applet * - * Copyright: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyright: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/cpl/input/lang/tr-TR.rc b/reactos/dll/cpl/input/lang/tr-TR.rc index 2518f713420..59c2a56e49a 100644 --- a/reactos/dll/cpl/input/lang/tr-TR.rc +++ b/reactos/dll/cpl/input/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/joy/lang/tr-TR.rc b/reactos/dll/cpl/joy/lang/tr-TR.rc index 95a051e7c81..2983b7b5632 100644 --- a/reactos/dll/cpl/joy/lang/tr-TR.rc +++ b/reactos/dll/cpl/joy/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/liccpa/lang/tr-TR.rc b/reactos/dll/cpl/liccpa/lang/tr-TR.rc index 6468a60eb50..4926eeae6d8 100644 --- a/reactos/dll/cpl/liccpa/lang/tr-TR.rc +++ b/reactos/dll/cpl/liccpa/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/main/lang/tr-TR.rc b/reactos/dll/cpl/main/lang/tr-TR.rc index 35c8618ef23..15af6afd77e 100644 --- a/reactos/dll/cpl/main/lang/tr-TR.rc +++ b/reactos/dll/cpl/main/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/mmsys/lang/tr-TR.rc b/reactos/dll/cpl/mmsys/lang/tr-TR.rc index b83bb8dafad..9e5ee5b82e5 100644 --- a/reactos/dll/cpl/mmsys/lang/tr-TR.rc +++ b/reactos/dll/cpl/mmsys/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/telephon/lang/tr-TR.rc b/reactos/dll/cpl/telephon/lang/tr-TR.rc index 6c7a5fecf57..21cc3b6eb8a 100644 --- a/reactos/dll/cpl/telephon/lang/tr-TR.rc +++ b/reactos/dll/cpl/telephon/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/cpl/timedate/lang/tr-TR.rc b/reactos/dll/cpl/timedate/lang/tr-TR.rc index 70843749209..0747b2a61f0 100644 --- a/reactos/dll/cpl/timedate/lang/tr-TR.rc +++ b/reactos/dll/cpl/timedate/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/shellext/deskadp/lang/tr-TR.rc b/reactos/dll/shellext/deskadp/lang/tr-TR.rc index 18cac87dbfe..9ffebb83099 100644 --- a/reactos/dll/shellext/deskadp/lang/tr-TR.rc +++ b/reactos/dll/shellext/deskadp/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/shellext/deskmon/lang/tr-TR.rc b/reactos/dll/shellext/deskmon/lang/tr-TR.rc index 0ceebe57658..725392cfd04 100644 --- a/reactos/dll/shellext/deskmon/lang/tr-TR.rc +++ b/reactos/dll/shellext/deskmon/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/shellext/slayer/lang/tr-TR.rc b/reactos/dll/shellext/slayer/lang/tr-TR.rc index ef63fc31e95..5d4de0cbfa9 100644 --- a/reactos/dll/shellext/slayer/lang/tr-TR.rc +++ b/reactos/dll/shellext/slayer/lang/tr-TR.rc @@ -1,4 +1,4 @@ -/* TRANSLATOR: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ +/* TRANSLATOR: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) */ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT diff --git a/reactos/dll/win32/comctl32/lang/comctl_Tr.rc b/reactos/dll/win32/comctl32/lang/comctl_Tr.rc index 4b90ca605bf..567a49da635 100644 --- a/reactos/dll/win32/comctl32/lang/comctl_Tr.rc +++ b/reactos/dll/win32/comctl32/lang/comctl_Tr.rc @@ -1,7 +1,7 @@ /* * Top level resource file for Common Controls * - * Copyrights: 2006 Fatih Aşıcı; 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı; 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/comdlg32/lang/cdlg_Tr.rc b/reactos/dll/win32/comdlg32/lang/cdlg_Tr.rc index 4ab43385465..e86f6e8e771 100644 --- a/reactos/dll/win32/comdlg32/lang/cdlg_Tr.rc +++ b/reactos/dll/win32/comdlg32/lang/cdlg_Tr.rc @@ -1,7 +1,7 @@ /* * Resources for Common Dialogs * - * Copyrights: 2006 Fatih Aşıcı; 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı; 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/credui/lang/credui_Tr.rc b/reactos/dll/win32/credui/lang/credui_Tr.rc index a9eb7d89879..2674d16ea2c 100644 --- a/reactos/dll/win32/credui/lang/credui_Tr.rc +++ b/reactos/dll/win32/credui/lang/credui_Tr.rc @@ -1,7 +1,7 @@ /* * Turkish language resource file for Credentials UI * - * Copyright: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyright: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/crypt32/lang/crypt32_Tr.rc b/reactos/dll/win32/crypt32/lang/crypt32_Tr.rc index 8591f8a2568..a4ddb7b29a0 100644 --- a/reactos/dll/win32/crypt32/lang/crypt32_Tr.rc +++ b/reactos/dll/win32/crypt32/lang/crypt32_Tr.rc @@ -1,7 +1,7 @@ /* * crypt32 dll resources * - * Copyright: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyright: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/cryptdlg/lang/cryptdlg_Tr.rc b/reactos/dll/win32/cryptdlg/lang/cryptdlg_Tr.rc index 341fe2d7f4e..af5b4e8ba8e 100644 --- a/reactos/dll/win32/cryptdlg/lang/cryptdlg_Tr.rc +++ b/reactos/dll/win32/cryptdlg/lang/cryptdlg_Tr.rc @@ -1,7 +1,7 @@ /* * cryptdlg dll resources * - * Copyright: 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyright: 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/lsasrv/lang/tr-TR.rc b/reactos/dll/win32/lsasrv/lang/tr-TR.rc index a8272980dac..3ed347f611b 100644 --- a/reactos/dll/win32/lsasrv/lang/tr-TR.rc +++ b/reactos/dll/win32/lsasrv/lang/tr-TR.rc @@ -6,7 +6,7 @@ STRINGTABLE BEGIN IDS_NT_AUTHORITY "NT YETKİLİSİ" IDS_NULL_RID "BOŞ SID" - IDS_WORLD_RID "Herkes" + IDS_WORLD_RID "Tüm Kişiler" IDS_LOCAL_RID "YERLİ" IDS_CREATOR_OWNER_RID "OLUŞTURUCU İYE" IDS_CREATOR_GROUP_RID "OLUŞTURUCU TAKIM" diff --git a/reactos/dll/win32/mpr/lang/mpr_Tr.rc b/reactos/dll/win32/mpr/lang/mpr_Tr.rc index 9bfc624e039..3da678700f9 100644 --- a/reactos/dll/win32/mpr/lang/mpr_Tr.rc +++ b/reactos/dll/win32/mpr/lang/mpr_Tr.rc @@ -1,7 +1,7 @@ /* * MPR dll resources for Turkish * - * Copyrights: 2006 Fatih Aşıcı; 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/msacm32/lang/msacm_Tr.rc b/reactos/dll/win32/msacm32/lang/msacm_Tr.rc index 6b6547d5abe..ca43b3a8bd5 100644 --- a/reactos/dll/win32/msacm32/lang/msacm_Tr.rc +++ b/reactos/dll/win32/msacm32/lang/msacm_Tr.rc @@ -1,7 +1,7 @@ /* * Turkish resource file for MS ACM * - * Copyrights: 2006 Fatih Aşıcı; 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/mshtml/lang/Tr.rc b/reactos/dll/win32/mshtml/lang/Tr.rc index 88d2e38ae3e..b5e0a5d3551 100644 --- a/reactos/dll/win32/mshtml/lang/Tr.rc +++ b/reactos/dll/win32/mshtml/lang/Tr.rc @@ -1,5 +1,5 @@ /* - * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org), 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org); 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/msrle32/lang/msrle_Tr.rc b/reactos/dll/win32/msrle32/lang/msrle_Tr.rc index 215c739123a..cfdc1e727c4 100644 --- a/reactos/dll/win32/msrle32/lang/msrle_Tr.rc +++ b/reactos/dll/win32/msrle32/lang/msrle_Tr.rc @@ -1,7 +1,7 @@ /* * Turkish resource file for MS-RLE * - * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org), 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org); 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/msvfw32/lang/msvfw32_Tr.rc b/reactos/dll/win32/msvfw32/lang/msvfw32_Tr.rc index 6aaa96a3cd2..1cc75e13944 100644 --- a/reactos/dll/win32/msvfw32/lang/msvfw32_Tr.rc +++ b/reactos/dll/win32/msvfw32/lang/msvfw32_Tr.rc @@ -1,7 +1,7 @@ /* * Turkish Resources * - * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org), 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org); 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/msvidc32/lang/msvidc32_Tr.rc b/reactos/dll/win32/msvidc32/lang/msvidc32_Tr.rc index 162ef437ac6..f1973c41d1a 100644 --- a/reactos/dll/win32/msvidc32/lang/msvidc32_Tr.rc +++ b/reactos/dll/win32/msvidc32/lang/msvidc32_Tr.rc @@ -1,7 +1,7 @@ /* * Turkish Resources * - * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org), 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org); 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/newdev/lang/tr-TR.rc b/reactos/dll/win32/newdev/lang/tr-TR.rc index 3c8f9335f1a..647da2482aa 100644 --- a/reactos/dll/win32/newdev/lang/tr-TR.rc +++ b/reactos/dll/win32/newdev/lang/tr-TR.rc @@ -90,9 +90,9 @@ END STRINGTABLE BEGIN - IDS_INSTALLWIZARDTITLE "New hardware wizard" - IDS_UPDATEWIZARDTITLE "Update driver wizard" - IDS_CHSOURCE_TITLE "Choose search and install options" - IDS_SEARCHDRV_TITLE "Searching..." - IDS_INSTALLDRV_TITLE "Installing..." + IDS_INSTALLWIZARDTITLE "Yeni Donanım Yardımcısı" + IDS_UPDATEWIZARDTITLE "Sürücü Şimdikileştirme Yardımcısı" + IDS_CHSOURCE_TITLE "Arama ve Kurma Seçeneklerini Seç" + IDS_SEARCHDRV_TITLE "Arıyor..." + IDS_INSTALLDRV_TITLE "Kuruyor..." END diff --git a/reactos/dll/win32/oleacc/lang/oleacc_Tr.rc b/reactos/dll/win32/oleacc/lang/oleacc_Tr.rc index b2968f114a3..ca2765eccb5 100644 --- a/reactos/dll/win32/oleacc/lang/oleacc_Tr.rc +++ b/reactos/dll/win32/oleacc/lang/oleacc_Tr.rc @@ -88,36 +88,36 @@ STRINGTABLE ROLE_SYSTEM_IPADDRESS "IP adresi" ROLE_SYSTEM_OUTLINEBUTTON "anaçizgi düğmesi" - IDS_STATE_NORMAL "normal" - IDS_STATE_UNAVAILABLE "unavailable" - IDS_STATE_SELECTED "selected" - IDS_STATE_FOCUSED "focused" - IDS_STATE_PRESSED "pressed" - IDS_STATE_CHECKED "checked" - IDS_STATE_MIXED "mixed" - IDS_STATE_READONLY "read only" - IDS_STATE_HOTTRACKED "hot tracked" - IDS_STATE_DEFAULT "default" - IDS_STATE_EXPANDED "expanded" - IDS_STATE_COLLAPSED "collapsed" - IDS_STATE_BUSY "busy" - IDS_STATE_FLOATING "floating" - IDS_STATE_MARQUEED "marqueed" - IDS_STATE_ANIMATED "animated" - IDS_STATE_INVISIBLE "invisible" - IDS_STATE_OFFSCREEN "offscreen" - IDS_STATE_SIZEABLE "sizeable" - IDS_STATE_MOVEABLE "moveable" - IDS_STATE_SELFVOICING "self voicing" - IDS_STATE_FOCUSABLE "focusable" - IDS_STATE_SELECTABLE "selectable" - IDS_STATE_LINKED "linked" - IDS_STATE_TRAVERSED "traversed" - IDS_STATE_MULTISELECTABLE "multi selectable" - IDS_STATE_EXTSELECTABLE "extended selectable" - IDS_STATE_ALERT_LOW "alert low" - IDS_STATE_ALERT_MEDIUM "alert medium" - IDS_STATE_ALERT_HIGH "alert high" - IDS_STATE_PROTECTED "protected" - IDS_STATE_HASPOPUP "has popup" + IDS_STATE_NORMAL "düzgülü" + IDS_STATE_UNAVAILABLE "kullanılamaz" + IDS_STATE_SELECTED "seçili" + IDS_STATE_FOCUSED "odaklı" + IDS_STATE_PRESSED "basılı" + IDS_STATE_CHECKED "imli" + IDS_STATE_MIXED "karışık" + IDS_STATE_READONLY "yalnızca okunur" + IDS_STATE_HOTTRACKED "yakından izlenen" + IDS_STATE_DEFAULT "ön tanımlı" + IDS_STATE_EXPANDED "genişletilmiş" + IDS_STATE_COLLAPSED "daraltılmış" + IDS_STATE_BUSY "dolu" + IDS_STATE_FLOATING "değişen" + IDS_STATE_MARQUEED "asılı" + IDS_STATE_ANIMATED "devingen" + IDS_STATE_INVISIBLE "görünmez" + IDS_STATE_OFFSCREEN "görüntülük dışı" + IDS_STATE_SIZEABLE "boyutlandırılabilir" + IDS_STATE_MOVEABLE "taşınabilir" + IDS_STATE_SELFVOICING "kendinden sesli" + IDS_STATE_FOCUSABLE "odaklanılabilir" + IDS_STATE_SELECTABLE "seçilebilir" + IDS_STATE_LINKED "bağlanmış" + IDS_STATE_TRAVERSED "geçmiş" + IDS_STATE_MULTISELECTABLE "çoklu seçilebilir" + IDS_STATE_EXTSELECTABLE "genişletilmiş seçilebilir" + IDS_STATE_ALERT_LOW "uyarı düşük" + IDS_STATE_ALERT_MEDIUM "uyarı orta" + IDS_STATE_ALERT_HIGH "uyarı yüksek" + IDS_STATE_PROTECTED "korunan" + IDS_STATE_HASPOPUP "açılanı var" } diff --git a/reactos/dll/win32/oledlg/lang/oledlg_Tr.rc b/reactos/dll/win32/oledlg/lang/oledlg_Tr.rc index 46ffb1d5a5b..ccdf370cafb 100644 --- a/reactos/dll/win32/oledlg/lang/oledlg_Tr.rc +++ b/reactos/dll/win32/oledlg/lang/oledlg_Tr.rc @@ -1,7 +1,7 @@ /* * Turkish Resources * - * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org), 2013 Erdem Ersoy (eersoy93) (erdemersoy@live.com) + * Copyrights: 2006 Fatih Aşıcı (fasici@linux-sevenler.org); 2013, 2014 Erdem Ersoy (eersoy93) (erdemersoy@live.com) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/reactos/dll/win32/rasdlg/lang/tr-TR.rc b/reactos/dll/win32/rasdlg/lang/tr-TR.rc index fa9178be6f8..13cfa52913d 100644 --- a/reactos/dll/win32/rasdlg/lang/tr-TR.rc +++ b/reactos/dll/win32/rasdlg/lang/tr-TR.rc @@ -37,309 +37,309 @@ END 104 DIALOGEX 6, 18, 269, 263 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Line Bundling Errors" +CAPTION "Geçek Donatılma Yanlışlıkları" FONT 8, "MS Shell Dlg" BEGIN ICON 32516, 1031, 7, 7, 20, 20 - LTEXT "One or more additional lines did not connect. ", 1033, 37, 8, 216, 20 + LTEXT "Bir ya da daha çok ek geçek bağlanmadı.", 1033, 37, 8, 216, 20 CONTROL "", 1032, "SYSLISTVIEW32", WS_BORDER | WS_TABSTOP | 0x00008401, 37, 83, 224, 136 - AUTOCHECKBOX "&Do not attempt failed lines in the future", 1030, 38, 226, 222, 10 - DEFPUSHBUTTON "&Accept", 1, 135, 242, 60, 14 - PUSHBUTTON "&Hang Up", 2, 201, 242, 60, 14 - LTEXT "If only a single line connected, the server may not be configured to accept multi-link calls. Check 'Do not attempt failed lines' to avoid unnecessary connection charges in such a case.", -1, 37, 36, 224, 44 + AUTOCHECKBOX "&İleride, Olmayan Geçekleri Deneme", 1030, 38, 226, 222, 10 + DEFPUSHBUTTON "&Onayla", 1, 135, 242, 60, 14 + PUSHBUTTON "&Ertele", 2, 201, 242, 60, 14 + LTEXT "Eğer yalnızca bir tek geçek bağlıysa sunucu çoklu bağlantılı aramaları kabul etmeye yapılandırılmamış olabilir. Böyle bir durumda gereksiz bağlantı görevlerinden kaçınmak için ""İleride, Olmayan Geçekleri Deneme""yi imleyiniz.", -1, 37, 36, 224, 44 END 105 DIALOGEX 0, 0, 261, 253 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Advanced Security Settings" +CAPTION "Gelişmiş Güvenlik Ayarları" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Logon security", 1547, 7, 33, 246, 191 - LTEXT "&Data encryption:", 1546, 7, 5, 247, 10 + GROUPBOX "Oturum Açma Güvenliği", 1547, 7, 33, 246, 191 + LTEXT "&Veri Çözme:", 1546, 7, 5, 247, 10 COMBOBOX 1495, 7, 17, 247, 76, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - AUTORADIOBUTTON "Use &Extensible Authentication Protocol (EAP)", 1544, 17, 47, 226, 8, WS_GROUP - LTEXT "EAP Type", -1, 18, 64, 35, 8, NOT WS_VISIBLE | NOT WS_GROUP + AUTORADIOBUTTON "&Genişletilebilir Kimlik Doğrulama İletşim Kâidesi'ni (EAP'yi) Kullan", 1544, 17, 47, 226, 8, WS_GROUP + LTEXT "EAP Türü", -1, 18, 64, 35, 8, NOT WS_VISIBLE | NOT WS_GROUP COMBOBOX 1034, 53, 62, 191, 42, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP - PUSHBUTTON "P&roperties", 1035, 184, 77, 60, 14 - AUTORADIOBUTTON "Allow these &protocols", 1545, 17, 92, 224, 10 - AUTOCHECKBOX "&Unencrypted password (PAP)", 1491, 28, 105, 215, 10, BS_TOP | BS_MULTILINE | WS_GROUP - AUTOCHECKBOX "&Shiva Password Authentication Protocol (SPAP)", 1496, 28, 119, 214, 10, BS_TOP | BS_MULTILINE - AUTOCHECKBOX "&Challenge Handshake Authentication Protocol (CHAP)", 1494, 28, 133, 215, 10, BS_TOP | BS_MULTILINE + PUSHBUTTON "&Husûsiyetler", 1035, 184, 77, 60, 14 + AUTORADIOBUTTON "&Bu İletişim Kâidelerine İzin Ver", 1545, 17, 92, 224, 10 + AUTOCHECKBOX "&Çözülmemiş Şifre (PAP)", 1491, 28, 105, 215, 10, BS_TOP | BS_MULTILINE | WS_GROUP + AUTOCHECKBOX "&Shiva Şifre Kimlik Doğrulama İletşim Kâidesi (SPAP)", 1496, 28, 119, 214, 10, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Challenge Handshake Kimlik Doğrulama İletşim Kâidesi (CHAP)", 1494, 28, 133, 215, 10, BS_TOP | BS_MULTILINE AUTOCHECKBOX "&MS CHAP (MS-CHAP)", 1493, 28, 148, 212, 10, BS_TOP | BS_MULTILINE - AUTOCHECKBOX "Allow older MS-CHAP version for &Win 95 servers", 200, 46, 162, 198, 10, BS_TOP | BS_MULTILINE - AUTOCHECKBOX "M&icrosoft CHAP Version 2 (MS-CHAP v2)", 1492, 28, 176, 200, 10, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Windows 95 Sunucuları İçin Eski MS-CHAP Sürümüne İzin Ver", 200, 46, 162, 198, 10, BS_TOP | BS_MULTILINE + AUTOCHECKBOX "M&icrosoft CHAP Sürüm 2 (MS-CHAP Sürüm 2)", 1492, 28, 176, 200, 10, BS_TOP | BS_MULTILINE CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 28, 189, 208, 1 - AUTOCHECKBOX "&For MS-CHAP based protocols, automatically use my ReactOS logon name and password (and domain if any)", 1549, 28, 195, 213, 24, BS_TOP | BS_MULTILINE - DEFPUSHBUTTON "OK", 1, 127, 232, 60, 14 - PUSHBUTTON "Cancel", 2, 192, 232, 60, 14 + AUTOCHECKBOX "MS-CH&AP Tabanlı İletişim Kâideleri İçin ReactOS Oturum Açma Adımı ve Şifremi Kendiliğinden Kullan (Eğer Varsa Etki Alanını da)", 1549, 28, 195, 213, 24, BS_TOP | BS_MULTILINE + DEFPUSHBUTTON "Tamam", 1, 127, 232, 60, 14 + PUSHBUTTON "İptal", 2, 192, 232, 60, 14 END 106 DIALOGEX 6, 18, 255, 109 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Connection Complete" +CAPTION "Bağlama Bitirildi" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "OK", 1, 97, 91, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 97, 91, 60, 14 ICON 563, 1046, 7, 7, 20, 20 - LTEXT "'Connection name' is now connected.", 1047, 40, 7, 212, 16 - LTEXT "To check the status of this connection or disconnect, right-click its icon in the Network Connections folder, or click its icon on the taskbar (if present).", -1, 40, 30, 212, 34 - AUTOCHECKBOX "&Do not display this message again", 1045, 40, 69, 212, 10, BS_TOP | BS_MULTILINE + LTEXT """Bağlantı Adı"" şimdi bağlı.", 1047, 40, 7, 212, 16 + LTEXT "Bu bağlantının durumunu denetlemek ya da bağlantıyı kesmek için, Ağ Bağlantıları dizinindeki simgesine sağ tıklayınız ya da görev çubuğundaki simgesine tıklayınız (eğer varsa).", -1, 40, 30, 212, 34 + AUTOCHECKBOX "&Bu İletiyi Bir Daha Gösterme", 1045, 40, 69, 212, 10, BS_TOP | BS_MULTILINE END 107 DIALOGEX 0, 0, 258, 167 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "Phone number", 1053, 7, 5, 243, 92 - LTEXT "&Area code:", 1055, 18, 17, 54, 8 + GROUPBOX "Telefon Numarası", 1053, 7, 5, 243, 92 + LTEXT "&Alan Kodu:", 1055, 18, 17, 54, 8 COMBOBOX 1049, 17, 30, 55, 129, CBS_DROPDOWN | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "&Phone number:", 1057, 77, 17, 166, 8, NOT WS_GROUP + LTEXT "&Telefon Numarası:", 1057, 77, 17, 166, 8, NOT WS_GROUP EDITTEXT 1051, 77, 30, 163, 14, ES_AUTOHSCROLL - LTEXT "&Country/region code:", 1056, 18, 48, 221, 8, NOT WS_GROUP + LTEXT "&Ülke ya da Bölge Kodu:", 1056, 18, 48, 221, 8, NOT WS_GROUP COMBOBOX 1054, 17, 61, 224, 93, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP - AUTOCHECKBOX "&Use dialing rules", 1048, 20, 81, 219, 10, BS_TOP | BS_MULTILINE - GROUPBOX "Co&mment", 1052, 7, 102, 243, 36 + AUTOCHECKBOX "&Çevirme Kâidelerini Kullan", 1048, 20, 81, 219, 10, BS_TOP | BS_MULTILINE + GROUPBOX "Aç&ıklama", 1052, 7, 102, 243, 36 EDITTEXT 1050, 17, 115, 224, 14, ES_AUTOHSCROLL - DEFPUSHBUTTON "OK", 1, 127, 147, 60, 14 - PUSHBUTTON "Cancel", 2, 191, 147, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 127, 147, 60, 14 + PUSHBUTTON "İptal", 2, 191, 147, 60, 14 END 108 DIALOGEX 6, 18, 222, 104 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Change Password" +CAPTION "Şifre Değiştir" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Your password on the remote network has expired. Enter passwords, then press OK to set a new one.", 1062, 7, 5, 210, 24 - LTEXT "&New password:", 1064, 8, 43, 108, 8 + LTEXT "Uzak ağdaki şifrenizin süresi doldu. Şifreleri giriniz, sonra yeni birini ayarlamak için Tamam'a tıklayınız.", 1062, 7, 5, 210, 24 + LTEXT "&Yeni Şifre:", 1064, 8, 43, 108, 8 EDITTEXT 1060, 118, 38, 98, 14, ES_PASSWORD | ES_AUTOHSCROLL - LTEXT "&Confirm new password:", 1061, 8, 61, 102, 8 + LTEXT "Y&eni Şifreyi Doğrula:", 1061, 8, 61, 102, 8 EDITTEXT 1058, 118, 57, 98, 14, ES_PASSWORD | ES_AUTOHSCROLL - DEFPUSHBUTTON "OK", 1, 90, 84, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 154, 84, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 90, 84, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 154, 84, 60, 14 END 109 DIALOGEX 6, 18, 223, 122 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Change Password" +CAPTION "Şifre Değiştir" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Your password on the remote network has expired. Enter passwords, then press OK to set a new one.", 1062, 7, 5, 212, 29 - LTEXT "&Old password:", 1063, 7, 42, 108, 8 + LTEXT "Uzak ağdaki şifrenizin süresi doldu. Şifreleri giriniz, sonra yeni birini ayarlamak için Tamam'a tıklayınız.", 1062, 7, 5, 212, 29 + LTEXT "E&ski Şifre:", 1063, 7, 42, 108, 8 EDITTEXT 1059, 116, 38, 100, 14, ES_PASSWORD | ES_AUTOHSCROLL - LTEXT "&New password:", 1064, 7, 60, 108, 8 + LTEXT "&Yeni Şifre:", 1064, 7, 60, 108, 8 EDITTEXT 1060, 116, 56, 100, 14, ES_PASSWORD | ES_AUTOHSCROLL - LTEXT "&Confirm new password:", 1061, 7, 78, 108, 8 + LTEXT "Y&eni Şifreyi Doğrula:", 1061, 7, 78, 108, 8 EDITTEXT 1058, 116, 74, 100, 14, ES_PASSWORD | ES_AUTOHSCROLL - DEFPUSHBUTTON "OK", 1, 92, 101, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 156, 101, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 92, 101, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 156, 101, 60, 14 END 110 DIALOGEX 12, 16, 230, 105 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Callback" +CAPTION "Geri Arama" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "You have 'Set By Caller' callback privilege on the server. Press OK and the server will call you back at the number below. Press Cancel to skip callback.", 1066, 5, 5, 221, 39, SS_NOPREFIX - LTEXT "&Enter your modem's phone number:", 1067, 5, 46, 222, 8, NOT WS_GROUP + LTEXT "Sunucuda ""Arayana Göre Ayarla"" geri arama ayrıcalığınız var. Tamam'a tıklayınız ve sunucu aşağıdaki numaradan sizi geri arayacaktır. Geri aramayı atlamak için İptal'e tıklayınız.", 1066, 5, 5, 221, 39, SS_NOPREFIX + LTEXT "&Çevirgenizin telefon numarasını giriniz:", 1067, 5, 46, 222, 8, NOT WS_GROUP EDITTEXT 1065, 5, 57, 221, 14, ES_AUTOHSCROLL - DEFPUSHBUTTON "OK", 1, 100, 85, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 164, 85, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 100, 85, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 164, 85, 60, 14 END 111 DIALOGEX 6, 19, 265, 135 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Error Connecting to %1" +CAPTION "%1'e Bağlanma Yanlışlığı" FONT 8, "MS Shell Dlg" BEGIN ICON 32515, 1068, 7, 7, 20, 20, WS_GROUP LTEXT "", 1070, 34, 7, 226, 105 - DEFPUSHBUTTON "Do not dial=88", 1, 4, 117, 128, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 136, 117, 60, 14 - PUSHBUTTON "&More Info", 1069, 200, 117, 60, 14 + DEFPUSHBUTTON "Çevirme: 88", 1, 4, 117, 128, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 136, 117, 60, 14 + PUSHBUTTON "&Daha Çok Bilgi", 1069, 200, 117, 60, 14 END 112 DIALOGEX 6, 18, 263, 219 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "Automatic Dialing And Hanging Up" +CAPTION "Kendiliğinden Çevirme ve Erteleme" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "ReactOS can automatically dial and hang up devices depending on how much information is being sent and received.", 1085, 9, 7, 253, 30 - GROUPBOX "Automatic dialing", -1, 6, 38, 249, 71 - LTEXT "Dial another line when this connection meets both of the following conditions:", 1083, 16, 51, 237, 16, NOT WS_GROUP - LTEXT "Activity at &least:", -1, 16, 73, 100, 8 + LTEXT "ReactOS, ne denli bilgi gönderiliyor ve alınıyor olduğuna bağlı olarak aygıtları kendiliğinden çevirebilir ve erteleyebilir.", 1085, 9, 7, 253, 30 + GROUPBOX "Kendiliğinden Çevirme", -1, 6, 38, 249, 71 + LTEXT "Bu bağlantı aşağıdaki koşulların ikisiyle karşılaştığında başka bir geçek çevir:", 1083, 16, 51, 237, 16, NOT WS_GROUP + LTEXT "&En Az Etknlik:", -1, 16, 73, 100, 8 COMBOBOX 1079, 117, 70, 60, 100, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "&Duration at least:", 1084, 16, 92, 99, 8, NOT WS_GROUP + LTEXT "E&n Az Süre:", 1084, 16, 92, 99, 8, NOT WS_GROUP COMBOBOX 1080, 117, 89, 90, 162, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - GROUPBOX "Automatic hangup", -1, 6, 113, 248, 81 - LTEXT "Hang up any device used for this connection when it meets both of the following conditions:", 1086, 16, 127, 230, 18, NOT WS_GROUP - LTEXT "Activity no &more than:", -1, 16, 150, 92, 8 + GROUPBOX "Kendiliğinden Erteleme", -1, 6, 113, 248, 81 + LTEXT "Aşağıdaki koşulların ikisiyle karşılaştığında bu bağlantı için kullanılan tüm aygıtları ertele:", 1086, 16, 127, 230, 18, NOT WS_GROUP + LTEXT "&Şundan Daha Çok Etkinlik Yok:", -1, 16, 150, 92, 8 COMBOBOX 1081, 115, 146, 60, 100, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "D&uration at least:", 1087, 16, 168, 92, 8, NOT WS_GROUP + LTEXT "En &Az Süre:", 1087, 16, 168, 92, 8, NOT WS_GROUP COMBOBOX 1082, 115, 166, 90, 151, CBS_DROPDOWNLIST | WS_VSCROLL | NOT WS_TABSTOP - DEFPUSHBUTTON "OK", 1, 131, 199, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 194, 199, 60, 14 + DEFPUSHBUTTON "Tamam", 1, 131, 199, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 194, 199, 60, 14 END 113 DIALOGEX 21, 46, 225, 65 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION -CAPTION "Connecting %1..." +CAPTION "%1'e Bağlanıyor..." FONT 8, "MS Shell Dlg" BEGIN ICON 563, 1417, 7, 7, 20, 20 LTEXT "", 1097, 36, 7, 185, 35, SS_NOPREFIX - PUSHBUTTON "Cancel", 2, 83, 47, 60, 14 + PUSHBUTTON "İptal", 2, 83, 47, 60, 14 END 114 DIALOGEX 6, 18, 225, 60 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Dial-Up Networking" +CAPTION "Çevirmeli Ağ" FONT 8, "MS Shell Dlg" BEGIN ICON 563, 1098, 7, 6, 20, 20, WS_GROUP - LTEXT "The autodial attempt failed. Do you want to disable autodial from this location?", 1099, 40, 6, 181, 34, NOT WS_GROUP - PUSHBUTTON "&Yes", 1, 60, 42, 50, 14 - DEFPUSHBUTTON "&No", 2, 115, 42, 50, 14 + LTEXT "Kendiliğinden çevirme girişimi başarısız. Bu konumdan kendiliğinden çevirmeyi edilginleştirmek ister misiniz?", 1099, 40, 6, 181, 34, NOT WS_GROUP + PUSHBUTTON "&Evet", 1, 60, 42, 50, 14 + DEFPUSHBUTTON "&Hayır", 2, 115, 42, 50, 14 END 115 DIALOGEX 0, 0, 263, 124 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 263, 50 - LTEXT "D&ial:", 1412, 9, 60, 68, 8 + LTEXT "Ç&evir:", 1412, 9, 60, 68, 8 COMBOBOX 1416, 88, 56, 165, 112, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | NOT WS_TABSTOP - LTEXT "Dialing &from:", 1415, 9, 77, 71, 8 + LTEXT "&Şuradan Çevriliyor:", 1415, 9, 77, 71, 8 COMBOBOX 1414, 88, 75, 89, 112, CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | NOT WS_TABSTOP - PUSHBUTTON "Dialing &Rules", 1108, 181, 75, 72, 14 + PUSHBUTTON "Çe&virme Kâideleri", 1108, 181, 75, 72, 14 CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 8, 96, 245, 1 - DEFPUSHBUTTON "&Dial", 1590, 8, 103, 61, 14 - PUSHBUTTON "Cancel", 1591, 70, 103, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 132, 103, 60, 14 - PUSHBUTTON "&Help", 1592, 194, 103, 60, 14 + DEFPUSHBUTTON "&Çevir", 1590, 8, 103, 61, 14 + PUSHBUTTON "İptal", 1591, 70, 103, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 132, 103, 60, 14 + PUSHBUTTON "&Yardım", 1592, 194, 103, 60, 14 END 116 DIALOGEX 0, 0, 265, 176 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 8, 60, 88, 8 + LTEXT "&Kullanıcı Adı:", 1413, 8, 60, 88, 8 EDITTEXT 1104, 103, 57, 154, 14, ES_AUTOHSCROLL - LTEXT "&Password:", 1112, 8, 79, 88, 8 + LTEXT "&Şifre:", 1112, 8, 79, 88, 8 EDITTEXT 1103, 103, 76, 154, 14, ES_PASSWORD | ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN, 8, 97, 248, 1 - AUTOCHECKBOX "&Save this user name and password for the following users:", 1101, 14, 105, 239, 13, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "Me o&nly", 1622, 26, 120, 226, 11, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "&Anyone who uses this computer", 1623, 26, 134, 229, 11, BS_LEFT | BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Aşağıdaki Kullanıcılar İçin Bu Kulanıcı Adını ve Şifreyi Kaydet:", 1101, 14, 105, 239, 13, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "Ya&lnızca Ben", 1622, 26, 120, 226, 11, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "&Bu Bilgisayarı Kullanan Tüm Kişiler", 1623, 26, 134, 229, 11, BS_LEFT | BS_TOP | BS_MULTILINE CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 8, 149, 248, 1 - DEFPUSHBUTTON "&Dial", 1590, 8, 156, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 1591, 71, 156, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 133, 156, 60, 14 - PUSHBUTTON "&Help", 1592, 195, 156, 60, 14 + DEFPUSHBUTTON "&Çevir", 1590, 8, 156, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 1591, 71, 156, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 133, 156, 60, 14 + PUSHBUTTON "&Yardım", 1592, 195, 156, 60, 14 END 117 DIALOGEX 0, 0, 263, 192 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 9, 61, 92, 8 + LTEXT "&Kullanıcı Adı:", 1413, 9, 61, 92, 8 EDITTEXT 1104, 102, 57, 154, 14, ES_AUTOHSCROLL - LTEXT "&Password:", 1112, 9, 80, 92, 8 + LTEXT "&Şifre:", 1112, 9, 80, 92, 8 EDITTEXT 1103, 102, 76, 154, 14, ES_PASSWORD | ES_AUTOHSCROLL - LTEXT "Do&main:", 1110, 9, 99, 91, 8 + LTEXT "&Etki Alanı:", 1110, 9, 99, 91, 8 EDITTEXT 1102, 102, 95, 154, 14, ES_UPPERCASE | ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN, 9, 116, 247, 1 - AUTOCHECKBOX "&Save this user name and password for the following users:", 1101, 12, 123, 243, 13, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "Me o&nly", 1622, 25, 137, 229, 11, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "&Anyone who uses this computer", 1623, 25, 151, 230, 11, BS_LEFT | BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Aşağıdaki Kullanıcılar İçin Bu Kulanıcı Adını ve Şifreyi Kaydet:", 1101, 12, 123, 243, 13, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "Ya&lnızca Ben", 1622, 25, 137, 229, 11, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "&Bu Bilgisayarı Kullanan Tüm Kişiler", 1623, 25, 151, 230, 11, BS_LEFT | BS_TOP | BS_MULTILINE CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 9, 167, 247, 1 - DEFPUSHBUTTON "&Dial", 1590, 8, 173, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 1591, 71, 173, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 133, 173, 60, 14 - PUSHBUTTON "&Help", 1592, 195, 173, 60, 14 + DEFPUSHBUTTON "&Çevir", 1590, 8, 173, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 1591, 71, 173, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 133, 173, 60, 14 + PUSHBUTTON "&Yardım", 1592, 195, 173, 60, 14 END 118 DIALOGEX 0, 0, 265, 220 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 10, 61, 92, 8 + LTEXT "&Kullanıcı Adı:", 1413, 10, 61, 92, 8 EDITTEXT 1104, 104, 57, 154, 14, ES_AUTOHSCROLL - LTEXT "&Password:", 1112, 10, 80, 92, 8 + LTEXT "&Şifre:", 1112, 10, 80, 92, 8 EDITTEXT 1103, 104, 76, 154, 14, ES_PASSWORD | ES_AUTOHSCROLL - LTEXT "Do&main:", 1110, 10, 100, 92, 8 + LTEXT "&Etki Alanı:", 1110, 10, 100, 92, 8 EDITTEXT 1102, 104, 95, 154, 14, ES_UPPERCASE | ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN, 11, 116, 247, 1 - AUTOCHECKBOX "&Save this user name and password for the following users:", 1101, 16, 124, 239, 13, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "Me o&nly", 1622, 29, 139, 225, 11, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "&Anyone who uses this computer", 1623, 29, 152, 225, 11, BS_LEFT | BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Aşağıdaki Kullanıcılar İçin Bu Kulanıcı Adını ve Şifreyi Kaydet:", 1101, 16, 124, 239, 13, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "Ya&lnızca Ben", 1622, 29, 139, 225, 11, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "&Bu Bilgisayarı Kullanan Tüm Kişiler", 1623, 29, 152, 225, 11, BS_LEFT | BS_TOP | BS_MULTILINE CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 167, 247, 1 - LTEXT "D&ial:", 1412, 10, 177, 90, 8 + LTEXT "Çe&vir:", 1412, 10, 177, 90, 8 COMBOBOX 1416, 102, 173, 154, 112, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | NOT WS_TABSTOP CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 192, 247, 1 - DEFPUSHBUTTON "&Dial", 1590, 10, 199, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 1591, 72, 199, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 134, 199, 60, 14 - PUSHBUTTON "&Help", 1592, 196, 199, 60, 14 + DEFPUSHBUTTON "&Çevir", 1590, 10, 199, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 1591, 72, 199, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 134, 199, 60, 14 + PUSHBUTTON "&Yardım", 1592, 196, 199, 60, 14 END 119 DIALOGEX 0, 0, 265, 200 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION -CAPTION "Connect %1" +CAPTION "Bağlan: %1" FONT 8, "MS Shell Dlg" BEGIN CONTROL 1678, 1100, "STATIC", SS_BITMAP, 0, 0, 265, 50 - LTEXT "&User name:", 1413, 10, 62, 91, 8 + LTEXT "&Kullanıcı Adı:", 1413, 10, 62, 91, 8 EDITTEXT 1104, 104, 58, 154, 14, ES_AUTOHSCROLL - LTEXT "&Password:", 1112, 10, 81, 92, 8 + LTEXT "&Şifre:", 1112, 10, 81, 92, 8 EDITTEXT 1103, 104, 77, 154, 14, ES_PASSWORD | ES_AUTOHSCROLL CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN, 10, 97, 247, 1 - AUTOCHECKBOX "&Save this user name and password for the following users:", 1101, 12, 103, 243, 13, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "Me o&nly", 1622, 24, 117, 229, 11, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP - AUTORADIOBUTTON "&Anyone who uses this computer", 1623, 24, 132, 229, 11, BS_LEFT | BS_TOP | BS_MULTILINE + AUTOCHECKBOX "&Aşağıdaki Kullanıcılar İçin Bu Kulanıcı Adını ve Şifreyi Kaydet:", 1101, 12, 103, 243, 13, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "Ya&lnızca Ben", 1622, 24, 117, 229, 11, BS_LEFT | BS_TOP | BS_MULTILINE | WS_GROUP + AUTORADIOBUTTON "&Bu Bilgisayarı Kullanan Tüm Kişiler", 1623, 24, 132, 229, 11, BS_LEFT | BS_TOP | BS_MULTILINE CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 147, 247, 1 - LTEXT "D&ial:", 1412, 13, 157, 88, 8 + LTEXT "Çe&vir:", 1412, 13, 157, 88, 8 COMBOBOX 1416, 103, 154, 154, 112, CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | NOT WS_TABSTOP CONTROL "", -1, "STATIC", SS_LEFTNOWORDWRAP | SS_SUNKEN | WS_GROUP, 10, 173, 247, 1 - DEFPUSHBUTTON "&Dial", 1590, 10, 180, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 1591, 72, 180, 60, 14 - PUSHBUTTON "Pr&operties", 1107, 134, 180, 60, 14 - PUSHBUTTON "&Help", 1592, 197, 180, 60, 14 + DEFPUSHBUTTON "&Çevir", 1590, 10, 180, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 1591, 72, 180, 60, 14 + PUSHBUTTON "&Husûsiyetler", 1107, 134, 180, 60, 14 + PUSHBUTTON "&Yardım", 1592, 197, 180, 60, 14 END 121 DIALOGEX 6, 18, 230, 131 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "ISDN Configuration" +CAPTION "ISDN Yapılandırılması" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Line type:", 1155, 9, 9, 65, 8 + LTEXT "&Geçek Türü:", 1155, 9, 9, 65, 8 COMBOBOX 1153, 76, 7, 148, 42, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - AUTOCHECKBOX "&Negotiate line type", 1150, 23, 26, 199, 10, BS_TOP | BS_MULTILINE | WS_GROUP + AUTOCHECKBOX "G&eçek Türüyle Anlaş", 1150, 23, 26, 199, 10, BS_TOP | BS_MULTILINE | WS_GROUP GROUPBOX " ", 1152, 8, 48, 214, 51, WS_GROUP - AUTOCHECKBOX "&Use old proprietary protocol", 1149, 17, 48, 102, 10, BS_TOP | BS_MULTILINE - LTEXT "&Channels to use:", 1154, 16, 65, 100, 8, NOT WS_GROUP + AUTOCHECKBOX "E&ski Uygun İletişim Kâidesini Kullan", 1149, 17, 48, 102, 10, BS_TOP | BS_MULTILINE + LTEXT "&Kullanılacak Kanallar:", 1154, 16, 65, 100, 8, NOT WS_GROUP EDITTEXT 1151, 119, 61, 94, 14, ES_AUTOHSCROLL - AUTOCHECKBOX "&Enable hardware compression", 1148, 16, 82, 198, 10, BS_TOP | BS_MULTILINE - PUSHBUTTON "OK", 1, 99, 109, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 163, 109, 60, 14 + AUTOCHECKBOX "&Donanım Sıkıştırmasını Etkinleştir", 1148, 16, 82, 198, 10, BS_TOP | BS_MULTILINE + PUSHBUTTON "Tamam", 1, 99, 109, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 163, 109, 60, 14 END 122 DIALOGEX 6, 18, 220, 68 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION -CAPTION "ISDN Configure" +CAPTION "ISDN'yi Yapılandır" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "&Line type:", 1155, 9, 11, 55, 8 + LTEXT "&Geçek Türü:", 1155, 9, 11, 55, 8 COMBOBOX 1153, 67, 7, 148, 43, CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP - AUTOCHECKBOX "&Negotiate line type", 1150, 21, 28, 194, 10, BS_TOP | BS_MULTILINE | WS_GROUP - PUSHBUTTON "OK", 1, 90, 49, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 154, 49, 60, 14 + AUTOCHECKBOX "G&eçek Türüyle Anlaş", 1150, 21, 28, 194, 10, BS_TOP | BS_MULTILINE | WS_GROUP + PUSHBUTTON "Tamam", 1, 90, 49, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 154, 49, 60, 14 END 123 DIALOGEX 11, 20, 350, 275 @@ -347,11 +347,11 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION FONT 8, "MS Shell Dlg" BEGIN EDITTEXT 1161, 5, 5, 338, 236, ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | WS_GROUP - LTEXT "I&P address:", 1163, 7, 253, 68, 8 + LTEXT "&IP Adresi:", 1163, 7, 253, 68, 8 CONTROL "", 1160, "RASIPADDRESS", WS_TABSTOP, 76, 250, 117, 14 DEFPUSHBUTTON "", 1162, 197, 252, 16, 13, NOT WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP - PUSHBUTTON "&Done", 1, 219, 252, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 283, 252, 60, 14 + PUSHBUTTON "&Tamam", 1, 219, 252, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 283, 252, 60, 14 END 124 DIALOGEX 6, 17, 350, 266 @@ -360,8 +360,8 @@ FONT 8, "MS Shell Dlg" BEGIN EDITTEXT 1161, 5, 4, 340, 236, ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | WS_GROUP DEFPUSHBUTTON "", 1162, 7, 247, 50, 14, NOT WS_VISIBLE | WS_GROUP | NOT WS_TABSTOP - PUSHBUTTON "&Done", 1, 222, 247, 60, 14, WS_GROUP - PUSHBUTTON "Cancel", 2, 286, 247, 60, 14 + PUSHBUTTON "&Tamam", 1, 222, 247, 60, 14, WS_GROUP + PUSHBUTTON "İptal", 2, 286, 247, 60, 14 END 125 DIALOGEX 12, 16, 261, 190 diff --git a/reactos/dll/win32/wininet/lang/wininet_Tr.rc b/reactos/dll/win32/wininet/lang/wininet_Tr.rc index d9264b22514..49ac5b2c133 100644 --- a/reactos/dll/win32/wininet/lang/wininet_Tr.rc +++ b/reactos/dll/win32/wininet/lang/wininet_Tr.rc @@ -22,11 +22,11 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT STRINGTABLE { - IDS_LANCONNECTION "LAN Connection" - IDS_CERT_CA_INVALID "The certificate is issued by an unknown or untrusted publisher." - IDS_CERT_DATE_INVALID "The date on the certificate is invalid." - IDS_CERT_CN_INVALID "The name on the certificate does not match the site." - IDS_CERT_ERRORS "There is at least one unspecified security problem with this certificate." + IDS_LANCONNECTION "LAN Bağlantısı" + IDS_CERT_CA_INVALID "Onay belgesi, bilinmeyen ya da güvenilmeyen bir yayımcı eliyle yayımlandı." + IDS_CERT_DATE_INVALID "Onay belgesindeki zaman geçersiz." + IDS_CERT_CN_INVALID "Onay belgesindeki ad siteyle uyuşmuyor." + IDS_CERT_ERRORS "Bu onay belgesiyle en az bir belirtilmemiş güvenlik sorunu var." } IDD_PROXYDLG DIALOG 36, 24, 220, 146 diff --git a/reactos/dll/win32/wldap32/lang/wldap32_Tr.rc b/reactos/dll/win32/wldap32/lang/wldap32_Tr.rc index 47ce7c3f094..8d8145284c9 100644 --- a/reactos/dll/win32/wldap32/lang/wldap32_Tr.rc +++ b/reactos/dll/win32/wldap32/lang/wldap32_Tr.rc @@ -31,7 +31,7 @@ STRINGTABLE 6 "Karşılaştırma Doğru" 7 "Kimlik Doğrulaması Yöntemi Desteklenmiyor" 8 "Güçlü Kimlik Doğrulaması Gerekli" - 9 "Başvuru (v2)" + 9 "Başvuru (Sürüm 2)" 10 "Başvuru" 11 "Yönetim Hududu Aşıldı" 12 "Olmayan Önemli Eklenti" From d71653b9cb0ddd3cb4b9afe55c2fb177c4a3786f Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Wed, 15 Oct 2014 20:23:47 +0000 Subject: [PATCH 031/108] [NTFS] Implement NtfsDateTimeToFileTime() which convert epoch time (1970) to Windows time (1601) svn path=/trunk/; revision=64752 --- reactos/drivers/filesystems/ntfs/misc.c | 12 ++++++++++++ reactos/drivers/filesystems/ntfs/ntfs.h | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/misc.c b/reactos/drivers/filesystems/ntfs/misc.c index 11ce46bc416..c365f0394b4 100644 --- a/reactos/drivers/filesystems/ntfs/misc.c +++ b/reactos/drivers/filesystems/ntfs/misc.c @@ -97,4 +97,16 @@ NtfsAllocateIrpContext(PDEVICE_OBJECT DeviceObject, return IrpContext; } +/* See: + -> http://msdn.microsoft.com/en-us/library/ms724228 + -> http://bos.asmhackers.net/docs/filesystems/ntfs/standard.html#layout + */ +VOID +NtfsDateTimeToFileTime(ULONGLONG NtfsTime, + PLARGE_INTEGER SystemTime) +{ + + SystemTime->QuadPart = NtfsTime + 116444736000000000; +} + /* EOF */ diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 1333a249080..29749690340 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -680,11 +680,13 @@ VOID CdfsSwapString(PWCHAR Out, PUCHAR In, ULONG Count); +#endif VOID -CdfsDateTimeToFileTime(PFCB Fcb, - TIME *FileTime); +NtfsDateTimeToFileTime(ULONGLONG NtfsTime, + PLARGE_INTEGER SystemTime); +#if 0 VOID CdfsFileFlagsToAttributes(PFCB Fcb, PULONG FileAttributes); From 560d00e49b7b0737f6a84005389c990520e311b5 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Wed, 15 Oct 2014 20:36:30 +0000 Subject: [PATCH 032/108] [NTFS] Implement NtfsFileFlagsToAttributes() to fix some of the attributes of the MFT to make them usable by ReactOS. Would deserve a double-check svn path=/trunk/; revision=64753 --- reactos/drivers/filesystems/ntfs/misc.c | 15 +++++++++++++++ reactos/drivers/filesystems/ntfs/ntfs.h | 6 ++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/misc.c b/reactos/drivers/filesystems/ntfs/misc.c index c365f0394b4..d1a4ffcf9df 100644 --- a/reactos/drivers/filesystems/ntfs/misc.c +++ b/reactos/drivers/filesystems/ntfs/misc.c @@ -109,4 +109,19 @@ NtfsDateTimeToFileTime(ULONGLONG NtfsTime, SystemTime->QuadPart = NtfsTime + 116444736000000000; } +VOID +NtfsFileFlagsToAttributes(ULONG NtfsAttributes, + PULONG FileAttributes) +{ + *FileAttributes = NtfsAttributes; + if ((NtfsAttributes & NTFS_FILE_TYPE_DIRECTORY) == NTFS_FILE_TYPE_DIRECTORY) + { + *FileAttributes = NtfsAttributes & ~NTFS_FILE_TYPE_DIRECTORY; + *FileAttributes |= FILE_ATTRIBUTE_DIRECTORY; + } + + if (NtfsAttributes == 0) + *FileAttributes = FILE_ATTRIBUTE_NORMAL; +} + /* EOF */ diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 29749690340..697e8c80ca1 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -686,11 +686,9 @@ VOID NtfsDateTimeToFileTime(ULONGLONG NtfsTime, PLARGE_INTEGER SystemTime); -#if 0 VOID -CdfsFileFlagsToAttributes(PFCB Fcb, - PULONG FileAttributes); -#endif +NtfsFileFlagsToAttributes(ULONG NtfsAttributes, + PULONG FileAttributes); /* rw.c */ From a32e6674f99f01b1baaf8833b42becb027fe6594 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Wed, 15 Oct 2014 21:02:05 +0000 Subject: [PATCH 033/108] [NTFS] - Implement NtfsGetNameInformation() - Implement NtfsGetDirectoryInformation() - Implement NtfsGetFullDirectoryInformation() - Implement NtfsGetBothDirectoryInformation() - Implement NtfsQueryDirectory() which makes use of all the functions upper + all the previous fixes to make it able to look for a file using WC and file entry index This is supposed to bring directory enumeration in line on NTFS volumes. BUT, there's a bug at some point which makes it fail (or my test volume is corrupted :-P (which is unlikely (Scheme, get out of this commit message!))). Will look into it later on. Committing so far because it's quite major work anyway. More to follow~ svn path=/trunk/; revision=64754 --- reactos/drivers/filesystems/ntfs/dirctl.c | 704 ++++++++-------------- 1 file changed, 259 insertions(+), 445 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/dirctl.c b/reactos/drivers/filesystems/ntfs/dirctl.c index 7024e0012f7..cd90222739f 100644 --- a/reactos/drivers/filesystems/ntfs/dirctl.c +++ b/reactos/drivers/filesystems/ntfs/dirctl.c @@ -120,401 +120,210 @@ CdfsGetEntryName(PDEVICE_EXTENSION DeviceExt, return(STATUS_SUCCESS); } - - -static NTSTATUS -CdfsFindFile(PDEVICE_EXTENSION DeviceExt, - PFCB Fcb, - PFCB Parent, - PWSTR FileToFind, - PULONG pDirIndex, - PULONG pDirIndex2) -/* - * FUNCTION: Find a file - */ -{ - WCHAR name[256]; - WCHAR TempStr[2]; - PVOID Block; - NTSTATUS Status; - ULONG len; - ULONG DirIndex; - ULONG Offset; - ULONG Read; - BOOLEAN IsRoot; - PVOID Context = NULL; - ULONG DirSize; - PUCHAR Ptr; - PDIR_RECORD Record; - LARGE_INTEGER StreamOffset; - - DPRINT("FindFile(Parent %x, FileToFind '%S', DirIndex: %d)\n", - Parent, FileToFind, pDirIndex ? *pDirIndex : 0); - DPRINT("FindFile: old Pathname %x, old Objectname %x)\n", - Fcb->PathName, Fcb->ObjectName); - - IsRoot = FALSE; - DirIndex = 0; - if (wcslen (FileToFind) == 0) - { - CHECKPOINT; - TempStr[0] = (WCHAR) '.'; - TempStr[1] = 0; - FileToFind = (PWSTR)&TempStr; - } - - if (Parent) - { - if (Parent->Entry.ExtentLocationL == DeviceExt->CdInfo.RootStart) - { - IsRoot = TRUE; - } - } - else - { - IsRoot = TRUE; - } - - if (IsRoot == TRUE) - { - StreamOffset.QuadPart = (LONGLONG)DeviceExt->CdInfo.RootStart * (LONGLONG)BLOCKSIZE; - DirSize = DeviceExt->CdInfo.RootSize; - - - if (FileToFind[0] == 0 || (FileToFind[0] == '\\' && FileToFind[1] == 0) - || (FileToFind[0] == '.' && FileToFind[1] == 0)) - { - /* it's root : complete essentials fields then return ok */ - RtlZeroMemory(Fcb, sizeof(FCB)); - - Fcb->PathName[0]='\\'; - Fcb->ObjectName = &Fcb->PathName[1]; - Fcb->Entry.ExtentLocationL = DeviceExt->CdInfo.RootStart; - Fcb->Entry.DataLengthL = DeviceExt->CdInfo.RootSize; - Fcb->Entry.FileFlags = 0x02; //FILE_ATTRIBUTE_DIRECTORY; - - if (pDirIndex) - *pDirIndex = 0; - if (pDirIndex2) - *pDirIndex2 = 0; - DPRINT("CdfsFindFile: new Pathname %S, new Objectname %S)\n",Fcb->PathName, Fcb->ObjectName); - return (STATUS_SUCCESS); - } - } - else - { - StreamOffset.QuadPart = (LONGLONG)Parent->Entry.ExtentLocationL * (LONGLONG)BLOCKSIZE; - DirSize = Parent->Entry.DataLengthL; - } - - DPRINT("StreamOffset %I64u DirSize %lu\n", StreamOffset.QuadPart, DirSize); - - if (pDirIndex && (*pDirIndex)) - DirIndex = *pDirIndex; - - if(!CcMapData(DeviceExt->StreamFileObject, &StreamOffset, - BLOCKSIZE, TRUE, &Context, &Block)) - { - DPRINT("CcMapData() failed\n"); - return(STATUS_UNSUCCESSFUL); - } - - Ptr = (PUCHAR)Block; - while(TRUE) - { - Record = (PDIR_RECORD)Ptr; - if (Record->RecordLength == 0) - { - DPRINT1("Stopped!\n"); - break; - } - - DPRINT("RecordLength %u ExtAttrRecordLength %u NameLength %u\n", - Record->RecordLength, Record->ExtAttrRecordLength, Record->FileIdLength); - - Status = CdfsGetEntryName(DeviceExt, &Context, &Block, &StreamOffset, - DirSize, (PVOID*)&Ptr, name, &DirIndex, pDirIndex2); - if (Status == STATUS_NO_MORE_ENTRIES) - { - break; - } - else if (Status == STATUS_UNSUCCESSFUL) - { - /* Note: the directory cache has already been unpinned */ - return(Status); - } - - DPRINT("Name '%S'\n", name); - - if (wstrcmpjoki(name, FileToFind)) /* || wstrcmpjoki (name2, FileToFind)) */ - { - if (Parent && Parent->PathName) - { - len = wcslen(Parent->PathName); - memcpy(Fcb->PathName, Parent->PathName, len*sizeof(WCHAR)); - Fcb->ObjectName=&Fcb->PathName[len]; - if (len != 1 || Fcb->PathName[0] != '\\') - { - Fcb->ObjectName[0] = '\\'; - Fcb->ObjectName = &Fcb->ObjectName[1]; - } - } - else - { - Fcb->ObjectName=Fcb->PathName; - Fcb->ObjectName[0]='\\'; - Fcb->ObjectName=&Fcb->ObjectName[1]; - } - - DPRINT("PathName '%S' ObjectName '%S'\n", Fcb->PathName, Fcb->ObjectName); - - memcpy(&Fcb->Entry, Ptr, sizeof(DIR_RECORD)); - wcsncpy(Fcb->ObjectName, name, MAX_PATH); - if (pDirIndex) - *pDirIndex = DirIndex; - - DPRINT("FindFile: new Pathname %S, new Objectname %S, DirIndex %d\n", - Fcb->PathName, Fcb->ObjectName, DirIndex); - - CcUnpinData(Context); - - return(STATUS_SUCCESS); - } - - - Ptr = Ptr + Record->RecordLength; - DirIndex++; - - if (((ULONG)Ptr - (ULONG)Block) >= DirSize) - { - DPRINT("Stopped!\n"); - break; - } - } - - CcUnpinData(Context); - - if (pDirIndex) - *pDirIndex = DirIndex; - - return(STATUS_UNSUCCESSFUL); -} - - -static NTSTATUS -CdfsGetNameInformation(PFCB Fcb, - PDEVICE_EXTENSION DeviceExt, - PFILE_NAMES_INFORMATION Info, - ULONG BufferLength) -{ - ULONG Length; - - DPRINT("CdfsGetNameInformation() called\n"); - - Length = wcslen(Fcb->ObjectName) * sizeof(WCHAR); - if ((sizeof (FILE_BOTH_DIRECTORY_INFORMATION) + Length) > BufferLength) - return(STATUS_BUFFER_OVERFLOW); - - Info->FileNameLength = Length; - Info->NextEntryOffset = - ROUND_UP(sizeof(FILE_BOTH_DIRECTORY_INFORMATION) + Length, 4); - memcpy(Info->FileName, Fcb->ObjectName, Length); - - return(STATUS_SUCCESS); -} - - -static NTSTATUS -CdfsGetDirectoryInformation(PFCB Fcb, - PDEVICE_EXTENSION DeviceExt, - PFILE_DIRECTORY_INFORMATION Info, - ULONG BufferLength) -{ - ULONG Length; - - DPRINT("CdfsGetDirectoryInformation() called\n"); - - Length = wcslen(Fcb->ObjectName) * sizeof(WCHAR); - if ((sizeof (FILE_BOTH_DIRECTORY_INFORMATION) + Length) > BufferLength) - return(STATUS_BUFFER_OVERFLOW); - - Info->FileNameLength = Length; - Info->NextEntryOffset = - ROUND_UP(sizeof(FILE_BOTH_DIRECTORY_INFORMATION) + Length, 4); - memcpy(Info->FileName, Fcb->ObjectName, Length); - - /* Convert file times */ - CdfsDateTimeToFileTime(Fcb, - &Info->CreationTime); - CdfsDateTimeToFileTime(Fcb, - &Info->LastAccessTime); - CdfsDateTimeToFileTime(Fcb, - &Info->LastWriteTime); - CdfsDateTimeToFileTime(Fcb, - &Info->ChangeTime); - - /* Convert file flags */ - CdfsFileFlagsToAttributes(Fcb, - &Info->FileAttributes); - - Info->EndOfFile.QuadPart = Fcb->Entry.DataLengthL; - - /* Make AllocSize a rounded up multiple of the sector size */ - Info->AllocationSize.QuadPart = ROUND_UP(Fcb->Entry.DataLengthL, BLOCKSIZE); - -// Info->FileIndex=; - - return(STATUS_SUCCESS); -} - - -static NTSTATUS -CdfsGetFullDirectoryInformation(PFCB Fcb, - PDEVICE_EXTENSION DeviceExt, - PFILE_FULL_DIRECTORY_INFORMATION Info, - ULONG BufferLength) -{ - ULONG Length; - - DPRINT("CdfsGetFullDirectoryInformation() called\n"); - - Length = wcslen(Fcb->ObjectName) * sizeof(WCHAR); - if ((sizeof (FILE_BOTH_DIRECTORY_INFORMATION) + Length) > BufferLength) - return(STATUS_BUFFER_OVERFLOW); - - Info->FileNameLength = Length; - Info->NextEntryOffset = - ROUND_UP(sizeof(FILE_BOTH_DIRECTORY_INFORMATION) + Length, 4); - memcpy(Info->FileName, Fcb->ObjectName, Length); - - /* Convert file times */ - CdfsDateTimeToFileTime(Fcb, - &Info->CreationTime); - CdfsDateTimeToFileTime(Fcb, - &Info->LastAccessTime); - CdfsDateTimeToFileTime(Fcb, - &Info->LastWriteTime); - CdfsDateTimeToFileTime(Fcb, - &Info->ChangeTime); - - /* Convert file flags */ - CdfsFileFlagsToAttributes(Fcb, - &Info->FileAttributes); - - Info->EndOfFile.QuadPart = Fcb->Entry.DataLengthL; - - /* Make AllocSize a rounded up multiple of the sector size */ - Info->AllocationSize.QuadPart = ROUND_UP(Fcb->Entry.DataLengthL, BLOCKSIZE); - -// Info->FileIndex=; - Info->EaSize = 0; - - return(STATUS_SUCCESS); -} - - -static NTSTATUS -CdfsGetBothDirectoryInformation(PFCB Fcb, - PDEVICE_EXTENSION DeviceExt, - PFILE_BOTH_DIRECTORY_INFORMATION Info, - ULONG BufferLength) -{ - ULONG Length; - - DPRINT("CdfsGetBothDirectoryInformation() called\n"); - - Length = wcslen(Fcb->ObjectName) * sizeof(WCHAR); - if ((sizeof (FILE_BOTH_DIRECTORY_INFORMATION) + Length) > BufferLength) - return(STATUS_BUFFER_OVERFLOW); - - Info->FileNameLength = Length; - Info->NextEntryOffset = - ROUND_UP(sizeof(FILE_BOTH_DIRECTORY_INFORMATION) + Length, 4); - memcpy(Info->FileName, Fcb->ObjectName, Length); - - /* Convert file times */ - CdfsDateTimeToFileTime(Fcb, - &Info->CreationTime); - CdfsDateTimeToFileTime(Fcb, - &Info->LastAccessTime); - CdfsDateTimeToFileTime(Fcb, - &Info->LastWriteTime); - CdfsDateTimeToFileTime(Fcb, - &Info->ChangeTime); - - /* Convert file flags */ - CdfsFileFlagsToAttributes(Fcb, - &Info->FileAttributes); - - Info->EndOfFile.QuadPart = Fcb->Entry.DataLengthL; - - /* Make AllocSize a rounded up multiple of the sector size */ - Info->AllocationSize.QuadPart = ROUND_UP(Fcb->Entry.DataLengthL, BLOCKSIZE); - -// Info->FileIndex=; - Info->EaSize = 0; - - if (DeviceExt->CdInfo.JolietLevel == 0) - { - /* Standard ISO-9660 format */ - Info->ShortNameLength = Length; - memcpy(Info->ShortName, Fcb->ObjectName, Length); - } - else - { - /* Joliet extension */ - - /* FIXME: Copy or create a short file name */ - - Info->ShortName[0] = 0; - Info->ShortNameLength = 0; - } - - return(STATUS_SUCCESS); -} #endif +static NTSTATUS +NtfsGetNameInformation(PDEVICE_EXTENSION DeviceExt, + PFILE_RECORD_HEADER FileRecord, + PNTFS_ATTR_CONTEXT DataContext, + PFILE_NAMES_INFORMATION Info, + ULONG BufferLength) +{ + ULONG Length; + PFILENAME_ATTRIBUTE FileName; + + DPRINT("NtfsGetNameInformation() called\n"); + + FileName = GetFileNameFromRecord(FileRecord); + ASSERT(FileName != NULL); + + Length = FileName->NameLength; + if ((sizeof(FILE_NAMES_INFORMATION) + Length) > BufferLength) + return(STATUS_BUFFER_OVERFLOW); + + Info->FileNameLength = Length; + Info->NextEntryOffset = + ROUND_UP(sizeof(FILE_NAMES_INFORMATION) + Length, sizeof(ULONG)); + RtlCopyMemory(Info->FileName, FileName->Name, Length); + + return(STATUS_SUCCESS); +} + + +static NTSTATUS +NtfsGetDirectoryInformation(PDEVICE_EXTENSION DeviceExt, + PFILE_RECORD_HEADER FileRecord, + PNTFS_ATTR_CONTEXT DataContext, + PFILE_DIRECTORY_INFORMATION Info, + ULONG BufferLength) +{ + ULONG Length; + PFILENAME_ATTRIBUTE FileName; + + DPRINT("NtfsGetDirectoryInformation() called\n"); + + FileName = GetFileNameFromRecord(FileRecord); + ASSERT(FileName != NULL); + + Length = FileName->NameLength; + if ((sizeof(FILE_DIRECTORY_INFORMATION) + Length) > BufferLength) + return(STATUS_BUFFER_OVERFLOW); + + Info->FileNameLength = Length; + Info->NextEntryOffset = + ROUND_UP(sizeof(FILE_DIRECTORY_INFORMATION) + Length, sizeof(ULONG)); + RtlCopyMemory(Info->FileName, FileName->Name, Length); + + /* Convert file times */ + NtfsDateTimeToFileTime(FileName->CreationTime, &Info->CreationTime); + NtfsDateTimeToFileTime(FileName->LastAccessTime, &Info->LastAccessTime); + NtfsDateTimeToFileTime(FileName->LastWriteTime, &Info->LastWriteTime); + NtfsDateTimeToFileTime(FileName->ChangeTime, &Info->ChangeTime); + + /* Convert file flags */ + NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes); + + Info->EndOfFile.QuadPart = FileName->DataSize; + Info->AllocationSize.QuadPart = FileName->AllocatedSize; + +// Info->FileIndex=; + + return STATUS_SUCCESS; +} + + +static NTSTATUS +NtfsGetFullDirectoryInformation(PDEVICE_EXTENSION DeviceExt, + PFILE_RECORD_HEADER FileRecord, + PNTFS_ATTR_CONTEXT DataContext, + PFILE_FULL_DIRECTORY_INFORMATION Info, + ULONG BufferLength) +{ + ULONG Length; + PFILENAME_ATTRIBUTE FileName; + + DPRINT("NtfsGetFullDirectoryInformation() called\n"); + + FileName = GetFileNameFromRecord(FileRecord); + ASSERT(FileName != NULL); + + Length = FileName->NameLength; + if ((sizeof(FILE_FULL_DIRECTORY_INFORMATION) + Length) > BufferLength) + return(STATUS_BUFFER_OVERFLOW); + + Info->FileNameLength = Length; + Info->NextEntryOffset = + ROUND_UP(sizeof(FILE_FULL_DIRECTORY_INFORMATION) + Length, sizeof(ULONG)); + RtlCopyMemory(Info->FileName, FileName->Name, Length); + + /* Convert file times */ + NtfsDateTimeToFileTime(FileName->CreationTime, &Info->CreationTime); + NtfsDateTimeToFileTime(FileName->LastAccessTime, &Info->LastAccessTime); + NtfsDateTimeToFileTime(FileName->LastWriteTime, &Info->LastWriteTime); + NtfsDateTimeToFileTime(FileName->ChangeTime, &Info->ChangeTime); + + /* Convert file flags */ + NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes); + + Info->EndOfFile.QuadPart = FileName->DataSize; + Info->AllocationSize.QuadPart = FileName->AllocatedSize; + +// Info->FileIndex=; + Info->EaSize = 0; + + return STATUS_SUCCESS; +} + + +static NTSTATUS +NtfsGetBothDirectoryInformation(PDEVICE_EXTENSION DeviceExt, + PFILE_RECORD_HEADER FileRecord, + PNTFS_ATTR_CONTEXT DataContext, + PFILE_BOTH_DIR_INFORMATION Info, + ULONG BufferLength) +{ + ULONG Length; + PFILENAME_ATTRIBUTE FileName; + + DPRINT("NtfsGetBothDirectoryInformation() called\n"); + + FileName = GetFileNameFromRecord(FileRecord); + ASSERT(FileName != NULL); + + Length = FileName->NameLength; + if ((sizeof(FILE_BOTH_DIR_INFORMATION) + Length) > BufferLength) + return(STATUS_BUFFER_OVERFLOW); + + Info->FileNameLength = Length; + Info->NextEntryOffset = + ROUND_UP(sizeof(FILE_BOTH_DIR_INFORMATION) + Length, sizeof(ULONG)); + RtlCopyMemory(Info->FileName, FileName->Name, Length); + + /* Convert file times */ + NtfsDateTimeToFileTime(FileName->CreationTime, &Info->CreationTime); + NtfsDateTimeToFileTime(FileName->LastAccessTime, &Info->LastAccessTime); + NtfsDateTimeToFileTime(FileName->LastWriteTime, &Info->LastWriteTime); + NtfsDateTimeToFileTime(FileName->ChangeTime, &Info->ChangeTime); + + /* Convert file flags */ + NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes); + + Info->EndOfFile.QuadPart = FileName->DataSize; + Info->AllocationSize.QuadPart = FileName->AllocatedSize; + +// Info->FileIndex=; + Info->EaSize = 0; + + Info->ShortName[0] = 0; + Info->ShortNameLength = 0; + + return STATUS_SUCCESS; +} + + NTSTATUS NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext) { PIRP Irp; - //PDEVICE_OBJECT DeviceObject; - //PDEVICE_EXTENSION DeviceExtension; - //LONG BufferLength = 0; + PDEVICE_OBJECT DeviceObject; + PDEVICE_EXTENSION DeviceExtension; + LONG BufferLength = 0; PUNICODE_STRING SearchPattern = NULL; - //FILE_INFORMATION_CLASS FileInformationClass; + FILE_INFORMATION_CLASS FileInformationClass; ULONG FileIndex = 0; PUCHAR Buffer = NULL; PFILE_NAMES_INFORMATION Buffer0 = NULL; - //PNTFS_FCB Fcb; + PNTFS_FCB Fcb; PNTFS_CCB Ccb; -// FCB TempFcb; BOOLEAN First = FALSE; PIO_STACK_LOCATION Stack; PFILE_OBJECT FileObject; - //NTSTATUS Status = STATUS_SUCCESS; + NTSTATUS Status = STATUS_SUCCESS; + PFILE_RECORD_HEADER FileRecord; + PNTFS_ATTR_CONTEXT DataContext; + ULONGLONG MFTRecord; + UNICODE_STRING Pattern; DPRINT1("NtfsQueryDirectory() called\n"); ASSERT(IrpContext); Irp = IrpContext->Irp; -// DeviceObject = IrpContext->DeviceObject; + DeviceObject = IrpContext->DeviceObject; -// DeviceExtension = DeviceObject->DeviceExtension; + DeviceExtension = DeviceObject->DeviceExtension; Stack = IoGetCurrentIrpStackLocation(Irp); FileObject = Stack->FileObject; Ccb = (PNTFS_CCB)FileObject->FsContext2; -// Fcb = (PNTFS_FCB)FileObject->FsContext; + Fcb = (PNTFS_FCB)FileObject->FsContext; /* Obtain the callers parameters */ - //BufferLength = Stack->Parameters.QueryDirectory.Length; + BufferLength = Stack->Parameters.QueryDirectory.Length; SearchPattern = Stack->Parameters.QueryDirectory.FileName; - //FileInformationClass = Stack->Parameters.QueryDirectory.FileInformationClass; + FileInformationClass = Stack->Parameters.QueryDirectory.FileInformationClass; FileIndex = Stack->Parameters.QueryDirectory.FileIndex; - if (SearchPattern != NULL) { if (!Ccb->DirectorySearchPattern) @@ -546,7 +355,10 @@ NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext) Ccb->DirectorySearchPattern[1] = 0; } - DPRINT("Search pattern '%S'\n", Ccb->DirectorySearchPattern); + RtlInitUnicodeString(&Pattern, Ccb->DirectorySearchPattern); + + DPRINT1("Search pattern '%S'\n", Ccb->DirectorySearchPattern); + DPRINT1("In: '%S'\n", Fcb->PathName); /* Determine directory index */ if (Stack->Flags & SL_INDEX_SPECIFIED) @@ -570,93 +382,96 @@ NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext) DPRINT("Buffer=%p tofind=%S\n", Buffer, Ccb->DirectorySearchPattern); -#if 0 - TempFcb.ObjectName = TempFcb.PathName; - while (Status == STATUS_SUCCESS && BufferLength > 0) + while (Status == STATUS_SUCCESS && BufferLength > 0) { - Status = CdfsFindFile(DeviceExtension, - &TempFcb, - Fcb, - Ccb->DirectorySearchPattern, - &Ccb->Entry, - NULL); - DPRINT("Found %S, Status=%x, entry %x\n", TempFcb.ObjectName, Status, Ccb->Entry); + Status = NtfsFindFileAt(DeviceExtension, + &Pattern, + &Ccb->Entry, + &FileRecord, + &DataContext, + &MFTRecord, + Fcb->MFTIndex); + //DPRINT("Found %S, Status=%x, entry %x\n", TempFcb.ObjectName, Status, Ccb->Entry); - if (NT_SUCCESS(Status)) - { - switch (FileInformationClass) - { - case FileNameInformation: - Status = CdfsGetNameInformation(&TempFcb, - DeviceExtension, - (PFILE_NAMES_INFORMATION)Buffer, - BufferLength); - break; + if (NT_SUCCESS(Status)) + { + switch (FileInformationClass) + { + case FileNameInformation: + Status = NtfsGetNameInformation(DeviceExtension, + FileRecord, + DataContext, + (PFILE_NAMES_INFORMATION)Buffer, + BufferLength); + break; - case FileDirectoryInformation: - Status = CdfsGetDirectoryInformation(&TempFcb, - DeviceExtension, - (PFILE_DIRECTORY_INFORMATION)Buffer, - BufferLength); - break; + case FileDirectoryInformation: + Status = NtfsGetDirectoryInformation(DeviceExtension, + FileRecord, + DataContext, + (PFILE_DIRECTORY_INFORMATION)Buffer, + BufferLength); + break; - case FileFullDirectoryInformation: - Status = CdfsGetFullDirectoryInformation(&TempFcb, - DeviceExtension, - (PFILE_FULL_DIRECTORY_INFORMATION)Buffer, - BufferLength); - break; + case FileFullDirectoryInformation: + Status = NtfsGetFullDirectoryInformation(DeviceExtension, + FileRecord, + DataContext, + (PFILE_FULL_DIRECTORY_INFORMATION)Buffer, + BufferLength); + break; - case FileBothDirectoryInformation: - Status = NtfsGetBothDirectoryInformation(&TempFcb, - DeviceExtension, - (PFILE_BOTH_DIRECTORY_INFORMATION)Buffer, - BufferLength); - break; + case FileBothDirectoryInformation: + Status = NtfsGetBothDirectoryInformation(DeviceExtension, + FileRecord, + DataContext, + (PFILE_BOTH_DIR_INFORMATION)Buffer, + BufferLength); + break; - default: - Status = STATUS_INVALID_INFO_CLASS; - } + default: + Status = STATUS_INVALID_INFO_CLASS; + } - if (Status == STATUS_BUFFER_OVERFLOW) - { - if (Buffer0) - { - Buffer0->NextEntryOffset = 0; - } - break; - } - } - else - { - if (Buffer0) - { - Buffer0->NextEntryOffset = 0; - } + if (Status == STATUS_BUFFER_OVERFLOW) + { + if (Buffer0) + { + Buffer0->NextEntryOffset = 0; + } + break; + } + } + else + { + if (Buffer0) + { + Buffer0->NextEntryOffset = 0; + } - if (First) - { - Status = STATUS_NO_SUCH_FILE; - } - else - { - Status = STATUS_NO_MORE_FILES; - } - break; - } + if (First) + { + Status = STATUS_NO_SUCH_FILE; + } + else + { + Status = STATUS_NO_MORE_FILES; + } + break; + } - Buffer0 = (PFILE_NAMES_INFORMATION)Buffer; - Buffer0->FileIndex = FileIndex++; - Ccb->Entry++; + Buffer0 = (PFILE_NAMES_INFORMATION)Buffer; + Buffer0->FileIndex = FileIndex++; + Ccb->Entry++; - if (Stack->Flags & SL_RETURN_SINGLE_ENTRY) - { - break; - } - BufferLength -= Buffer0->NextEntryOffset; - Buffer += Buffer0->NextEntryOffset; + if (Stack->Flags & SL_RETURN_SINGLE_ENTRY) + { + break; + } + BufferLength -= Buffer0->NextEntryOffset; + Buffer += Buffer0->NextEntryOffset; + ExFreePoolWithTag(FileRecord, TAG_NTFS); } -#endif if (Buffer0) { @@ -665,11 +480,10 @@ NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext) if (FileIndex > 0) { - //Status = STATUS_SUCCESS; + Status = STATUS_SUCCESS; } -// return Status; - return STATUS_NO_MORE_FILES; + return Status; } From e5e46c1db557b8b7871df542ea462412800e5b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Wed, 15 Oct 2014 21:31:51 +0000 Subject: [PATCH 034/108] [NTVDM]: Arch, please do *not* reinitialize twice the keyboard and the video (first time before initializing the BDA, second time after), otherwise some programs won't display correct things!! svn path=/trunk/; revision=64755 --- reactos/subsystems/ntvdm/bios/bios32/bios32.c | 24 +++++++++++-------- reactos/subsystems/ntvdm/dos/dem.c | 2 -- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/reactos/subsystems/ntvdm/bios/bios32/bios32.c b/reactos/subsystems/ntvdm/bios/bios32/bios32.c index 4a14b6e2499..ba07df81faa 100644 --- a/reactos/subsystems/ntvdm/bios/bios32/bios32.c +++ b/reactos/subsystems/ntvdm/bios/bios32/bios32.c @@ -589,6 +589,10 @@ Bios32Post(VOID) InitializeBiosData(); InitializeBiosInfo(); + /* + * Initialize IVT and hardware + */ + /* Register the BIOS 32-bit Interrupts */ InitializeBiosInt32(); @@ -605,6 +609,16 @@ Bios32Post(VOID) return; } +#if 0 + /* Initialize the Keyboard and Video BIOS */ + if (!KbdBiosInitialize() || !VidBiosInitialize()) + { + /* Stop the VDM */ + EmulatorTerminate(); + return; + } +#endif + ///////////// MUST BE DONE AFTER IVT INITIALIZATION !! ///////////////////// /* Load some ROMs */ @@ -632,16 +646,6 @@ static VOID WINAPI Bios32ResetBop(LPWORD Stack) // - if the word is 1234h, perform a warm reboot (aka. Ctrl-Alt-Del); // - if the word is 0000h, perform a cold reboot (aka. Reset). - /* Initialize IVT and hardware */ - - /* Initialize the Keyboard and Video BIOS */ - if (!KbdBiosInitialize() || !VidBiosInitialize()) - { - /* Stop the VDM */ - EmulatorTerminate(); - return; - } - /* Do the POST */ Bios32Post(); diff --git a/reactos/subsystems/ntvdm/dos/dem.c b/reactos/subsystems/ntvdm/dos/dem.c index 0389ac1863b..84443dec46b 100644 --- a/reactos/subsystems/ntvdm/dos/dem.c +++ b/reactos/subsystems/ntvdm/dos/dem.c @@ -476,8 +476,6 @@ Quit: EmulatorTerminate(); } - - /* PUBLIC EXPORTED APIS *******************************************************/ // demLFNCleanup From 911faa3a6f63af77f4febdac510e342d2d0b4867 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Wed, 15 Oct 2014 21:54:12 +0000 Subject: [PATCH 035/108] [RunTmChk] Implement a simple version of RunTmChk.lib for MSVC runtime check support, which can also be used in kernel mode. This one is good enough to compile ntoskrnl with it. svn path=/trunk/; revision=64756 --- reactos/lib/sdk/CMakeLists.txt | 1 + reactos/lib/sdk/RunTmChk/CMakeLists.txt | 15 +++ reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S | 45 +++++++ reactos/lib/sdk/RunTmChk/rtcapi.c | 124 ++++++++++++++++++ 4 files changed, 185 insertions(+) create mode 100644 reactos/lib/sdk/RunTmChk/CMakeLists.txt create mode 100644 reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S create mode 100644 reactos/lib/sdk/RunTmChk/rtcapi.c diff --git a/reactos/lib/sdk/CMakeLists.txt b/reactos/lib/sdk/CMakeLists.txt index c89a7365e72..3a1f0550a5b 100644 --- a/reactos/lib/sdk/CMakeLists.txt +++ b/reactos/lib/sdk/CMakeLists.txt @@ -2,6 +2,7 @@ add_subdirectory(comsupp) if(MSVC) add_subdirectory(cpprt) + add_subdirectory(RunTmChk) endif() add_subdirectory(crt) add_subdirectory(delayimp) diff --git a/reactos/lib/sdk/RunTmChk/CMakeLists.txt b/reactos/lib/sdk/RunTmChk/CMakeLists.txt new file mode 100644 index 00000000000..2e311e3a675 --- /dev/null +++ b/reactos/lib/sdk/RunTmChk/CMakeLists.txt @@ -0,0 +1,15 @@ + +list(APPEND SOURCE + rtcapi.c +) + +if(ARCH STREQUAL "i386") + list(APPEND ASM_SOURCE + i386/_RTC_CheckEsp.S +) +endif() + +add_asm_files(RunTmChk_asm ${ASM_SOURCE}) +add_library(RunTmChk ${SOURCE} ${RunTmChk_asm}) + +add_dependencies(RunTmChk asm) diff --git a/reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S b/reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S new file mode 100644 index 00000000000..a88aa333829 --- /dev/null +++ b/reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S @@ -0,0 +1,45 @@ + + +#include +.code + +EXTERN __RTC_Failure:PROC + +/* + + This function is invoked like this: + + mov esi, esp + // Do the actual function call + cmp esp, esi + call __RTC_CheckEsp + + http://stackoverflow.com/questions/3914750/hows-rtc-checkesp-implemented +*/ +PUBLIC __RTC_CheckEsp +__RTC_CheckEsp: + + /* We check if the zero flag is set, and if it is, everything is fine + and we return to the caller */ + je __RTC_CheckEsp_return + + push ebp + mov ebp, esp + pusha + + // void _RTC_Failure(void* retaddr, int errnum); + push 0 // errnum + push dword ptr [esp + 4] // retaddr + call __RTC_Failure + add esp, 8 + int 3 + + popa + pop ebp + +__RTC_CheckEsp_return: + ret + +END + + diff --git a/reactos/lib/sdk/RunTmChk/rtcapi.c b/reactos/lib/sdk/RunTmChk/rtcapi.c new file mode 100644 index 00000000000..5f75880320d --- /dev/null +++ b/reactos/lib/sdk/RunTmChk/rtcapi.c @@ -0,0 +1,124 @@ + +#include + +unsigned long +__cdecl +DbgPrint( + const char *fmt, ...); + +void +_RTC_InitBase(void) +{ + __debugbreak(); +} + +void +_RTC_Shutdown(void) +{ + __debugbreak(); +} + +void +__cdecl +_RTC_Failure( + void* retaddr, + int errnum) +{ + DbgPrint("Invalid stack pointer value caught at %p, error %d\n", retaddr, errnum); + __debugbreak(); +} + +void +__cdecl +_RTC_UninitUse( + const char *_Varname) +{ + DbgPrint("Use of uninitialized variable %s!\n", _Varname); + __debugbreak(); +} + +void +__fastcall +_RTC_CheckStackVars( + void *_Esp, + _RTC_framedesc *_Fd) +{ + int i, *guard1, *guard2; + + /* Loop all variables in the descriptor */ + for (i = 0; i < _Fd->varCount; i++) + { + /* Get the 2 guards below and above the variable */ + guard1 = (int*)((char*)_Esp + _Fd->variables[i].addr - sizeof(*guard1)); + guard2 = (int*)((char*)_Esp + _Fd->variables[i].addr +_Fd->variables[i].size); + + /* Check if they contain the guard bytes */ + if ((*guard1 != 0xCCCCCCCC) || (*guard1 != 0xCCCCCCCC)) + { + DbgPrint("Stack corruption near '%s'\n", _Fd->variables[i].name); + __debugbreak(); + } + } +} + +void +__fastcall +_RTC_CheckStackVars2( + void *_Esp, + _RTC_framedesc *_Fd, + _RTC_ALLOCA_NODE *_AllocaList) +{ + _RTC_ALLOCA_NODE *current; + int *guard; + + /* Process normal variables */ + _RTC_CheckStackVars(_Esp, _Fd); + + /* Process the alloca list */ + for (current = _AllocaList; current != 0; current = current->next) + { + /* Get the upper guard */ + guard = (int*)((char*)current + current->allocaSize - sizeof(*guard)); + + /* Check if all guard locations are still ok */ + if ((current->guard1 != 0xCCCCCCCC) || + (current->guard2[0] != 0xCCCCCCCC) || + (current->guard2[1] != 0xCCCCCCCC) || + (current->guard2[2] != 0xCCCCCCCC) || + (*guard != 0xCCCCCCCC)) + { + __debugbreak(); + } + } +} + +void +__fastcall +_RTC_AllocaHelper( + _RTC_ALLOCA_NODE *_PAllocaBase, + size_t _CbSize, + _RTC_ALLOCA_NODE **_PAllocaInfoList) +{ + unsigned long i; + + /* Check if we got any allocation */ + if ((_PAllocaBase != 0) && + (_CbSize != 0) && + (_PAllocaInfoList != 0)) + { + /* Mark the whole range */ + char *guard = (char*)_PAllocaBase; + for (i = 0; i < _CbSize; i++) + { + guard[i] = 0xCC; + } + + /* Initialize the alloca base frame */ + _PAllocaBase->allocaSize = _CbSize; + + /* Insert this frame into the alloca list */ + _PAllocaBase->next = *_PAllocaInfoList; + *_PAllocaInfoList = _PAllocaBase; + } +} + From 75c6300b3790a2e8937eadb3bc87e9c6756f5a1a Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Wed, 15 Oct 2014 22:03:50 +0000 Subject: [PATCH 036/108] [NTOSKRNL] Don't use an uninitialized variable in MmArmAccessFault (Alex, please review). Brought to you by MSVC runtime checks. svn path=/trunk/; revision=64757 --- reactos/ntoskrnl/mm/ARM3/pagfault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/ntoskrnl/mm/ARM3/pagfault.c b/reactos/ntoskrnl/mm/ARM3/pagfault.c index ff3c28e40b7..ffe6f6af81e 100644 --- a/reactos/ntoskrnl/mm/ARM3/pagfault.c +++ b/reactos/ntoskrnl/mm/ARM3/pagfault.c @@ -1511,7 +1511,7 @@ MmArmAccessFault(IN BOOLEAN StoreInstruction, NTSTATUS Status; PMMSUPPORT WorkingSet; ULONG ProtectionCode; - PMMVAD Vad; + PMMVAD Vad = NULL; PFN_NUMBER PageFrameIndex; ULONG Color; BOOLEAN IsSessionAddress; From cb9e70d5f73c7b012bf0806e806ed87ebc8423d1 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Wed, 15 Oct 2014 22:44:26 +0000 Subject: [PATCH 037/108] [RunTmChk] Fix a typo, remove a spare int 3, add file headers with BSD license svn path=/trunk/; revision=64758 --- reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S | 8 ++++++-- reactos/lib/sdk/RunTmChk/rtcapi.c | 8 +++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S b/reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S index a88aa333829..76640b34c56 100644 --- a/reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S +++ b/reactos/lib/sdk/RunTmChk/i386/_RTC_CheckEsp.S @@ -1,4 +1,9 @@ - +/* + * PROJECT: MSVC runtime check support library + * LICENSE: BSD - See COPYING.ARM in the top level directory + * PURPOSE: Provides support functions for MSVC runtime checks + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ #include .code @@ -32,7 +37,6 @@ __RTC_CheckEsp: push dword ptr [esp + 4] // retaddr call __RTC_Failure add esp, 8 - int 3 popa pop ebp diff --git a/reactos/lib/sdk/RunTmChk/rtcapi.c b/reactos/lib/sdk/RunTmChk/rtcapi.c index 5f75880320d..7829451dd94 100644 --- a/reactos/lib/sdk/RunTmChk/rtcapi.c +++ b/reactos/lib/sdk/RunTmChk/rtcapi.c @@ -1,3 +1,9 @@ +/* + * PROJECT: MSVC runtime check support library + * LICENSE: BSD - See COPYING.ARM in the top level directory + * PURPOSE: Provides support functions for MSVC runtime checks + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ #include @@ -53,7 +59,7 @@ _RTC_CheckStackVars( guard2 = (int*)((char*)_Esp + _Fd->variables[i].addr +_Fd->variables[i].size); /* Check if they contain the guard bytes */ - if ((*guard1 != 0xCCCCCCCC) || (*guard1 != 0xCCCCCCCC)) + if ((*guard1 != 0xCCCCCCCC) || (*guard2 != 0xCCCCCCCC)) { DbgPrint("Stack corruption near '%s'\n", _Fd->variables[i].name); __debugbreak(); From 66202b43122dff5dd66e45ad56112a5c61f9f25b Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Thu, 16 Oct 2014 01:41:24 +0000 Subject: [PATCH 038/108] [NTVDM] Fix the IRQ priority and routing in PicGetInterrupt. svn path=/trunk/; revision=64759 --- reactos/subsystems/ntvdm/hardware/pic.c | 48 +++++++++++++------------ 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/reactos/subsystems/ntvdm/hardware/pic.c b/reactos/subsystems/ntvdm/hardware/pic.c index a5b068c270e..5c705ca5827 100644 --- a/reactos/subsystems/ntvdm/hardware/pic.c +++ b/reactos/subsystems/ntvdm/hardware/pic.c @@ -250,31 +250,11 @@ VOID PicInterruptRequest(BYTE Number) BYTE PicGetInterrupt(VOID) { - INT i, j; + INT i; - /* Search interrupts by priority */ + /* Search the master PIC interrupts by priority */ for (i = 0; i < 8; i++) { - /* Check if this line is cascaded to the slave PIC */ - if ((i == 2) - && MasterPic.CascadeRegister & (1 << 2) - && SlavePic.Slave - && (SlavePic.CascadeRegister == 2)) - { - /* Search the slave PIC interrupts by priority */ - for (j = 0; j < 8; j++) if ((j != 1) && SlavePic.IntRequestRegister & (1 << j)) - { - /* Clear the IRR flag */ - SlavePic.IntRequestRegister &= ~(1 << j); - - /* Set the ISR flag, unless AEOI is enabled */ - if (!SlavePic.AutoEoi) SlavePic.InServiceRegister |= (1 << j); - - /* Return the interrupt number */ - return SlavePic.IntOffset + j; - } - } - if (MasterPic.IntRequestRegister & (1 << i)) { /* Clear the IRR flag */ @@ -287,6 +267,30 @@ BYTE PicGetInterrupt(VOID) return MasterPic.IntOffset + i; } } + + /* Search the slave PIC interrupts by priority */ + for (i = 0; i < 8; i++) + { + if (SlavePic.IntRequestRegister & (1 << i)) + { + /* Clear the IRR flag */ + SlavePic.IntRequestRegister &= ~(1 << i); + + if ((i == 1) && SlavePic.CascadeRegisterSet) + { + /* This interrupt is routed to the master PIC */ + return MasterPic.IntOffset + SlavePic.CascadeRegister; + } + else + { + /* Set the ISR flag, unless AEOI is enabled */ + if (!SlavePic.AutoEoi) SlavePic.InServiceRegister |= (1 << i); + + /* Return the interrupt number */ + return SlavePic.IntOffset + i; + } + } + } /* Spurious interrupt */ if (MasterPic.InServiceRegister & (1 << 2)) return SlavePic.IntOffset + 7; From a28fa3fdf088dc4a5e9cc59f16c3f28e7c5c3046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Thu, 16 Oct 2014 09:23:33 +0000 Subject: [PATCH 039/108] [SPEC2DEF] - Fix typo: PRix64 --> PRIx64 - Use GUID to trace 'int128' arguments, as that's what they almost always are. svn path=/trunk/; revision=64760 --- reactos/tools/spec2def/spec2def.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/reactos/tools/spec2def/spec2def.c b/reactos/tools/spec2def/spec2def.c index 117daf93ecf..bbf2880e12a 100644 --- a/reactos/tools/spec2def/spec2def.c +++ b/reactos/tools/spec2def/spec2def.c @@ -250,7 +250,8 @@ OutputLine_stub(FILE *file, EXPORT *pexp) case ARG_WSTR: fprintf(file, "wchar_t*"); break; case ARG_DBL: fprintf(file, "double"); break; case ARG_INT64 : fprintf(file, "__int64"); break; - case ARG_INT128 : fprintf(file, "__int128"); break; + /* __int128 is not supported on x86, and int128 in spec files most often represents a GUID */ + case ARG_INT128 : fprintf(file, "GUID"); break; case ARG_FLOAT: fprintf(file, "float"); break; } fprintf(file, " a%d", i); @@ -296,8 +297,8 @@ OutputLine_stub(FILE *file, EXPORT *pexp) case ARG_STR: fprintf(file, "'%%s'"); break; case ARG_WSTR: fprintf(file, "'%%ws'"); break; case ARG_DBL: fprintf(file, "%%f"); break; - case ARG_INT64: fprintf(file, "%%\"PRix64\""); break; - case ARG_INT128: fprintf(file, "%%\"PRix128\""); break; + case ARG_INT64: fprintf(file, "%%\"PRIx64\""); break; + case ARG_INT128: fprintf(file, "'%%s'"); break; case ARG_FLOAT: fprintf(file, "%%f"); break; } } @@ -314,7 +315,7 @@ OutputLine_stub(FILE *file, EXPORT *pexp) case ARG_WSTR: fprintf(file, "(wchar_t*)a%d", i); break; case ARG_DBL: fprintf(file, "(double)a%d", i); break; case ARG_INT64: fprintf(file, "(__int64)a%d", i); break; - case ARG_INT128: fprintf(file, "(__int128)a%d", i); break; + case ARG_INT128: fprintf(file, "wine_dbgstr_guid(&a%d)", i); break; case ARG_FLOAT: fprintf(file, "(float)a%d", i); break; } } From c38e07c12826a33b84e4ad1e54229eeb648a456b Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 16 Oct 2014 16:36:17 +0000 Subject: [PATCH 040/108] [NPFS] - Use NpAcquire*Vcb/NpReleaseVcb instead of using NpVcb directly - CaseInsensitiveIndex is integer, not boolean - Minor fixes involving unnecessary casts and magic numbers svn path=/trunk/; revision=64761 --- reactos/drivers/filesystems/npfs/create.c | 8 ++++---- reactos/drivers/filesystems/npfs/datasup.c | 4 ++-- reactos/drivers/filesystems/npfs/fileinfo.c | 8 ++++---- reactos/drivers/filesystems/npfs/fsctrl.c | 4 ++-- reactos/drivers/filesystems/npfs/secursup.c | 1 - reactos/drivers/filesystems/npfs/volinfo.c | 4 ++-- reactos/drivers/filesystems/npfs/writesup.c | 8 ++++---- 7 files changed, 18 insertions(+), 19 deletions(-) diff --git a/reactos/drivers/filesystems/npfs/create.c b/reactos/drivers/filesystems/npfs/create.c index 7fde99d3e29..4be56c67c79 100644 --- a/reactos/drivers/filesystems/npfs/create.c +++ b/reactos/drivers/filesystems/npfs/create.c @@ -384,7 +384,7 @@ NpFsdCreate(IN PDEVICE_OBJECT DeviceObject, IoStatus.Information = 0; FsRtlEnterFileSystem(); - ExAcquireResourceExclusiveLite(&NpVcb->Lock, TRUE); + NpAcquireExclusiveVcb(); if (RelatedFileObject) { @@ -462,7 +462,7 @@ NpFsdCreate(IN PDEVICE_OBJECT DeviceObject, goto Quickie; } - Fcb = NpFindPrefix(&FileName, TRUE, &Prefix); + Fcb = NpFindPrefix(&FileName, 1, &Prefix); } if (Prefix.Length) @@ -499,7 +499,7 @@ NpFsdCreate(IN PDEVICE_OBJECT DeviceObject, &DeferredList); Quickie: - ExReleaseResourceLite(&NpVcb->Lock); + NpReleaseVcb(); NpCompleteDeferredIrps(&DeferredList); FsRtlExitFileSystem(); @@ -852,7 +852,7 @@ NpFsdCreateNamedPipe(IN PDEVICE_OBJECT DeviceObject, goto Quickie; } - Fcb = NpFindPrefix(&FileName, TRUE, &Prefix); + Fcb = NpFindPrefix(&FileName, 1, &Prefix); } if (Prefix.Length) diff --git a/reactos/drivers/filesystems/npfs/datasup.c b/reactos/drivers/filesystems/npfs/datasup.c index a464936ea72..8e408497a73 100644 --- a/reactos/drivers/filesystems/npfs/datasup.c +++ b/reactos/drivers/filesystems/npfs/datasup.c @@ -85,7 +85,7 @@ NpCompleteStalledWrites(IN PNP_DATA_QUEUE DataQueue, { DataQueueEntry->Irp = NULL; - Irp->IoStatus.Status = 0; + Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = DataQueueEntry->DataSize; InsertTailList(List, &Irp->Tail.Overlay.ListEntry); @@ -216,7 +216,7 @@ NpCancelDataQueueIrp(IN PDEVICE_OBJECT DeviceObject, InitializeListHead(&DeferredList); - DataQueue = (PNP_DATA_QUEUE)Irp->Tail.Overlay.DriverContext[2]; + DataQueue = Irp->Tail.Overlay.DriverContext[2]; ClientSecurityContext = NULL; if (DeviceObject) diff --git a/reactos/drivers/filesystems/npfs/fileinfo.c b/reactos/drivers/filesystems/npfs/fileinfo.c index d6f2a103082..5a152c0bc83 100644 --- a/reactos/drivers/filesystems/npfs/fileinfo.c +++ b/reactos/drivers/filesystems/npfs/fileinfo.c @@ -27,13 +27,13 @@ NpSetBasicInfo(IN PNP_CCB Ccb, NTSTATUS NTAPI NpSetPipeInfo(IN PNP_FCB Fcb, - IN PNP_CCB Ccb, + IN PNP_CCB Ccb, IN PFILE_PIPE_INFORMATION Buffer, - IN ULONG NamedPipeEnd, + IN ULONG NamedPipeEnd, IN PLIST_ENTRY List) { NTSTATUS Status; - PNP_DATA_QUEUE ReadQueue, WriteQueue; + PNP_DATA_QUEUE ReadQueue, WriteQueue; PAGED_CODE(); if (Buffer->ReadMode == FILE_PIPE_MESSAGE_MODE && Fcb->NamedPipeType == FILE_PIPE_BYTE_STREAM_TYPE) @@ -103,7 +103,7 @@ NpCommonSetInformation(IN PDEVICE_OBJECT DeviceObject, Buffer = Irp->AssociatedIrp.SystemBuffer; if (InfoClass == FileBasicInformation) return NpSetBasicInfo(Ccb, Buffer); - + if (InfoClass != FilePipeInformation) return STATUS_INVALID_PARAMETER; return NpSetPipeInfo(Fcb, Ccb, Buffer, NamedPipeEnd, List); diff --git a/reactos/drivers/filesystems/npfs/fsctrl.c b/reactos/drivers/filesystems/npfs/fsctrl.c index 74826f828d7..5e1803b858c 100644 --- a/reactos/drivers/filesystems/npfs/fsctrl.c +++ b/reactos/drivers/filesystems/npfs/fsctrl.c @@ -369,7 +369,7 @@ NpPeek(IN PDEVICE_OBJECT DeviceObject, return STATUS_INVALID_PARAMETER; } - PeekBuffer = (PFILE_PIPE_PEEK_BUFFER)Irp->AssociatedIrp.SystemBuffer; + PeekBuffer = Irp->AssociatedIrp.SystemBuffer; if (NamedPipeEnd != FILE_PIPE_CLIENT_END) { if (NamedPipeEnd != FILE_PIPE_SERVER_END) @@ -714,7 +714,7 @@ NpWaitForNamedPipe(IN PDEVICE_OBJECT DeviceObject, //Status = NpTranslateAlias(&SourceString); if (!NT_SUCCESS(Status)) goto Quickie; - Fcb = NpFindPrefix(&SourceString, TRUE, &Prefix); + Fcb = NpFindPrefix(&SourceString, 1, &Prefix); Fcb = (PNP_FCB)((ULONG_PTR)Fcb & ~1); NodeTypeCode = Fcb ? Fcb->NodeType : 0; diff --git a/reactos/drivers/filesystems/npfs/secursup.c b/reactos/drivers/filesystems/npfs/secursup.c index 3934b49ce77..f2a99b432cf 100644 --- a/reactos/drivers/filesystems/npfs/secursup.c +++ b/reactos/drivers/filesystems/npfs/secursup.c @@ -127,7 +127,6 @@ NpGetClientSecurityContext(IN ULONG NamedPipeEnd, IN PETHREAD Thread, IN PSECURITY_CLIENT_CONTEXT *Context) { - PSECURITY_CLIENT_CONTEXT NewContext; NTSTATUS Status; PAGED_CODE(); diff --git a/reactos/drivers/filesystems/npfs/volinfo.c b/reactos/drivers/filesystems/npfs/volinfo.c index ea0d67442b8..5a6f0a0b9d3 100644 --- a/reactos/drivers/filesystems/npfs/volinfo.c +++ b/reactos/drivers/filesystems/npfs/volinfo.c @@ -191,11 +191,11 @@ NpFsdQueryVolumeInformation(IN PDEVICE_OBJECT DeviceObject, TRACE("Entered\n"); FsRtlEnterFileSystem(); - ExAcquireResourceSharedLite(&NpVcb->Lock, TRUE); + NpAcquireSharedVcb(); Status = NpCommonQueryVolumeInformation(DeviceObject, Irp); - ExReleaseResourceLite(&NpVcb->Lock); + NpReleaseVcb(); FsRtlExitFileSystem(); if (Status != STATUS_PENDING) diff --git a/reactos/drivers/filesystems/npfs/writesup.c b/reactos/drivers/filesystems/npfs/writesup.c index fb2d3d02a53..3f03745bd7e 100644 --- a/reactos/drivers/filesystems/npfs/writesup.c +++ b/reactos/drivers/filesystems/npfs/writesup.c @@ -15,7 +15,7 @@ /* FUNCTIONS ******************************************************************/ -NTSTATUS +NTSTATUS NTAPI NpWriteDataQueue(IN PNP_DATA_QUEUE WriteQueue, IN ULONG Mode, @@ -57,9 +57,9 @@ NpWriteDataQueue(IN PNP_DATA_QUEUE WriteQueue, { DataSize = DataEntry->DataSize; - IoStack = IoGetCurrentIrpStackLocation( DataEntry->Irp); + IoStack = IoGetCurrentIrpStackLocation(DataEntry->Irp); - if (IoStack->MajorFunction == IRP_MJ_FILE_SYSTEM_CONTROL && + if (IoStack->MajorFunction == IRP_MJ_FILE_SYSTEM_CONTROL && IoStack->Parameters.FileSystemControl.FsControlCode == FSCTL_PIPE_INTERNAL_READ_OVFLOW && (DataSize < OutBufferSize || MoreProcessing)) { @@ -76,7 +76,7 @@ NpWriteDataQueue(IN PNP_DATA_QUEUE WriteQueue, { DataEntry->Irp->Overlay.AllocationSize.QuadPart = 0; } - + BufferSize = *BytesNotWritten; if (BufferSize >= DataSize) BufferSize = DataSize; From 32f8a44f8e26b710208b61e3c3a5ab9f104ff420 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 16 Oct 2014 16:40:13 +0000 Subject: [PATCH 041/108] [NPFS] - Don't call RtlEqualUnicodeString (paged code) while holding a spin lock. Powered by Driver Verifier. svn path=/trunk/; revision=64762 --- reactos/drivers/filesystems/npfs/waitsup.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/reactos/drivers/filesystems/npfs/waitsup.c b/reactos/drivers/filesystems/npfs/waitsup.c index 42e15e861fc..31c9808dcab 100644 --- a/reactos/drivers/filesystems/npfs/waitsup.c +++ b/reactos/drivers/filesystems/npfs/waitsup.c @@ -99,6 +99,22 @@ NpInitializeWaitQueue(IN PNP_WAIT_QUEUE WaitQueue) KeInitializeSpinLock(&WaitQueue->WaitLock); } +static +BOOLEAN +NpEqualUnicodeString(IN PCUNICODE_STRING String1, + IN PCUNICODE_STRING String2) +{ + SIZE_T EqualLength; + + if (String1->Length != String2->Length) + return FALSE; + + EqualLength = RtlCompareMemory(String1->Buffer, + String2->Buffer, + String1->Length); + return EqualLength == String1->Length; +} + NTSTATUS NTAPI NpCancelWaiter(IN PNP_WAIT_QUEUE WaitQueue, @@ -156,7 +172,8 @@ NpCancelWaiter(IN PNP_WAIT_QUEUE WaitQueue, PipeName.MaximumLength = PipeName.Length; } - if (RtlEqualUnicodeString(&WaitName, &PipeName, FALSE)) + /* Can't use RtlEqualUnicodeString with a spinlock held */ + if (NpEqualUnicodeString(&WaitName, &PipeName)) { /* Found a matching wait. Cancel it */ RemoveEntryList(&WaitIrp->Tail.Overlay.ListEntry); From e67bbc79a96c418d6726eb9ebf7f714b4b37cd6c Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 16 Oct 2014 16:57:11 +0000 Subject: [PATCH 042/108] [NPFS] - Don't truncate pipe name in the RootPipe case in NpCreateFcb. Found by Windows's RtlInsertUnicodePrefix implementation -- which might indicate that ours is broken. svn path=/trunk/; revision=64763 --- reactos/drivers/filesystems/npfs/strucsup.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/reactos/drivers/filesystems/npfs/strucsup.c b/reactos/drivers/filesystems/npfs/strucsup.c index 73d0360f79d..29a8c851969 100644 --- a/reactos/drivers/filesystems/npfs/strucsup.c +++ b/reactos/drivers/filesystems/npfs/strucsup.c @@ -218,7 +218,6 @@ NpCreateFcb(IN PNP_DCB Dcb, PNP_FCB Fcb; BOOLEAN RootPipe; PWCHAR NameBuffer; - ULONG BufferOffset; USHORT Length, MaximumLength; PAGED_CODE(); @@ -233,6 +232,7 @@ NpCreateFcb(IN PNP_DCB Dcb, RootPipe = FALSE; if (PipeName->Buffer[0] != OBJ_NAME_PATH_SEPARATOR) { + Length += sizeof(OBJ_NAME_PATH_SEPARATOR); MaximumLength += sizeof(OBJ_NAME_PATH_SEPARATOR); RootPipe = TRUE; if (MaximumLength < sizeof(WCHAR)) @@ -262,15 +262,21 @@ NpCreateFcb(IN PNP_DCB Dcb, InsertTailList(&Dcb->FcbList, &Fcb->DcbEntry); - BufferOffset = 0; if (RootPipe) { NameBuffer[0] = OBJ_NAME_PATH_SEPARATOR; - BufferOffset = 1; + RtlCopyMemory(NameBuffer + 1, + PipeName->Buffer, + PipeName->Length); + } + else + { + RtlCopyMemory(NameBuffer, + PipeName->Buffer, + PipeName->Length); } - RtlCopyMemory(NameBuffer + BufferOffset, PipeName->Buffer, Length); - NameBuffer[BufferOffset + (Length / sizeof(WCHAR))] = UNICODE_NULL; + NameBuffer[Length / sizeof(WCHAR)] = UNICODE_NULL; Fcb->FullName.Length = Length; Fcb->FullName.MaximumLength = MaximumLength; From b5e8d798e98eebbb2cf7a79a37f562f36de333a0 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Thu, 16 Oct 2014 19:14:52 +0000 Subject: [PATCH 043/108] [WIN32K] * Zap EGAColorsTriples and DefLogPaletteTriples. * Remove extra () around a comparison. svn path=/trunk/; revision=64764 --- reactos/win32ss/gdi/ntgdi/dibobj.c | 48 +----------------------------- 1 file changed, 1 insertion(+), 47 deletions(-) diff --git a/reactos/win32ss/gdi/ntgdi/dibobj.c b/reactos/win32ss/gdi/ntgdi/dibobj.c index 83252a91628..2dc749ecc1c 100644 --- a/reactos/win32ss/gdi/ntgdi/dibobj.c +++ b/reactos/win32ss/gdi/ntgdi/dibobj.c @@ -32,27 +32,6 @@ static const RGBQUAD EGAColorsQuads[16] = { 0xff, 0xff, 0xff, 0x00 } }; -static const RGBTRIPLE EGAColorsTriples[16] = -{ - /* rgbBlue, rgbGreen, rgbRed */ - { 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x80 }, - { 0x00, 0x80, 0x00 }, - { 0x00, 0x80, 0x80 }, - { 0x80, 0x00, 0x00 }, - { 0x80, 0x00, 0x80 }, - { 0x80, 0x80, 0x00 }, - { 0x80, 0x80, 0x80 }, - { 0xc0, 0xc0, 0xc0 }, - { 0x00, 0x00, 0xff }, - { 0x00, 0xff, 0x00 }, - { 0x00, 0xff, 0xff }, - { 0xff, 0x00, 0x00 }, - { 0xff, 0x00, 0xff }, - { 0xff, 0xff, 0x00 }, - { 0xff, 0xff, 0xff } -}; - static const RGBQUAD DefLogPaletteQuads[20] = /* Copy of Default Logical Palette */ { /* rgbBlue, rgbGreen, rgbRed, rgbReserved */ @@ -78,31 +57,6 @@ static const RGBQUAD DefLogPaletteQuads[20] = /* Copy of Default Logical Palet { 0xff, 0xff, 0xff, 0x00 } }; -static const RGBQUAD DefLogPaletteTriples[20] = /* Copy of Default Logical Palette */ -{ - /* rgbBlue, rgbGreen, rgbRed, rgbReserved */ - { 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x80 }, - { 0x00, 0x80, 0x00 }, - { 0x00, 0x80, 0x80 }, - { 0x80, 0x00, 0x00 }, - { 0x80, 0x00, 0x80 }, - { 0x80, 0x80, 0x00 }, - { 0xc0, 0xc0, 0xc0 }, - { 0xc0, 0xdc, 0xc0 }, - { 0xf0, 0xca, 0xa6 }, - { 0xf0, 0xfb, 0xff }, - { 0xa4, 0xa0, 0xa0 }, - { 0x80, 0x80, 0x80 }, - { 0x00, 0x00, 0xf0 }, - { 0x00, 0xff, 0x00 }, - { 0x00, 0xff, 0xff }, - { 0xff, 0x00, 0x00 }, - { 0xff, 0x00, 0xff }, - { 0xff, 0xff, 0x00 }, - { 0xff, 0xff, 0xff } -}; - PPALETTE NTAPI CreateDIBPalette( @@ -1383,7 +1337,7 @@ IntCreateDIBitmap( DWORD col = RGB(rgb->rgbRed, rgb->rgbGreen, rgb->rgbBlue); // Check if the first color of the colormap is black - if ((col == RGB(0, 0, 0))) + if (col == RGB(0, 0, 0)) { rgb++; col = RGB(rgb->rgbRed, rgb->rgbGreen, rgb->rgbBlue); From 682e176eca6f2ebf3b9763abcfe96df4313ef3cd Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Thu, 16 Oct 2014 20:05:36 +0000 Subject: [PATCH 044/108] [NTFS] Bugfixing... Part 1/X: - FixupUpdateSequenceArray() returns a NTSTATUS, so properly handle it. - Actually... Attributes name can be unicode in case of a file name, but it can also be ansi, for streams name... So, don't force UNICODE_STRING, it causes more troubles than it solves. So, now, we really progress in reading directory. Instead of finding no files because we improperly read attributes, we now corrupt memory somewhere and crash ReactOS. svn path=/trunk/; revision=64765 --- reactos/drivers/filesystems/ntfs/fsctl.c | 8 ++--- reactos/drivers/filesystems/ntfs/mft.c | 40 ++++++++++++------------ reactos/drivers/filesystems/ntfs/ntfs.h | 3 +- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/fsctl.c b/reactos/drivers/filesystems/ntfs/fsctl.c index 8d149bfe99e..b57e12a8d32 100644 --- a/reactos/drivers/filesystems/ntfs/fsctl.c +++ b/reactos/drivers/filesystems/ntfs/fsctl.c @@ -34,8 +34,6 @@ #define NDEBUG #include -UNICODE_STRING EmptyName = RTL_CONSTANT_STRING(L""); - /* FUNCTIONS ****************************************************************/ /* @@ -274,7 +272,7 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, return Status; } - Status = FindAttribute(DeviceExt, DeviceExt->MasterFileTable, AttributeData, &EmptyName, &DeviceExt->MFTContext); + Status = FindAttribute(DeviceExt, DeviceExt->MasterFileTable, AttributeData, L"", 0, &DeviceExt->MFTContext); if (!NT_SUCCESS(Status)) { DPRINT1("Can't find data attribute for Master File Table.\n"); @@ -312,7 +310,7 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, NtfsDumpFileAttributes(VolumeRecord); /* Get volume name */ - Status = FindAttribute(DeviceExt, VolumeRecord, AttributeVolumeName, &EmptyName, &AttrCtxt); + Status = FindAttribute(DeviceExt, VolumeRecord, AttributeVolumeName, L"", 0, &AttrCtxt); if (NT_SUCCESS(Status) && AttrCtxt->Record.Resident.ValueLength != 0) { @@ -348,7 +346,7 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, DeviceExt->VolumeFcb = VolumeFcb; /* Get volume information */ - Status = FindAttribute(DeviceExt, VolumeRecord, AttributeVolumeInformation, &EmptyName, &AttrCtxt); + Status = FindAttribute(DeviceExt, VolumeRecord, AttributeVolumeInformation, L"", 0, &AttrCtxt); if (NT_SUCCESS(Status) && AttrCtxt->Record.Resident.ValueLength != 0) { diff --git a/reactos/drivers/filesystems/ntfs/mft.c b/reactos/drivers/filesystems/ntfs/mft.c index 17e5553d005..c2de3a80bcd 100644 --- a/reactos/drivers/filesystems/ntfs/mft.c +++ b/reactos/drivers/filesystems/ntfs/mft.c @@ -31,8 +31,6 @@ #define NDEBUG #include -UNICODE_STRING IndexOfFileNames = RTL_CONSTANT_STRING(L"$I30"); - /* FUNCTIONS ****************************************************************/ PNTFS_ATTR_CONTEXT @@ -84,10 +82,10 @@ FindAttributeHelper(PDEVICE_EXTENSION Vcb, PNTFS_ATTR_RECORD AttrRecord, PNTFS_ATTR_RECORD AttrRecordEnd, ULONG Type, - const WCHAR *Name, + PCWSTR Name, ULONG NameLength) { - DPRINT("FindAttributeHelper(%p, %p, %p, 0x%x, %s, %u)\n", Vcb, AttrRecord, AttrRecordEnd, Type, Name, NameLength); + DPRINT1("FindAttributeHelper(%p, %p, %p, 0x%x, %S, %u)\n", Vcb, AttrRecord, AttrRecordEnd, Type, Name, NameLength); while (AttrRecord < AttrRecordEnd) { @@ -143,7 +141,6 @@ FindAttributeHelper(PDEVICE_EXTENSION Vcb, if (AttrRecord->Type == Type) { - DPRINT("%d, %d\n", AttrRecord->NameLength, NameLength); if (AttrRecord->NameLength == NameLength) { PWCHAR AttrName; @@ -176,18 +173,19 @@ NTSTATUS FindAttribute(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER MftRecord, ULONG Type, - PUNICODE_STRING Name, + PCWSTR Name, + ULONG NameLength, PNTFS_ATTR_CONTEXT * AttrCtx) { PNTFS_ATTR_RECORD AttrRecord; PNTFS_ATTR_RECORD AttrRecordEnd; - DPRINT("NtfsFindAttribute(%p, %p, %u, %s)\n", Vcb, MftRecord, Type, Name); + DPRINT1("NtfsFindAttribute(%p, %p, %u, %S, %u, %p)\n", Vcb, MftRecord, Type, Name, NameLength, AttrCtx); AttrRecord = (PNTFS_ATTR_RECORD)((PCHAR)MftRecord + MftRecord->AttributeOffset); AttrRecordEnd = (PNTFS_ATTR_RECORD)((PCHAR)MftRecord + Vcb->NtfsInfo.BytesPerFileRecord); - *AttrCtx = FindAttributeHelper(Vcb, AttrRecord, AttrRecordEnd, Type, Name->Buffer, Name->Length); + *AttrCtx = FindAttributeHelper(Vcb, AttrRecord, AttrRecordEnd, Type, Name, NameLength); if (*AttrCtx == NULL) { return STATUS_OBJECT_NAME_NOT_FOUND; @@ -507,6 +505,8 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, NTSTATUS Status; ULONG CurrentEntry = 0; + DPRINT1("NtfsFindMftRecord(%p, %I64d, %wZ, %p, %u, %p, %p)\n", Vcb, MFTIndex, FileName, FirstEntry, DirSearch, OutMFTIndex, OutName); + MftRecord = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); @@ -519,7 +519,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, { //Magic = MftRecord->Magic; - Status = FindAttribute(Vcb, MftRecord, AttributeIndexRoot, &IndexOfFileNames, &IndexRootCtx); + Status = FindAttribute(Vcb, MftRecord, AttributeIndexRoot, L"$I30", 4, &IndexRootCtx); if (!NT_SUCCESS(Status)) { ExFreePoolWithTag(MftRecord, TAG_NTFS); @@ -566,10 +566,10 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, IndexBlockSize = IndexRoot->SizeOfEntry; - Status = FindAttribute(Vcb, MftRecord, AttributeBitmap, &IndexOfFileNames, &IndexBitmapCtx); + Status = FindAttribute(Vcb, MftRecord, AttributeBitmap, L"$I30", 4, &IndexBitmapCtx); if (!NT_SUCCESS(Status)) { - DPRINT("Corrupted filesystem!\n"); + DPRINT1("Corrupted filesystem!\n"); ExFreePoolWithTag(MftRecord, TAG_NTFS); return Status; } @@ -589,7 +589,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ReadAttribute(Vcb, IndexBitmapCtx, 0, BitmapData, (ULONG)BitmapDataSize); ReleaseAttributeContext(IndexBitmapCtx); - Status = FindAttribute(Vcb, MftRecord, AttributeIndexAllocation, &IndexOfFileNames, &IndexAllocationCtx); + Status = FindAttribute(Vcb, MftRecord, AttributeIndexAllocation, L"$I30", 4, &IndexAllocationCtx); if (!NT_SUCCESS(Status)) { DPRINT("Corrupted filesystem!\n"); @@ -621,7 +621,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ReadAttribute(Vcb, IndexAllocationCtx, RecordOffset, IndexRecord, IndexBlockSize); - if (!FixupUpdateSequenceArray(Vcb, &((PFILE_RECORD_HEADER)IndexRecord)->Ntfs)) + if (!NT_SUCCESS(FixupUpdateSequenceArray(Vcb, &((PFILE_RECORD_HEADER)IndexRecord)->Ntfs))) { break; } @@ -677,10 +677,10 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, PULONGLONG MFTIndex, ULONGLONG CurrentMFTIndex) { - UNICODE_STRING Current, Remaining, Found; + UNICODE_STRING Current, Remaining; NTSTATUS Status; WCHAR FoundName[MAX_PATH + 1]; - ULONG FirstEntry = 0; + ULONG FirstEntry = 0, Length; DPRINT1("NtfsLookupFileAt(%p, %wZ, %p, %p, %I64x)\n", Vcb, PathName, FileRecord, DataContext, CurrentMFTIndex); @@ -714,9 +714,9 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, return Status; } - RtlInitUnicodeString(&Found, FoundName); + Length = wcslen(FoundName) * sizeof(WCHAR); - Status = FindAttribute(Vcb, *FileRecord, AttributeData, &Found, DataContext); + Status = FindAttribute(Vcb, *FileRecord, AttributeData, FoundName, Length, DataContext); if (!NT_SUCCESS(Status)) { DPRINT("NtfsLookupFileAt: Can't find data attribute\n"); @@ -748,9 +748,9 @@ NtfsFindFileAt(PDEVICE_EXTENSION Vcb, PULONGLONG MFTIndex, ULONGLONG CurrentMFTIndex) { - UNICODE_STRING Found; NTSTATUS Status; WCHAR FoundName[MAX_PATH + 1]; + ULONG Length; DPRINT1("NtfsFindFileAt(%p, %wZ, %p, %p, %p, %p, %I64x)\n", Vcb, SearchPattern, FirstEntry, FileRecord, DataContext, MFTIndex, CurrentMFTIndex); @@ -775,9 +775,9 @@ NtfsFindFileAt(PDEVICE_EXTENSION Vcb, return Status; } - RtlInitUnicodeString(&Found, FoundName); + Length = wcslen(FoundName) * sizeof(WCHAR); - Status = FindAttribute(Vcb, *FileRecord, AttributeData, &Found, DataContext); + Status = FindAttribute(Vcb, *FileRecord, AttributeData, FoundName, Length, DataContext); if (!NT_SUCCESS(Status)) { DPRINT("NtfsFindFileAt: Can't find data attribute\n"); diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 697e8c80ca1..b0d7ed215a3 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -613,7 +613,8 @@ NTSTATUS FindAttribute(PDEVICE_EXTENSION Vcb, PFILE_RECORD_HEADER MftRecord, ULONG Type, - PUNICODE_STRING Name, + PCWSTR Name, + ULONG NameLength, PNTFS_ATTR_CONTEXT * AttrCtx); VOID From 84ff0ecbd0058d0eee42301de960a3a0df53c57d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Thu, 16 Oct 2014 20:14:25 +0000 Subject: [PATCH 045/108] [PSDK] - Add GetAppliedGPOList[A,W] declarations CORE-8636 svn path=/trunk/; revision=64766 --- reactos/include/psdk/userenv.h | 73 ++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/reactos/include/psdk/userenv.h b/reactos/include/psdk/userenv.h index 85b95d70d34..4b96301a123 100644 --- a/reactos/include/psdk/userenv.h +++ b/reactos/include/psdk/userenv.h @@ -43,6 +43,48 @@ typedef struct _PROFILEINFOW HANDLE hProfile; } PROFILEINFOW, *LPPROFILEINFOW; +#if (WINVER >= 0x0502) +typedef enum _GPO_LINK { + GPLinkUnknown = 0, + GPLinkMachine, + GPLinkSite, + GPLinkDomain, + GPLinkOrganizationalUnit +} GPO_LINK, *PGPO_LINK; + +typedef struct _GROUP_POLICY_OBJECTA { + DWORD dwOptions; + DWORD dwVersion; + LPSTR lpDSPath; + LPSTR lpFileSysPath; + LPSTR lpDisplayName; + CHAR szGPOName[50]; + GPO_LINK GPOLink; + LPARAM lParam; + struct _GROUP_POLICY_OBJECTA *pNext; + struct _GROUP_POLICY_OBJECTA *pPrev; + LPSTR lpExtensions; + LPARAM lParam2; + LPSTR lpLink; +} GROUP_POLICY_OBJECTA, *PGROUP_POLICY_OBJECTA; + +typedef struct _GROUP_POLICY_OBJECTW { + DWORD dwOptions; + DWORD dwVersion; + LPWSTR lpDSPath; + LPWSTR lpFileSysPath; + LPWSTR lpDisplayName; + WCHAR szGPOName[50]; + GPO_LINK GPOLink; + LPARAM lParam; + struct _GROUP_POLICY_OBJECTW *pNext; + struct _GROUP_POLICY_OBJECTW *pPrev; + LPWSTR lpExtensions; + LPARAM lParam2; + LPWSTR lpLink; +} GROUP_POLICY_OBJECTW, *PGROUP_POLICY_OBJECTW; +#endif + /* begin private */ BOOL WINAPI InitializeProfiles (VOID); BOOL WINAPI CreateUserProfileA (PSID, LPCSTR); @@ -85,6 +127,27 @@ BOOL WINAPI ExpandEnvironmentStringsForUserA (HANDLE, LPCSTR, LPSTR, DWORD); BOOL WINAPI ExpandEnvironmentStringsForUserW (HANDLE, LPCWSTR, LPWSTR, DWORD); #endif +#if (WINVER >= 0x0502) +DWORD +WINAPI +GetAppliedGPOListA( + _In_ DWORD dwFlags, + _In_ LPCSTR pMachineName, + _In_ PSID pSidUser, + _In_ GUID *pGuidExtension, + _Out_ PGROUP_POLICY_OBJECTA *ppGPOList +); +DWORD +WINAPI +GetAppliedGPOListW( + _In_ DWORD dwFlags, + _In_ LPCWSTR pMachineName, + _In_ PSID pSidUser, + _In_ GUID *pGuidExtension, + _Out_ PGROUP_POLICY_OBJECTW *ppGPOList +); +#endif + HANDLE WINAPI EnterCriticalPolicySection (BOOL); BOOL WINAPI LeaveCriticalPolicySection (HANDLE); BOOL WINAPI RefreshPolicy (BOOL); @@ -115,6 +178,11 @@ typedef LPPROFILEINFOW LPPROFILEINFO; #if (WINVER >= 0x0500) #define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserW #endif +#if (WINVER >= 0x0502) +typedef GROUP_POLICY_OBJECTW GROUP_POLICY_OBJECT; +typedef PGROUP_POLICY_OBJECTW PGROUP_POLICY_OBJECT; +#define GetAppliedGPOList GetAppliedGPOListW +#endif #else typedef PROFILEINFOA PROFILEINFO; typedef LPPROFILEINFOA LPPROFILEINFO; @@ -136,6 +204,11 @@ typedef LPPROFILEINFOA LPPROFILEINFO; #if (WINVER >= 0x0500) #define ExpandEnvironmentStringsForUser ExpandEnvironmentStringsForUserA #endif +#if (WINVER >= 0x0502) +typedef GROUP_POLICY_OBJECTA GROUP_POLICY_OBJECT; +typedef PGROUP_POLICY_OBJECTA PGROUP_POLICY_OBJECT; +#define GetAppliedGPOList GetAppliedGPOListA +#endif #endif #ifdef __cplusplus From cac835f2910393c1915f9abaefa998283272f4a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Thu, 16 Oct 2014 20:15:13 +0000 Subject: [PATCH 046/108] [USERENV] - Add proper stubs for GetAppliedGPOList[A,W] CORE-8636 svn path=/trunk/; revision=64767 --- reactos/dll/win32/userenv/gpolicy.c | 28 ++++++++++++++++++++++++++ reactos/dll/win32/userenv/userenv.spec | 4 ++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/userenv/gpolicy.c b/reactos/dll/win32/userenv/gpolicy.c index fca2b051a21..55a5f098ac7 100644 --- a/reactos/dll/win32/userenv/gpolicy.c +++ b/reactos/dll/win32/userenv/gpolicy.c @@ -572,3 +572,31 @@ WaitForMachinePolicyForegroundProcessing(VOID) return Ret; } + +DWORD +WINAPI +GetAppliedGPOListA( + _In_ DWORD dwFlags, + _In_ LPCSTR pMachineName, + _In_ PSID pSidUser, + _In_ GUID *pGuidExtension, + _Out_ PGROUP_POLICY_OBJECTA *ppGPOList +) +{ + DPRINT1("GetAppliedGPOListA is UNIMPLEMENTED!\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} + +DWORD +WINAPI +GetAppliedGPOListW( + _In_ DWORD dwFlags, + _In_ LPCWSTR pMachineName, + _In_ PSID pSidUser, + _In_ GUID *pGuidExtension, + _Out_ PGROUP_POLICY_OBJECTW *ppGPOList +) +{ + DPRINT1("GetAppliedGPOListW is UNIMPLEMENTED!\n"); + return ERROR_CALL_NOT_IMPLEMENTED; +} diff --git a/reactos/dll/win32/userenv/userenv.spec b/reactos/dll/win32/userenv/userenv.spec index 8f8237614db..bcbed1e071c 100644 --- a/reactos/dll/win32/userenv/userenv.spec +++ b/reactos/dll/win32/userenv/userenv.spec @@ -16,8 +16,8 @@ 188 stub GenerateRsopPolicy #stdcall GenerateRsopPolicy(48) 189 stdcall GetAllUsersProfileDirectoryA(str ptr) 190 stdcall GetAllUsersProfileDirectoryW(wstr ptr) -191 stub GetAppliedGPOListA #stdcall GetAppliedGPOListA(long str ptr ptr ptr) -192 stub GetAppliedGPOListW #stdcall GetAppliedGPOListW(long wstr ptr ptr ptr) +191 stdcall GetAppliedGPOListA(long str ptr ptr ptr) +192 stdcall GetAppliedGPOListW(long wstr ptr ptr ptr) 193 stdcall GetDefaultUserProfileDirectoryA(str ptr) 194 stdcall GetDefaultUserProfileDirectoryW(wstr ptr) 195 stub GetGPOListA #stdcall GetGPOListA(ptr str str str long ptr) From e9067c2bdae68ef06920d69dfb2e44bfe756f8e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Thu, 16 Oct 2014 20:15:26 +0000 Subject: [PATCH 047/108] =?UTF-8?q?[INCLUDE/IDL]=20=20-=20Properly=20mark?= =?UTF-8?q?=20some=20arguments=20as=20[out]=C2=A0only=20for=20wlansvc=20in?= =?UTF-8?q?terface.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=64768 --- reactos/include/reactos/idl/wlansvc.idl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/include/reactos/idl/wlansvc.idl b/reactos/include/reactos/idl/wlansvc.idl index 07f84fa9ad6..d8c434bccb0 100644 --- a/reactos/include/reactos/idl/wlansvc.idl +++ b/reactos/include/reactos/idl/wlansvc.idl @@ -7,7 +7,7 @@ typedef [context_handle] PVOID WLANSVC_RPC_HANDLE; typedef WLANSVC_RPC_HANDLE* LPWLANSVC_RPC_HANDLE; -typedef [handle] LPWSTR WLANSVC_HANDLE; +typedef [handle, string] LPWSTR WLANSVC_HANDLE; /* FIXME */ typedef struct struct_C { @@ -49,8 +49,8 @@ interface wlansvc_interface DWORD _RpcOpenHandle( [in] WLANSVC_HANDLE szMachineName, [in] DWORD dwClientVersion, - [in, out] DWORD* pdwNegotiatedVersion, - [in, out] LPWLANSVC_RPC_HANDLE phClientHandle); + [out] DWORD* pdwNegotiatedVersion, + [out] LPWLANSVC_RPC_HANDLE phClientHandle); /* Function: 0x01 */ DWORD _RpcCloseHandle( From 6b2a5b98f095aae628ff85a753cc4aac159fe01e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Thu, 16 Oct 2014 20:15:33 +0000 Subject: [PATCH 048/108] [TCPIP] - Fix potential NULL pointer dereference svn path=/trunk/; revision=64769 --- reactos/lib/drivers/ip/transport/tcp/tcp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reactos/lib/drivers/ip/transport/tcp/tcp.c b/reactos/lib/drivers/ip/transport/tcp/tcp.c index 5d013be3531..68b18f2690e 100644 --- a/reactos/lib/drivers/ip/transport/tcp/tcp.c +++ b/reactos/lib/drivers/ip/transport/tcp/tcp.c @@ -679,8 +679,12 @@ TCPSetNoDelay( PCONNECTION_ENDPOINT Connection, BOOLEAN Set) { + if (!Connection) + return STATUS_UNSUCCESSFUL; + if (Connection->SocketContext == NULL) return STATUS_UNSUCCESSFUL; + LibTCPSetNoDelay(Connection->SocketContext, Set); return STATUS_SUCCESS; } From 08a4791b4ad31fa1eb87d3d6487daefad0d9b69e Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Thu, 16 Oct 2014 21:33:32 +0000 Subject: [PATCH 049/108] {NTOSKRNL] Handle int 0x2c (assertion failure) in KDBG by breaking into the debugger instead of ignoring it and pretending it was handled. Now NT_ASSERT works on GCC builds as well. (As good as things work in KDBG...) svn path=/trunk/; revision=64770 --- reactos/ntoskrnl/kd/kdmain.c | 7 +----- reactos/ntoskrnl/kdbg/kdb.c | 47 ++++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/reactos/ntoskrnl/kd/kdmain.c b/reactos/ntoskrnl/kd/kdmain.c index 769539b0bd8..3c740170729 100644 --- a/reactos/ntoskrnl/kd/kdmain.c +++ b/reactos/ntoskrnl/kd/kdmain.c @@ -189,13 +189,8 @@ KdpEnterDebuggerException(IN PKTRAP_FRAME TrapFrame, /* Check if this is an assertion failure */ if (ExceptionRecord->ExceptionCode == STATUS_ASSERTION_FAILURE) { - /* Warn about it */ - DbgPrint("\n!!! Assertion Failure at Address 0x%p !!!\n\n", - (PVOID)Context->Eip); - - /* Bump EIP to the instruction following the int 2C and return */ + /* Bump EIP to the instruction following the int 2C */ Context->Eip += 2; - return TRUE; } #endif diff --git a/reactos/ntoskrnl/kdbg/kdb.c b/reactos/ntoskrnl/kdbg/kdb.c index 91660cfaf02..17f4c78464d 100644 --- a/reactos/ntoskrnl/kdbg/kdb.c +++ b/reactos/ntoskrnl/kdbg/kdb.c @@ -57,26 +57,27 @@ extern BOOLEAN KdbpBugCheckRequested; static KDB_ENTER_CONDITION KdbEnterConditions[][2] = { /* First chance Last chance */ - { KdbDoNotEnter, KdbEnterFromKmode }, /* Zero devide */ - { KdbEnterFromKmode, KdbDoNotEnter }, /* Debug trap */ - { KdbDoNotEnter, KdbEnterAlways }, /* NMI */ - { KdbEnterFromKmode, KdbDoNotEnter }, /* INT3 */ - { KdbDoNotEnter, KdbEnterFromKmode }, /* Overflow */ - { KdbDoNotEnter, KdbEnterFromKmode }, - { KdbDoNotEnter, KdbEnterFromKmode }, /* Invalid opcode */ - { KdbDoNotEnter, KdbEnterFromKmode }, /* No math coprocessor fault */ - { KdbEnterAlways, KdbEnterAlways }, - { KdbEnterAlways, KdbEnterAlways }, - { KdbDoNotEnter, KdbEnterFromKmode }, - { KdbDoNotEnter, KdbEnterFromKmode }, - { KdbDoNotEnter, KdbEnterFromKmode }, /* Stack fault */ - { KdbDoNotEnter, KdbEnterFromKmode }, /* General protection fault */ - { KdbDoNotEnter, KdbEnterFromKmode }, /* Page fault */ - { KdbEnterAlways, KdbEnterAlways }, /* Reserved (15) */ - { KdbDoNotEnter, KdbEnterFromKmode }, /* FPU fault */ - { KdbDoNotEnter, KdbEnterFromKmode }, - { KdbDoNotEnter, KdbEnterFromKmode }, - { KdbDoNotEnter, KdbEnterFromKmode }, /* SIMD fault */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 0: Zero divide */ + { KdbEnterFromKmode, KdbDoNotEnter }, /* 1: Debug trap */ + { KdbDoNotEnter, KdbEnterAlways }, /* 2: NMI */ + { KdbEnterFromKmode, KdbDoNotEnter }, /* 3: INT3 */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 4: Overflow */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 5: BOUND range exceeded */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 6: Invalid opcode */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 7: No math coprocessor fault */ + { KdbEnterAlways, KdbEnterAlways }, /* 8: Double Fault */ + { KdbEnterAlways, KdbEnterAlways }, /* 9: Unknown(9) */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 10: Invalid TSS */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 11: Segment Not Present */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 12: Stack fault */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 13: General protection fault */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 14: Page fault */ + { KdbEnterAlways, KdbEnterAlways }, /* 15: Reserved (15) */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 16: FPU fault */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 17: Alignment Check */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 18: Machine Check */ + { KdbDoNotEnter, KdbEnterFromKmode }, /* 19: SIMD fault */ + { KdbEnterAlways, KdbEnterAlways }, /* 20: Assertion failure */ { KdbDoNotEnter, KdbEnterFromKmode } /* Last entry: used for unknown exceptions */ }; @@ -102,7 +103,8 @@ static const CHAR *ExceptionNrToString[] = "Math Fault", "Alignment Check", "Machine Check", - "SIMD Fault" + "SIMD Fault", + "Assertion Failure" }; ULONG @@ -1320,6 +1322,9 @@ KdbpGetExceptionNumberFromStatus( case STATUS_FLOAT_MULTIPLE_TRAPS: Ret = 18; break; + case STATUS_ASSERTION_FAILURE: + Ret = 20; + break; default: Ret = RTL_NUMBER_OF(KdbEnterConditions) - 1; From 104149a1803d24da39326449dddfee859a6b11a0 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Thu, 16 Oct 2014 21:37:27 +0000 Subject: [PATCH 050/108] [NTFS] Bugfixing... Part 2/X: - Please welcome yet another structure in our NTFS driver... The INDX buffer which is used for non resident index entries. Doc (incomplete) here: http://bos.asmhackers.net/docs/filesystems/ntfs/INDX.html - Make use of it in NtfsFindMftRecord() to replace some totally obscure code. - Add some asserts to verify we read somehow what we expect. One of the assert is not working properly... Hum! Need to find out why. We don't go any farther so far. Good news though: a FIXME has been replaced by another FIXME. NB: This would deserve being ported to FreeLDR to fix the same FIXME. svn path=/trunk/; revision=64771 --- reactos/drivers/filesystems/ntfs/mft.c | 10 +++++++--- reactos/drivers/filesystems/ntfs/ntfs.h | 7 +++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/mft.c b/reactos/drivers/filesystems/ntfs/mft.c index c2de3a80bcd..913911ab107 100644 --- a/reactos/drivers/filesystems/ntfs/mft.c +++ b/reactos/drivers/filesystems/ntfs/mft.c @@ -495,6 +495,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, PNTFS_ATTR_CONTEXT IndexBitmapCtx; PNTFS_ATTR_CONTEXT IndexAllocationCtx; PINDEX_ROOT_ATTRIBUTE IndexRoot; + PINDEX_BUFFER IndexBuffer; ULONGLONG BitmapDataSize; ULONGLONG IndexAllocationSize; PCHAR BitmapData; @@ -626,9 +627,12 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, break; } - /* FIXME */ - IndexEntry = (PINDEX_ENTRY_ATTRIBUTE)(IndexRecord + 0x18 + *(USHORT *)(IndexRecord + 0x18)); - IndexEntryEnd = (PINDEX_ENTRY_ATTRIBUTE)(IndexRecord + IndexBlockSize); + IndexBuffer = (PINDEX_BUFFER)IndexRecord; + ASSERT(IndexBuffer->Ntfs.Type == 'XDNI'); + ASSERT(IndexBuffer->Header.AllocatedSize + 0x18 == IndexBlockSize); + IndexEntry = (PINDEX_ENTRY_ATTRIBUTE)(&IndexBuffer->Header + IndexBuffer->Header.FirstEntryOffset); + IndexEntryEnd = (PINDEX_ENTRY_ATTRIBUTE)(&IndexBuffer->Header + IndexBuffer->Header.TotalSizeOfEntries); + //ASSERT(IndexEntryEnd <= (PINDEX_ENTRY_ATTRIBUTE)((ULONG_PTR)IndexBuffer + IndexBlockSize)); FIXME: Why doesn't it work? while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index b0d7ed215a3..212ec79088c 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -329,6 +329,13 @@ typedef struct INDEX_HEADER_ATTRIBUTE Header; } INDEX_ROOT_ATTRIBUTE, *PINDEX_ROOT_ATTRIBUTE; +typedef struct +{ + NTFS_RECORD_HEADER Ntfs; + ULONGLONG VCN; + INDEX_HEADER_ATTRIBUTE Header; +} INDEX_BUFFER, *PINDEX_BUFFER; + typedef struct { union From 9bc2c3ba15356e012ea7f8402991ae35ddae822b Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Thu, 16 Oct 2014 21:43:03 +0000 Subject: [PATCH 051/108] [NPFS] - Don't return a canceled IRP from NpRemoveDataQueueEntry. svn path=/trunk/; revision=64772 --- reactos/drivers/filesystems/npfs/datasup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/reactos/drivers/filesystems/npfs/datasup.c b/reactos/drivers/filesystems/npfs/datasup.c index 8e408497a73..2bdbf99f278 100644 --- a/reactos/drivers/filesystems/npfs/datasup.c +++ b/reactos/drivers/filesystems/npfs/datasup.c @@ -146,9 +146,10 @@ NpRemoveDataQueueEntry(IN PNP_DATA_QUEUE DataQueue, Irp = QueueEntry->Irp; NpFreeClientSecurityContext(QueueEntry->ClientSecurityContext); - if (Irp && IoSetCancelRoutine(Irp, NULL)) + if (Irp && !IoSetCancelRoutine(Irp, NULL)) { Irp->Tail.Overlay.DriverContext[3] = NULL; + Irp = NULL; } ExFreePool(QueueEntry); From f9278312d9b38f6217398b4ffb4a6fca88e11579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Thu, 16 Oct 2014 21:48:18 +0000 Subject: [PATCH 052/108] [FAST486]: Do not call RtlCopyMemory for copying few bytes (2 and 4). svn path=/trunk/; revision=64773 --- reactos/lib/fast486/fast486.c | 2 -- reactos/lib/fast486/opgroups.c | 17 +++++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/reactos/lib/fast486/fast486.c b/reactos/lib/fast486/fast486.c index 9c87a1219fd..7e3da4e90b4 100644 --- a/reactos/lib/fast486/fast486.c +++ b/reactos/lib/fast486/fast486.c @@ -117,7 +117,6 @@ NTAPI Fast486MemReadCallback(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size) { UNREFERENCED_PARAMETER(State); - RtlMoveMemory(Buffer, (PVOID)Address, Size); } @@ -126,7 +125,6 @@ NTAPI Fast486MemWriteCallback(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size) { UNREFERENCED_PARAMETER(State); - RtlMoveMemory((PVOID)Address, Buffer, Size); } diff --git a/reactos/lib/fast486/opgroups.c b/reactos/lib/fast486/opgroups.c index 2dcdcae767d..5ec066b8207 100644 --- a/reactos/lib/fast486/opgroups.c +++ b/reactos/lib/fast486/opgroups.c @@ -2016,6 +2016,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup0F00) FAST486_OPCODE_HANDLER(Fast486OpcodeGroup0F01) { + // FAST486_TABLE_REG TableReg; UCHAR TableReg[6]; FAST486_MOD_REG_RM ModRegRm; BOOLEAN OperandSize, AddressSize; @@ -2054,8 +2055,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup0F01) } /* Fill the 6-byte table register */ - RtlCopyMemory(TableReg, &State->Gdtr.Size, sizeof(USHORT)); - RtlCopyMemory(&TableReg[sizeof(USHORT)], &State->Gdtr.Address, sizeof(ULONG)); + // TableReg = State->Gdtr; + *((PUSHORT)&TableReg) = State->Gdtr.Size; + *((PULONG)&TableReg[sizeof(USHORT)]) = State->Gdtr.Address; /* Store the GDTR */ return Fast486WriteMemory(State, @@ -2076,8 +2078,9 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup0F01) } /* Fill the 6-byte table register */ - RtlCopyMemory(TableReg, &State->Idtr.Size, sizeof(USHORT)); - RtlCopyMemory(&TableReg[sizeof(USHORT)], &State->Idtr.Address, sizeof(ULONG)); + // TableReg = State->Idtr; + *((PUSHORT)&TableReg) = State->Idtr.Size; + *((PULONG)&TableReg[sizeof(USHORT)]) = State->Idtr.Address; /* Store the IDTR */ return Fast486WriteMemory(State, @@ -2117,7 +2120,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup0F01) } /* Load the new GDT */ - State->Gdtr.Size = *((PUSHORT)TableReg); + // State->Gdtr = TableReg; + State->Gdtr.Size = *((PUSHORT)&TableReg); State->Gdtr.Address = *((PULONG)&TableReg[sizeof(USHORT)]); /* In 16-bit mode the highest byte is masked out */ @@ -2156,7 +2160,8 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeGroup0F01) } /* Load the new IDT */ - State->Idtr.Size = *((PUSHORT)TableReg); + // State->Idtr = TableReg; + State->Idtr.Size = *((PUSHORT)&TableReg); State->Idtr.Address = *((PULONG)&TableReg[sizeof(USHORT)]); /* In 16-bit mode the highest byte is masked out */ From a12d0f001f3924b0cab3145239d22953656f3819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 17 Oct 2014 02:29:48 +0000 Subject: [PATCH 053/108] [FAST486]: rename some structs and use #include for portability purposes. svn path=/trunk/; revision=64774 --- reactos/include/reactos/libs/fast486/fast486.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/reactos/include/reactos/libs/fast486/fast486.h b/reactos/include/reactos/libs/fast486/fast486.h index efd4235582e..d88f1270b7a 100644 --- a/reactos/include/reactos/libs/fast486/fast486.h +++ b/reactos/include/reactos/libs/fast486/fast486.h @@ -261,14 +261,14 @@ typedef struct _FAST486_SEG_REG ULONG Base; } FAST486_SEG_REG, *PFAST486_SEG_REG; -typedef struct +typedef struct _FAST486_LDT_REG { USHORT Selector; ULONG Base; ULONG Limit; -} FAST486_LDT_REG; +} FAST486_LDT_REG, *PFAST486_LDT_REG; -typedef struct +typedef struct _FAST486_TASK_REG { USHORT Selector; ULONG Base; @@ -276,7 +276,7 @@ typedef struct BOOLEAN Busy; } FAST486_TASK_REG, *PFAST486_TASK_REG; -#pragma pack(push, 1) +#include typedef struct { @@ -350,7 +350,7 @@ typedef struct /* Verify the structure size */ C_ASSERT(sizeof(FAST486_IDT_ENTRY) == sizeof(ULONGLONG)); -#pragma pack(pop) +#include typedef struct _FAST486_TABLE_REG { From 13b500f258f4ee33aa69ce6d1fb72b98ae3089ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Fri, 17 Oct 2014 02:31:14 +0000 Subject: [PATCH 054/108] [FAST486]: Use psh/poppack.h here too. svn path=/trunk/; revision=64775 --- reactos/lib/fast486/common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/lib/fast486/common.h b/reactos/lib/fast486/common.h index a560ac8e60e..0e0c0c8d426 100644 --- a/reactos/lib/fast486/common.h +++ b/reactos/lib/fast486/common.h @@ -85,7 +85,7 @@ typedef struct _FAST486_MOD_REG_RM }; } FAST486_MOD_REG_RM, *PFAST486_MOD_REG_RM; -#pragma pack(push, 1) +#include typedef union _FAST486_PAGE_DIR { @@ -128,7 +128,7 @@ typedef union _FAST486_PAGE_TABLE C_ASSERT(sizeof(FAST486_PAGE_DIR) == sizeof(ULONG)); -#pragma pack(pop) +#include /* FUNCTIONS ******************************************************************/ From 3fa669eddb182f7295291861f8f857771a117e87 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Fri, 17 Oct 2014 06:55:52 +0000 Subject: [PATCH 055/108] [NTFS] Bugfixing... Part 3/X: - Really release the allocated memory in NtfsFindFileAt() and NtfsLookupFileAt(). Don't attempt to release caller pointer! This fixes crashes on directory enumeration failure. Even though this latter still doesn't work. svn path=/trunk/; revision=64776 --- reactos/drivers/filesystems/ntfs/mft.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/mft.c b/reactos/drivers/filesystems/ntfs/mft.c index 913911ab107..5ee4bd370e2 100644 --- a/reactos/drivers/filesystems/ntfs/mft.c +++ b/reactos/drivers/filesystems/ntfs/mft.c @@ -397,6 +397,8 @@ ReadFileRecord(PDEVICE_EXTENSION Vcb, { ULONGLONG BytesRead; + DPRINT1("ReadFileRecord(%p, %I64x, %p)\n", Vcb, index, file); + BytesRead = ReadAttribute(Vcb, Vcb->MFTContext, index * Vcb->NtfsInfo.BytesPerFileRecord, (PCHAR)file, Vcb->NtfsInfo.BytesPerFileRecord); if (BytesRead != Vcb->NtfsInfo.BytesPerFileRecord) { @@ -714,7 +716,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, if (!NT_SUCCESS(Status)) { DPRINT("NtfsLookupFileAt: Can't read MFT record\n"); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreePoolWithTag(*FileRecord, TAG_NTFS); return Status; } @@ -724,7 +726,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, if (!NT_SUCCESS(Status)) { DPRINT("NtfsLookupFileAt: Can't find data attribute\n"); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreePoolWithTag(*FileRecord, TAG_NTFS); return Status; } @@ -775,7 +777,7 @@ NtfsFindFileAt(PDEVICE_EXTENSION Vcb, if (!NT_SUCCESS(Status)) { DPRINT("NtfsFindFileAt: Can't read MFT record\n"); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreePoolWithTag(*FileRecord, TAG_NTFS); return Status; } @@ -785,7 +787,7 @@ NtfsFindFileAt(PDEVICE_EXTENSION Vcb, if (!NT_SUCCESS(Status)) { DPRINT("NtfsFindFileAt: Can't find data attribute\n"); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreePoolWithTag(*FileRecord, TAG_NTFS); return Status; } From 5a93a71d044c9edb7b86d41f2137345fe2da3f78 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Fri, 17 Oct 2014 07:59:29 +0000 Subject: [PATCH 056/108] [WIN32K] * Workaround for CORE-8525, CORE-6023, CORE-7735 and CORE-8635. * Brought to you by V and Amine. Thanks to Timo and Jerome for the reviews. CORE-8525 CORE-6023 CORE-7735 CORE-8635 #comment Please retest with r64777 or later. svn path=/trunk/; revision=64777 --- reactos/win32ss/gdi/ntgdi/freetype.c | 29 +++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/reactos/win32ss/gdi/ntgdi/freetype.c b/reactos/win32ss/gdi/ntgdi/freetype.c index bf5d0b9d4e4..e47bdaf7d36 100644 --- a/reactos/win32ss/gdi/ntgdi/freetype.c +++ b/reactos/win32ss/gdi/ntgdi/freetype.c @@ -2664,15 +2664,42 @@ GetFontScore(LOGFONTW *LogFont, PUNICODE_STRING FaceName, PFONTGDI FontGDI) Status = RtlAnsiStringToUnicodeString(&EntryFaceNameW, &EntryFaceNameA, TRUE); if (NT_SUCCESS(Status)) { + static const UNICODE_STRING MarlettFaceNameW = RTL_CONSTANT_STRING(L"Marlett"); + static const UNICODE_STRING SymbolFaceNameW = RTL_CONSTANT_STRING(L"Symbol"); + static const UNICODE_STRING VGAFaceNameW = RTL_CONSTANT_STRING(L"VGA"); + if ((LF_FACESIZE - 1) * sizeof(WCHAR) < EntryFaceNameW.Length) { EntryFaceNameW.Length = (LF_FACESIZE - 1) * sizeof(WCHAR); EntryFaceNameW.Buffer[LF_FACESIZE - 1] = L'\0'; } - if (0 == RtlCompareUnicodeString(FaceName, &EntryFaceNameW, TRUE)) + + if (!RtlCompareUnicodeString(FaceName, &EntryFaceNameW, TRUE)) { Score += 49; } + + /* FIXME: this is a work around to counter weird fonts on weird places. + A proper fix would be to score fonts on more attributes than + the ones in this function */ + if (!RtlCompareUnicodeString(&MarlettFaceNameW, &EntryFaceNameW, TRUE) && + RtlCompareUnicodeString(&MarlettFaceNameW, FaceName, TRUE)) + { + Score = 0; + } + + if (!RtlCompareUnicodeString(&SymbolFaceNameW, &EntryFaceNameW, TRUE) && + RtlCompareUnicodeString(&SymbolFaceNameW, FaceName, TRUE)) + { + Score = 0; + } + + if (!RtlCompareUnicodeString(&VGAFaceNameW, &EntryFaceNameW, TRUE) && + RtlCompareUnicodeString(&VGAFaceNameW, FaceName, TRUE)) + { + Score = 0; + } + RtlFreeUnicodeString(&EntryFaceNameW); } From e5a60cbf1b2c17961ed0b400a04db251db956deb Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Fri, 17 Oct 2014 10:04:57 +0000 Subject: [PATCH 057/108] [NPFS] - Arch, pool tags are specified in reverse order svn path=/trunk/; revision=64778 --- reactos/drivers/filesystems/npfs/npfs.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/reactos/drivers/filesystems/npfs/npfs.h b/reactos/drivers/filesystems/npfs/npfs.h index e13adbf60d2..5d36d0cf3bf 100644 --- a/reactos/drivers/filesystems/npfs/npfs.h +++ b/reactos/drivers/filesystems/npfs/npfs.h @@ -50,18 +50,18 @@ // NpFs - npfs.sys - Client security context // NpFw - npfs.sys - Write block // NpFW - npfs.sys - Write block -#define NPFS_CCB_TAG 'NpFc' -#define NPFS_ROOT_DCB_CCB_TAG 'NpFC' -#define NPFS_DCB_TAG 'NpFD' -#define NPFS_FCB_TAG 'NpFf' -#define NPFS_GLOBAL_TAG 'NpFg' -#define NPFS_CLIENT_INFO_TAG 'NpFi' -#define NPFS_NAME_BLOCK_TAG 'NpFn' -#define NPFS_QUERY_TEMPLATE_TAG 'NpFq' -#define NPFS_DATA_ENTRY_TAG 'NpFr' -#define NPFS_CLIENT_SEC_CTX_TAG 'NpFs' -#define NPFS_WAIT_BLOCK_TAG 'NpFt' -#define NPFS_WRITE_BLOCK_TAG 'NpFw' +#define NPFS_CCB_TAG 'cFpN' +#define NPFS_ROOT_DCB_CCB_TAG 'CFpN' +#define NPFS_DCB_TAG 'DFpN' +#define NPFS_FCB_TAG 'fFpN' +#define NPFS_GLOBAL_TAG 'gFpN' +#define NPFS_CLIENT_INFO_TAG 'iFpN' +#define NPFS_NAME_BLOCK_TAG 'nFpN' +#define NPFS_QUERY_TEMPLATE_TAG 'qFpN' +#define NPFS_DATA_ENTRY_TAG 'rFpN' +#define NPFS_CLIENT_SEC_CTX_TAG 'sFpN' +#define NPFS_WAIT_BLOCK_TAG 'tFpN' +#define NPFS_WRITE_BLOCK_TAG 'wFpN' // // NPFS bugchecking support From 3331eff2ba42a3a8d1fcc7bd844f2b7d7f21eb85 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Fri, 17 Oct 2014 10:58:01 +0000 Subject: [PATCH 058/108] [LIBXML2] * Update to v2.9.2. CORE-8642 svn path=/trunk/; revision=64779 --- reactos/include/reactos/libs/libxml/SAX2.h | 6 +- .../include/reactos/libs/libxml/entities.h | 6 +- reactos/include/reactos/libs/libxml/globals.h | 17 +- reactos/include/reactos/libs/libxml/relaxng.h | 8 +- reactos/include/reactos/libs/libxml/tree.h | 91 +-- reactos/include/reactos/libs/libxml/xmlIO.h | 2 +- .../include/reactos/libs/libxml/xmlerror.h | 2 +- .../include/reactos/libs/libxml/xmlversion.h | 8 +- reactos/lib/3rdparty/libxml2/COPYING | 14 +- reactos/lib/3rdparty/libxml2/ChangeLog | 2 +- reactos/lib/3rdparty/libxml2/HTMLparser.c | 32 +- reactos/lib/3rdparty/libxml2/HTMLtree.c | 49 +- reactos/lib/3rdparty/libxml2/NEWS | 658 +++++++++++++++++- reactos/lib/3rdparty/libxml2/SAX2.c | 20 +- reactos/lib/3rdparty/libxml2/buf.c | 4 +- reactos/lib/3rdparty/libxml2/buf.h | 4 +- reactos/lib/3rdparty/libxml2/c14n.c | 9 +- reactos/lib/3rdparty/libxml2/catalog.c | 9 +- reactos/lib/3rdparty/libxml2/config.h | 9 +- reactos/lib/3rdparty/libxml2/debugXML.c | 9 +- reactos/lib/3rdparty/libxml2/elfgcchack.h | 32 +- reactos/lib/3rdparty/libxml2/encoding.c | 18 +- reactos/lib/3rdparty/libxml2/entities.c | 4 +- reactos/lib/3rdparty/libxml2/hash.c | 3 + .../3rdparty/libxml2/include/win32config.h | 4 + reactos/lib/3rdparty/libxml2/legacy.c | 2 +- reactos/lib/3rdparty/libxml2/nanoftp.c | 46 +- reactos/lib/3rdparty/libxml2/nanohttp.c | 17 +- reactos/lib/3rdparty/libxml2/parser.c | 163 ++++- .../lib/3rdparty/libxml2/parserInternals.c | 17 +- reactos/lib/3rdparty/libxml2/relaxng.c | 42 +- reactos/lib/3rdparty/libxml2/schematron.c | 2 + reactos/lib/3rdparty/libxml2/threads.c | 6 +- reactos/lib/3rdparty/libxml2/timsort.h | 12 +- reactos/lib/3rdparty/libxml2/tree.c | 133 ++-- reactos/lib/3rdparty/libxml2/trio.c | 138 ++-- reactos/lib/3rdparty/libxml2/trio.h | 14 + reactos/lib/3rdparty/libxml2/triodef.h | 6 + reactos/lib/3rdparty/libxml2/triostr.c | 8 +- reactos/lib/3rdparty/libxml2/uri.c | 36 +- reactos/lib/3rdparty/libxml2/valid.c | 34 +- reactos/lib/3rdparty/libxml2/xinclude.c | 5 +- reactos/lib/3rdparty/libxml2/xlink.c | 2 +- reactos/lib/3rdparty/libxml2/xmlIO.c | 47 +- reactos/lib/3rdparty/libxml2/xmlcatalog.c | 11 +- reactos/lib/3rdparty/libxml2/xmllint.c | 45 +- reactos/lib/3rdparty/libxml2/xmlmemory.c | 19 +- reactos/lib/3rdparty/libxml2/xmlmodule.c | 2 +- reactos/lib/3rdparty/libxml2/xmlreader.c | 34 +- reactos/lib/3rdparty/libxml2/xmlregexp.c | 10 +- reactos/lib/3rdparty/libxml2/xmlschemas.c | 558 +++++++-------- .../lib/3rdparty/libxml2/xmlschemastypes.c | 17 +- reactos/lib/3rdparty/libxml2/xmlwriter.c | 22 +- reactos/lib/3rdparty/libxml2/xpath.c | 635 +++++++++-------- reactos/lib/3rdparty/libxml2/xpointer.c | 30 +- reactos/lib/3rdparty/libxml2/xzlib.c | 51 +- reactos/lib/3rdparty/libxml2/xzlib.h | 1 + reactos/media/doc/3rd Party Files.txt | 2 +- 58 files changed, 2185 insertions(+), 1002 deletions(-) diff --git a/reactos/include/reactos/libs/libxml/SAX2.h b/reactos/include/reactos/libs/libxml/SAX2.h index daafd17eff8..a55212eb554 100644 --- a/reactos/include/reactos/libs/libxml/SAX2.h +++ b/reactos/include/reactos/libs/libxml/SAX2.h @@ -98,7 +98,9 @@ XMLPUBFUN void XMLCALL xmlSAX2StartDocument (void *ctx); XMLPUBFUN void XMLCALL xmlSAX2EndDocument (void *ctx); -#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) +#if defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || \ + defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) || \ + defined(LIBXML_LEGACY_ENABLED) XMLPUBFUN void XMLCALL xmlSAX2StartElement (void *ctx, const xmlChar *fullname, @@ -106,7 +108,7 @@ XMLPUBFUN void XMLCALL XMLPUBFUN void XMLCALL xmlSAX2EndElement (void *ctx, const xmlChar *name); -#endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED */ +#endif /* LIBXML_SAX1_ENABLED or LIBXML_HTML_ENABLED or LIBXML_LEGACY_ENABLED */ XMLPUBFUN void XMLCALL xmlSAX2StartElementNs (void *ctx, const xmlChar *localname, diff --git a/reactos/include/reactos/libs/libxml/entities.h b/reactos/include/reactos/libs/libxml/entities.h index 1e9118975d7..47b4573eba6 100644 --- a/reactos/include/reactos/libs/libxml/entities.h +++ b/reactos/include/reactos/libs/libxml/entities.h @@ -57,7 +57,7 @@ struct _xmlEntity { const xmlChar *URI; /* the full URI as computed */ int owner; /* does the entity own the childrens */ int checked; /* was the entity content checked */ - /* this is also used to count entites + /* this is also used to count entities * references done from that entity * and if it contains '<' */ }; @@ -103,7 +103,7 @@ XMLPUBFUN xmlEntityPtr XMLCALL XMLPUBFUN xmlEntityPtr XMLCALL xmlGetPredefinedEntity (const xmlChar *name); XMLPUBFUN xmlEntityPtr XMLCALL - xmlGetDocEntity (xmlDocPtr doc, + xmlGetDocEntity (const xmlDoc *doc, const xmlChar *name); XMLPUBFUN xmlEntityPtr XMLCALL xmlGetDtdEntity (xmlDocPtr doc, @@ -120,7 +120,7 @@ XMLPUBFUN xmlChar * XMLCALL xmlEncodeEntitiesReentrant(xmlDocPtr doc, const xmlChar *input); XMLPUBFUN xmlChar * XMLCALL - xmlEncodeSpecialChars (xmlDocPtr doc, + xmlEncodeSpecialChars (const xmlDoc *doc, const xmlChar *input); XMLPUBFUN xmlEntitiesTablePtr XMLCALL xmlCreateEntitiesTable (void); diff --git a/reactos/include/reactos/libs/libxml/globals.h b/reactos/include/reactos/libs/libxml/globals.h index 9d688e0d3fa..a9305aa97e8 100644 --- a/reactos/include/reactos/libs/libxml/globals.h +++ b/reactos/include/reactos/libs/libxml/globals.h @@ -39,7 +39,9 @@ XMLPUBFUN void XMLCALL xmlCleanupGlobals(void); * Returns the new xmlParserInputBufferPtr in case of success or NULL if no * method was found. */ -typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, xmlCharEncoding enc); +typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const char *URI, + xmlCharEncoding enc); + /** * xmlOutputBufferCreateFilenameFunc: @@ -52,7 +54,9 @@ typedef xmlParserInputBufferPtr (*xmlParserInputBufferCreateFilenameFunc) (const * Returns the new xmlOutputBufferPtr in case of success or NULL if no * method was found. */ -typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, xmlCharEncodingHandlerPtr encoder, int compression); +typedef xmlOutputBufferPtr (*xmlOutputBufferCreateFilenameFunc) (const char *URI, + xmlCharEncodingHandlerPtr encoder, + int compression); XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL xmlParserInputBufferCreateFilenameDefault (xmlParserInputBufferCreateFilenameFunc func); @@ -185,7 +189,8 @@ XMLPUBFUN xmlDeregisterNodeFunc XMLCALL xmlThrDefDeregisterNodeDefault(xmlDeregi XMLPUBFUN xmlOutputBufferCreateFilenameFunc XMLCALL xmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func); XMLPUBFUN xmlParserInputBufferCreateFilenameFunc XMLCALL - xmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func); + xmlThrDefParserInputBufferCreateFilenameDefault( + xmlParserInputBufferCreateFilenameFunc func); /** DOC_DISABLE */ /* @@ -297,7 +302,8 @@ XMLPUBFUN xmlBufferAllocationScheme * XMLCALL __xmlBufferAllocScheme(void); #else XMLPUBVAR xmlBufferAllocationScheme xmlBufferAllocScheme; #endif -XMLPUBFUN xmlBufferAllocationScheme XMLCALL xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v); +XMLPUBFUN xmlBufferAllocationScheme XMLCALL + xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v); XMLPUBFUN int * XMLCALL __xmlDefaultBufferSize(void); #ifdef LIBXML_THREAD_ENABLED @@ -479,7 +485,8 @@ XMLPUBFUN xmlDeregisterNodeFunc * XMLCALL __xmlDeregisterNodeDefaultValue(void); XMLPUBVAR xmlDeregisterNodeFunc xmlDeregisterNodeDefaultValue; #endif -XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL __xmlParserInputBufferCreateFilenameValue(void); +XMLPUBFUN xmlParserInputBufferCreateFilenameFunc * XMLCALL \ + __xmlParserInputBufferCreateFilenameValue(void); #ifdef LIBXML_THREAD_ENABLED #define xmlParserInputBufferCreateFilenameValue \ (*(__xmlParserInputBufferCreateFilenameValue())) diff --git a/reactos/include/reactos/libs/libxml/relaxng.h b/reactos/include/reactos/libs/libxml/relaxng.h index bdb0a7d3769..f269c9ec0db 100644 --- a/reactos/include/reactos/libs/libxml/relaxng.h +++ b/reactos/include/reactos/libs/libxml/relaxng.h @@ -32,7 +32,9 @@ typedef xmlRelaxNG *xmlRelaxNGPtr; * * Signature of an error callback from a Relax-NG validation */ -typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); +typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, + const char *msg, + ...) LIBXML_ATTR_FORMAT(2,3); /** * xmlRelaxNGValidityWarningFunc: @@ -42,7 +44,9 @@ typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg * * Signature of a warning callback from a Relax-NG validation */ -typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3); +typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, + const char *msg, + ...) LIBXML_ATTR_FORMAT(2,3); /** * A schemas validation context diff --git a/reactos/include/reactos/libs/libxml/tree.h b/reactos/include/reactos/libs/libxml/tree.h index 7e06686af3c..2f90717c1b4 100644 --- a/reactos/include/reactos/libs/libxml/tree.h +++ b/reactos/include/reactos/libs/libxml/tree.h @@ -116,8 +116,8 @@ typedef xmlBuf *xmlBufPtr; * A few public routines for xmlBuf. As those are expected to be used * mostly internally the bulk of the routines are internal in buf.h */ -XMLPUBFUN xmlChar* XMLCALL xmlBufContent (const xmlBufPtr buf); -XMLPUBFUN xmlChar* XMLCALL xmlBufEnd (const xmlBufPtr buf); +XMLPUBFUN xmlChar* XMLCALL xmlBufContent (const xmlBuf* buf); +XMLPUBFUN xmlChar* XMLCALL xmlBufEnd (xmlBufPtr buf); XMLPUBFUN size_t XMLCALL xmlBufUse (const xmlBufPtr buf); XMLPUBFUN size_t XMLCALL xmlBufShrink (xmlBufPtr buf, size_t len); @@ -654,7 +654,11 @@ struct _xmlDOMWrapCtxt { /* * Some helper functions */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED) +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \ + defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || \ + defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || \ + defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || \ + defined(LIBXML_DOCB_ENABLED) || defined(LIBXML_LEGACY_ENABLED) XMLPUBFUN int XMLCALL xmlValidateNCName (const xmlChar *value, int space); @@ -731,14 +735,14 @@ XMLPUBFUN int XMLCALL XMLPUBFUN void XMLCALL xmlBufferEmpty (xmlBufferPtr buf); XMLPUBFUN const xmlChar* XMLCALL - xmlBufferContent (const xmlBufferPtr buf); + xmlBufferContent (const xmlBuffer *buf); XMLPUBFUN xmlChar* XMLCALL xmlBufferDetach (xmlBufferPtr buf); XMLPUBFUN void XMLCALL xmlBufferSetAllocationScheme(xmlBufferPtr buf, xmlBufferAllocationScheme scheme); XMLPUBFUN int XMLCALL - xmlBufferLength (const xmlBufferPtr buf); + xmlBufferLength (const xmlBuffer *buf); /* * Creating/freeing new structures. @@ -754,7 +758,7 @@ XMLPUBFUN xmlDtdPtr XMLCALL const xmlChar *ExternalID, const xmlChar *SystemID); XMLPUBFUN xmlDtdPtr XMLCALL - xmlGetIntSubset (xmlDocPtr doc); + xmlGetIntSubset (const xmlDoc *doc); XMLPUBFUN void XMLCALL xmlFreeDtd (xmlDtdPtr cur); #ifdef LIBXML_LEGACY_ENABLED @@ -842,7 +846,7 @@ XMLPUBFUN xmlNodePtr XMLCALL const xmlChar *content); #endif XMLPUBFUN xmlNodePtr XMLCALL - xmlNewDocText (xmlDocPtr doc, + xmlNewDocText (const xmlDoc *doc, const xmlChar *content); XMLPUBFUN xmlNodePtr XMLCALL xmlNewText (const xmlChar *content); @@ -873,20 +877,20 @@ XMLPUBFUN xmlNodePtr XMLCALL xmlNewCharRef (xmlDocPtr doc, const xmlChar *name); XMLPUBFUN xmlNodePtr XMLCALL - xmlNewReference (xmlDocPtr doc, + xmlNewReference (const xmlDoc *doc, const xmlChar *name); XMLPUBFUN xmlNodePtr XMLCALL - xmlCopyNode (const xmlNodePtr node, + xmlCopyNode (xmlNodePtr node, int recursive); XMLPUBFUN xmlNodePtr XMLCALL - xmlDocCopyNode (const xmlNodePtr node, + xmlDocCopyNode (xmlNodePtr node, xmlDocPtr doc, int recursive); XMLPUBFUN xmlNodePtr XMLCALL xmlDocCopyNodeList (xmlDocPtr doc, - const xmlNodePtr node); + xmlNodePtr node); XMLPUBFUN xmlNodePtr XMLCALL - xmlCopyNodeList (const xmlNodePtr node); + xmlCopyNodeList (xmlNodePtr node); #ifdef LIBXML_TREE_ENABLED XMLPUBFUN xmlNodePtr XMLCALL xmlNewTextChild (xmlNodePtr parent, @@ -906,19 +910,19 @@ XMLPUBFUN xmlNodePtr XMLCALL * Navigating. */ XMLPUBFUN long XMLCALL - xmlGetLineNo (xmlNodePtr node); + xmlGetLineNo (const xmlNode *node); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) XMLPUBFUN xmlChar * XMLCALL - xmlGetNodePath (xmlNodePtr node); + xmlGetNodePath (const xmlNode *node); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */ XMLPUBFUN xmlNodePtr XMLCALL - xmlDocGetRootElement (xmlDocPtr doc); + xmlDocGetRootElement (const xmlDoc *doc); XMLPUBFUN xmlNodePtr XMLCALL - xmlGetLastChild (xmlNodePtr parent); + xmlGetLastChild (const xmlNode *parent); XMLPUBFUN int XMLCALL - xmlNodeIsText (xmlNodePtr node); + xmlNodeIsText (const xmlNode *node); XMLPUBFUN int XMLCALL - xmlIsBlankNode (xmlNodePtr node); + xmlIsBlankNode (const xmlNode *node); /* * Changing the structure. @@ -945,7 +949,7 @@ XMLPUBFUN xmlNodePtr XMLCALL xmlNodePtr cur); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \ - defined(LIBXML_SCHEMAS_ENABLED) + defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) XMLPUBFUN xmlNodePtr XMLCALL xmlAddPrevSibling (xmlNodePtr cur, xmlNodePtr elem); @@ -986,10 +990,11 @@ XMLPUBFUN xmlNsPtr XMLCALL xmlSearchNsByHref (xmlDocPtr doc, xmlNodePtr node, const xmlChar *href); -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \ + defined(LIBXML_SCHEMAS_ENABLED) XMLPUBFUN xmlNsPtr * XMLCALL - xmlGetNsList (xmlDocPtr doc, - xmlNodePtr node); + xmlGetNsList (const xmlDoc *doc, + const xmlNode *node); #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */ XMLPUBFUN void XMLCALL @@ -1003,7 +1008,8 @@ XMLPUBFUN xmlNsPtr XMLCALL /* * Changing the content. */ -#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) +#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \ + defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) XMLPUBFUN xmlAttrPtr XMLCALL xmlSetProp (xmlNodePtr node, const xmlChar *name, @@ -1013,39 +1019,40 @@ XMLPUBFUN xmlAttrPtr XMLCALL xmlNsPtr ns, const xmlChar *name, const xmlChar *value); -#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ +#endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \ + defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ XMLPUBFUN xmlChar * XMLCALL - xmlGetNoNsProp (xmlNodePtr node, + xmlGetNoNsProp (const xmlNode *node, const xmlChar *name); XMLPUBFUN xmlChar * XMLCALL - xmlGetProp (xmlNodePtr node, + xmlGetProp (const xmlNode *node, const xmlChar *name); XMLPUBFUN xmlAttrPtr XMLCALL - xmlHasProp (xmlNodePtr node, + xmlHasProp (const xmlNode *node, const xmlChar *name); XMLPUBFUN xmlAttrPtr XMLCALL - xmlHasNsProp (xmlNodePtr node, + xmlHasNsProp (const xmlNode *node, const xmlChar *name, const xmlChar *nameSpace); XMLPUBFUN xmlChar * XMLCALL - xmlGetNsProp (xmlNodePtr node, + xmlGetNsProp (const xmlNode *node, const xmlChar *name, const xmlChar *nameSpace); XMLPUBFUN xmlNodePtr XMLCALL - xmlStringGetNodeList (xmlDocPtr doc, + xmlStringGetNodeList (const xmlDoc *doc, const xmlChar *value); XMLPUBFUN xmlNodePtr XMLCALL - xmlStringLenGetNodeList (xmlDocPtr doc, + xmlStringLenGetNodeList (const xmlDoc *doc, const xmlChar *value, int len); XMLPUBFUN xmlChar * XMLCALL xmlNodeListGetString (xmlDocPtr doc, - xmlNodePtr list, + const xmlNode *list, int inLine); #ifdef LIBXML_TREE_ENABLED XMLPUBFUN xmlChar * XMLCALL - xmlNodeListGetRawString (xmlDocPtr doc, - xmlNodePtr list, + xmlNodeListGetRawString (const xmlDoc *doc, + const xmlNode *list, int inLine); #endif /* LIBXML_TREE_ENABLED */ XMLPUBFUN void XMLCALL @@ -1065,19 +1072,19 @@ XMLPUBFUN void XMLCALL const xmlChar *content, int len); XMLPUBFUN xmlChar * XMLCALL - xmlNodeGetContent (xmlNodePtr cur); + xmlNodeGetContent (const xmlNode *cur); XMLPUBFUN int XMLCALL xmlNodeBufGetContent (xmlBufferPtr buffer, - xmlNodePtr cur); + const xmlNode *cur); XMLPUBFUN int XMLCALL xmlBufGetNodeContent (xmlBufPtr buf, - xmlNodePtr cur); + const xmlNode *cur); XMLPUBFUN xmlChar * XMLCALL - xmlNodeGetLang (xmlNodePtr cur); + xmlNodeGetLang (const xmlNode *cur); XMLPUBFUN int XMLCALL - xmlNodeGetSpacePreserve (xmlNodePtr cur); + xmlNodeGetSpacePreserve (const xmlNode *cur); #ifdef LIBXML_TREE_ENABLED XMLPUBFUN void XMLCALL xmlNodeSetLang (xmlNodePtr cur, @@ -1087,8 +1094,8 @@ XMLPUBFUN void XMLCALL int val); #endif /* LIBXML_TREE_ENABLED */ XMLPUBFUN xmlChar * XMLCALL - xmlNodeGetBase (xmlDocPtr doc, - xmlNodePtr cur); + xmlNodeGetBase (const xmlDoc *doc, + const xmlNode *cur); #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) XMLPUBFUN void XMLCALL xmlNodeSetBase (xmlNodePtr cur, @@ -1234,7 +1241,7 @@ XMLPUBFUN int XMLCALL * Compression. */ XMLPUBFUN int XMLCALL - xmlGetDocCompressMode (xmlDocPtr doc); + xmlGetDocCompressMode (const xmlDoc *doc); XMLPUBFUN void XMLCALL xmlSetDocCompressMode (xmlDocPtr doc, int mode); diff --git a/reactos/include/reactos/libs/libxml/xmlIO.h b/reactos/include/reactos/libs/libxml/xmlIO.h index 6c241a8dde9..3e41744deb0 100644 --- a/reactos/include/reactos/libs/libxml/xmlIO.h +++ b/reactos/include/reactos/libs/libxml/xmlIO.h @@ -209,7 +209,7 @@ XMLPUBFUN int XMLCALL xmlParserInputBufferPtr __xmlParserInputBufferCreateFilename(const char *URI, - xmlCharEncoding enc); + xmlCharEncoding enc); #ifdef LIBXML_OUTPUT_ENABLED /* diff --git a/reactos/include/reactos/libs/libxml/xmlerror.h b/reactos/include/reactos/libs/libxml/xmlerror.h index 537a396c6d8..43e68ca5935 100644 --- a/reactos/include/reactos/libs/libxml/xmlerror.h +++ b/reactos/include/reactos/libs/libxml/xmlerror.h @@ -86,7 +86,7 @@ struct _xmlError { char *str2; /* extra string information */ char *str3; /* extra string information */ int int1; /* extra number information */ - int int2; /* column number of the error or 0 if N/A (todo: rename this field when we would break ABI) */ + int int2; /* error column # or 0 if N/A (todo: rename field when we would brk ABI) */ void *ctxt; /* the parser context if available */ void *node; /* the node in the tree */ }; diff --git a/reactos/include/reactos/libs/libxml/xmlversion.h b/reactos/include/reactos/libs/libxml/xmlversion.h index 26517419949..92f1352371a 100644 --- a/reactos/include/reactos/libs/libxml/xmlversion.h +++ b/reactos/include/reactos/libs/libxml/xmlversion.h @@ -29,21 +29,21 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); * * the version string like "1.2.3" */ -#define LIBXML_DOTTED_VERSION "2.9.1" +#define LIBXML_DOTTED_VERSION "2.9.2" /** * LIBXML_VERSION: * * the version number: 1.2.3 value is 10203 */ -#define LIBXML_VERSION 20901 +#define LIBXML_VERSION 20902 /** * LIBXML_VERSION_STRING: * * the version number string, 1.2.3 value is "10203" */ -#define LIBXML_VERSION_STRING "20901" +#define LIBXML_VERSION_STRING "20902" /** * LIBXML_VERSION_EXTRA: @@ -58,7 +58,7 @@ XMLPUBFUN void XMLCALL xmlCheckVersion(int version); * Macro to check that the libxml version in use is compatible with * the version the software has been compiled against */ -#define LIBXML_TEST_VERSION xmlCheckVersion(20901); +#define LIBXML_TEST_VERSION xmlCheckVersion(20902); #ifndef VMS #if 0 diff --git a/reactos/lib/3rdparty/libxml2/COPYING b/reactos/lib/3rdparty/libxml2/COPYING index 417e95531fd..d61318502ca 100644 --- a/reactos/lib/3rdparty/libxml2/COPYING +++ b/reactos/lib/3rdparty/libxml2/COPYING @@ -2,7 +2,7 @@ Except where otherwise noted in the source code (e.g. the files hash.c, list.c and the trio files, which are covered by a similar licence but with different Copyright notices) all the files are: - Copyright (C) 1998-2003 Daniel Veillard. All Rights Reserved. + Copyright (C) 1998-2012 Daniel Veillard. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -17,11 +17,7 @@ all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- -NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of Daniel Veillard shall not -be used in advertising or otherwise to promote the sale, use or other deal- -ings in this Software without prior written authorization from him. - +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/reactos/lib/3rdparty/libxml2/ChangeLog b/reactos/lib/3rdparty/libxml2/ChangeLog index 36045e60c85..08725dd3d2e 100644 --- a/reactos/lib/3rdparty/libxml2/ChangeLog +++ b/reactos/lib/3rdparty/libxml2/ChangeLog @@ -8139,7 +8139,7 @@ Wed Dec 10 11:16:29 CET 2003 Daniel Veillard Tue Dec 9 23:50:23 CET 2003 Daniel Veillard - * entities.c: fixed an XML entites content serialization + * entities.c: fixed an XML entities content serialization potentially triggered by XInclude, see #126817 Tue Dec 9 16:12:50 CET 2003 Daniel Veillard diff --git a/reactos/lib/3rdparty/libxml2/HTMLparser.c b/reactos/lib/3rdparty/libxml2/HTMLparser.c index dd0c1ead910..d329d3b5407 100644 --- a/reactos/lib/3rdparty/libxml2/HTMLparser.c +++ b/reactos/lib/3rdparty/libxml2/HTMLparser.c @@ -1177,7 +1177,7 @@ static const char *const htmlScriptAttributes[] = { "onfocus", "onblur", "onsubmit", - "onrest", + "onreset", "onchange", "onselect" }; @@ -3671,13 +3671,13 @@ htmlParseStartTag(htmlParserCtxtPtr ctxt) { int i; int discardtag = 0; - if (ctxt->instate == XML_PARSER_EOF) - return(-1); if ((ctxt == NULL) || (ctxt->input == NULL)) { htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR, "htmlParseStartTag: context error\n", NULL, NULL); return -1; } + if (ctxt->instate == XML_PARSER_EOF) + return(-1); if (CUR != '<') return -1; NEXT; @@ -4366,7 +4366,7 @@ static void htmlParseElementInternal(htmlParserCtxtPtr ctxt) { const xmlChar *name; const htmlElemDesc * info; - htmlParserNodeInfo node_info; + htmlParserNodeInfo node_info = { 0, }; int failed; if ((ctxt == NULL) || (ctxt->input == NULL)) { @@ -5991,7 +5991,7 @@ done: ctxt->sax->endDocument(ctxt->userData); } } - if ((ctxt->myDoc != NULL) && + if ((!(ctxt->options & HTML_PARSE_NODEFDTD)) && (ctxt->myDoc != NULL) && ((terminate) || (ctxt->instate == XML_PARSER_EOF) || (ctxt->instate == XML_PARSER_EPILOG))) { xmlDtdPtr dtd; @@ -6288,12 +6288,16 @@ htmlCreateFileParserCtxt(const char *filename, const char *encoding) /* set encoding */ if (encoding) { - content = xmlMallocAtomic (xmlStrlen(content_line) + strlen(encoding) + 1); - if (content) { - strcpy ((char *)content, (char *)content_line); - strcat ((char *)content, (char *)encoding); - htmlCheckEncoding (ctxt, content); - xmlFree (content); + size_t l = strlen(encoding); + + if (l < 1000) { + content = xmlMallocAtomic (xmlStrlen(content_line) + l + 1); + if (content) { + strcpy ((char *)content, (char *)content_line); + strcat ((char *)content, (char *)encoding); + htmlCheckEncoding (ctxt, content); + xmlFree (content); + } } } @@ -6808,6 +6812,7 @@ htmlReadFd(int fd, const char *URL, const char *encoding, int options) if (fd < 0) return (NULL); + xmlInitParser(); xmlInitParser(); input = xmlParserInputBufferCreateFd(fd, XML_CHAR_ENCODING_NONE); @@ -6898,6 +6903,7 @@ htmlCtxtReadDoc(htmlParserCtxtPtr ctxt, const xmlChar * cur, return (NULL); if (ctxt == NULL) return (NULL); + xmlInitParser(); htmlCtxtReset(ctxt); @@ -6931,6 +6937,7 @@ htmlCtxtReadFile(htmlParserCtxtPtr ctxt, const char *filename, return (NULL); if (ctxt == NULL) return (NULL); + xmlInitParser(); htmlCtxtReset(ctxt); @@ -6967,6 +6974,7 @@ htmlCtxtReadMemory(htmlParserCtxtPtr ctxt, const char *buffer, int size, return (NULL); if (buffer == NULL) return (NULL); + xmlInitParser(); htmlCtxtReset(ctxt); @@ -7009,6 +7017,7 @@ htmlCtxtReadFd(htmlParserCtxtPtr ctxt, int fd, return (NULL); if (ctxt == NULL) return (NULL); + xmlInitParser(); htmlCtxtReset(ctxt); @@ -7053,6 +7062,7 @@ htmlCtxtReadIO(htmlParserCtxtPtr ctxt, xmlInputReadCallback ioread, return (NULL); if (ctxt == NULL) return (NULL); + xmlInitParser(); htmlCtxtReset(ctxt); diff --git a/reactos/lib/3rdparty/libxml2/HTMLtree.c b/reactos/lib/3rdparty/libxml2/HTMLtree.c index 4d8e3542603..5c57fc572bc 100644 --- a/reactos/lib/3rdparty/libxml2/HTMLtree.c +++ b/reactos/lib/3rdparty/libxml2/HTMLtree.c @@ -716,22 +716,49 @@ htmlAttrDumpOutput(xmlOutputBufferPtr buf, xmlDocPtr doc, xmlAttrPtr cur, (!xmlStrcasecmp(cur->name, BAD_CAST "src")) || ((!xmlStrcasecmp(cur->name, BAD_CAST "name")) && (!xmlStrcasecmp(cur->parent->name, BAD_CAST "a"))))) { - xmlChar *escaped; xmlChar *tmp = value; + /* xmlURIEscapeStr() escapes '"' so it can be safely used. */ + xmlBufCCat(buf->buffer, "\""); while (IS_BLANK_CH(*tmp)) tmp++; - /* - * the < and > have already been escaped at the entity level - * And doing so here breaks server side includes - */ - escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+<>"); - if (escaped != NULL) { - xmlBufWriteQuotedString(buf->buffer, escaped); - xmlFree(escaped); - } else { - xmlBufWriteQuotedString(buf->buffer, value); + /* URI Escape everything, except server side includes. */ + for ( ; ; ) { + xmlChar *escaped; + xmlChar endChar; + xmlChar *end = NULL; + xmlChar *start = (xmlChar *)xmlStrstr(tmp, BAD_CAST ""); + if (end != NULL) { + *start = '\0'; + } + } + + /* Escape the whole string, or until start (set to '\0'). */ + escaped = xmlURIEscapeStr(tmp, BAD_CAST"@/:=?;#%&,+"); + if (escaped != NULL) { + xmlBufCat(buf->buffer, escaped); + xmlFree(escaped); + } else { + xmlBufCat(buf->buffer, tmp); + } + + if (end == NULL) { /* Everything has been written. */ + break; + } + + /* Do not escape anything within server side includes. */ + *start = '<'; /* Restore the first character of "") */ + endChar = *end; + *end = '\0'; + xmlBufCat(buf->buffer, start); + *end = endChar; + tmp = end; } + + xmlBufCCat(buf->buffer, "\""); } else { xmlBufWriteQuotedString(buf->buffer, value); } diff --git a/reactos/lib/3rdparty/libxml2/NEWS b/reactos/lib/3rdparty/libxml2/NEWS index cdfdda6f8d4..8027d55c0fd 100644 --- a/reactos/lib/3rdparty/libxml2/NEWS +++ b/reactos/lib/3rdparty/libxml2/NEWS @@ -4,17 +4,647 @@ Note that this is automatically generated from the news webpage at: http://xmlsoft.org/news.html -Items not finished and worked on, get in touch with the list if you want -to help those - More testing on RelaxNG - - Finishing up XML - Schemas - The change log at ChangeLog.html describes the recents commits -to the SVN at -http://svn.gnome.org/viewvc/libxml2/trunk/ +to the GIT at +http://git.gnome.org/browse/libxml2/ code base.Here is the list of public releases: +2.9.2: Oct 16 2014: + - Security: + Fix for CVE-2014-3660 billion laugh variant (Daniel Veillard), + CVE-2014-0191 Do not fetch external parameter entities (Daniel Veillard) + + - Bug Fixes: + fix memory leak xml header encoding field with XML_PARSE_IGNORE_ENC (Bart De Schuymer), + xmlmemory: handle realloc properly (Yegor Yefremov), + Python generator bug raised by the const change (Daniel Veillard), + Windows Critical sections not released correctly (Daniel Veillard), + Parser error on repeated recursive entity expansion containing < (Daniel Veillard), + xpointer : fixing Null Pointers (Gaurav Gupta), + Remove Unnecessary Null check in xpointer.c (Gaurav Gupta), + parser bug on misformed namespace attributes (Dennis Filder), + Pointer dereferenced before null check (Daniel Veillard), + Leak of struct addrinfo in xmlNanoFTPConnect() (Gaurav Gupta), + Possible overflow in HTMLParser.c (Daniel Veillard), + python/tests/sync.py assumes Python dictionaries are ordered (John Beck), + Fix Enum check and missing break (Gaurav Gupta), + xmlIO: Handle error returns from dup() (Philip Withnall), + Fix a problem properly saving URIs (Daniel Veillard), + wrong error column in structured error when parsing attribute values (Juergen Keil), + wrong error column in structured error when skipping whitespace in xml decl (Juergen Keil), + no error column in structured error handler for xml schema validation errors (Juergen Keil), + Couple of Missing Null checks (Gaurav Gupta), + Add couple of missing Null checks (Daniel Veillard), + xmlschemastypes: Fix potential array overflow (Philip Withnall), + runtest: Fix a memory leak on parse failure (Philip Withnall), + xmlIO: Fix an FD leak on gzdopen() failure (Philip Withnall), + xmlcatalog: Fix a memory leak on quit (Philip Withnall), + HTMLparser: Correctly initialise a stack allocated structure (Philip Withnall), + Check for tmon in _xmlSchemaDateAdd() is incorrect (David Kilzer), + Avoid Possible Null Pointer in trio.c (Gaurav Gupta), + Fix processing in SAX2 in case of an allocation failure (Daniel Veillard), + XML Shell command "cd" does not handle "/" at end of path (Daniel Veillard), + Fix various Missing Null checks (Gaurav Gupta), + Fix a potential NULL dereference (Daniel Veillard), + Add a couple of misisng check in xmlRelaxNGCleanupTree (Gaurav Gupta), + Add a missing argument check (Gaurav Gupta), + Adding a check in case of allocation error (Gaurav Gupta), + xmlSaveUri() incorrectly recomposes URIs with rootless paths (Dennis Filder), + Adding some missing NULL checks (Gaurav), + Fixes for xmlInitParserCtxt (Daniel Veillard), + Fix regressions introduced by CVE-2014-0191 patch (Daniel Veillard), + erroneously ignores a validation error if no error callback set (Daniel Veillard), + xmllint was not parsing the --c14n11 flag (Sérgio Batista), + Avoid Possible null pointer dereference in memory debug mode (Gaurav), + Avoid Double Null Check (Gaurav), + Restore context size and position after XPATH_OP_ARG (Nick Wellnhofer), + Fix xmlParseInNodeContext() if node is not element (Daniel Veillard), + Avoid a possible NULL pointer dereference (Gaurav), + Fix xmlTextWriterWriteElement when a null content is given (Daniel Veillard), + Fix an typo 'onrest' in htmlScriptAttributes (Daniel Veillard), + fixing a ptotential uninitialized access (Daniel Veillard), + Fix an fd leak in an error case (Daniel Veillard), + Missing initialization for the catalog module (Daniel Veillard), + Handling of XPath function arguments in error case (Nick Wellnhofer), + Fix a couple of missing NULL checks (Gaurav), + Avoid a possibility of dangling encoding handler (Gaurav), + Fix HTML push parser to accept HTML_PARSE_NODEFDTD (Arnold Hendriks), + Fix a bug loading some compressed files (Mike Alexander), + Fix XPath node comparison bug (Gaurav), + Type mismatch in xmlschemas.c (Gaurav), + Type mismatch in xmlschemastypes.c (Gaurav), + Avoid a deadcode in catalog.c (Daniel Veillard), + run close socket on Solaris, same as we do on other platforms (Denis Pauk), + Fix pointer dereferenced before null check (Gaurav), + Fix a potential NULL dereference in tree code (Daniel Veillard), + Fix potential NULL pointer dereferences in regexp code (Gaurav), + xmllint --pretty crashed without following numeric argument (Tim Galeckas), + Fix XPath expressions of the form '@ns:*' (Nick Wellnhofer), + Fix XPath '//' optimization with predicates (Nick Wellnhofer), + Clear up a potential NULL dereference (Daniel Veillard), + Fix a possible NULL dereference (Gaurav), + Avoid crash if allocation fails (Daniel Veillard), + Remove occasional leading space in XPath number formatting (Daniel Veillard), + Fix handling of mmap errors (Daniel Veillard), + Catch malloc error and exit accordingly (Daniel Veillard), + missing else in xlink.c (Ami Fischman), + Fix a parsing bug on non-ascii element and CR/LF usage (Daniel Veillard), + Fix a regression in xmlGetDocCompressMode() (Daniel Veillard), + properly quote the namespace uris written out during c14n (Aleksey Sanin), + Remove premature XInclude check on URI being relative (Alexey Neyman), + Fix missing break on last() function for attributes (dcb), + Do not URI escape in server side includes (Romain Bondue), + Fix an error in xmlCleanupParser (Alexander Pastukhov) + + - Documentation: + typo in error messages "colon are forbidden from..." (Daniel Veillard), + Fix a link to James SAX documentation old page (Daniel Veillard), + Fix typos in relaxng.c (Jan Pokorný), + Fix a doc typo (Daniel Veillard), + Fix typos in {tree,xpath}.c (errror) (Jan Pokorný), + Add limitations about encoding conversion (Daniel Veillard), + Fix typos in xmlschemas{,types}.c (Jan Pokorný), + Fix incorrect spelling entites->entities (Jan Pokorný), + Forgot to document 2.9.1 release, regenerate docs (Daniel Veillard) + + - Portability: + AC_CONFIG_FILES and executable bit (Roumen Petrov), + remove HAVE_CONFIG_H dependency in testlimits.c (Roumen Petrov), + fix some tabs mixing incompatible with python3 (Roumen Petrov), + Visual Studio 14 CTP defines snprintf() (Francis Dupont), + OS400: do not try to copy unexisting doc files (Patrick Monnerat), + OS400: use either configure.ac or configure.in. (Patrick Monnerat), + os400: make-src.sh: create physical file with target CCSID (Patrick Monnerat), + OS400: Add some more C macros equivalent procedures. (Patrick Monnerat), + OS400: use C macros to implement equivalent RPG support procedures. (Patrick Monnerat), + OS400: implement XPath macros as procedures for ILE/RPG support. (Patrick Monnerat), + OS400: include in distribution tarball. (Patrick Monnerat), + OS400: Add README: compilation directives and OS/400 specific stuff. (Patrick Monnerat), + OS400: Add compilation scripts. (Patrick Monnerat), + OS400: ILE RPG language header files. (Patrick Monnerat), + OS400: implement some macros as functions for ILE/RPG language support (that as no macros). (Patrick Monnerat), + OS400: UTF8<-->EBCDIC wrappers for system and external library calls (Patrick Monnerat), + OS400: Easy character transcoding support (Patrick Monnerat), + OS400: iconv functions compatibility wrappers and table builder. (Patrick Monnerat), + OS400: create architecture directory. Implement dlfcn emulation. (Patrick Monnerat), + Fix building when configuring without xpath and xptr (Daniel Veillard), + configure: Add --with-python-install-dir (Jonas Eriksson), + Fix compilation with minimum and xinclude. (Nicolas Le Cam), + Compile out use of xmlValidateNCName() when not available. (Nicolas Le Cam), + Fix compilation with minimum and schematron. (Nicolas Le Cam), + Legacy needs xmlSAX2StartElement() and xmlSAX2EndElement(). (Nicolas Le Cam), + Don't use xmlValidateName() when not available. (Nicolas Le Cam), + Fix a portability issue on Windows (Longstreth Jon), + Various portability patches for OpenVMS (Jacob (Jouk) Jansen), + Use specific macros for portability to OS/400 (Patrick Monnerat), + Add macros needed for OS/400 portability (Patrick Monnerat), + Portability patch for fopen on OS/400 (Patrick Monnerat), + Portability fixes for OS/400 (Patrick Monnerat), + Improve va_list portability (Patrick Monnerat), + Portability fix (Patrick Monnerat), + Portability fix (Patrick Monnerat), + Generic portability fix (Patrick Monnerat), + Shortening lines in headers (Patrick Monnerat), + build: Use pkg-config to find liblzma in preference to AC_CHECK_LIB (Philip Withnall), + build: Add @LZMA_LIBS@ to libxml’s pkg-config files (Philip Withnall), + fix some tabs mixing incompatible with python3 (Daniel Veillard), + add additional defines checks for support "./configure --with-minimum" (Denis Pauk), + Another round of fixes for older versions of Python (Arfrever Frehtes Taifersar Arahesis), + python: fix drv_libxml2.py for python3 compatibility (Alexandre Rostovtsev), + python: Fix compiler warnings when building python3 bindings (Armin K), + Fix for compilation with python 2.6.8 (Petr Sumbera) + + - Improvements: + win32/libxml2.def.src after rebuild in doc (Roumen Petrov), + elfgcchack.h: more legacy needs xmlSAX2StartElement() and xmlSAX2EndElement() (Roumen Petrov), + elfgcchack.h: add xmlXPathNodeEval and xmlXPathSetContextNode (Roumen Petrov), + Provide cmake module (Samuel Martin), + Fix a couple of issues raised by make dist (Daniel Veillard), + Fix and add const qualifiers (Kurt Roeckx), + Preparing for upcoming release of 2.9.2 (Daniel Veillard), + Fix zlib and lzma libraries check via command line (Dmitriy), + wrong error column in structured error when parsing end tag (Juergen Keil), + doc/news.html: small update to avoid line join while generating NEWS. (Patrick Monnerat), + Add methods for python3 iterator (Ron Angeles), + Support element node traversal in document fragments. (Kyle VanderBeek), + xmlNodeSetName: Allow setting the name to a substring of the currently set name (Tristan Van Berkom), + Added macros for argument casts (Eric Zurcher), + adding init calls to xml and html Read parsing entry points (Daniel Veillard), + Get rid of 'REPLACEMENT CHARACTER' Unicode chars in xmlschemas.c (Jan Pokorný), + Implement choice for name classes on attributes (Shaun McCance), + Two small namespace tweaks (Daniel Veillard), + xmllint --memory should fail on empty files (Daniel Veillard), + Cast encoding name to char pointer to match arg type (Nikolay Sivov) + + - Cleanups: + Removal of old configure.in (Daniel Veillard), + Unreachable code in tree.c (Gaurav Gupta), + Remove a couple of dead conditions (Gaurav Gupta), + Avoid some dead code and cleanup in relaxng.c (Gaurav), + Drop not needed checks (Denis Pauk), + Fix a wrong test (Daniel Veillard) + + + +2.9.1: Apr 19 2013: + - Features: + Support for Python3 (Daniel Veillard), + Add xmlXPathSetContextNode and xmlXPathNodeEval (Alex Bligh) + + - Documentation: + Add documentation for xmllint --xpath (Daniel Veillard), + Fix the URL of the SAX documentation from James (Daniel Veillard), + Fix spelling of "length". (Michael Wood) + + - Portability: + Fix python bindings with versions older than 2.7 (Daniel Veillard), + rebuild docs:Makefile.am (Roumen Petrov), + elfgcchack.h after rebuild in doc (Roumen Petrov), + elfgcchack for buf module (Roumen Petrov), + Fix a uneeded and wrong extra link parameter (Daniel Veillard), + Few cleanup patches for Windows (Denis Pauk), + Fix rpmbuild --nocheck (Mark Salter), + Fix for win32/configure.js and WITH_THREAD_ALLOC (Daniel Richard), + Fix Broken multi-arch support in xml2-config (Daniel Veillard), + Fix a portability issue for GCC < 3.4.0 (Daniel Veillard), + Windows build fixes (Daniel Richard), + Fix a thread portability problem (Friedrich Haubensak), + Downgrade autoconf requirement to 2.63 (Daniel Veillard) + + - Bug Fixes: + Fix a linking error for python bindings (Daniel Veillard), + Fix a couple of return without value (Jüri Aedla), + Improve the hashing functions (Daniel Franke), + Improve handling of xmlStopParser() (Daniel Veillard), + Remove risk of lockup in dictionary initialization (Daniel Veillard), + Activate detection of encoding in external subset (Daniel Veillard), + Fix an output buffer flushing conversion bug (Mikhail Titov), + Fix an old bug in xmlSchemaValidateOneElement (Csaba László), + Fix configure cannot remove messages (Gilles Espinasse), + fix schema validation in combination with xsi:nil (Daniel Veillard), + xmlCtxtReadFile doesn't work with literal IPv6 URLs (Steve Wolf), + Fix a few problems with setEntityLoader (Alexey Neyman), + Detect excessive entities expansion upon replacement (Daniel Veillard), + Fix the flushing out of raw buffers on encoding conversions (Daniel, +Veillard), + Fix some buffer conversion issues (Daniel Veillard), + When calling xmlNodeDump make sure we grow the buffer quickly (Daniel, +Veillard), + Fix an error in the progressive DTD parsing code (Dan Winship), + xmllint should not load DTD by default when using the reader (Daniel, +Veillard), + Try IBM-037 when looking for EBCDIC handlers (Petr Sumbera), + Fix potential out of bound access (Daniel Veillard), + Fix large parse of file from memory (Daniel Veillard), + Fix a bug in the nsclean option of the parser (Daniel Veillard), + Fix a regression in 2.9.0 breaking validation while streaming (Daniel, +Veillard), + Remove potential calls to exit() (Daniel Veillard) + + - Improvements: + Regenerated API, and testapi, rebuild documentation (Daniel Veillard), + Fix tree iterators broken by 2to3 script (Daniel Veillard), + update all tests for Python3 and Python2 (Daniel Veillard), + A few more fixes for python 3 affecting libxml2.py (Daniel Veillard), + Fix compilation on Python3 (Daniel Veillard), + Converting apibuild.py to python3 (Daniel Veillard), + First pass at starting porting to python3 (Daniel Veillard), + updated configure.in for python3 (Daniel Veillard), + Add support for xpathRegisterVariable in Python (Shaun McCance), + Added a regression tests from bug 694228 data (Daniel Veillard), + Cache presence of '<' in entities content (Daniel Veillard), + Avoid extra processing on entities (Daniel Veillard), + Python binding for xmlRegisterInputCallback (Alexey Neyman), + Python bindings: DOM casts everything to xmlNode (Alexey Neyman), + Define LIBXML_THREAD_ALLOC_ENABLED via xmlversion.h (Tim Starling), + Adding streaming validation to runtest checks (Daniel Veillard), + Add a --pushsmall option to xmllint (Daniel Veillard) + + - Cleanups: + Switched comment in file to UTF-8 encoding (Daniel Veillard), + Extend gitignore (Daniel Veillard), + Silent the new python test on input (Alexey Neyman), + Cleanup of a duplicate test (Daniel Veillard), + Cleanup on duplicate test expressions (Daniel Veillard), + Fix compiler warning after 153cf15905cf4ec080612ada6703757d10caba1e (Patrick, +Gansterer), + Spec cleanups and a fix for multiarch support (Daniel Veillard), + Silence a clang warning (Daniel Veillard), + Cleanup the Copyright to be pure MIT Licence wording (Daniel Veillard), + rand_seed should be static in dict.c (Wouter Van Rooy), + Fix typos in parser comments (Jan Pokorný) + + + +2.9.0: Sep 11 2012: + - Features: + A few new API entry points, + More resilient push parser mode, + A lot of portability improvement, + Faster XPath evaluation + + - Documentation: + xml2-config.1 markup error (Christian Weisgerber), + libxml(3) manpage typo fix (John Bradshaw), + More cleanups to the documentation part of libxml2 (Daniel Richard G) + + - Portability: + Bug 676544 - fails to build with --without-sax1 (Akira TAGOH), + fix builds not having stdint.h (Rob Richards), + GetProcAddressA is available only on WinCE (Daniel Veillard), + More updates and cleanups on autotools and Makefiles (Daniel Richard G), + More changes for Win32 compilation (Eric Zurcher), + Basic changes for Win32 builds of release 2.9.0: compile buf.c (Eric Zurcher), + Bundles all generated files for python into the distribution (Daniel Richard G), + Fix compiler warnings of wincecompat.c (Patrick Gansterer), + Fix non __GNUC__ build (Patrick Gansterer), + Fix windows unicode build (Patrick Gansterer), + clean redefinition of {v}snprintf in C-source (Roumen Petrov), + use xmlBuf... if DEBUG_INPUT is defined (Roumen Petrov), + fix runtests to use pthreads support for various Unix platforms (Daniel Richard G), + Various "make distcheck" and portability fixups 2nd part (Daniel Richard G), + Various "make distcheck" and portability fixups (Daniel Richard G), + Fix compilation on older Visual Studio (Daniel Veillard) + + - Bug Fixes: + Change the XPath code to percolate allocation errors (Daniel Veillard), + Fix reuse of xmlInitParser (Daniel Veillard), + Fix potential crash on entities errors (Daniel Veillard), + initialize var (Rob Richards), + Fix the XPath arity check to also check the XPath stack limits (Daniel Veillard), + Fix problem with specific and generic error handlers (Pietro Cerutti), + Avoid a potential infinite recursion (Daniel Veillard), + Fix an XSD error when generating internal automata (Daniel Veillard), + Patch for xinclude of text using multibyte characters (Vitaly Ostanin), + Fix a segfault on XSD validation on pattern error (Daniel Veillard), + Fix missing xmlsave.h module which was ignored in recent builds (Daniel Veillard), + Add a missing element check (Daniel Veillard), + Adding various checks on node type though the API (Daniel Veillard), + Namespace nodes can't be unlinked with xmlUnlinkNode (Daniel Veillard), + Fix make dist to include new private header files (Daniel Veillard), + More fixups on the push parser behaviour (Daniel Veillard), + Strengthen behaviour of the push parser in problematic situations (Daniel Veillard), + Enforce XML_PARSER_EOF state handling through the parser (Daniel Veillard), + Fixup limits parser (Daniel Veillard), + Do not fetch external parsed entities (Daniel Veillard), + Fix an error in previous commit (Aron Xu), + Fix entities local buffers size problems (Daniel Veillard), + Fix parser local buffers size problems (Daniel Veillard), + Fix a failure to report xmlreader parsing failures (Daniel Veillard) + + - Improvements: + Keep libxml2.syms when running "make distclean" (Daniel Veillard), + Allow to set the quoting character of an xmlWriter (Csaba Raduly), + Keep non-significant blanks node in HTML parser (Daniel Veillard), + Add a forbidden variable error number and message to XPath (Daniel Veillard), + Support long path names on WNT (Michael Stahl), + Improve HTML escaping of attribute on output (Daniel Veillard), + Handle ICU_LIBS as LIBADD, not LDFLAGS to prevent linking errors (Arfrever Frehtes Taifersar Arahesis), + Switching XPath node sorting to Timsort (Vojtech Fried), + Optimizing '//' in XPath expressions (Nick Wellnhofer), + Expose xmlBufShrink in the public tree API (Daniel Veillard), + Visible HTML elements close the head tag (Conrad Irwin), + Fix file and line report for XSD SAX and reader streaming validation (Daniel Veillard), + Fix const qualifyer to definition of xmlBufferDetach (Daniel Veillard), + minimize use of HAVE_CONFIG_H (Roumen Petrov), + fixup regression in Various "make distcheck" and portability fixups (Roumen Petrov), + Add support for big line numbers in error reporting (Daniel Veillard), + Avoid using xmlBuffer for serialization (Daniel Veillard), + Improve compatibility between xmlBuf and xmlBuffer (Daniel Veillard), + Provide new accessors for xmlOutputBuffer (Daniel Veillard), + Improvements for old buffer compatibility (Daniel Veillard), + Expand the limit test program (Daniel Veillard), + Improve error reporting on parser errors (Daniel Veillard), + Implement some default limits in the XPath module (Daniel Veillard), + Introduce some default parser limits (Daniel Veillard), + Cleanups and new limit APIs for dictionaries (Daniel Veillard), + Fixup for buf.c (Daniel Veillard), + Cleanup URI module memory allocation code (Daniel Veillard), + Extend testlimits (Daniel Veillard), + More avoid quadratic behaviour (Daniel Veillard), + Impose a reasonable limit on PI size (Daniel Veillard), + first version of testlimits new test (Daniel Veillard), + Avoid quadratic behaviour in some push parsing cases (Daniel Veillard), + Impose a reasonable limit on comment size (Daniel Veillard), + Impose a reasonable limit on attribute size (Daniel Veillard), + Harden the buffer code and make it more compatible (Daniel Veillard), + More cleanups for input/buffers code (Daniel Veillard), + Cleanup function xmlBufResetInput(), to set input from Buffer (Daniel Veillard) + Swicth the test program for characters to new input buffers (Daniel Veillard), + Convert the HTML tree module to the new buffers (Daniel Veillard), + Convert of the HTML parser to new input buffers (Daniel Veillard), + Convert the writer to new output buffer and save APIs (Daniel Veillard), + Convert XMLReader to the new input buffers (Daniel Veillard), + New saving functions using xmlBuf and conversion (Daniel Veillard), + Provide new xmlBuf based saving functions (Daniel Veillard), + Convert XInclude to the new input buffers (Daniel Veillard), + Convert catalog code to the new input buffers (Daniel Veillard), + Convert C14N to the new Input buffer (Daniel Veillard), + Convert xmlIO.c to the new input and output buffers (Daniel Veillard), + Convert XML parser to the new input buffers (Daniel Veillard), + Incompatible change to the Input and Output buffers (Daniel Veillard), + Adding new encoding function to deal with the new structures (Daniel Veillard), + Convert XPath to xmlBuf (Daniel Veillard), + Adding a new buf module for buffers (Daniel Veillard), + Memory error within SAX2 reuse common framework (Daniel Veillard), + Fix xmllint --xpath node initialization (Daniel Veillard) + + - Cleanups: + Various cleanups to avoid compiler warnings (Daniel Veillard), + Big space and tab cleanup (Daniel Veillard), + Followup to LibXML2 docs/examples cleanup patch (Daniel Veillard), + Second round of cleanups for LibXML2 docs/examples (Daniel Richard), + Remove all .cvsignore as they are not used anymore (Daniel Veillard), + Fix a Timsort function helper comment (Daniel Veillard), + Small cleanup for valgrind target (Daniel Veillard), + Patch for portability of latin characters in C files (Daniel Veillard), + Cleanup some of the parser code (Daniel Veillard), + Fix a variable name in comment (Daniel Veillard), + Regenerated testapi.c (Daniel Veillard), + Regenerating docs and API files (Daniel Veillard), + Small cleanup of unused variables in test (Daniel Veillard), + Expand .gitignore with more files (Daniel Veillard) + + + +2.8.0: May 23 2012: + - Features: + add lzma compression support (Anders F Bjorklund) + + - Documentation: + xmlcatalog: Add uri and delegateURI to possible add types in man page. (Ville Skyttä), + Update README.tests (Daniel Veillard), + URI handling code is not OOM resilient (Daniel Veillard), + Fix an error in comment (Daniel Veillard), + Fixed bug #617016 (Daniel Mustieles), + Fixed two typos in the README document (Daniel Neel), + add generated html files (Anders F Bjorklund), + Clarify the need to use xmlFreeNode after xmlUnlinkNode (Daniel Veillard), + Improve documentation a bit (Daniel Veillard), + Updated URL for lxml python bindings (Daniel Veillard) + + - Portability: + Restore code for Windows compilation (Daniel Veillard), + Remove git error message during configure (Christian Dywan), + xmllint: Build fix for endTimer if !defined(HAVE_GETTIMEOFDAY) (Patrick R. Gansterer), + remove a bashism in confgure.in (John Hein), + undef ERROR if already defined (Patrick R. Gansterer), + Fix library problems with mingw-w64 (Michael Cronenworth), + fix windows build. ifdef addition from bug 666491 makes no sense (Rob Richards), + prefer native threads on win32 (Sam Thursfield), + Allow to compile with Visual Studio 2010 (Thomas Lemm), + Fix mingw's snprintf configure check (Andoni Morales), + fixed a 64bit big endian issue (Marcus Meissner), + Fix portability failure if netdb.h lacks NO_ADDRESS (Daniel Veillard), + Fix windows build from lzma addition (Rob Richards), + autogen: Only check for libtoolize (Colin Walters), + Fix the Windows build files (Patrick von Reth), + 634846 Remove a linking option breaking Windows VC10 (Daniel Veillard), + 599241 fix an initialization problem on Win64 (Andrew W. Nosenko), + fix win build (Rob Richards) + + - Bug fixes: + Part for rand_r checking missing (Daniel Veillard), + Cleanup on randomization (Daniel Veillard), + Fix undefined reference in python module (Pacho Ramos), + Fix a race in xmlNewInputStream (Daniel Veillard), + Fix weird streaming RelaxNG errors (Noam), + Fix various bugs in new code raised by the API checking (Daniel Veillard), + Fix various problems with "make dist" (Daniel Veillard), + Fix a memory leak in the xzlib code (Daniel Veillard), + HTML parser error with