Wine-devel
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
December 2021
- 85 participants
- 585 discussions
[PATCH] ddraw/tests: Port tests for fullscreen window size reset from d3d9.
by Paul Gofman 03 Jan '22
by Paul Gofman 03 Jan '22
03 Jan '22
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
This is a follow up for commit 78533e9e94d4fcae06dd44d29dbed4755d4ac1f4
porting the same test for ddraw. Altough the test result is different,
ddraw doesn't seem to do the same.
What I think is going on in d3d9 (deserves a separate test which I don't have
yet ready) is that d3d9 window hook sends WM_ACTIVATEAPP
whenever it receives WM_SIZE event (dumping messages in flush_events() show
that). Then, WM_ACTIVATEAPP is already processed the way it restores the window
size in Wine but it probably should also remeber the "activated" state and then
the second resize also won't have an effect.
dlls/ddraw/tests/ddraw1.c | 40 ++++++++++++++++++++++++++++++++++++++-
dlls/ddraw/tests/ddraw2.c | 40 ++++++++++++++++++++++++++++++++++++++-
dlls/ddraw/tests/ddraw4.c | 40 ++++++++++++++++++++++++++++++++++++++-
dlls/ddraw/tests/ddraw7.c | 40 ++++++++++++++++++++++++++++++++++++++-
4 files changed, 156 insertions(+), 4 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index c9f2aead75c..11c14777122 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -14191,7 +14191,7 @@ static void test_vtbl_protection(void)
static BOOL CALLBACK test_window_position_cb(HMONITOR monitor, HDC hdc, RECT *monitor_rect,
LPARAM lparam)
{
- RECT primary_rect, window_rect;
+ RECT primary_rect, window_rect, new_rect;
IDirectDraw *ddraw;
HWND window;
HRESULT hr;
@@ -14214,6 +14214,44 @@ static BOOL CALLBACK test_window_position_cb(HMONITOR monitor, HDC hdc, RECT *mo
ok(EqualRect(&window_rect, &primary_rect), "Expect window rect %s, got %s.\n",
wine_dbgstr_rect(&primary_rect), wine_dbgstr_rect(&window_rect));
+ new_rect = window_rect;
+ --new_rect.right;
+ --new_rect.bottom;
+
+ ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+ new_rect.bottom - new_rect.top, TRUE);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(EqualRect(&window_rect, &new_rect),
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+ /* After processing window events window rectangle gets restored. But only once, the size set
+ * on the second resize remains. */
+ flush_events();
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ /* Both Windows and Wine change the size of the window. On Windows it is exactly the new size but in Wine
+ * it may get adjusted depending on window manager. */
+ ok(window_rect.right != monitor_rect->right && window_rect.bottom != monitor_rect->bottom,
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+
+ ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+ new_rect.bottom - new_rect.top, TRUE);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(EqualRect(&window_rect, &new_rect),
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+ flush_events();
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(window_rect.right != monitor_rect->right && window_rect.bottom != monitor_rect->bottom,
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+
/* Window activation should restore the window to fit the whole primary monitor */
ret = SetWindowPos(window, 0, monitor_rect->left, monitor_rect->top, 0, 0,
SWP_NOZORDER | SWP_NOSIZE);
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 7285c1c3a88..33ad957b644 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -15115,7 +15115,7 @@ done:
static BOOL CALLBACK test_window_position_cb(HMONITOR monitor, HDC hdc, RECT *monitor_rect,
LPARAM lparam)
{
- RECT primary_rect, window_rect;
+ RECT primary_rect, window_rect, new_rect;
IDirectDraw2 *ddraw;
HWND window;
HRESULT hr;
@@ -15138,6 +15138,44 @@ static BOOL CALLBACK test_window_position_cb(HMONITOR monitor, HDC hdc, RECT *mo
ok(EqualRect(&window_rect, &primary_rect), "Expect window rect %s, got %s.\n",
wine_dbgstr_rect(&primary_rect), wine_dbgstr_rect(&window_rect));
+ new_rect = window_rect;
+ --new_rect.right;
+ --new_rect.bottom;
+
+ ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+ new_rect.bottom - new_rect.top, TRUE);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(EqualRect(&window_rect, &new_rect),
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+ /* After processing window events window rectangle gets restored. But only once, the size set
+ * on the second resize remains. */
+ flush_events();
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ /* Both Windows and Wine change the size of the window. On Windows it is exactly the new size but in Wine
+ * it may get adjusted depending on window manager. */
+ ok(window_rect.right != monitor_rect->right && window_rect.bottom != monitor_rect->bottom,
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+
+ ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+ new_rect.bottom - new_rect.top, TRUE);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(EqualRect(&window_rect, &new_rect),
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+ flush_events();
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(window_rect.right != monitor_rect->right && window_rect.bottom != monitor_rect->bottom,
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+
/* Window activation should restore the window to fit the whole primary monitor */
ret = SetWindowPos(window, 0, monitor_rect->left, monitor_rect->top, 0, 0,
SWP_NOZORDER | SWP_NOSIZE);
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 07afc44e519..61828430331 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -18152,7 +18152,7 @@ done:
static BOOL CALLBACK test_window_position_cb(HMONITOR monitor, HDC hdc, RECT *monitor_rect,
LPARAM lparam)
{
- RECT primary_rect, window_rect;
+ RECT primary_rect, window_rect, new_rect;
IDirectDraw4 *ddraw;
HWND window;
HRESULT hr;
@@ -18175,6 +18175,44 @@ static BOOL CALLBACK test_window_position_cb(HMONITOR monitor, HDC hdc, RECT *mo
ok(EqualRect(&window_rect, &primary_rect), "Expect window rect %s, got %s.\n",
wine_dbgstr_rect(&primary_rect), wine_dbgstr_rect(&window_rect));
+ new_rect = window_rect;
+ --new_rect.right;
+ --new_rect.bottom;
+
+ ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+ new_rect.bottom - new_rect.top, TRUE);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(EqualRect(&window_rect, &new_rect),
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+ /* After processing window events window rectangle gets restored. But only once, the size set
+ * on the second resize remains. */
+ flush_events();
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ /* Both Windows and Wine change the size of the window. On Windows it is exactly the new size but in Wine
+ * it may get adjusted depending on window manager. */
+ ok(window_rect.right != monitor_rect->right && window_rect.bottom != monitor_rect->bottom,
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+
+ ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+ new_rect.bottom - new_rect.top, TRUE);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(EqualRect(&window_rect, &new_rect),
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+ flush_events();
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(window_rect.right != monitor_rect->right && window_rect.bottom != monitor_rect->bottom,
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+
/* Window activation should restore the window to fit the whole primary monitor */
ret = SetWindowPos(window, 0, monitor_rect->left, monitor_rect->top, 0, 0,
SWP_NOZORDER | SWP_NOSIZE);
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index 29fa3434d4b..fc0f854e125 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -18419,7 +18419,7 @@ done:
static BOOL CALLBACK test_window_position_cb(HMONITOR monitor, HDC hdc, RECT *monitor_rect,
LPARAM lparam)
{
- RECT primary_rect, window_rect;
+ RECT primary_rect, window_rect, new_rect;
IDirectDraw7 *ddraw;
HWND window;
HRESULT hr;
@@ -18442,6 +18442,44 @@ static BOOL CALLBACK test_window_position_cb(HMONITOR monitor, HDC hdc, RECT *mo
ok(EqualRect(&window_rect, &primary_rect), "Expect window rect %s, got %s.\n",
wine_dbgstr_rect(&primary_rect), wine_dbgstr_rect(&window_rect));
+ new_rect = window_rect;
+ --new_rect.right;
+ --new_rect.bottom;
+
+ ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+ new_rect.bottom - new_rect.top, TRUE);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(EqualRect(&window_rect, &new_rect),
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+ /* After processing window events window rectangle gets restored. But only once, the size set
+ * on the second resize remains. */
+ flush_events();
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ /* Both Windows and Wine change the size of the window. On Windows it is exactly the new size but in Wine
+ * it may get adjusted depending on window manager. */
+ ok(window_rect.right != monitor_rect->right && window_rect.bottom != monitor_rect->bottom,
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+
+ ret = MoveWindow(window, new_rect.left, new_rect.top, new_rect.right - new_rect.left,
+ new_rect.bottom - new_rect.top, TRUE);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(EqualRect(&window_rect, &new_rect),
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+ flush_events();
+ ret = GetWindowRect(window, &window_rect);
+ ok(ret, "Got unexpected ret %#x, error %#x.\n", ret, GetLastError());
+ ok(window_rect.right != monitor_rect->right && window_rect.bottom != monitor_rect->bottom,
+ "Expected window rect %s, got %s.\n",
+ wine_dbgstr_rect(monitor_rect), wine_dbgstr_rect(&window_rect));
+
/* Window activation should restore the window to fit the whole primary monitor */
ret = SetWindowPos(window, 0, monitor_rect->left, monitor_rect->top, 0, 0,
SWP_NOZORDER | SWP_NOSIZE);
--
2.33.1
3
2
[PATCH] wined3d: Fix memory leak on error path in wined3d_buffer_vk_create_buffer_object (Coverity)
by Alex Henrie 03 Jan '22
by Alex Henrie 03 Jan '22
03 Jan '22
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
---
dlls/wined3d/buffer.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
index c078ba7e634..b42c7bd919a 100644
--- a/dlls/wined3d/buffer.c
+++ b/dlls/wined3d/buffer.c
@@ -1498,6 +1498,7 @@ static BOOL wined3d_buffer_vk_create_buffer_object(struct wined3d_buffer_vk *buf
vk_memory_type_from_access_flags(resource->access, resource->usage), bo_vk)))
{
WARN("Failed to create Vulkan buffer.\n");
+ heap_free(bo_vk);
return FALSE;
}
--
2.34.1
2
1
[PATCH v2 1/6] dinput: Simplify the internal thread and don't require loader lock.
by Rémi Bernon 03 Jan '22
by Rémi Bernon 03 Jan '22
03 Jan '22
When thread shuts down, instead of holding and releasing a module ref.
This keeps the thread alive until the module is unloaded, instead of
keeping track of live IDirectInput instances.
Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com>
---
v2: winmm patches are identical to previous version, I just refactored
the dinput internal thread startup and shutdown instead. It's still
lazily started but simply keeps running until the module is unloaded
instead of holding a module reference.
dlls/dinput/dinput_main.c | 121 ++++++++++++-----------------------
dlls/dinput/dinput_private.h | 3 -
2 files changed, 42 insertions(+), 82 deletions(-)
diff --git a/dlls/dinput/dinput_main.c b/dlls/dinput/dinput_main.c
index 55d566afa4a..cab8886f9db 100644
--- a/dlls/dinput/dinput_main.c
+++ b/dlls/dinput/dinput_main.c
@@ -78,9 +78,18 @@ HINSTANCE DINPUT_instance;
static HWND di_em_win;
-static BOOL check_hook_thread(void);
+static HANDLE dinput_thread;
+static DWORD dinput_thread_id;
+
static CRITICAL_SECTION dinput_hook_crit;
-static struct list direct_input_list = LIST_INIT( direct_input_list );
+static CRITICAL_SECTION_DEBUG dinput_critsect_debug =
+{
+ 0, 0, &dinput_hook_crit,
+ { &dinput_critsect_debug.ProcessLocksList, &dinput_critsect_debug.ProcessLocksList },
+ 0, 0, { (DWORD_PTR)(__FILE__ ": dinput_hook_crit") }
+};
+static CRITICAL_SECTION dinput_hook_crit = { &dinput_critsect_debug, -1, 0, 0, 0, 0 };
+
static struct list acquired_mouse_list = LIST_INIT( acquired_mouse_list );
static struct list acquired_rawmouse_list = LIST_INIT( acquired_rawmouse_list );
static struct list acquired_keyboard_list = LIST_INIT( acquired_keyboard_list );
@@ -453,18 +462,7 @@ static HRESULT initialize_directinput_instance(IDirectInputImpl *This, DWORD dwV
list_init( &This->device_players );
- /* Add self to the list of the IDirectInputs */
- EnterCriticalSection( &dinput_hook_crit );
- list_add_head( &direct_input_list, &This->entry );
- LeaveCriticalSection( &dinput_hook_crit );
-
This->initialized = TRUE;
-
- if (!check_hook_thread())
- {
- uninitialize_directinput_instance( This );
- return DIERR_GENERIC;
- }
}
return DI_OK;
@@ -475,17 +473,11 @@ static void uninitialize_directinput_instance(IDirectInputImpl *This)
if (This->initialized)
{
struct DevicePlayer *device_player, *device_player2;
- /* Remove self from the list of the IDirectInputs */
- EnterCriticalSection( &dinput_hook_crit );
- list_remove( &This->entry );
- LeaveCriticalSection( &dinput_hook_crit );
LIST_FOR_EACH_ENTRY_SAFE( device_player, device_player2,
&This->device_players, struct DevicePlayer, entry )
free( device_player );
- check_hook_thread();
-
This->initialized = FALSE;
}
}
@@ -1262,13 +1254,13 @@ static LRESULT CALLBACK callwndproc_proc( int code, WPARAM wparam, LPARAM lparam
return CallNextHookEx( 0, code, wparam, lparam );
}
-static DWORD WINAPI hook_thread_proc(void *param)
+static DWORD WINAPI dinput_thread_proc( void *params )
{
+ HANDLE events[128], start_event = params;
static HHOOK kbd_hook, mouse_hook;
struct dinput_device *impl, *next;
SIZE_T events_count = 0;
HANDLE finished_event;
- HANDLE events[128];
HRESULT hr;
DWORD ret;
MSG msg;
@@ -1277,7 +1269,7 @@ static DWORD WINAPI hook_thread_proc(void *param)
/* Force creation of the message queue */
PeekMessageW( &msg, 0, 0, 0, PM_NOREMOVE );
- SetEvent(param);
+ SetEvent( start_event );
while ((ret = MsgWaitForMultipleObjectsEx( events_count, events, INFINITE, QS_ALLINPUT, 0 )) <= events_count)
{
@@ -1354,61 +1346,36 @@ static DWORD WINAPI hook_thread_proc(void *param)
done:
DestroyWindow( di_em_win );
di_em_win = NULL;
-
- FreeLibraryAndExitThread(DINPUT_instance, 0);
+ return 0;
}
-static DWORD hook_thread_id;
-static HANDLE hook_thread_event;
-
-static CRITICAL_SECTION_DEBUG dinput_critsect_debug =
+static BOOL WINAPI dinput_thread_start_once( INIT_ONCE *once, void *param, void **context )
{
- 0, 0, &dinput_hook_crit,
- { &dinput_critsect_debug.ProcessLocksList, &dinput_critsect_debug.ProcessLocksList },
- 0, 0, { (DWORD_PTR)(__FILE__ ": dinput_hook_crit") }
-};
-static CRITICAL_SECTION dinput_hook_crit = { &dinput_critsect_debug, -1, 0, 0, 0, 0 };
+ HANDLE start_event;
-static BOOL check_hook_thread(void)
+ start_event = CreateEventW( NULL, FALSE, FALSE, NULL );
+ if (!start_event) ERR( "failed to create start event, error %u\n", GetLastError() );
+
+ dinput_thread = CreateThread( NULL, 0, dinput_thread_proc, start_event, 0, &dinput_thread_id );
+ if (!dinput_thread) ERR( "failed to create internal thread, error %u\n", GetLastError() );
+
+ WaitForSingleObject( start_event, INFINITE );
+ CloseHandle( start_event );
+
+ return TRUE;
+}
+
+static void dinput_thread_start(void)
{
- static HANDLE hook_thread;
- HMODULE module;
- HANDLE wait_handle = NULL;
+ static INIT_ONCE init_once = INIT_ONCE_STATIC_INIT;
+ InitOnceExecuteOnce( &init_once, dinput_thread_start_once, NULL, NULL );
+}
- EnterCriticalSection(&dinput_hook_crit);
-
- TRACE("IDirectInputs left: %d\n", list_count(&direct_input_list));
- if (!list_empty(&direct_input_list) && !hook_thread)
- {
- GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS, (const WCHAR*)DINPUT_instance, &module);
- hook_thread_event = CreateEventW(NULL, FALSE, FALSE, NULL);
- hook_thread = CreateThread(NULL, 0, hook_thread_proc, hook_thread_event, 0, &hook_thread_id);
- }
- else if (list_empty(&direct_input_list) && hook_thread)
- {
- DWORD tid = hook_thread_id;
-
- if (hook_thread_event) /* if thread is not started yet */
- {
- WaitForSingleObject(hook_thread_event, INFINITE);
- CloseHandle(hook_thread_event);
- hook_thread_event = NULL;
- }
-
- hook_thread_id = 0;
- PostThreadMessageW(tid, WM_USER+0x10, 0, 0);
- wait_handle = hook_thread;
- hook_thread = NULL;
- }
-
- LeaveCriticalSection(&dinput_hook_crit);
-
- if (wait_handle)
- {
- WaitForSingleObject(wait_handle, INFINITE);
- CloseHandle(wait_handle);
- }
- return hook_thread_id != 0;
+static void dinput_thread_stop(void)
+{
+ PostThreadMessageW( dinput_thread_id, WM_USER + 0x10, 0, 0 );
+ WaitForSingleObject( dinput_thread, INFINITE );
+ CloseHandle( dinput_thread );
}
void check_dinput_hooks( IDirectInputDevice8W *iface, BOOL acquired )
@@ -1418,6 +1385,8 @@ void check_dinput_hooks( IDirectInputDevice8W *iface, BOOL acquired )
struct dinput_device *impl = impl_from_IDirectInputDevice8W( iface );
HANDLE hook_change_finished_event = NULL;
+ dinput_thread_start();
+
EnterCriticalSection(&dinput_hook_crit);
if (impl->dwCoopLevel & DISCL_FOREGROUND)
@@ -1437,13 +1406,6 @@ void check_dinput_hooks( IDirectInputDevice8W *iface, BOOL acquired )
callwndproc_hook = NULL;
}
- if (hook_thread_event) /* if thread is not started yet */
- {
- WaitForSingleObject(hook_thread_event, INFINITE);
- CloseHandle(hook_thread_event);
- hook_thread_event = NULL;
- }
-
if (impl->use_raw_input)
{
if (acquired)
@@ -1470,7 +1432,7 @@ void check_dinput_hooks( IDirectInputDevice8W *iface, BOOL acquired )
}
hook_change_finished_event = CreateEventW( NULL, FALSE, FALSE, NULL );
- PostThreadMessageW( hook_thread_id, WM_USER+0x10, 1, (LPARAM)hook_change_finished_event );
+ PostThreadMessageW( dinput_thread_id, WM_USER + 0x10, 1, (LPARAM)hook_change_finished_event );
LeaveCriticalSection(&dinput_hook_crit);
@@ -1505,6 +1467,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved)
break;
case DLL_PROCESS_DETACH:
if (reserved) break;
+ dinput_thread_stop();
unregister_di_em_win_class();
DeleteCriticalSection(&dinput_hook_crit);
break;
diff --git a/dlls/dinput/dinput_private.h b/dlls/dinput/dinput_private.h
index c25fe6320ca..4b36a69c0e1 100644
--- a/dlls/dinput/dinput_private.h
+++ b/dlls/dinput/dinput_private.h
@@ -40,10 +40,7 @@ struct IDirectInputImpl
IDirectInputJoyConfig8 IDirectInputJoyConfig8_iface;
LONG ref;
-
BOOL initialized;
- struct list entry; /* entry into list of all IDirectInputs */
-
DWORD evsequence; /* unique sequence number for events */
DWORD dwVersion; /* direct input version number */
struct list device_players; /* device instance guid to player name */
--
2.34.0
2
7
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51829
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
The effect of the blamed commit 7ef35b33936682c01f1c825b7d1b07567a691c12
is that before the commit a process was failing to create due to NT image path passed to
RtlCreateUserProcess(). That was wrong, NT path are what actually works on Windows and
DOS paths do not. When the process creation working after the commit the new process started
failing early in initialization due to the parent process unmapping the image section and
remapping that as an anoymous mapping before the user part of process was initialized
(build_main_module() needs correct image info from NtQueryInformationProcess( ProcessImageInformation ).
The process failure at that stage makes parent process wait for 20 sec until timeout.
dlls/kernel32/tests/loader.c | 15 +++++++++++++++
server/mapping.c | 1 +
server/process.c | 13 ++-----------
server/process.h | 1 +
4 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/dlls/kernel32/tests/loader.c b/dlls/kernel32/tests/loader.c
index c5857174403..f990d632f73 100644
--- a/dlls/kernel32/tests/loader.c
+++ b/dlls/kernel32/tests/loader.c
@@ -1931,9 +1931,11 @@ static void test_section_access(void)
char temp_path[MAX_PATH];
char dll_name[MAX_PATH];
SIZE_T size;
+ SECTION_IMAGE_INFORMATION image_info;
MEMORY_BASIC_INFORMATION info;
STARTUPINFOA sti;
PROCESS_INFORMATION pi;
+ NTSTATUS status;
DWORD ret;
/* prevent displaying of the "Unable to load this DLL" message box */
@@ -2084,6 +2086,19 @@ static void test_section_access(void)
ok(!memcmp(buf, section_data, section.SizeOfRawData), "wrong section data\n");
}
+ status = NtQueryInformationProcess(pi.hProcess, ProcessImageInformation,
+ &image_info, sizeof(image_info), NULL );
+ ok(!status, "Got unexpected status %#x.\n", status);
+ ok(!(image_info.ImageCharacteristics & IMAGE_FILE_DLL),
+ "Got unexpected characteristics %#x.\n", nt_header.FileHeader.Characteristics);
+ status = NtUnmapViewOfSection(pi.hProcess, info.BaseAddress);
+ ok(!status, "Got unexpected status %#x.\n", status);
+ status = NtQueryInformationProcess(pi.hProcess, ProcessImageInformation,
+ &image_info, sizeof(image_info), NULL );
+ ok(!status, "Got unexpected status %#x.\n", status);
+ ok(!(image_info.ImageCharacteristics & IMAGE_FILE_DLL),
+ "Got unexpected characteristics %#x.\n", nt_header.FileHeader.Characteristics);
+
SetLastError(0xdeadbeef);
ret = TerminateProcess(pi.hProcess, 0);
ok(ret, "TerminateProcess() error %d\n", GetLastError());
diff --git a/server/mapping.c b/server/mapping.c
index bc9ed5bdcb9..c421bd9961d 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -408,6 +408,7 @@ static void add_process_view( struct thread *thread, struct memory_view *view )
process->image = NULL;
if (get_view_nt_name( view, &name ) && (process->image = memdup( name.str, name.len )))
process->imagelen = name.len;
+ process->pe_info = view->image;
return;
}
}
diff --git a/server/process.c b/server/process.c
index 0cc7f6b60ee..a14950e456b 100644
--- a/server/process.c
+++ b/server/process.c
@@ -680,6 +680,7 @@ struct process *create_process( int fd, struct process *parent, unsigned int fla
process->trace_data = 0;
process->rawinput_mouse = NULL;
process->rawinput_kbd = NULL;
+ memset( &process->pe_info, 0, sizeof(process->pe_info) );
list_init( &process->kernel_object );
list_init( &process->thread_list );
list_init( &process->locks );
@@ -1502,17 +1503,7 @@ DECL_HANDLER(get_process_info)
reply->session_id = process->session_id;
reply->machine = process->machine;
if (get_reply_max_size())
- {
- client_ptr_t base;
- const pe_image_info_t *info;
- struct memory_view *view = get_exe_view( process );
- if (view)
- {
- if ((info = get_view_image_info( view, &base )))
- set_reply_data( info, min( sizeof(*info), get_reply_max_size() ));
- }
- else set_error( STATUS_PROCESS_IS_TERMINATING );
- }
+ set_reply_data( &process->pe_info, min( sizeof(process->pe_info), get_reply_max_size() ));
release_object( process );
}
}
diff --git a/server/process.h b/server/process.h
index 22ee8178368..d14df38a13f 100644
--- a/server/process.h
+++ b/server/process.h
@@ -89,6 +89,7 @@ struct process
const struct rawinput_device *rawinput_mouse; /* rawinput mouse device, if any */
const struct rawinput_device *rawinput_kbd; /* rawinput keyboard device, if any */
struct list kernel_object; /* list of kernel object pointers */
+ pe_image_info_t pe_info; /* image info */
};
/* process functions */
--
2.33.1
2
1
30 Dec '21
In the case where the original hwnd rejects the focus and we search for something else, raise the window because it may not be on top. This prevents showing modal windows on top of non-modal.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=26503
Signed-off-by: Ethan Searl <internetethansearl(a)gmail.com>
---
dlls/winex11.drv/event.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index 170111e9c28..183efe17d3a 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -722,7 +722,16 @@ static void handle_wm_protocols( HWND hwnd, XClientMessageEvent *event )
if (hwnd) hwnd = GetAncestor( hwnd, GA_ROOT );
if (!hwnd) hwnd = GetActiveWindow();
if (!hwnd) hwnd = last_focus;
- if (hwnd && can_activate_window(hwnd)) set_focus( event->display, hwnd, event_time );
+ if (hwnd && can_activate_window(hwnd))
+ {
+ Window win = X11DRV_get_whole_window(hwnd);
+ if (win)
+ {
+ TRACE("will raise window %p", hwnd);
+ XRaiseWindow(event->display, win);
+ }
+ set_focus( event->display, hwnd, event_time );
+ }
}
else if (protocol == x11drv_atom(_NET_WM_PING))
{
--
2.27.0
1
0
[PATCH resend 1/2] ddraw: Use WINED3D_SWAPCHAIN_NO_WINDOW_CHANGES only with DDSCL_NOWINDOWCHANGES or if window inactive.
by Gabriel Ivăncescu 30 Dec '21
by Gabriel Ivăncescu 30 Dec '21
30 Dec '21
Fixes a regression introduced by f90d607c67768f19e36d9d74b498594252faa3fd.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50370
Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com>
---
This is a regression from last year but I completely forgot about it. Last
time, it got no reviews, unfortunately, so it would be nice to have it
fixed during this year's code freeze.
dlls/ddraw/ddraw.c | 18 ++++++-----
dlls/ddraw/tests/ddraw1.c | 65 +++++++++++++++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw2.c | 65 +++++++++++++++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw4.c | 65 +++++++++++++++++++++++++++++++++++++++
dlls/ddraw/tests/ddraw7.c | 65 +++++++++++++++++++++++++++++++++++++++
5 files changed, 270 insertions(+), 8 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 5b70bb4..848b1d9 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -559,7 +559,7 @@ static HRESULT ddraw_set_focus_window(struct ddraw *ddraw, HWND window)
}
static HRESULT ddraw_attach_d3d_device(struct ddraw *ddraw, HWND window,
- BOOL windowed, struct wined3d_swapchain **wined3d_swapchain)
+ DWORD cooplevel, struct wined3d_swapchain **wined3d_swapchain)
{
struct wined3d_swapchain_desc swapchain_desc;
struct wined3d_display_mode mode;
@@ -582,9 +582,11 @@ static HRESULT ddraw_attach_d3d_device(struct ddraw *ddraw, HWND window,
swapchain_desc.backbuffer_count = 1;
swapchain_desc.swap_effect = WINED3D_SWAP_EFFECT_DISCARD;
swapchain_desc.device_window = window;
- swapchain_desc.windowed = windowed;
- swapchain_desc.flags = WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH
- | WINED3D_SWAPCHAIN_IMPLICIT | WINED3D_SWAPCHAIN_NO_WINDOW_CHANGES;
+ swapchain_desc.windowed = !(cooplevel & DDSCL_FULLSCREEN);
+ swapchain_desc.flags = WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH | WINED3D_SWAPCHAIN_IMPLICIT;
+
+ if ((cooplevel & DDSCL_NOWINDOWCHANGES) || window != GetActiveWindow())
+ swapchain_desc.flags |= WINED3D_SWAPCHAIN_NO_WINDOW_CHANGES;
if (ddraw->flags & DDRAW_NO3D)
return wined3d_swapchain_create(ddraw->wined3d_device, &swapchain_desc,
@@ -640,7 +642,7 @@ static HRESULT ddraw_attach_d3d_device(struct ddraw *ddraw, HWND window,
return DD_OK;
}
-static HRESULT ddraw_create_swapchain(struct ddraw *ddraw, HWND window, BOOL windowed)
+static HRESULT ddraw_create_swapchain(struct ddraw *ddraw, HWND window, DWORD cooplevel)
{
HRESULT hr;
@@ -650,7 +652,7 @@ static HRESULT ddraw_create_swapchain(struct ddraw *ddraw, HWND window, BOOL win
return E_FAIL;
}
- if (FAILED(hr = ddraw_attach_d3d_device(ddraw, window, windowed, &ddraw->wined3d_swapchain)))
+ if (FAILED(hr = ddraw_attach_d3d_device(ddraw, window, cooplevel, &ddraw->wined3d_swapchain)))
{
ERR("Failed to create swapchain, hr %#x.\n", hr);
return hr;
@@ -776,7 +778,7 @@ static HRESULT WINAPI ddraw1_RestoreDisplayMode(IDirectDraw *iface)
* Unsure about this: DDSCL_FPUSETUP
*
* These don't seem very important for wine:
- * DDSCL_ALLOWREBOOT, DDSCL_NOWINDOWCHANGES, DDSCL_ALLOWMODEX
+ * DDSCL_ALLOWREBOOT, DDSCL_ALLOWMODEX
*
* Returns:
* DD_OK if the cooperative level was set successfully
@@ -945,7 +947,7 @@ static HRESULT ddraw_set_cooperative_level(struct ddraw *ddraw, HWND window,
ddraw_destroy_swapchain(ddraw);
}
- if (FAILED(hr = ddraw_create_swapchain(ddraw, window, !(cooplevel & DDSCL_FULLSCREEN))))
+ if (FAILED(hr = ddraw_create_swapchain(ddraw, window, cooplevel)))
ERR("Failed to create swapchain, hr %#x.\n", hr);
if (restore_state)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index c9f2aea..f16e428 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -2636,6 +2636,71 @@ static void test_window_style(void)
tmp = GetWindowLongA(window, GWL_EXSTYLE);
ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_NOWINDOWCHANGES);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ todo_wine ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ todo_wine ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ expected_style = style | WS_VISIBLE;
+ todo_wine ok(tmp == expected_style, "Expected window style %#x, got %#x.\n", expected_style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ShowWindow(window, SW_HIDE);
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ todo_wine ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL | DDSCL_NOWINDOWCHANGES);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ret = SetForegroundWindow(window);
+ ok(ret, "Failed to set foreground window.\n");
+
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ expected_style = style | WS_VISIBLE;
+ todo_wine ok(tmp == expected_style, "Expected window style %#x, got %#x.\n", expected_style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ShowWindow(window, SW_HIDE);
+ hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ todo_wine ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+
ShowWindow(window, SW_SHOW);
hr = IDirectDraw_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 7285c1c..2d488ae 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -2714,6 +2714,71 @@ static void test_window_style(void)
tmp = GetWindowLongA(window, GWL_EXSTYLE);
ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_NOWINDOWCHANGES);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ todo_wine ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ todo_wine ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ expected_style = style | WS_VISIBLE;
+ todo_wine ok(tmp == expected_style, "Expected window style %#x, got %#x.\n", expected_style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ShowWindow(window, SW_HIDE);
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ todo_wine ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL | DDSCL_NOWINDOWCHANGES);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ret = SetForegroundWindow(window);
+ ok(ret, "Failed to set foreground window.\n");
+
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ expected_style = style | WS_VISIBLE;
+ todo_wine ok(tmp == expected_style, "Expected window style %#x, got %#x.\n", expected_style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ShowWindow(window, SW_HIDE);
+ hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ todo_wine ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+
ShowWindow(window, SW_SHOW);
hr = IDirectDraw2_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 07afc44..ec828ac 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -2950,6 +2950,71 @@ static void test_window_style(void)
tmp = GetWindowLongA(window, GWL_EXSTYLE);
ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_NOWINDOWCHANGES);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ todo_wine ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ todo_wine ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ expected_style = style | WS_VISIBLE;
+ todo_wine ok(tmp == expected_style, "Expected window style %#x, got %#x.\n", expected_style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ShowWindow(window, SW_HIDE);
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ todo_wine ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL | DDSCL_NOWINDOWCHANGES);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ret = SetForegroundWindow(window);
+ ok(ret, "Failed to set foreground window.\n");
+
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ expected_style = style | WS_VISIBLE;
+ todo_wine ok(tmp == expected_style, "Expected window style %#x, got %#x.\n", expected_style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ShowWindow(window, SW_HIDE);
+ hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ todo_wine ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+
ShowWindow(window, SW_SHOW);
hr = IDirectDraw4_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index 29fa343..c66d521 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -2615,6 +2615,71 @@ static void test_window_style(void)
tmp = GetWindowLongA(window, GWL_EXSTYLE);
ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN | DDSCL_NOWINDOWCHANGES);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ todo_wine ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ todo_wine ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ expected_style = style | WS_VISIBLE;
+ todo_wine ok(tmp == expected_style, "Expected window style %#x, got %#x.\n", expected_style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ShowWindow(window, SW_HIDE);
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ todo_wine ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL | DDSCL_NOWINDOWCHANGES);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ret = SetForegroundWindow(window);
+ ok(ret, "Failed to set foreground window.\n");
+
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ expected_style = style | WS_VISIBLE;
+ todo_wine ok(tmp == expected_style, "Expected window style %#x, got %#x.\n", expected_style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ expected_style = exstyle | WS_EX_TOPMOST;
+ todo_wine ok(tmp == expected_style, "Expected window extended style %#x, got %#x.\n", expected_style, tmp);
+
+ ShowWindow(window, SW_HIDE);
+ hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_NORMAL);
+ ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
+
+ tmp = GetWindowLongA(window, GWL_STYLE);
+ ok(tmp == style, "Expected window style %#x, got %#x.\n", style, tmp);
+ tmp = GetWindowLongA(window, GWL_EXSTYLE);
+ todo_wine ok(tmp == exstyle, "Expected window extended style %#x, got %#x.\n", exstyle, tmp);
+
ShowWindow(window, SW_SHOW);
hr = IDirectDraw7_SetCooperativeLevel(ddraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
ok(SUCCEEDED(hr), "SetCooperativeLevel failed, hr %#x.\n", hr);
--
2.34.1
3
8
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
po/ru.po | 704 ++++++++++++++++++++-----------------------------------
1 file changed, 248 insertions(+), 456 deletions(-)
diff --git a/po/ru.po b/po/ru.po
index 6fe67a18e3e..1076281f7f8 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -5,14 +5,14 @@ msgstr ""
"Project-Id-Version: Wine\n"
"Report-Msgid-Bugs-To: https://bugs.winehq.org\n"
"POT-Creation-Date: N/A\n"
-"PO-Revision-Date: 2019-12-20 15:34+0300\n"
+"PO-Revision-Date: 2021-12-30 18:27+0300\n"
"Last-Translator: Nikolay Sivov <nsivov(a)codeweavers.com>\n"
"Language-Team: Russian\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 2.2.4\n"
+"X-Generator: Poedit 3.0.1\n"
#: dlls/aclui/aclui.rc:29 dlls/inetcpl.cpl/inetcpl.rc:90
#: programs/winefile/winefile.rc:114
@@ -33,7 +33,7 @@ msgstr "Жёлтый"
#: dlls/aclui/aclui.rc:39
msgid "Deny"
-msgstr ""
+msgstr "Запретить"
#: dlls/aclui/aclui.rc:47
#, fuzzy
@@ -3744,10 +3744,8 @@ msgid "Connected"
msgstr "Подключено"
#: dlls/joy.cpl/joy.rc:46
-#, fuzzy
-#| msgid "Voice input device:"
msgid "Connected (xinput device)"
-msgstr "Уст-во речевого ввода:"
+msgstr "Подключено (устройство xinput)"
#: dlls/joy.cpl/joy.rc:48
msgid "Disabled"
@@ -3806,10 +3804,8 @@ msgid "Subscript out of range"
msgstr "Индекс вне диапазона"
#: dlls/jscript/jscript.rc:31
-#, fuzzy
-#| msgid "Out of paper; "
msgid "Out of stack space"
-msgstr "Не хватило бумаги; "
+msgstr "Превышен размер стека"
#: dlls/jscript/jscript.rc:32
msgid "Object required"
@@ -3897,17 +3893,15 @@ msgstr "Ожидается «@»"
#: dlls/jscript/jscript.rc:80
msgid "Microsoft JScript compilation error"
-msgstr ""
+msgstr "Ошибка компиляции Microsoft JScript"
#: dlls/jscript/jscript.rc:81
msgid "Microsoft JScript runtime error"
-msgstr ""
+msgstr "Ошибка выполнения Microsoft JScript"
#: dlls/jscript/jscript.rc:82 dlls/vbscript/vbscript.rc:64
-#, fuzzy
-#| msgid "Unknown error"
msgid "Unknown runtime error"
-msgstr "Неизвестная ошибка"
+msgstr "Неизвестная ошибка времени выполнения"
#: dlls/jscript/jscript.rc:55
msgid "Number expected"
@@ -4012,10 +4006,8 @@ msgid "Cannot modify non-writable property '|'"
msgstr "Невозможно изменить свойство «|»"
#: dlls/jscript/jscript.rc:77
-#, fuzzy
-#| msgid "'[object]' is not a date object"
msgid "'this' is not a Map object"
-msgstr "«[object]» не объект типа «date»"
+msgstr "«this» не объект типа «Map»"
#: dlls/jscript/jscript.rc:78
msgid "Property cannot have both accessors and a value"
@@ -6992,32 +6984,24 @@ msgid "Connection reset by peer.\n"
msgstr "Соединение закрыто удалённым узлом.\n"
#: dlls/kernel32/winerror.mc:3767
-#, fuzzy
-#| msgid "Not implemented"
msgid "Not implemented.\n"
-msgstr "Не реализовано"
+msgstr "Не реализовано.\n"
#: dlls/kernel32/winerror.mc:3788
-#, fuzzy
-#| msgid "RPC call failed.\n"
msgid "Call failed.\n"
-msgstr "Сбой RPC-вызова.\n"
+msgstr "Сбой вызова.\n"
#: dlls/kernel32/winerror.mc:3760
msgid "No Signature found in file.\n"
msgstr "Подпись файла не обнаружена.\n"
#: dlls/kernel32/winerror.mc:3774
-#, fuzzy
-#| msgid "Invalid level.\n"
msgid "Invalid call.\n"
-msgstr "Неверный уровень системного вызова.\n"
+msgstr "Неверный вызов.\n"
#: dlls/kernel32/winerror.mc:3781
-#, fuzzy
-#| msgid "Value is not available.\n"
msgid "Resource is not currently available.\n"
-msgstr "Значение недоступно.\n"
+msgstr "В данный момент ресурс недоступен.\n"
#: dlls/light.msstyles/light.rc:30 dlls/light.msstyles/light.rc:37
#, fuzzy
@@ -7031,18 +7015,12 @@ msgid "Normal"
msgstr "Обычный"
#: dlls/localspl/localspl.rc:37
-#, fuzzy
-#| msgctxt "Drive letter"
-#| msgid "Letter"
msgid "Letter"
-msgstr "Диск"
+msgstr "Письмо"
#: dlls/localspl/localspl.rc:38
-#, fuzzy
-#| msgctxt "Drive letter"
-#| msgid "Letter"
msgid "Letter Small"
-msgstr "Диск"
+msgstr "Письмо маленькое"
#: dlls/localspl/localspl.rc:39
#, fuzzy
@@ -7065,45 +7043,34 @@ msgid "Statement"
msgstr "Состояние"
#: dlls/localspl/localspl.rc:43
-#, fuzzy
#| msgid "&Execute..."
msgid "Executive"
-msgstr "&Запустить..."
+msgstr "Executive"
#: dlls/localspl/localspl.rc:44
-#, fuzzy
-#| msgctxt "All key"
-#| msgid "A"
msgid "A3"
-msgstr "A"
+msgstr "A3"
#: dlls/localspl/localspl.rc:45
-#, fuzzy
-#| msgctxt "All key"
-#| msgid "A"
msgid "A4"
-msgstr "A"
+msgstr "A4"
#: dlls/localspl/localspl.rc:46
-#, fuzzy
#| msgid "Small"
msgid "A4 Small"
-msgstr "Мелкий"
+msgstr "A4 маленький"
#: dlls/localspl/localspl.rc:47
-#, fuzzy
-#| msgctxt "All key"
-#| msgid "A"
msgid "A5"
-msgstr "A"
+msgstr "A5"
#: dlls/localspl/localspl.rc:48
msgid "B4 (JIS)"
-msgstr ""
+msgstr "B4 (JIS)"
#: dlls/localspl/localspl.rc:49
msgid "B5 (JIS)"
-msgstr ""
+msgstr "B5 (JIS)"
#: dlls/localspl/localspl.rc:50
msgid "Folio"
@@ -7115,11 +7082,11 @@ msgstr ""
#: dlls/localspl/localspl.rc:52
msgid "10x14"
-msgstr ""
+msgstr "10x14"
#: dlls/localspl/localspl.rc:53
msgid "11x17"
-msgstr ""
+msgstr "11x17"
#: dlls/localspl/localspl.rc:54
#, fuzzy
@@ -7129,87 +7096,83 @@ msgstr "Блокнот"
#: dlls/localspl/localspl.rc:55
msgid "Envelope #9"
-msgstr ""
+msgstr "Конверт №9"
#: dlls/localspl/localspl.rc:56
msgid "Envelope #10"
-msgstr ""
+msgstr "Конверт №10"
#: dlls/localspl/localspl.rc:57
msgid "Envelope #11"
-msgstr ""
+msgstr "Конверт №11"
#: dlls/localspl/localspl.rc:58
msgid "Envelope #12"
-msgstr ""
+msgstr "Конверт №12"
#: dlls/localspl/localspl.rc:59
msgid "Envelope #14"
-msgstr ""
+msgstr "Конверт №14"
#: dlls/localspl/localspl.rc:60
msgid "C size sheet"
-msgstr ""
+msgstr "Лист C"
#: dlls/localspl/localspl.rc:61
msgid "D size sheet"
-msgstr ""
+msgstr "Лист D"
#: dlls/localspl/localspl.rc:62
msgid "E size sheet"
-msgstr ""
+msgstr "Лист E"
#: dlls/localspl/localspl.rc:63
msgid "Envelope DL"
-msgstr ""
+msgstr "Конверт DL"
#: dlls/localspl/localspl.rc:64
msgid "Envelope C5"
-msgstr ""
+msgstr "Конверт C5"
#: dlls/localspl/localspl.rc:65
msgid "Envelope C3"
-msgstr ""
+msgstr "Конверт C3"
#: dlls/localspl/localspl.rc:66
msgid "Envelope C4"
-msgstr ""
+msgstr "Конверт C4"
#: dlls/localspl/localspl.rc:67
msgid "Envelope C6"
-msgstr ""
+msgstr "Конверт C6"
#: dlls/localspl/localspl.rc:68
msgid "Envelope C65"
-msgstr ""
+msgstr "Конверт C65"
#: dlls/localspl/localspl.rc:69
msgid "Envelope B4"
-msgstr ""
+msgstr "Конверт B4"
#: dlls/localspl/localspl.rc:70
msgid "Envelope B5"
-msgstr ""
+msgstr "Конверт B5"
#: dlls/localspl/localspl.rc:71
msgid "Envelope B6"
-msgstr ""
+msgstr "Конверт B6"
#: dlls/localspl/localspl.rc:72
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "Envelope"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт"
#: dlls/localspl/localspl.rc:73
msgid "Envelope Monarch"
msgstr ""
#: dlls/localspl/localspl.rc:74
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "6 3/4 Envelope"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт 6 3/4"
#: dlls/localspl/localspl.rc:75
msgid "US Std Fanfold"
@@ -7225,25 +7188,23 @@ msgstr ""
#: dlls/localspl/localspl.rc:78
msgid "B4 (ISO)"
-msgstr ""
+msgstr "B4 (ISO)"
#: dlls/localspl/localspl.rc:79
-#, fuzzy
-#| msgid "Japanese"
msgid "Japanese Postcard"
-msgstr "Японский"
+msgstr "Японская открытка"
#: dlls/localspl/localspl.rc:80
msgid "9x11"
-msgstr ""
+msgstr "9x11"
#: dlls/localspl/localspl.rc:81
msgid "10x11"
-msgstr ""
+msgstr "10x11"
#: dlls/localspl/localspl.rc:82
msgid "15x11"
-msgstr ""
+msgstr "15x11"
#: dlls/localspl/localspl.rc:83
msgid "Envelope Invite"
@@ -7265,10 +7226,8 @@ msgid "Tabloid Extra"
msgstr ""
#: dlls/localspl/localspl.rc:87
-#, fuzzy
-#| msgid "E&xtras"
msgid "A4 Extra"
-msgstr "&Дополнительно"
+msgstr "A4 экстра"
#: dlls/localspl/localspl.rc:88
#, fuzzy
@@ -7290,11 +7249,11 @@ msgstr ""
#: dlls/localspl/localspl.rc:91
msgid "Super A"
-msgstr ""
+msgstr "Super A"
#: dlls/localspl/localspl.rc:92
msgid "Super B"
-msgstr ""
+msgstr "Super B"
#: dlls/localspl/localspl.rc:93
#, fuzzy
@@ -7305,7 +7264,7 @@ msgstr "Диск"
#: dlls/localspl/localspl.rc:94
msgid "A4 Plus"
-msgstr ""
+msgstr "A4 Plus"
#: dlls/localspl/localspl.rc:95
#, fuzzy
@@ -7319,27 +7278,20 @@ msgid "B5 (JIS) Transverse"
msgstr ""
#: dlls/localspl/localspl.rc:97
-#, fuzzy
-#| msgid "E&xtras"
msgid "A3 Extra"
-msgstr "&Дополнительно"
+msgstr "A3 экстра"
#: dlls/localspl/localspl.rc:98
-#, fuzzy
-#| msgid "E&xtras"
msgid "A5 Extra"
-msgstr "&Дополнительно"
+msgstr "A5 экстра"
#: dlls/localspl/localspl.rc:99
msgid "B5 (ISO) Extra"
-msgstr ""
+msgstr "B5 (ISO) экстра"
#: dlls/localspl/localspl.rc:100
-#, fuzzy
-#| msgctxt "All key"
-#| msgid "A"
msgid "A2"
-msgstr "A"
+msgstr "A2"
#: dlls/localspl/localspl.rc:101
#, fuzzy
@@ -7354,246 +7306,204 @@ msgstr ""
#: dlls/localspl/localspl.rc:103
msgid "Japanese Double Postcard"
-msgstr ""
+msgstr "Японская двойная открытка"
#: dlls/localspl/localspl.rc:104
-#, fuzzy
-#| msgctxt "All key"
-#| msgid "A"
msgid "A6"
-msgstr "A"
+msgstr "A6"
#: dlls/localspl/localspl.rc:105
msgid "Japanese Envelope Kaku #2"
-msgstr ""
+msgstr "Японский конверт Kaku №2"
#: dlls/localspl/localspl.rc:106
msgid "Japanese Envelope Kaku #3"
-msgstr ""
+msgstr "Японский конверт Kaku №3"
#: dlls/localspl/localspl.rc:107
msgid "Japanese Envelope Chou #3"
-msgstr ""
+msgstr "Японский конверт Chou №3"
#: dlls/localspl/localspl.rc:108
msgid "Japanese Envelope Chou #4"
-msgstr ""
+msgstr "Японский конверт Chou №4"
#: dlls/localspl/localspl.rc:109
msgid "Letter Rotated"
-msgstr ""
+msgstr "Письмо (повёрнуто)"
#: dlls/localspl/localspl.rc:110
msgid "A3 Rotated"
-msgstr ""
+msgstr "A3 (повёрнуто)"
#: dlls/localspl/localspl.rc:111
msgid "A4 Rotated"
-msgstr ""
+msgstr "A4 (повёрнуто)"
#: dlls/localspl/localspl.rc:112
msgid "A5 Rotated"
-msgstr ""
+msgstr "A5 (повёрнуто)"
#: dlls/localspl/localspl.rc:113
msgid "B4 (JIS) Rotated"
-msgstr ""
+msgstr "B4 (JIS) (повёрнуто)"
#: dlls/localspl/localspl.rc:114
msgid "B5 (JIS) Rotated"
-msgstr ""
+msgstr "B5 (JIS) (повёрнуто)"
#: dlls/localspl/localspl.rc:115
msgid "Japanese Postcard Rotated"
-msgstr ""
+msgstr "Японская открытка (повёрнута)"
#: dlls/localspl/localspl.rc:116
msgid "Double Japan Postcard Rotated"
-msgstr ""
+msgstr "Двойная японская открытка (повёрнута)"
#: dlls/localspl/localspl.rc:117
msgid "A6 Rotated"
-msgstr ""
+msgstr "A6 (повёрнуто)"
#: dlls/localspl/localspl.rc:118
msgid "Japan Envelope Kaku #2 Rotated"
-msgstr ""
+msgstr "Японский конверт Kaku №2 (повёрнут)"
#: dlls/localspl/localspl.rc:119
msgid "Japan Envelope Kaku #3 Rotated"
-msgstr ""
+msgstr "Японский конверт Kaku №3 (повёрнут)"
#: dlls/localspl/localspl.rc:120
msgid "Japan Envelope Chou #3 Rotated"
-msgstr ""
+msgstr "Японский конверт Chou №3 (повёрнут)"
#: dlls/localspl/localspl.rc:121
msgid "Japan Envelope Chou #4 Rotated"
-msgstr ""
+msgstr "Японский конверт Chou №4 (повёрнут)"
#: dlls/localspl/localspl.rc:122
msgid "B6 (JIS)"
-msgstr ""
+msgstr "B6 (JIS)"
#: dlls/localspl/localspl.rc:123
msgid "B6 (JIS) Rotated"
-msgstr ""
+msgstr "B6 (JIS) (повёрнуто)"
#: dlls/localspl/localspl.rc:124
msgid "12x11"
-msgstr ""
+msgstr "12x11"
#: dlls/localspl/localspl.rc:125
msgid "Japan Envelope You #4"
-msgstr ""
+msgstr "Японский конверт You №4"
#: dlls/localspl/localspl.rc:126
msgid "Japan Envelope You #4 Rotated"
-msgstr ""
+msgstr "Японский конверт You №4 (повёрнутый)"
#: dlls/localspl/localspl.rc:127
msgid "PRC 16K"
-msgstr ""
+msgstr "PRC 16K"
#: dlls/localspl/localspl.rc:128
msgid "PRC 32K"
-msgstr ""
+msgstr "PRC 32K"
#: dlls/localspl/localspl.rc:129
msgid "PRC 32K(Big)"
-msgstr ""
+msgstr "PRC 32K(Big)"
#: dlls/localspl/localspl.rc:130
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #1"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC1"
#: dlls/localspl/localspl.rc:131
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #2"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC2"
#: dlls/localspl/localspl.rc:132
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #3"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC3"
#: dlls/localspl/localspl.rc:133
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #4"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC4"
#: dlls/localspl/localspl.rc:134
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #5"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC5"
#: dlls/localspl/localspl.rc:135
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #6"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC6"
#: dlls/localspl/localspl.rc:136
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #7"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC7"
#: dlls/localspl/localspl.rc:137
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #8"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC8"
#: dlls/localspl/localspl.rc:138
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #9"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC9"
#: dlls/localspl/localspl.rc:139
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #10"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC10"
#: dlls/localspl/localspl.rc:140
msgid "PRC 16K Rotated"
-msgstr ""
+msgstr "PRC 16K (повёрнуто)"
#: dlls/localspl/localspl.rc:141
msgid "PRC 32K Rotated"
-msgstr ""
+msgstr "PRC 32K (повёрнуто)"
#: dlls/localspl/localspl.rc:142
msgid "PRC 32K(Big) Rotated"
-msgstr ""
+msgstr "PRC 32K(Big) (повёрнуто)"
#: dlls/localspl/localspl.rc:143
-#, fuzzy
#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #1 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC1 (повёрнут)"
#: dlls/localspl/localspl.rc:144
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #2 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC2 (повёрнут)"
#: dlls/localspl/localspl.rc:145
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #3 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC3 (повёрнут)"
#: dlls/localspl/localspl.rc:146
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #4 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC4 (повёрнут)"
#: dlls/localspl/localspl.rc:147
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #5 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC5 (повёрнут)"
#: dlls/localspl/localspl.rc:148
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #6 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC6 (повёрнут)"
#: dlls/localspl/localspl.rc:149
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #7 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC7 (повёрнут)"
#: dlls/localspl/localspl.rc:150
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #8 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC8 (повёрнут)"
#: dlls/localspl/localspl.rc:151
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #9 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC9 (повёрнут)"
#: dlls/localspl/localspl.rc:152
-#, fuzzy
-#| msgid "PKCS 7 Enveloped"
msgid "PRC Envelope #10 Rotated"
-msgstr "Запечатано PKCS 7"
+msgstr "Конверт PRC10 (повёрнут)"
#: dlls/localspl/localspl.rc:31 dlls/localui/localui.rc:31
#: dlls/winspool.drv/winspool.rc:30
@@ -7653,10 +7563,8 @@ msgid "Sink has not been finalized.\n"
msgstr "Приёмник данных не был завершён.\n"
#: dlls/mferror/mferror.mc:732
-#, fuzzy
-#| msgid "Sink was already stopped.\n"
msgid "Clock was stopped\n"
-msgstr "Приёмник данных уже был остановлен.\n"
+msgstr "Часы были остановлены\n"
#: dlls/mferror/mferror.mc:32
msgid "Media Foundation platform is not initialized.\n"
@@ -9140,10 +9048,8 @@ msgid "Select the data you want to connect to:"
msgstr "Выберите формат для подключения:"
#: dlls/oledb32/version.rc:66
-#, fuzzy
-#| msgid "Connections"
msgid "Connection"
-msgstr "Подключения"
+msgstr "Подключение"
#: dlls/oledb32/version.rc:69
#, fuzzy
@@ -9162,16 +9068,12 @@ msgid "Use &data source name"
msgstr "Введите ваше имя"
#: dlls/oledb32/version.rc:74
-#, fuzzy
-#| msgid "Reset Connections"
msgid "Use c&onnection string"
-msgstr "Сброшено подключений"
+msgstr "Использовать &строку подключения"
#: dlls/oledb32/version.rc:75
-#, fuzzy
-#| msgid "Connections"
msgid "&Connection string:"
-msgstr "Подключения"
+msgstr "Строка &подключения:"
#: dlls/oledb32/version.rc:77
#, fuzzy
@@ -9184,42 +9086,32 @@ msgid "2. Enter information to log on to the server"
msgstr ""
#: dlls/oledb32/version.rc:79
-#, fuzzy
-#| msgid "&User name:"
msgid "User &name:"
msgstr "По&льзователь:"
#: dlls/oledb32/version.rc:83
-#, fuzzy
-#| msgid "&Blank page"
msgid "&Blank password"
-msgstr "Пу&стая страница"
+msgstr "Пу&стой пароль"
#: dlls/oledb32/version.rc:84
-#, fuzzy
-#| msgid "Wrong password.\n"
msgid "Allow &saving password"
-msgstr "Неверный пароль.\n"
+msgstr "Разрешить &сохранять пароль"
#: dlls/oledb32/version.rc:85
msgid "3. Enter the &initial catalog to use:"
msgstr ""
#: dlls/oledb32/version.rc:87
-#, fuzzy
-#| msgid "Reset Connections"
msgid "&Test Connection"
-msgstr "Сброшено подключений"
+msgstr "&Проверка подключения"
#: dlls/oledb32/version.rc:92
msgid "Advanced"
msgstr "Мастер"
#: dlls/oledb32/version.rc:95
-#, fuzzy
-#| msgid "Network share"
msgid "Network settings"
-msgstr "Сетевой диск"
+msgstr "Сетевые настройки"
#: dlls/oledb32/version.rc:96
#, fuzzy
@@ -9238,22 +9130,18 @@ msgid "Connect:"
msgstr "Подключено"
#: dlls/oledb32/version.rc:103
-#, fuzzy
-#| msgid "seconds"
msgid "seconds."
msgstr "сек."
#: dlls/oledb32/version.rc:104
-#, fuzzy
#| msgid "Success"
msgid "A&ccess:"
-msgstr "Успех"
+msgstr "До&ступ:"
#: dlls/oledb32/version.rc:110
-#, fuzzy
#| msgid "&All"
msgid "All"
-msgstr "&Все"
+msgstr "Все"
#: dlls/oledb32/version.rc:114
msgid ""
@@ -9274,10 +9162,9 @@ msgid "Data Link Error"
msgstr "Свойства подключения"
#: dlls/oledb32/version.rc:50
-#, fuzzy
#| msgid "Please select a file."
msgid "Please select a provider."
-msgstr "Выберите файл."
+msgstr "Выберите провайдер."
#: dlls/oledb32/version.rc:51
msgid ""
@@ -9291,19 +9178,15 @@ msgstr "Свойства подключения"
#: dlls/oledb32/version.rc:37
msgid "OLE DB Provider(s)"
-msgstr ""
+msgstr "Провайдеры OLE DB"
#: dlls/oledb32/version.rc:41
-#, fuzzy
-#| msgid "Ready"
msgid "Read"
-msgstr "Готово"
+msgstr "Чтение"
#: dlls/oledb32/version.rc:42
-#, fuzzy
-#| msgid "Readme:"
msgid "ReadWrite"
-msgstr "Файл «Readme»:"
+msgstr "Чтение и запись"
#: dlls/oledb32/version.rc:43
msgid "Share Deny None"
@@ -9322,10 +9205,8 @@ msgid "Share Exclusive"
msgstr ""
#: dlls/oledb32/version.rc:47
-#, fuzzy
-#| msgid "I/O Writes"
msgid "Write"
-msgstr "Число записей"
+msgstr "Запись"
#: dlls/oledlg/oledlg.rc:55
msgid "Insert Object"
@@ -10514,7 +10395,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:269
msgid "(UTC+07:00) Krasnoyarsk"
-msgstr ""
+msgstr "(UTC+07:00) Красноярск"
#: dlls/tzres/tzres.rc:168
msgid "Georgian Standard Time"
@@ -10526,11 +10407,11 @@ msgstr ""
#: dlls/tzres/tzres.rc:170
msgid "(UTC+04:00) Tbilisi"
-msgstr ""
+msgstr "(UTC+04:00) Тбилиси"
#: dlls/tzres/tzres.rc:393 dlls/tzres/tzres.rc:394
msgid "UTC+12"
-msgstr ""
+msgstr "UTC+12"
#: dlls/tzres/tzres.rc:395
msgid "(UTC+12:00) Coordinated Universal Time+12"
@@ -10546,7 +10427,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:254
msgid "(UTC+05:45) Kathmandu"
-msgstr ""
+msgstr "(UTC+05:45) Катманду"
#: dlls/tzres/tzres.rc:90
msgid "Cape Verde Standard Time"
@@ -10570,7 +10451,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:185
msgid "(UTC-05:00) Haiti"
-msgstr ""
+msgstr "(UTC-05:00) Гаити"
#: dlls/tzres/tzres.rc:111
msgid "Central European Standard Time"
@@ -10582,7 +10463,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:113
msgid "(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb"
-msgstr ""
+msgstr "(UTC+01:00) Сараево, Скопье, Варшава, Загреб"
#: dlls/tzres/tzres.rc:234
msgid "Morocco Standard Time"
@@ -10594,11 +10475,11 @@ msgstr ""
#: dlls/tzres/tzres.rc:236
msgid "(UTC+01:00) Casablanca"
-msgstr ""
+msgstr "(UTC+01:00) Касабланка"
#: dlls/tzres/tzres.rc:402 dlls/tzres/tzres.rc:403
msgid "UTC-08"
-msgstr ""
+msgstr "UTC-08"
#: dlls/tzres/tzres.rc:404
msgid "(UTC-08:00) Coordinated Universal Time-08"
@@ -10626,7 +10507,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:110
msgid "(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague"
-msgstr ""
+msgstr "(UTC+01:00) Белград, Братислава, Будапешт, Любляна, Прага"
#: dlls/tzres/tzres.rc:192
msgid "Iran Standard Time"
@@ -10638,7 +10519,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:194
msgid "(UTC+03:30) Tehran"
-msgstr ""
+msgstr "(UTC+03:30) Тегеран"
#: dlls/tzres/tzres.rc:318
msgid "Saint Pierre Standard Time"
@@ -10710,7 +10591,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:173
msgid "(UTC+00:00) Dublin, Edinburgh, Lisbon, London"
-msgstr ""
+msgstr "(UTC+00:00) Дублин, Эдинбург, Лиссабон, Лондон"
#: dlls/tzres/tzres.rc:342
msgid "South Sudan Standard Time"
@@ -10734,7 +10615,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:104
msgid "(UTC+06:00) Astana"
-msgstr ""
+msgstr "(UTC+06:00) Астана"
#: dlls/tzres/tzres.rc:213
msgid "Lord Howe Standard Time"
@@ -10758,11 +10639,11 @@ msgstr ""
#: dlls/tzres/tzres.rc:50
msgid "(UTC+03:00) Baghdad"
-msgstr ""
+msgstr "(UTC+03:00) Багдад"
#: dlls/tzres/tzres.rc:396 dlls/tzres/tzres.rc:397
msgid "UTC+13"
-msgstr ""
+msgstr "UTC+13"
#: dlls/tzres/tzres.rc:398
msgid "(UTC+13:00) Coordinated Universal Time+13"
@@ -10778,7 +10659,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:218
msgid "(UTC+11:00) Magadan"
-msgstr ""
+msgstr "(UTC+11:00) Магадан"
#: dlls/tzres/tzres.rc:258
msgid "Newfoundland Standard Time"
@@ -10838,7 +10719,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:71
msgid "(UTC+04:00) Baku"
-msgstr ""
+msgstr "(UTC+04:00) Баку"
#: dlls/tzres/tzres.rc:219
msgid "Magallanes Standard Time"
@@ -10862,7 +10743,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:326
msgid "(UTC+13:00) Samoa"
-msgstr ""
+msgstr "(UTC+13:00) Самоа"
#: dlls/tzres/tzres.rc:201
msgid "Kaliningrad Standard Time"
@@ -10874,7 +10755,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:203
msgid "(UTC+02:00) Kaliningrad"
-msgstr ""
+msgstr "(UTC+02:00) Калининград"
#: dlls/tzres/tzres.rc:282
msgid "Pacific Standard Time (Mexico)"
@@ -10898,7 +10779,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:230
msgid "(UTC+02:00) Beirut"
-msgstr ""
+msgstr "(UTC+02:00) Бейрут"
#: dlls/tzres/tzres.rc:363
msgid "Tokyo Standard Time"
@@ -10934,7 +10815,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:131
msgid "(UTC-05:00) Havana"
-msgstr ""
+msgstr "(UTC-05:00) Гавана"
#: dlls/tzres/tzres.rc:198
msgid "Jordan Standard Time"
@@ -10946,7 +10827,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:200
msgid "(UTC+02:00) Amman"
-msgstr ""
+msgstr "(UTC+02:00) Амман"
#: dlls/tzres/tzres.rc:117
msgid "Central Standard Time"
@@ -10966,7 +10847,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:305
msgid "(UTC+04:00) Izhevsk, Samara"
-msgstr ""
+msgstr "(UTC+04:00) Ижевск, Самара"
#: dlls/tzres/tzres.rc:417
msgid "Volgograd Standard Time"
@@ -10978,7 +10859,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:419
msgid "(UTC+04:00) Volgograd"
-msgstr ""
+msgstr "(UTC+04:00) Волгоград"
#: dlls/tzres/tzres.rc:72
msgid "Azores Standard Time"
@@ -11002,11 +10883,11 @@ msgstr ""
#: dlls/tzres/tzres.rc:266
msgid "(UTC+08:00) Irkutsk"
-msgstr ""
+msgstr "(UTC+08:00) Иркутск"
#: dlls/tzres/tzres.rc:408 dlls/tzres/tzres.rc:409
msgid "UTC-11"
-msgstr ""
+msgstr "UTC-11"
#: dlls/tzres/tzres.rc:410
msgid "(UTC-11:00) Coordinated Universal Time-11"
@@ -11090,7 +10971,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:182
msgid "(UTC+02:00) Athens, Bucharest"
-msgstr ""
+msgstr "(UTC+02:00) Афины, Бухарест"
#: dlls/tzres/tzres.rc:375
msgid "Turkey Standard Time"
@@ -11102,7 +10983,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:377
msgid "(UTC+03:00) Istanbul"
-msgstr ""
+msgstr "(UTC+03:00) Стамбул"
#: dlls/tzres/tzres.rc:54
msgid "Astrakhan Standard Time"
@@ -11114,7 +10995,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:56
msgid "(UTC+04:00) Astrakhan, Ulyanovsk"
-msgstr ""
+msgstr "(UTC+04:00) Астрахань, Ульяновск"
#: dlls/tzres/tzres.rc:162
msgid "Fiji Standard Time"
@@ -11126,7 +11007,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:164
msgid "(UTC+12:00) Fiji"
-msgstr ""
+msgstr "(UTC+12:00) Фиджи"
#: dlls/tzres/tzres.rc:87
msgid "Canada Central Standard Time"
@@ -11150,7 +11031,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:446
msgid "(UTC-07:00) Yukon"
-msgstr ""
+msgstr "(UTC-07:00) Юкон"
#: dlls/tzres/tzres.rc:354
msgid "Taipei Standard Time"
@@ -11174,7 +11055,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:428
msgid "(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"
-msgstr ""
+msgstr "(UTC+01:00) Амстердам, Берлин, Берн, Стокгольм, Вена"
#: dlls/tzres/tzres.rc:231
msgid "Montevideo Standard Time"
@@ -11186,7 +11067,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:233
msgid "(UTC-03:00) Montevideo"
-msgstr ""
+msgstr "(UTC-03:00) Монтевидео"
#: dlls/tzres/tzres.rc:285
msgid "Pakistan Standard Time"
@@ -11198,7 +11079,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:287
msgid "(UTC+05:00) Islamabad, Karachi"
-msgstr ""
+msgstr "(UTC+05:00) Исламабад, Карачи"
#: dlls/tzres/tzres.rc:366
msgid "Tomsk Standard Time"
@@ -11210,7 +11091,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:368
msgid "(UTC+07:00) Tomsk"
-msgstr ""
+msgstr "(UTC+07:00) Томск"
#: dlls/tzres/tzres.rc:93
msgid "Caucasus Standard Time"
@@ -11222,7 +11103,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:95
msgid "(UTC+04:00) Yerevan"
-msgstr ""
+msgstr "(UTC+04:00) Ереван"
#: dlls/tzres/tzres.rc:66
msgid "AUS Eastern Standard Time"
@@ -11234,7 +11115,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:68
msgid "(UTC+10:00) Canberra, Melbourne, Sydney"
-msgstr ""
+msgstr "(UTC+10:00) Канберра, Мельбурн, Сидней"
#: dlls/tzres/tzres.rc:246
msgid "N. Central Asia Standard Time"
@@ -11246,7 +11127,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:248
msgid "(UTC+07:00) Novosibirsk"
-msgstr ""
+msgstr "(UTC+07:00) Новосибирск"
#: dlls/tzres/tzres.rc:150
msgid "Eastern Standard Time"
@@ -11270,7 +11151,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:374
msgid "(UTC+09:00) Chita"
-msgstr ""
+msgstr "(UTC+09:00) Чита"
#: dlls/tzres/tzres.rc:141
msgid "E. Europe Standard Time"
@@ -11282,7 +11163,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:143
msgid "(UTC+02:00) Chisinau"
-msgstr ""
+msgstr "(UTC+02:00) Кишинёв"
#: dlls/tzres/tzres.rc:120
msgid "Central Standard Time (Mexico)"
@@ -11294,7 +11175,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:122
msgid "(UTC-06:00) Guadalajara, Mexico City, Monterrey"
-msgstr ""
+msgstr "(UTC-06:00) Гвадалахара, Мехико, Монтеррей"
#: dlls/tzres/tzres.rc:330
msgid "Saratov Standard Time"
@@ -11306,7 +11187,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:332
msgid "(UTC+04:00) Saratov"
-msgstr ""
+msgstr "(UTC+04:00) Саратов"
#: dlls/tzres/tzres.rc:57
msgid "Atlantic Standard Time"
@@ -11354,7 +11235,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:323
msgid "(UTC+11:00) Sakhalin"
-msgstr ""
+msgstr "(UTC+11:00) Сахалин"
#: dlls/tzres/tzres.rc:270
msgid "North Korea Standard Time"
@@ -11394,7 +11275,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:399 dlls/tzres/tzres.rc:400
msgid "UTC-02"
-msgstr ""
+msgstr "UTC-02"
#: dlls/tzres/tzres.rc:401
msgid "(UTC-02:00) Coordinated Universal Time-02"
@@ -11410,7 +11291,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:389
msgid "(UTC-07:00) Arizona"
-msgstr ""
+msgstr "(UTC-07:00) Аризона"
#: dlls/tzres/tzres.rc:339
msgid "South Africa Standard Time"
@@ -11434,11 +11315,11 @@ msgstr ""
#: dlls/tzres/tzres.rc:98
msgid "(UTC+09:30) Adelaide"
-msgstr ""
+msgstr "(UTC+09:30) Аделаида"
#: dlls/tzres/tzres.rc:405 dlls/tzres/tzres.rc:406
msgid "UTC-09"
-msgstr ""
+msgstr "UTC-09"
#: dlls/tzres/tzres.rc:407
msgid "(UTC-09:00) Coordinated Universal Time-09"
@@ -11466,7 +11347,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:32
msgid "(UTC+04:30) Kabul"
-msgstr ""
+msgstr "(UTC+04:30) Кабул"
#: dlls/tzres/tzres.rc:441
msgid "Yakutsk Standard Time"
@@ -11478,7 +11359,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:443
msgid "(UTC+09:00) Yakutsk"
-msgstr ""
+msgstr "(UTC+09:00) Якутск"
#: dlls/tzres/tzres.rc:309
msgid "SA Eastern Standard Time"
@@ -11502,7 +11383,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:44
msgid "(UTC+03:00) Kuwait, Riyadh"
-msgstr ""
+msgstr "(UTC+03:00) Кувейт, Риад"
#: dlls/tzres/tzres.rc:45
msgid "Arabian Standard Time"
@@ -11538,7 +11419,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:308
msgid "(UTC+03:00) Moscow, St. Petersburg"
-msgstr ""
+msgstr "(UTC+03:00) Москва, Санкт-Петербург"
#: dlls/tzres/tzres.rc:63
msgid "Aus Central W. Standard Time"
@@ -11562,7 +11443,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:296
msgid "(UTC+01:00) Brussels, Copenhagen, Madrid, Paris"
-msgstr ""
+msgstr "(UTC+01:00) Брюссель, Копенгаген, Мадрид, Париж"
#: dlls/tzres/tzres.rc:159
msgid "Ekaterinburg Standard Time"
@@ -11574,7 +11455,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:161
msgid "(UTC+05:00) Ekaterinburg"
-msgstr ""
+msgstr "(UTC+05:00) Екатеринбург"
#: dlls/tzres/tzres.rc:300 dlls/tzres/tzres.rc:301
msgid "Russia Time Zone 11"
@@ -11582,7 +11463,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:302
msgid "(UTC+12:00) Anadyr, Petropavlovsk-Kamchatsky"
-msgstr ""
+msgstr "(UTC+12:00) Анадырь, Петропавловск-Камчатский"
#: dlls/tzres/tzres.rc:435
msgid "West Bank Standard Time"
@@ -11606,7 +11487,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:353
msgid "(UTC+02:00) Damascus"
-msgstr ""
+msgstr "(UTC+02:00) Дамаск"
#: dlls/tzres/tzres.rc:60
msgid "AUS Central Standard Time"
@@ -11666,7 +11547,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:197
msgid "(UTC+02:00) Jerusalem"
-msgstr ""
+msgstr "(UTC+02:00) Иерусалим"
#: dlls/tzres/tzres.rc:78
msgid "Bangladesh Standard Time"
@@ -11702,7 +11583,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:434
msgid "(UTC+05:00) Ashgabat, Tashkent"
-msgstr ""
+msgstr "(UTC+05:00) Ашхабад, Ташкент"
#: dlls/tzres/tzres.rc:33
msgid "Alaskan Standard Time"
@@ -11714,7 +11595,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:35
msgid "(UTC-09:00) Alaska"
-msgstr ""
+msgstr "(UTC-09:00) Аляска"
#: dlls/tzres/tzres.rc:288
msgid "Paraguay Standard Time"
@@ -11726,7 +11607,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:290
msgid "(UTC-04:00) Asuncion"
-msgstr ""
+msgstr "(UTC-04:00) Асунсьон"
#: dlls/tzres/tzres.rc:132
msgid "Dateline Standard Time"
@@ -11750,7 +11631,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:209
msgid "(UTC+02:00) Tripoli"
-msgstr ""
+msgstr "(UTC+02:00) Триполи"
#: dlls/tzres/tzres.rc:75
msgid "Bahia Standard Time"
@@ -11762,7 +11643,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:77
msgid "(UTC-03:00) Salvador"
-msgstr ""
+msgstr "(UTC-03:00) Сальвадор"
#: dlls/tzres/tzres.rc:411
msgid "Venezuela Standard Time"
@@ -11798,7 +11679,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:188
msgid "(UTC-10:00) Hawaii"
-msgstr ""
+msgstr "(UTC-10:00) Гавайи"
#: dlls/tzres/tzres.rc:333
msgid "SE Asia Standard Time"
@@ -11810,7 +11691,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:335
msgid "(UTC+07:00) Bangkok, Hanoi, Jakarta"
-msgstr ""
+msgstr "(UTC+07:00) Бангкок, Ханой, Джакарта"
#: dlls/tzres/tzres.rc:291
msgid "Qyzylorda Standard Time"
@@ -11846,7 +11727,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:257
msgid "(UTC+12:00) Auckland, Wellington"
-msgstr ""
+msgstr "(UTC+12:00) Окленд, Веллингтон"
#: dlls/tzres/tzres.rc:36
msgid "Aleutian Standard Time"
@@ -11870,7 +11751,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:275
msgid "(UTC+06:00) Omsk"
-msgstr ""
+msgstr "(UTC+06:00) Омск"
#: dlls/tzres/tzres.rc:105
msgid "Central Brazilian Standard Time"
@@ -11894,7 +11775,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:83
msgid "(UTC+03:00) Minsk"
-msgstr ""
+msgstr "(UTC+03:00) Минск"
#: dlls/tzres/tzres.rc:315
msgid "SA Western Standard Time"
@@ -11918,7 +11799,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:176
msgid "(UTC-03:00) Greenland"
-msgstr ""
+msgstr "(UTC-03:00) Гренландия"
#: dlls/tzres/tzres.rc:147
msgid "Easter Island Standard Time"
@@ -11950,7 +11831,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:158
msgid "(UTC+02:00) Cairo"
-msgstr ""
+msgstr "(UTC+02:00) Каир"
#: dlls/tzres/tzres.rc:153
msgid "Eastern Standard Time (Mexico)"
@@ -11986,7 +11867,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:416
msgid "(UTC+10:00) Vladivostok"
-msgstr ""
+msgstr "(UTC+10:00) Владивосток"
#: dlls/tzres/tzres.rc:336
msgid "Singapore Standard Time"
@@ -12010,7 +11891,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:206
msgid "(UTC+09:00) Seoul"
-msgstr ""
+msgstr "(UTC+09:00) Сеул"
#: dlls/tzres/tzres.rc:123
msgid "Chatham Islands Standard Time"
@@ -12034,7 +11915,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:137
msgid "(UTC+03:00) Nairobi"
-msgstr ""
+msgstr "(UTC+03:00) Найроби"
#: dlls/tzres/tzres.rc:165
msgid "FLE Standard Time"
@@ -12046,7 +11927,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:167
msgid "(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius"
-msgstr ""
+msgstr "(UTC+02:00) Хельсинки, Киев, Рига, София, Таллин, Вильнюс"
#: dlls/tzres/tzres.rc:144
msgid "E. South America Standard Time"
@@ -12058,7 +11939,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:146
msgid "(UTC-03:00) Brasilia"
-msgstr ""
+msgstr "(UTC-03:00) Бразилиа"
#: dlls/tzres/tzres.rc:114
msgid "Central Pacific Standard Time"
@@ -12094,7 +11975,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:278
msgid "(UTC-04:00) Santiago"
-msgstr ""
+msgstr "(UTC-04:00) Сантьяго"
#: dlls/tzres/tzres.rc:138
msgid "E. Australia Standard Time"
@@ -12118,7 +11999,7 @@ msgstr ""
#: dlls/tzres/tzres.rc:422
msgid "(UTC+08:00) Perth"
-msgstr ""
+msgstr "(UTC+08:00) Перт"
#: dlls/urlmon/urlmon.rc:32 dlls/wininet/wininet.rc:88
msgid "Security Warning"
@@ -12219,47 +12100,35 @@ msgstr "&Ещё окна..."
#: dlls/vbscript/vbscript.rc:30
msgid "Overflow"
-msgstr ""
+msgstr "Переполнение"
#: dlls/vbscript/vbscript.rc:31
-#, fuzzy
-#| msgid "Out of memory."
msgid "Out of memory"
-msgstr "Мало памяти."
+msgstr "Недостаточно памяти"
#: dlls/vbscript/vbscript.rc:33
msgid "This array is fixed or temporarily locked"
msgstr ""
#: dlls/vbscript/vbscript.rc:34
-#, fuzzy
-#| msgid "Data type mismatch.\n"
msgid "Type mismatch"
-msgstr "Тип данных не совпадает.\n"
+msgstr "Несовпадение типов"
#: dlls/vbscript/vbscript.rc:36
-#, fuzzy
-#| msgid "I/O device error.\n"
msgid "Device I/O error"
-msgstr "Ошибка ввода/вывода на устройстве.\n"
+msgstr "Ошибка ввода/вывода на устройстве"
#: dlls/vbscript/vbscript.rc:37
-#, fuzzy
-#| msgid "File already exists.\n"
msgid "File already exists"
-msgstr "Файл уже существует.\n"
+msgstr "Файл уже существует"
#: dlls/vbscript/vbscript.rc:38
-#, fuzzy
-#| msgid "Disk full.\n"
msgid "Disk full"
-msgstr "Диск полностью заполнен.\n"
+msgstr "Диск заполнен"
#: dlls/vbscript/vbscript.rc:39
-#, fuzzy
-#| msgid "Too many open files.\n"
msgid "Too many files"
-msgstr "Слишком много открытых файлов.\n"
+msgstr "Слишком много файлов"
#: dlls/vbscript/vbscript.rc:40
#, fuzzy
@@ -12272,10 +12141,8 @@ msgid "Path/File access error"
msgstr ""
#: dlls/vbscript/vbscript.rc:42
-#, fuzzy
-#| msgid "Path not found.\n"
msgid "Path not found"
-msgstr "Путь не найден.\n"
+msgstr "Путь не найден"
#: dlls/vbscript/vbscript.rc:43
#, fuzzy
@@ -12284,48 +12151,36 @@ msgid "Object variable not set"
msgstr "(значение не задано)"
#: dlls/vbscript/vbscript.rc:44
-#, fuzzy
-#| msgid "Invalid user buffer.\n"
msgid "Invalid use of Null"
-msgstr "Неподходящий пользовательский буфер.\n"
+msgstr "Некорректное использование Null"
#: dlls/vbscript/vbscript.rc:45
msgid "Can't create necessary temporary file"
-msgstr ""
+msgstr "Не удалось создать временный файл"
#: dlls/vbscript/vbscript.rc:46
-#, fuzzy
-#| msgid "Automation server can't create object"
msgid "ActiveX component can't create object"
-msgstr "Сервер автоматизации не может создать объект"
+msgstr "Компонент ActiveX не смог создать объект"
#: dlls/vbscript/vbscript.rc:47
-#, fuzzy
-#| msgid "Object doesn't support this action"
msgid "Class doesn't support Automation"
-msgstr "Объект не поддерживает это действие"
+msgstr "Класс не поддерживает автоматизацию"
#: dlls/vbscript/vbscript.rc:48
msgid "File name or class name not found during Automation operation"
msgstr ""
#: dlls/vbscript/vbscript.rc:51
-#, fuzzy
-#| msgid "Object doesn't support this action"
msgid "Object doesn't support named arguments"
-msgstr "Объект не поддерживает это действие"
+msgstr "Объект не поддерживает именованные аргументы"
#: dlls/vbscript/vbscript.rc:52
-#, fuzzy
-#| msgid "Object doesn't support this action"
msgid "Object doesn't support current locale setting"
-msgstr "Объект не поддерживает это действие"
+msgstr "Объект не поддерживает выбор локали"
#: dlls/vbscript/vbscript.rc:53 dlls/vbscript/vbscript.rc:54
-#, fuzzy
-#| msgid "Element not found.\n"
msgid "Named argument not found"
-msgstr "Элемент не найден.\n"
+msgstr "Именованный аргумент не найден"
#: dlls/vbscript/vbscript.rc:55
msgid "Wrong number of arguments or invalid property assignment"
@@ -12338,10 +12193,8 @@ msgid "Object not a collection"
msgstr "Нарушение класса объекта"
#: dlls/vbscript/vbscript.rc:57
-#, fuzzy
-#| msgid "Specified control was not found in message"
msgid "Specified DLL function not found"
-msgstr "Указанный управляющий элемент не найден в сообщении"
+msgstr "Указанная функция не найдена в библиотеке"
#: dlls/vbscript/vbscript.rc:58
msgid "Variable uses an Automation type not supported in VBScript"
@@ -12357,11 +12210,11 @@ msgstr ""
#: dlls/vbscript/vbscript.rc:62
msgid "Microsoft VBScript compilation error"
-msgstr ""
+msgstr "Ошибка компиляции Microsoft VBScript"
#: dlls/vbscript/vbscript.rc:63
msgid "Microsoft VBScript runtime error"
-msgstr ""
+msgstr "Ошибка выполнения Microsoft VBScript"
#: dlls/winemac.drv/winemac.rc:33
msgid "Hide %@"
@@ -12462,22 +12315,16 @@ msgid "Effective Date"
msgstr ""
#: dlls/wininet/wininet.rc:37
-#, fuzzy
-#| msgid "Security"
msgid "Security Protocol"
-msgstr "Безопасность"
+msgstr "Протокол безопасности"
#: dlls/wininet/wininet.rc:38
-#, fuzzy
-#| msgid "Signature"
msgid "Signature Type"
-msgstr "Подпись"
+msgstr "Тип подписи"
#: dlls/wininet/wininet.rc:39
-#, fuzzy
-#| msgid "Encrypting File System"
msgid "Encryption Type"
-msgstr "Шифрованная файловая система"
+msgstr "Тип шифрования"
#: dlls/wininet/wininet.rc:40
msgid "Privacy Strength"
@@ -12485,7 +12332,7 @@ msgstr ""
#: dlls/wininet/wininet.rc:43
msgid "bits"
-msgstr ""
+msgstr "бит"
#: dlls/wininet/winineterror.mc:26
msgid "The request has timed out.\n"
@@ -13453,13 +13300,11 @@ msgstr ""
#: programs/chcp.com/chcp.rc:28
msgid "Active code page: %1!u!\n"
-msgstr ""
+msgstr "Активная кодовая страница: %1!u!\n"
#: programs/chcp.com/chcp.rc:29
-#, fuzzy
-#| msgid "Invalid message.\n"
msgid "Invalid code page\n"
-msgstr "Неверное сообщение.\n"
+msgstr "Неверная кодовая страница\n"
#: programs/chcp.com/chcp.rc:33
msgid ""
@@ -14533,7 +14378,7 @@ msgstr ""
#: programs/fsutil/fsutil.mc:40
msgid "Syntax: fsutil hardlink create <new> <existing>\n"
-msgstr ""
+msgstr "Синтаксис: fsutil hardlink create <новое имя> <существующее имя>\n"
#: programs/hostname/hostname.rc:30
msgid "Usage: hostname\n"
@@ -15671,37 +15516,24 @@ msgid "Type \"REG %1 /?\" for help.\n"
msgstr "Для справки введите «REG %1 /?».\n"
#: programs/reg/reg.rc:181
-#, fuzzy
-#| msgid ""
-#| "reg: The system was unable to find the specified registry key or value\n"
msgid "reg: Unable to access or create the specified registry key\n"
-msgstr "reg: не удалось найти указанный раздел реестра или значение\n"
+msgstr "reg: не удалось получить доступ или создать ключ\n"
#: programs/reg/reg.rc:116
-#, fuzzy
-#| msgid "The operation completed successfully\n"
msgid "reg: The operation completed successfully\n"
-msgstr "Операция успешно завершена\n"
+msgstr "reg: операция успешно завершена\n"
#: programs/reg/reg.rc:131
-#, fuzzy
-#| msgid "The registry operation was cancelled\n"
msgid "reg: The registry operation was cancelled\n"
-msgstr "Операция с реестром была отменена\n"
+msgstr "reg: операция с реестром была отменена\n"
#: programs/reg/reg.rc:174
-#, fuzzy
-#| msgid ""
-#| "reg: The system was unable to find the specified registry key or value\n"
msgid "reg: Unable to find the specified registry key\n"
-msgstr "reg: не удалось найти указанный раздел реестра или значение\n"
+msgstr "reg: не удалось найти указанный ключ\n"
#: programs/reg/reg.rc:120
-#, fuzzy
-#| msgid ""
-#| "reg: The system was unable to find the specified registry key or value\n"
msgid "reg: Unable to find the specified registry value\n"
-msgstr "reg: не удалось найти указанный раздел реестра или значение\n"
+msgstr "reg: не удалось найти указанное значение\n"
#: programs/reg/reg.rc:132 programs/regedit/regedit.rc:239
msgid "(Default)"
@@ -15712,17 +15544,6 @@ msgid "Type \"REG /?\" for help.\n"
msgstr "Для справки введите «REG /?».\n"
#: programs/reg/reg.rc:35
-#, fuzzy
-#| msgid ""
-#| "Usage:\n"
-#| " REG [operation] [parameters]\n"
-#| "\n"
-#| "Supported operations:\n"
-#| " ADD | DELETE | IMPORT | EXPORT | QUERY\n"
-#| "\n"
-#| "For help on a specific operation, type:\n"
-#| " REG [operation] /?\n"
-#| "\n"
msgid ""
"Usage:\n"
" REG [operation] [parameters]\n"
@@ -15734,11 +15555,11 @@ msgid ""
" REG [operation] /?\n"
"\n"
msgstr ""
-"Вызов:\n"
+"Использование:\n"
" REG [операция] [параметры]\n"
"\n"
"Поддерживаемые операции:\n"
-" ADD | DELETE | IMPORT | EXPORT | QUERY\n"
+" ADD | COPY | DELETE | EXPORT | IMPORT | QUERY\n"
"\n"
"Для получения справки по конкретной операции используйте:\n"
" REG [операция] /?\n"
@@ -15909,6 +15730,13 @@ msgid ""
" The name and path of the registry file to import.\n"
"\n"
msgstr ""
+"REG IMPORT <файл>\n"
+"\n"
+" Импорт ключей, значений и данных из указанного файла.\n"
+"\n"
+" <файл>\n"
+" Имя импортируемого файла.\n"
+"\n"
#: programs/reg/reg.rc:114
msgid ""
@@ -15954,33 +15782,32 @@ msgid ""
" Access the registry using the 64-bit view.\n"
"\n"
msgstr ""
+" /reg:32\n"
+" Доступ к 32-битным веткам реестра.\n"
+"\n"
+" /reg:64\n"
+" Доступ к 64-битным веткам реестра.\n"
+"\n"
#: programs/reg/reg.rc:117
-#, fuzzy
-#| msgid "reg: Invalid key name\n"
msgid "reg: Invalid registry key\n"
-msgstr "reg: неверное имя раздела\n"
+msgstr "reg: неверный ключ\n"
#: programs/reg/reg.rc:119
msgid "reg: Unable to access remote machine\n"
msgstr "reg: не удалось получить доступ к удалённому компьютеру\n"
#: programs/reg/reg.rc:172
-#, fuzzy
-#| msgid "reg: Invalid system key [%1]\n"
msgid "reg: Invalid system key\n"
-msgstr "reg: неверный системный ключ [%1]\n"
+msgstr "reg: неверный системный ключ\n"
#: programs/reg/reg.rc:140
msgid "reg: Invalid option [%1]. "
msgstr "reg: неверная опция [%1]. "
#: programs/reg/reg.rc:122
-#, fuzzy
-#| msgid "reg: The option [/d] must be followed by a valid hexadecimal value\n"
msgid "reg: The option [/d] must be followed by a valid numeric value\n"
-msgstr ""
-"reg: за опцией [/d] должно следовать число в шестнадцатеричном формате\n"
+msgstr "reg: за опцией [/d] должно следовать числовое значение\n"
#: programs/reg/reg.rc:123
msgid "reg: The option [/d] must be followed by a valid hexadecimal value\n"
@@ -16012,12 +15839,10 @@ msgid "reg: The source and destination keys cannot be the same\n"
msgstr ""
#: programs/reg/reg.rc:205
-#, fuzzy
-#| msgid "The file '%1' already exists. Do you want to overwrite it?"
msgid ""
"The value '%1\\%2' already exists in the destination key. Do you want to "
"overwrite it?"
-msgstr "Файл «%1» уже существует. Вы хотите заменить его?"
+msgstr "Значение «%1\\%2» уже существует. Вы хотите заменить его?"
#: programs/reg/reg.rc:133
msgid "Are you sure you want to delete the registry value '%1'?"
@@ -16032,10 +15857,8 @@ msgid "Are you sure you want to delete the registry key '%1'?"
msgstr "Вы точно хотите удалить ключ реестра «%1»?"
#: programs/reg/reg.rc:137
-#, fuzzy
-#| msgid "regedit: Unable to delete the registry key '%1'.\n"
msgid "reg: Unable to delete all registry values in '%1'\n"
-msgstr "regedit: не удалось удалить ключ «%1».\n"
+msgstr "regedit: не удалось удалить все значения в «%1»\n"
#: programs/reg/reg.rc:173
msgid "The file '%1' already exists. Do you want to overwrite it?"
@@ -16046,10 +15869,8 @@ msgid "reg: Unrecognized escape sequence [\\%1!c!]\n"
msgstr "reg: неизвестная управляющая последовательность [\\%1!c!]\n"
#: programs/reg/reg.rc:175
-#, fuzzy
-#| msgid "reg: Unable to open the registry key '%1'.\n"
msgid "reg: Unable to import the registry key '%1'\n"
-msgstr "reg: не удалось открыть ключ «%1».\n"
+msgstr "reg: не удалось импортировать ключ «%1»\n"
#: programs/reg/reg.rc:150
msgid "reg: The file '%1' was not found.\n"
@@ -16730,37 +16551,6 @@ msgid "regsvr32: Successfully uninstalled DLL '%1'\n"
msgstr "regsvr32: DLL «%1» успешно удалена\n"
#: programs/start/start.rc:57
-#, fuzzy
-#| msgid ""
-#| "Start a program, or open a document in the program normally used for "
-#| "files\n"
-#| "with that suffix.\n"
-#| "Usage:\n"
-#| "start [options] program_filename [...]\n"
-#| "start [options] document_filename\n"
-#| "\n"
-#| "Options:\n"
-#| "\"title\" Specifies the title of the child windows.\n"
-#| "/d directory Start the program in the specified directory.\n"
-#| "/b Don't create a new console for the program.\n"
-#| "/i Start the program with fresh environment variables.\n"
-#| "/min Start the program minimized.\n"
-#| "/max Start the program maximized.\n"
-#| "/low Start the program in the idle priority class.\n"
-#| "/normal Start the program in the normal priority class.\n"
-#| "/high Start the program in the high priority class.\n"
-#| "/realtime Start the program in the realtime priority class.\n"
-#| "/abovenormal Start the program in the abovenormal priority class.\n"
-#| "/belownormal Start the program in the belownormal priority class.\n"
-#| "/node n Start the program on the specified NUMA node.\n"
-#| "/affinity mask Start the program with the specified affinity mask.\n"
-#| "/wait Wait for the started program to finish, then exit with "
-#| "its\n"
-#| "exit code.\n"
-#| "/unix Use a Unix filename and start the file like Windows\n"
-#| "Explorer.\n"
-#| "/ProgIDOpen Open a document using the specified progID.\n"
-#| "/? Display this help and exit.\n"
msgid ""
"Start a program, or open a document in the program normally used for files\n"
"with that suffix.\n"
@@ -16815,6 +16605,8 @@ msgstr ""
"/wait Подождать завершения программы и вернуть её код возврата.\n"
"/unix Использовать Unix-имя файла и запустить как Windows\n"
" Explorer.\n"
+"/exec Выполнить указанный файл (для внутреннего использования в "
+"Wine).\n"
"/ProgIDOpen Открывает документ с помощью указанного progID.\n"
"/? Показать эту справку и выйти.\n"
--
2.34.1
1
0
30 Dec '21
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
---
dlls/mshtml/script.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/mshtml/script.c b/dlls/mshtml/script.c
index 28e07a50c8e..2a0d86c9f76 100644
--- a/dlls/mshtml/script.c
+++ b/dlls/mshtml/script.c
@@ -1716,12 +1716,13 @@ static BOOL use_gecko_script(IUri *uri)
return FALSE;
hres = IInternetSecurityManager_MapUrlToZone(get_security_manager(), display_uri, &zone, 0);
- SysFreeString(display_uri);
if(FAILED(hres)) {
WARN("Could not map %s to zone: %08x\n", debugstr_w(display_uri), hres);
+ SysFreeString(display_uri);
return TRUE;
}
+ SysFreeString(display_uri);
TRACE("zone %d\n", zone);
return zone == URLZONE_UNTRUSTED;
}
--
2.34.1
2
1
30 Dec '21
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
dlls/ntdll/tests/path.c | 38 ++++++++++++++------------------------
1 file changed, 14 insertions(+), 24 deletions(-)
1
0
[PATCH 1/2] ntdll: Fix handling \\.\CON path in RtlDosPathNameToNtPathName.
by Jacek Caban 30 Dec '21
by Jacek Caban 30 Dec '21
30 Dec '21
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=32183
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
It seems to be a special case, like in RtlIsDosDeviceName_U.
dlls/ntdll/path.c | 4 +++-
dlls/ntdll/tests/path.c | 12 ++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
1
0