Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 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 2020
- 68 participants
- 931 messages
Re: [PATCH v3 1/3] winegstreamer: Unmap and unref the buffer and release the sample before returning.
by Zebediah Figura (she/her)
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
Dec. 31, 2020
[PATCH v3 3/3] winegstreamer: Split audio data to fit in the sample buffer.
by Anton Baskanov
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50355
Signed-off-by: Anton Baskanov <baskanov(a)gmail.com>
---
v2: Set discontinuity and sync point flags only for the first sample.
v3: Only split raw audio, set sync point flag for all samples.
---
dlls/winegstreamer/gstdemux.c | 80 +++++++++++++++++++++++++++--------
1 file changed, 62 insertions(+), 18 deletions(-)
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index 3ab4ea9c0d6..1e91c9f8e7e 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -793,12 +793,13 @@ static DWORD CALLBACK push_data(LPVOID iface)
return 0;
}
-static HRESULT send_sample(struct gstdemux_source *pin, IMediaSample *sample, GstBuffer *buf, GstMapInfo *info)
+static HRESULT send_sample(struct gstdemux_source *pin, IMediaSample *sample,
+ GstBuffer *buf, GstMapInfo *info, gsize offset, gsize size, DWORD bytes_per_second)
{
HRESULT hr;
BYTE *ptr = NULL;
- hr = IMediaSample_SetActualDataLength(sample, info->size);
+ hr = IMediaSample_SetActualDataLength(sample, size);
if(FAILED(hr)){
WARN("SetActualDataLength failed: %08x\n", hr);
return hr;
@@ -806,18 +807,27 @@ static HRESULT send_sample(struct gstdemux_source *pin, IMediaSample *sample, Gs
IMediaSample_GetPointer(sample, &ptr);
- memcpy(ptr, info->data, info->size);
+ memcpy(ptr, &info->data[offset], size);
if (GST_BUFFER_PTS_IS_VALID(buf)) {
- REFERENCE_TIME rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts);
+ REFERENCE_TIME rtStart;
+ GstClockTime ptsStart = buf->pts;
+ if (offset > 0)
+ ptsStart = buf->pts + gst_util_uint64_scale(offset, GST_SECOND, bytes_per_second);
+ rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, ptsStart);
if (rtStart >= 0)
rtStart /= 100;
if (GST_BUFFER_DURATION_IS_VALID(buf)) {
- REFERENCE_TIME tStart = buf->pts / 100;
- REFERENCE_TIME tStop = (buf->pts + buf->duration) / 100;
REFERENCE_TIME rtStop;
- rtStop = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts + buf->duration);
+ REFERENCE_TIME tStart;
+ REFERENCE_TIME tStop;
+ GstClockTime ptsStop = buf->pts + buf->duration;
+ if (offset + size < info->size)
+ ptsStop = buf->pts + gst_util_uint64_scale(offset + size, GST_SECOND, bytes_per_second);
+ tStart = ptsStart / 100;
+ tStop = ptsStop / 100;
+ rtStop = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, ptsStop);
if (rtStop >= 0)
rtStop /= 100;
TRACE("Current time on %p: %i to %i ms\n", pin, (int)(rtStart / 10000), (int)(rtStop / 10000));
@@ -832,7 +842,7 @@ static HRESULT send_sample(struct gstdemux_source *pin, IMediaSample *sample, Gs
IMediaSample_SetMediaTime(sample, NULL, NULL);
}
- IMediaSample_SetDiscontinuity(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DISCONT));
+ IMediaSample_SetDiscontinuity(sample, !offset && GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DISCONT));
IMediaSample_SetPreroll(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_LIVE));
IMediaSample_SetSyncPoint(sample, !GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DELTA_UNIT));
@@ -850,7 +860,7 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
{
struct gstdemux_source *pin = gst_pad_get_element_private(pad);
struct gstdemux *This = impl_from_strmbase_filter(pin->pin.pin.filter);
- HRESULT hr;
+ HRESULT hr = S_OK;
IMediaSample *sample;
GstMapInfo info;
@@ -861,24 +871,58 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
return GST_FLOW_OK;
}
- hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
+ gst_buffer_map(buf, &info, GST_MAP_READ);
- if (FAILED(hr))
+ if (IsEqualGUID(&pin->pin.pin.mt.formattype, &FORMAT_WaveFormatEx)
+ && (IsEqualGUID(&pin->pin.pin.mt.subtype, &MEDIASUBTYPE_PCM)
+ || IsEqualGUID(&pin->pin.pin.mt.subtype, &MEDIASUBTYPE_IEEE_FLOAT)))
{
- if (hr != VFW_E_NOT_CONNECTED)
- ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
+ WAVEFORMATEX *format = (WAVEFORMATEX *)pin->pin.pin.mt.pbFormat;
+ gsize offset = 0;
+ while (offset < info.size)
+ {
+ gsize advance;
+
+ hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
+
+ if (FAILED(hr))
+ {
+ if (hr != VFW_E_NOT_CONNECTED)
+ ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
+ break;
+ }
+
+ advance = min(IMediaSample_GetSize(sample), info.size - offset);
+
+ hr = send_sample(pin, sample, buf, &info, offset, advance, format->nAvgBytesPerSec);
+
+ IMediaSample_Release(sample);
+
+ if (FAILED(hr))
+ break;
+
+ offset += advance;
+ }
}
else
{
- gst_buffer_map(buf, &info, GST_MAP_READ);
-
- hr = send_sample(pin, sample, buf, &info);
+ hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
- gst_buffer_unmap(buf, &info);
+ if (FAILED(hr))
+ {
+ if (hr != VFW_E_NOT_CONNECTED)
+ ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
+ }
+ else
+ {
+ hr = send_sample(pin, sample, buf, &info, 0, info.size, 0);
- IMediaSample_Release(sample);
+ IMediaSample_Release(sample);
+ }
}
+ gst_buffer_unmap(buf, &info);
+
gst_buffer_unref(buf);
if (hr == VFW_E_NOT_CONNECTED)
--
2.25.1
Dec. 31, 2020
[PATCH v3 2/3] winegstreamer: Move sample sending to a helper function.
by Anton Baskanov
Signed-off-by: Anton Baskanov <baskanov(a)gmail.com>
---
dlls/winegstreamer/gstdemux.c | 76 ++++++++++++++++++-----------------
1 file changed, 40 insertions(+), 36 deletions(-)
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index 805a7b8c089..3ab4ea9c0d6 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -793,51 +793,20 @@ static DWORD CALLBACK push_data(LPVOID iface)
return 0;
}
-static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *buf)
+static HRESULT send_sample(struct gstdemux_source *pin, IMediaSample *sample, GstBuffer *buf, GstMapInfo *info)
{
- struct gstdemux_source *pin = gst_pad_get_element_private(pad);
- struct gstdemux *This = impl_from_strmbase_filter(pin->pin.pin.filter);
HRESULT hr;
BYTE *ptr = NULL;
- IMediaSample *sample;
- GstMapInfo info;
-
- TRACE("%p %p\n", pad, buf);
-
- if (This->initial) {
- gst_buffer_unref(buf);
- return GST_FLOW_OK;
- }
- hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
-
- if (hr == VFW_E_NOT_CONNECTED) {
- gst_buffer_unref(buf);
- return GST_FLOW_NOT_LINKED;
- }
-
- if (FAILED(hr)) {
- gst_buffer_unref(buf);
- ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
- return GST_FLOW_FLUSHING;
- }
-
- gst_buffer_map(buf, &info, GST_MAP_READ);
-
- hr = IMediaSample_SetActualDataLength(sample, info.size);
+ hr = IMediaSample_SetActualDataLength(sample, info->size);
if(FAILED(hr)){
- IMediaSample_Release(sample);
- gst_buffer_unmap(buf, &info);
- gst_buffer_unref(buf);
WARN("SetActualDataLength failed: %08x\n", hr);
- return GST_FLOW_FLUSHING;
+ return hr;
}
IMediaSample_GetPointer(sample, &ptr);
- memcpy(ptr, info.data, info.size);
-
- gst_buffer_unmap(buf, &info);
+ memcpy(ptr, info->data, info->size);
if (GST_BUFFER_PTS_IS_VALID(buf)) {
REFERENCE_TIME rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts);
@@ -874,8 +843,43 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
TRACE("sending sample returned: %08x\n", hr);
+ return hr;
+}
+
+static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *buf)
+{
+ struct gstdemux_source *pin = gst_pad_get_element_private(pad);
+ struct gstdemux *This = impl_from_strmbase_filter(pin->pin.pin.filter);
+ HRESULT hr;
+ IMediaSample *sample;
+ GstMapInfo info;
+
+ TRACE("%p %p\n", pad, buf);
+
+ if (This->initial) {
+ gst_buffer_unref(buf);
+ return GST_FLOW_OK;
+ }
+
+ hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
+
+ if (FAILED(hr))
+ {
+ if (hr != VFW_E_NOT_CONNECTED)
+ ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
+ }
+ else
+ {
+ gst_buffer_map(buf, &info, GST_MAP_READ);
+
+ hr = send_sample(pin, sample, buf, &info);
+
+ gst_buffer_unmap(buf, &info);
+
+ IMediaSample_Release(sample);
+ }
+
gst_buffer_unref(buf);
- IMediaSample_Release(sample);
if (hr == VFW_E_NOT_CONNECTED)
return GST_FLOW_NOT_LINKED;
--
2.25.1
Dec. 31, 2020
[PATCH v3 1/3] winegstreamer: Unmap and unref the buffer and release the sample before returning.
by Anton Baskanov
Signed-off-by: Anton Baskanov <baskanov(a)gmail.com>
---
dlls/winegstreamer/gstdemux.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index 9114e6610a3..805a7b8c089 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -826,6 +826,9 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
hr = IMediaSample_SetActualDataLength(sample, info.size);
if(FAILED(hr)){
+ IMediaSample_Release(sample);
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
WARN("SetActualDataLength failed: %08x\n", hr);
return GST_FLOW_FLUSHING;
}
--
2.25.1
Dec. 31, 2020
[PATCH v3] user32: Send the WM_NCCALCSIZE message with wparam TRUE when creating a window.
by Haoyang Chen
Dec. 31, 2020
Re: [PATCH v2] user32: Send the WM_NCCALCSIZE message with wparam TRUE when creating a window.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83743
Your paranoid android.
=== debiant (build log) ===
../wine/dlls/user32/win.c:1723:33: error: ‘insert_after’ undeclared (first use in this function)
Task: The win32 Wine build failed
=== debiant (build log) ===
../wine/dlls/user32/win.c:1723:33: error: ‘insert_after’ undeclared (first use in this function)
Task: The wow64 Wine build failed
Dec. 31, 2020
[PATCH v2] user32: Send the WM_NCCALCSIZE message with wparam TRUE when creating a window.
by Haoyang Chen
>
Dec. 31, 2020
[PATCH] user32: Send the WM_NCCALCSIZE message with wparam TRUE when creating a window.
by Haoyang Chen
Dec. 31, 2020
Re: [PATCH v2] po: Update Ukrainian translation.
by Lauri Kenttä
Hello,
On 2020-12-25 21:05, Andrey Gusev wrote:
> msgctxt "Solid"
> -msgid "&o"
> -msgstr "&Ні"
> +msgid "&Sol"
> +msgstr "&Суц"
You can't change msgid, that's the English version. You can only change
msgstr.
In this case, msgctxt gives you the original meaning or context
("Solid") and msgid shows the current English version ("&o", apparently
for some accelerator use case), and you should choose a similar
one-letter translation for the accelerator, for example "&у" if it's
reasonable.
--
Lauri Kenttä
Dec. 30, 2020
[PATCH] readme: Update Finnish translation.
by Lauri Kenttä
Signed-off-by: Lauri Kenttä <lauri.kentta(a)gmail.com>
---
documentation/README.fi | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/documentation/README.fi b/documentation/README.fi
index 30311d82807..b2c6524548e 100644
--- a/documentation/README.fi
+++ b/documentation/README.fi
@@ -39,7 +39,7 @@ Winen kääntämiseen tarvitaan jokin seuraavista:
FreeBSD 8.0 tai uudempi
Solaris x86 9 tai uudempi
NetBSD-current
- Mac OS X 10.5 tai uudempi
+ Mac OS X 10.8 tai uudempi
Wine vaatii kerneliltä tuen säikeille. Tämän takia toistaiseksi vain yllä
mainittuja käyttöjärjestelmiä tuetaan; tulevaisuudessa saatetaan lisätä tuki
@@ -59,8 +59,9 @@ Tietoa NetBSD:lle:
USER_LDT, SYSVSHM, SYSVSEM ja SYSVMSG täytyy aktivoida kernelistä.
Tietoa Mac OS X:lle:
- Winen onnistuneeseen kääntämiseen x86:lla tarvitaan Xcode 2.4 tai uudempi.
- Mac-ajuri vaatii OS X 10.6:n tai uudemman, ja sitä ei käännetä 10.5:ssä.
+ Winen kääntämiseen tarvitaan Xcode Command Line Tools tai Apple cctools.
+ Vähimmäisversiot ovat clang 3.8, MacOSX10.10.sdk ja mingw-w64 v8.
+ MacOSX10.14.sdk ja myöhemmät sopivat vain wine64:n kääntämiseen.
Tuetut tiedostojärjestelmät:
--
2.30.0
Dec. 30, 2020
[PATCH] include: Add DBACCESSORFLAGSENUM/DBBINDSTATUSENUM values
by Alistair Leslie-Hughes
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
---
include/access.idl | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/include/access.idl b/include/access.idl
index 5ade09b85ce..fe1f3baddd7 100644
--- a/include/access.idl
+++ b/include/access.idl
@@ -32,6 +32,27 @@ interface IAccessor : IUnknown
typedef DWORD DBBINDSTATUS;
+ enum DBACCESSORFLAGSENUM
+ {
+ DBACCESSOR_INVALID = 0x00,
+ DBACCESSOR_PASSBYREF = 0x01,
+ DBACCESSOR_ROWDATA = 0x02,
+ DBACCESSOR_PARAMETERDATA = 0x04,
+ DBACCESSOR_OPTIMIZED = 0x08,
+ DBACCESSOR_INHERITED = 0x10,
+ };
+
+ enum DBBINDSTATUSENUM
+ {
+ DBBINDSTATUS_OK = 0,
+ DBBINDSTATUS_BADORDINAL = 1,
+ DBBINDSTATUS_UNSUPPORTEDCONVERSION = 2,
+ DBBINDSTATUS_BADBINDINFO = 3,
+ DBBINDSTATUS_BADSTORAGEFLAGS = 4,
+ DBBINDSTATUS_NOINTERFACE = 5,
+ DBBINDSTATUS_MULTIPLESTORAGE = 6,
+ };
+
[local]
HRESULT AddRefAccessor([in] HACCESSOR hAccessor,
[in, out, unique, annotation("__out_opt")] DBREFCOUNT *pcRefCount);
--
2.29.2
Dec. 30, 2020
[PATCH 2/2] conhost: Ignore CONTROL_C_EXIT exceptions in Unix mode.
by Jacek Caban
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50304
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
programs/conhost/conhost.c | 10 ++++++++++
1 file changed, 10 insertions(+)
Dec. 29, 2020
[PATCH 1/2] condrv: Don't requre write access for IOCTL_CONDRV_CTRL_EVENT ioctl.
by Jacek Caban
Fixes propagating CONTROL_C_EXIT exception from console server handle.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50304
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
include/wine/condrv.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Dec. 29, 2020
Re: [PATCH v2] winegstreamer: Split audio data to fit in the sample buffer.
by Zebediah Figura (she/her)
If necessary I'm willing to sign off on the patch now, because it's code
freeze, but since there's probably still time I've inlined some comments.
I've also replaced the contents of the below message with the output of
"git diff --ignore-all-space" for clarity.
On 12/24/20 9:12 PM, Anton Baskanov wrote:
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50355
> Signed-off-by: Anton Baskanov <baskanov(a)gmail.com>
>
> diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
> index 9114e6610a3..676b7396515 100644
> --- a/dlls/winegstreamer/gstdemux.c
> +++ b/dlls/winegstreamer/gstdemux.c
> @@ -81,6 +81,7 @@ struct gstdemux_source
> HANDLE caps_event, eos_event;
> GstSegment *segment;
> SourceSeeking seek;
> + DWORD bytes_per_second;
> };
>
> static inline struct gstdemux *impl_from_strmbase_filter(struct strmbase_filter *iface)
> @@ -801,6 +802,7 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
> BYTE *ptr = NULL;
> IMediaSample *sample;
> GstMapInfo info;
> + gsize position = 0;
>
> TRACE("%p %p\n", pad, buf);
>
> @@ -809,43 +811,60 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
> return GST_FLOW_OK;
> }
>
> + gst_buffer_map(buf, &info, GST_MAP_READ);
> +
> + while (position < info.size)
> + {
> + gsize advance;
> +
> hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
>
> if (hr == VFW_E_NOT_CONNECTED) {
> + gst_buffer_unmap(buf, &info);
> gst_buffer_unref(buf);
> return GST_FLOW_NOT_LINKED;
> }
>
> if (FAILED(hr)) {
> + gst_buffer_unmap(buf, &info);
> gst_buffer_unref(buf);
> ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
> return GST_FLOW_FLUSHING;
> }
>
> - gst_buffer_map(buf, &info, GST_MAP_READ);
> + advance = min(IMediaSample_GetSize(sample), info.size - position);
>
> - hr = IMediaSample_SetActualDataLength(sample, info.size);
> + hr = IMediaSample_SetActualDataLength(sample, advance);
> if(FAILED(hr)){
> + gst_buffer_unmap(buf, &info);
> + gst_buffer_unref(buf);
Nitpick, but this is a preëxisting bug and could be a separate patch.
> WARN("SetActualDataLength failed: %08x\n", hr);
> return GST_FLOW_FLUSHING;
> }
>
> IMediaSample_GetPointer(sample, &ptr);
>
> - memcpy(ptr, info.data, info.size);
> -
> - gst_buffer_unmap(buf, &info);
> + memcpy(ptr, &info.data[position], advance);
>
> if (GST_BUFFER_PTS_IS_VALID(buf)) {
> - REFERENCE_TIME rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts);
> + REFERENCE_TIME rtStart;
> + GstClockTime ptsStart = buf->pts;
> + if (position > 0 && pin->bytes_per_second)
I don't exactly like this. The "position > 0" part should be redundant
(and isn't worth including just to avoid an extra calculation), but what
bothers me more is the overloaded meaning of "pin->bytes_per_second".
In practice I don't think we should really be indiscriminately splitting
samples like this. We can't split e.g. video frames, for one. It's a bit
of a moot point, since a buffer too big to fit in one sample is a bug
*anyway*, but if we need to be able to scale by bit rate, we should
limit the splitting to circumstances where bit rate is actually valid,
which I think means only raw audio. (I'm not sure if it's also possible
for GStreamer to arbitrarily cut mp3 frames, but if it is, and we need
to worry about overlarge buffers, we'll need to find another way to
calculate the bit rate.)
Splitting the code like that would probably encourage the separation of
a helper function to do some of the work of filling and sending an
individual DirectShow sample. That of course would be a separate patch
if introduced.
Note that in that case the "bytes_per_second" field should probably go
away, and be replaced with direct access of nAvgBytesPerSec from
got_data_sink().
> + ptsStart = buf->pts + gst_util_uint64_scale(position, GST_SECOND, pin->bytes_per_second);
> + rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, ptsStart);
> if (rtStart >= 0)
> rtStart /= 100;
>
> if (GST_BUFFER_DURATION_IS_VALID(buf)) {
> - REFERENCE_TIME tStart = buf->pts / 100;
> - REFERENCE_TIME tStop = (buf->pts + buf->duration) / 100;
> REFERENCE_TIME rtStop;
> - rtStop = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts + buf->duration);
> + REFERENCE_TIME tStart;
> + REFERENCE_TIME tStop;
> + GstClockTime ptsStop = buf->pts + buf->duration;
> + if (position + advance < info.size && pin->bytes_per_second)
> + ptsStop = buf->pts + gst_util_uint64_scale(position + advance, GST_SECOND, pin->bytes_per_second);
> + tStart = ptsStart / 100;
> + tStop = ptsStop / 100;
> + rtStop = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, ptsStop);
> if (rtStop >= 0)
> rtStop /= 100;
> TRACE("Current time on %p: %i to %i ms\n", pin, (int)(rtStart / 10000), (int)(rtStop / 10000));
> @@ -860,9 +879,11 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
> IMediaSample_SetMediaTime(sample, NULL, NULL);
> }
>
> - IMediaSample_SetDiscontinuity(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DISCONT));
> + IMediaSample_SetDiscontinuity(sample,
> + !position && GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DISCONT));
This looks correct, but...
> IMediaSample_SetPreroll(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_LIVE));
> - IMediaSample_SetSyncPoint(sample, !GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DELTA_UNIT));
> + IMediaSample_SetSyncPoint(sample,
> + !position && !GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DELTA_UNIT));
this looks wrong, or at least weird. It doesn't make sense in the first
place to mark a raw audio sample as a delta unit, but if hypothetically
there were a splittable sample which was a delta unit, I think it'd be
true that all of the pieces are delta units—none of them can be decoded
alone.
>
> if (!pin->pin.pin.peer)
> hr = VFW_E_NOT_CONNECTED;
> @@ -871,14 +892,27 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
>
> TRACE("sending sample returned: %08x\n", hr);
>
> - gst_buffer_unref(buf);
> IMediaSample_Release(sample);
>
> if (hr == VFW_E_NOT_CONNECTED)
> + {
> + gst_buffer_unmap(buf, &info);
> + gst_buffer_unref(buf);
> return GST_FLOW_NOT_LINKED;
> + }
>
> if (FAILED(hr))
> + {
> + gst_buffer_unmap(buf, &info);
> + gst_buffer_unref(buf);
> return GST_FLOW_FLUSHING;
> + }
> +
> + position += advance;
> + }
> +
> + gst_buffer_unmap(buf, &info);
> + gst_buffer_unref(buf);
>
> return GST_FLOW_OK;
> }
> @@ -2104,6 +2138,8 @@ static HRESULT WINAPI GSTOutPin_DecideBufferSize(struct strmbase_source *iface,
> {
> WAVEFORMATEX *format = (WAVEFORMATEX *)pin->pin.pin.mt.pbFormat;
> buffer_size = format->nAvgBytesPerSec;
> +
> + pin->bytes_per_second = format->nAvgBytesPerSec;
> }
>
> props->cBuffers = max(props->cBuffers, 1);
Dec. 29, 2020
[PATCH] devenum: Avoid initializing nameless unions in designated initializers.
by Zebediah Figura
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50423
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
dlls/devenum/mediacatenum.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/dlls/devenum/mediacatenum.c b/dlls/devenum/mediacatenum.c
index ab675b5656f..f097c580261 100644
--- a/dlls/devenum/mediacatenum.c
+++ b/dlls/devenum/mediacatenum.c
@@ -137,17 +137,10 @@ static HRESULT WINAPI property_bag_Read(IPropertyBag *iface,
}
else if (!wcscmp(name, L"FilterData"))
{
- REGFILTERPINS2 reg_pins[2] = {{0}};
- REGFILTER2 reg_filter =
- {
- .dwVersion = 2,
- .dwMerit = MERIT_NORMAL + 0x800,
- .cPins2 = 2,
- .rgPins2 = reg_pins,
- };
-
unsigned int count = 1, input_count, output_count, i;
DMO_PARTIAL_MEDIATYPE *types = NULL, *new_array;
+ REGFILTERPINS2 reg_pins[2] = {{0}};
+ REGFILTER2 reg_filter = {0};
REGPINTYPES *reg_types;
HRESULT hr;
@@ -192,6 +185,10 @@ static HRESULT WINAPI property_bag_Read(IPropertyBag *iface,
reg_pins[1].cInstances = 1;
reg_pins[1].nMediaTypes = output_count;
reg_pins[1].lpMediaType = reg_types + count;
+ reg_filter.dwVersion = 2;
+ reg_filter.dwMerit = MERIT_NORMAL + 0x800,
+ reg_filter.cPins2 = 2;
+ reg_filter.rgPins2 = reg_pins;
hr = create_filter_data(var, ®_filter);
free(reg_types);
--
2.29.2
Dec. 29, 2020
[PATCH v2] user32: Add stub for SetDisplayConfig().
by Paul Gofman
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50420
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
v2:
- add missing WINAPI and flags dump.
dlls/user32/sysparams.c | 12 ++++++++++++
dlls/user32/user32.spec | 1 +
2 files changed, 13 insertions(+)
diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c
index a620116053a..55d6d7e53a7 100644
--- a/dlls/user32/sysparams.c
+++ b/dlls/user32/sysparams.c
@@ -4794,3 +4794,15 @@ LONG WINAPI DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_HEADER *packet)
return ERROR_INVALID_PARAMETER;
}
}
+
+/***********************************************************************
+ * SetDisplayConfig (USER32.@)
+ */
+LONG WINAPI SetDisplayConfig(UINT32 path_info_count, DISPLAYCONFIG_PATH_INFO *path_info, UINT32 mode_info_count,
+ DISPLAYCONFIG_MODE_INFO *mode_info, UINT32 flags)
+{
+ FIXME("path_info_count %u, path_info %p, mode_info_count %u, mode_info %p, flags %#x stub.\n",
+ path_info_count, path_info, mode_info_count, mode_info, flags);
+
+ return ERROR_SUCCESS;
+}
diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec
index 8051ae3f767..4ef75247d71 100644
--- a/dlls/user32/user32.spec
+++ b/dlls/user32/user32.spec
@@ -663,6 +663,7 @@
@ stdcall SetDeskWallPaper(str)
# @ stub SetDeskWallpaper
# @ stub SetDesktopBitmap
+@ stdcall SetDisplayConfig(long ptr long ptr long)
@ stdcall SetDlgItemInt(long long long long)
@ stdcall SetDlgItemTextA(long long str)
@ stdcall SetDlgItemTextW(long long wstr)
--
2.29.2
Dec. 29, 2020
Re: [PATCH] user32: Add stub for SetDisplayConfig().
by Paul Gofman
On 12/29/20 17:01, Zhiyi Zhang wrote:
>
> On 12/29/20 9:39 PM, Paul Gofman wrote:
>> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50420
>> Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
>> ---
>> dlls/user32/sysparams.c | 12 ++++++++++++
>> dlls/user32/user32.spec | 1 +
>> 2 files changed, 13 insertions(+)
>>
>> diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c
>> index a620116053a..d9c383ba36f 100644
>> --- a/dlls/user32/sysparams.c
>> +++ b/dlls/user32/sysparams.c
>> @@ -4794,3 +4794,15 @@ LONG WINAPI DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_HEADER *packet)
>> return ERROR_INVALID_PARAMETER;
>> }
>> }
>> +
>> +/***********************************************************************
>> + * SetDisplayConfig (USER32.@)
>> + */
>> +LONG SetDisplayConfig(UINT32 path_info_count, DISPLAYCONFIG_PATH_INFO *path_info, UINT32 mode_info_count,
>> + DISPLAYCONFIG_MODE_INFO *mode_info, UINT32 flags)
>> +{
> Hi Paul,
>
> I think you forgot to add WINAPI to the function declaration and dump 'flags'.
>
> Thanks,
> Zhiyi
Oh yeah, indeed, thanks.
Dec. 29, 2020
[PATCH] ntdll: Use WINAPI calling convention for stub_entry_point().
by Paul Gofman
Otherwise it ends up being stdcall function in the gcc PE build and
cdecl in ELF while allocate_stub() currently assumes cdecl.
Fixes missing function details output on x64.
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
dlls/ntdll/loader.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index efa7d204628..118e85ec2a2 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -332,7 +332,7 @@ static inline BOOL call_dll_entry_point( DLLENTRYPROC proc, void *module,
*
* Entry point for stub functions.
*/
-static void stub_entry_point( const char *dll, const char *name, void *ret_addr )
+static void WINAPI stub_entry_point( const char *dll, const char *name, void *ret_addr )
{
EXCEPTION_RECORD rec;
@@ -443,15 +443,15 @@ static ULONG_PTR allocate_stub( const char *dll, const char *name )
stub->name = name;
stub->entry = stub_entry_point;
#else
- stub->movq_rdi[0] = 0x48; /* movq $dll,%rdi */
- stub->movq_rdi[1] = 0xbf;
+ stub->movq_rdi[0] = 0x48; /* movq $dll,%rcx */
+ stub->movq_rdi[1] = 0xb9;
stub->dll = dll;
- stub->movq_rsi[0] = 0x48; /* movq $name,%rsi */
- stub->movq_rsi[1] = 0xbe;
+ stub->movq_rsi[0] = 0x48; /* movq $name,%rdx */
+ stub->movq_rsi[1] = 0xba;
stub->name = name;
- stub->movq_rsp_rdx[0] = 0x48; /* movq (%rsp),%rdx */
+ stub->movq_rsp_rdx[0] = 0x4c; /* movq (%rsp),%r8 */
stub->movq_rsp_rdx[1] = 0x8b;
- stub->movq_rsp_rdx[2] = 0x14;
+ stub->movq_rsp_rdx[2] = 0x04;
stub->movq_rsp_rdx[3] = 0x24;
stub->movq_rax[0] = 0x48; /* movq $entry, %rax */
stub->movq_rax[1] = 0xb8;
--
2.29.2
Dec. 29, 2020
Re: [PATCH] user32: Add stub for SetDisplayConfig().
by Zhiyi Zhang
On 12/29/20 9:39 PM, Paul Gofman wrote:
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50420
> Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
> ---
> dlls/user32/sysparams.c | 12 ++++++++++++
> dlls/user32/user32.spec | 1 +
> 2 files changed, 13 insertions(+)
>
> diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c
> index a620116053a..d9c383ba36f 100644
> --- a/dlls/user32/sysparams.c
> +++ b/dlls/user32/sysparams.c
> @@ -4794,3 +4794,15 @@ LONG WINAPI DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_HEADER *packet)
> return ERROR_INVALID_PARAMETER;
> }
> }
> +
> +/***********************************************************************
> + * SetDisplayConfig (USER32.@)
> + */
> +LONG SetDisplayConfig(UINT32 path_info_count, DISPLAYCONFIG_PATH_INFO *path_info, UINT32 mode_info_count,
> + DISPLAYCONFIG_MODE_INFO *mode_info, UINT32 flags)
> +{
Hi Paul,
I think you forgot to add WINAPI to the function declaration and dump 'flags'.
Thanks,
Zhiyi
> + FIXME("path_info_count %u, path_info %p, mode_info_count %u, mode_info %p stub.",
> + path_info_count, path_info, mode_info_count, mode_info);
> +
> + return ERROR_SUCCESS;
> +}
> diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec
> index 8051ae3f767..4ef75247d71 100644
> --- a/dlls/user32/user32.spec
> +++ b/dlls/user32/user32.spec
> @@ -663,6 +663,7 @@
> @ stdcall SetDeskWallPaper(str)
> # @ stub SetDeskWallpaper
> # @ stub SetDesktopBitmap
> +@ stdcall SetDisplayConfig(long ptr long ptr long)
> @ stdcall SetDlgItemInt(long long long long)
> @ stdcall SetDlgItemTextA(long long str)
> @ stdcall SetDlgItemTextW(long long wstr)
Dec. 29, 2020
[PATCH] user32: Add stub for SetDisplayConfig().
by Paul Gofman
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50420
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
dlls/user32/sysparams.c | 12 ++++++++++++
dlls/user32/user32.spec | 1 +
2 files changed, 13 insertions(+)
diff --git a/dlls/user32/sysparams.c b/dlls/user32/sysparams.c
index a620116053a..d9c383ba36f 100644
--- a/dlls/user32/sysparams.c
+++ b/dlls/user32/sysparams.c
@@ -4794,3 +4794,15 @@ LONG WINAPI DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_HEADER *packet)
return ERROR_INVALID_PARAMETER;
}
}
+
+/***********************************************************************
+ * SetDisplayConfig (USER32.@)
+ */
+LONG SetDisplayConfig(UINT32 path_info_count, DISPLAYCONFIG_PATH_INFO *path_info, UINT32 mode_info_count,
+ DISPLAYCONFIG_MODE_INFO *mode_info, UINT32 flags)
+{
+ FIXME("path_info_count %u, path_info %p, mode_info_count %u, mode_info %p stub.",
+ path_info_count, path_info, mode_info_count, mode_info);
+
+ return ERROR_SUCCESS;
+}
diff --git a/dlls/user32/user32.spec b/dlls/user32/user32.spec
index 8051ae3f767..4ef75247d71 100644
--- a/dlls/user32/user32.spec
+++ b/dlls/user32/user32.spec
@@ -663,6 +663,7 @@
@ stdcall SetDeskWallPaper(str)
# @ stub SetDeskWallpaper
# @ stub SetDesktopBitmap
+@ stdcall SetDisplayConfig(long ptr long ptr long)
@ stdcall SetDlgItemInt(long long long long)
@ stdcall SetDlgItemTextA(long long str)
@ stdcall SetDlgItemTextW(long long wstr)
--
2.29.2
Dec. 29, 2020
[PATCH] po: Update Korean translation.
by Byeongsik Jeon
Signed-off-by: Byeongsik Jeon <bsjeon(a)hanmail.net>
---
po/ko.po | 1684 +++++++++++++++++++++++++++---------------------------
1 file changed, 840 insertions(+), 844 deletions(-)
diff --git a/po/ko.po b/po/ko.po
index a8b4f84d583..40962ead745 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: Wine\n"
"Report-Msgid-Bugs-To: https://bugs.winehq.org\n"
"POT-Creation-Date: N/A\n"
-"PO-Revision-Date: 2020-12-16 13:14+0900\n"
+"PO-Revision-Date: 2020-12-29 16:25+0900\n"
"Last-Translator: Byeongsik Jeon <bsjeon(a)hanmail.net>\n"
"Language-Team: Korean\n"
"Language: ko\n"
@@ -23,7 +23,7 @@ msgid ""
"drive, click Install."
msgstr ""
"플로피 디스크, 시디롬 드라이브, 또는 하드디스크 드라이브에서 새 프로그램을 설"
-"치하려면 [설치]를 클릭하십시오."
+"치하려면 [설치]를 클릭하세요."
#: dlls/appwiz.cpl/appwiz.rc:62
msgid "&Install..."
@@ -36,7 +36,7 @@ msgid ""
"Remove."
msgstr ""
"다음 소프트웨어는 자동으로 제거됩니다. 프로그램을 제거하거나 설치된 구성요소"
-"를 수정하려면, 목록에서 선택한 후 [수정/제거]를 클릭하십시오."
+"를 수정하려면, 목록에서 선택한 후 [수정/제거]를 클릭하세요."
#: dlls/appwiz.cpl/appwiz.rc:67
msgid "&Support Information"
@@ -101,7 +101,7 @@ msgstr "이 정보는 %s을(를) 위한 기술 지원을 받는 데 사용될
#: dlls/appwiz.cpl/appwiz.rc:80
msgid "Publisher:"
-msgstr "제작사:"
+msgstr "제조업체:"
#: dlls/appwiz.cpl/appwiz.rc:81 programs/winefile/winefile.rc:165
msgid "Version:"
@@ -133,7 +133,7 @@ msgstr "설명:"
#: dlls/appwiz.cpl/appwiz.rc:100
msgid "Wine Gecko Installer"
-msgstr "Wine Gecko 설치관리자"
+msgstr "Wine Gecko 설치 관리자"
#: dlls/appwiz.cpl/appwiz.rc:103
msgid ""
@@ -151,7 +151,7 @@ msgstr ""
"\n"
"참고: 배포판이 제공하는 Gecko 패키지 사용을 추천합니다. 자세한 내용은 <a "
"href=\"https://wiki.winehq.org/Gecko\">https://wiki.winehq.org/Gecko</a>를 보"
-"십시오."
+"세요."
#: dlls/appwiz.cpl/appwiz.rc:109 dlls/appwiz.cpl/appwiz.rc:124
msgid "&Install"
@@ -202,7 +202,7 @@ msgstr "취소"
#: dlls/appwiz.cpl/appwiz.rc:115
msgid "Wine Mono Installer"
-msgstr "Wine Mono 설치관리자"
+msgstr "Wine Mono 설치 관리자"
#: dlls/appwiz.cpl/appwiz.rc:118
msgid ""
@@ -258,7 +258,7 @@ msgstr "이름"
#: dlls/appwiz.cpl/appwiz.rc:39
msgid "Publisher"
-msgstr "제작사"
+msgstr "제조업체"
#: dlls/appwiz.cpl/appwiz.rc:40 dlls/cryptui/cryptui.rc:54
msgid "Version"
@@ -936,14 +936,14 @@ msgstr "파일을 찾을 수 없음"
#: dlls/comdlg32/comdlg32.rc:34
msgid "Please verify that the correct file name was given"
-msgstr "파일 이름이 올바른지 확인하십시오"
+msgstr "파일 이름이 올바른지 확인하세요"
#: dlls/comdlg32/comdlg32.rc:35
msgid ""
"File does not exist.\n"
"Do you want to create file?"
msgstr ""
-"파일이 없습니다\n"
+"파일이 없습니다.\n"
"파일을 새로 만드시겠습니까?"
#: dlls/comdlg32/comdlg32.rc:36
@@ -956,15 +956,15 @@ msgstr ""
#: dlls/comdlg32/comdlg32.rc:37
msgid "Invalid character(s) in path"
-msgstr "경로에 올바르지 않은 문자가 들어 있습니다"
+msgstr "경로에 잘못된 문자가 들어 있습니다"
#: dlls/comdlg32/comdlg32.rc:38
msgid ""
"A filename cannot contain any of the following characters:\n"
" / : < > |"
msgstr ""
-"파일 이름에 다음 문자가 들어 있으면 안됩니다.\n"
-" / : < > |"
+"파일 이름에는 아래의 문자가 들어 있을 수 없습니다.\n"
+" / : < > |"
#: dlls/comdlg32/comdlg32.rc:39
msgid "Path does not exist"
@@ -1080,7 +1080,7 @@ msgstr "흰색"
#: dlls/comdlg32/comdlg32.rc:57
msgid "Unreadable Entry"
-msgstr "읽을 수 없는 항목입니다"
+msgstr "읽을 수 없는 항목"
#: dlls/comdlg32/comdlg32.rc:59
msgid ""
@@ -1100,7 +1100,7 @@ msgid ""
"Please reenter margins."
msgstr ""
"여백이 겹쳐졌거나 용지 크기를 넘었습니다.\n"
-"여백 크기를 다시 입력십시오."
+"여백 크기를 다시 입력하세요."
#: dlls/comdlg32/comdlg32.rc:65
msgid "The 'Number of copies' field cannot be empty."
@@ -1111,12 +1111,12 @@ msgid ""
"This large number of copies is not supported by your printer.\n"
"Please enter a value between 1 and %d."
msgstr ""
-"복사본 개수가 너무 많아서 프린터가 지원하지 않습니다.\n"
-"1과 %d 사이의 값을 입력하십시오."
+"이렇게 많은 복사본 갯수는 프린터에서 지원되지 않습니다.\n"
+"1과 %d 사이의 값을 입력하세요."
#: dlls/comdlg32/comdlg32.rc:68
msgid "A printer error occurred."
-msgstr "프린터 오류 발생."
+msgstr "프린터 오류가 발생하였습니다."
#: dlls/comdlg32/comdlg32.rc:69
msgid "No default printer defined."
@@ -1128,15 +1128,15 @@ msgstr "프린터를 찾을 수 없습니다."
#: dlls/comdlg32/comdlg32.rc:71 programs/progman/progman.rc:76
msgid "Out of memory."
-msgstr "메모리 부족."
+msgstr "메모리가 부족합니다."
#: dlls/comdlg32/comdlg32.rc:72
msgid "An error occurred."
-msgstr "오류 발생."
+msgstr "오류가 발생했습니다."
#: dlls/comdlg32/comdlg32.rc:73
msgid "Unknown printer driver."
-msgstr "알 수 없는 프린터 드라이버."
+msgstr "알 수 없는 프린터 드라이버입니다."
#: dlls/comdlg32/comdlg32.rc:76
msgid ""
@@ -1144,11 +1144,11 @@ msgid ""
"a document, you need to install a printer. Please install one and retry."
msgstr ""
"페이지 설정이나 문서 인쇄와 같은 프린터 관련 작업을 수행하려면 먼저 프린터를 "
-"설치해야 합니다. 프린터를 설치하고 다시 시도하십시오."
+"설치해야 합니다. 프린터를 설치하고 다시 시도하세요."
#: dlls/comdlg32/comdlg32.rc:142
msgid "Select a font size between %1!d! and %2!d! points."
-msgstr "%1!d!pt - %2!d!pt 사이에서 글꼴 크기를 선택하십시오."
+msgstr "%1!d!pt - %2!d!pt 사이에서 글꼴 크기를 선택하세요."
#: dlls/comdlg32/comdlg32.rc:143 dlls/ieframe/ieframe.rc:35
msgid "&Save"
@@ -1284,7 +1284,7 @@ msgstr "기본 프린터; "
#: dlls/comdlg32/comdlg32.rc:79
msgid "There are %d documents in the queue"
-msgstr "대기열에는 %d의 문서가 존재합니다"
+msgstr "대기열에는 문서 %d이(가) 존재합니다"
#: dlls/comdlg32/comdlg32.rc:80
msgid "Margins [inches]"
@@ -1330,7 +1330,7 @@ msgid ""
"and password are correct."
msgstr ""
"사용자 이름과 암호가 올바른지\n"
-"확인하십시오."
+"확인하세요."
#: dlls/credui/credui.rc:35
msgid ""
@@ -1339,10 +1339,10 @@ msgid ""
"Press the Caps Lock key on your keyboard to turn off Caps Lock before\n"
"entering your password."
msgstr ""
-"Caps Lock이 켜져 있으면 암호가 올바르지 않게 입력될 수 있습니다.\n"
+"Caps Lock을 켜 놓으면 암호가 올바르게 입력되지 않을 수 있습니다.\n"
"\n"
"암호를 입력하기 전에 키보드의 Caps Lock 키를 눌러서 Caps Lock을\n"
-"끄십시오."
+"끄세요."
#: dlls/credui/credui.rc:34
msgid "Caps Lock is On"
@@ -1455,7 +1455,7 @@ msgstr "서명한 데이터 선호"
#: dlls/crypt32/crypt32.rc:56 dlls/cryptdlg/cryptdlg.rc:34
msgctxt "Certification Practice Statement"
msgid "CPS"
-msgstr "CPS"
+msgstr "CPS(인증서 사용 약관)"
#: dlls/crypt32/crypt32.rc:57 dlls/cryptdlg/cryptdlg.rc:35
msgid "User Notice"
@@ -2298,7 +2298,7 @@ msgstr "인증서 저장소 선택"
#: dlls/cryptui/cryptui.rc:276
msgid "Select the certificate store you want to use:"
-msgstr "사용하고자 하는 인증서 저장소를 선택하십시오:"
+msgstr "사용하고자 하는 인증서 저장소를 선택하세요:"
#: dlls/cryptui/cryptui.rc:279
msgid "&Show physical stores"
@@ -2475,7 +2475,7 @@ msgstr ""
"다. 또한 메시지에 사인하고 인증하는 데도 사용됩니다.인증서 보관소는 인증서, "
"인증서 파기 목록, 인증서 신뢰 목록의저장소입니다.\n"
"\n"
-"계속 하려면, [다음]을 클릭하십시오."
+"계속 하려면, [다음]을 클릭하세요."
#: dlls/cryptui/cryptui.rc:389
msgid ""
@@ -2551,7 +2551,7 @@ msgstr "인증서 선택"
#: dlls/cryptui/cryptui.rc:459
msgid "Select a certificate you want to use"
-msgstr "사용하고자 하는 인증서를 선택하십시오"
+msgstr "사용할 인증서를 선택합니다"
#: dlls/cryptui/cryptui.rc:30 dlls/cryptui/cryptui.rc:93
msgid "Certificate"
@@ -2566,8 +2566,8 @@ msgid ""
"This certificate has an invalid signature. The certificate may have been "
"altered or corrupted."
msgstr ""
-"이 인증서는 올바르지 않은 서명을 가지고 있습니다. 이 인증서는 아마도 고쳐졌거"
-"나 망가진 것같습니가."
+"이 인증서에는 잘못된 서명이 있습니다. 인증서가 변경되었거나 손상되었을 수 있"
+"습니다."
#: dlls/cryptui/cryptui.rc:33
msgid ""
@@ -2575,27 +2575,27 @@ msgid ""
"trusted root certificate store."
msgstr ""
"이 루트 인증서는 신뢰할 수 없습니다. 이것을 신뢰하려면 시스템의 신뢰할 수 있"
-"는 루트 인증서 저장소에 추가하십시오."
+"는 루트 인증서 저장소에 추가하세요."
#: dlls/cryptui/cryptui.rc:34
msgid "This certificate could not be validated to a trusted root certificate."
-msgstr "이 인증서는 신뢰된 루트 인증서로 허가될 수 없습니다."
+msgstr "이 인증서를 신뢰할 수 있는 루트 인증서로 검증할 수 없습니다."
#: dlls/cryptui/cryptui.rc:35
msgid "This certificate's issuer could not be found."
-msgstr "이 인증서의 발행자를 찾을 수 없습니다."
+msgstr "이 인증서의 발급자를 찾을 수 없습니다."
#: dlls/cryptui/cryptui.rc:36
msgid "All the intended purposes of this certificate could not be verified."
-msgstr "이 인증서의 모든 계획된 목적은 검증될 수 없습니다."
+msgstr "이 인증서의 모든 의도된 목적을 확인할 수 없습니다."
#: dlls/cryptui/cryptui.rc:37
msgid "This certificate is intended for the following purposes:"
-msgstr "이 인증서는 다음의 목적으로 계획되어있습니다:"
+msgstr "이 인증서는 다음 목적을 위해 작성되었습니다:"
#: dlls/cryptui/cryptui.rc:38
msgid "Issued to: "
-msgstr "발행대상: "
+msgstr "발행 대상: "
#: dlls/cryptui/cryptui.rc:39
msgid "Issued by: "
@@ -2611,7 +2611,7 @@ msgstr " 유효기간(끝) "
#: dlls/cryptui/cryptui.rc:42
msgid "This certificate has an invalid signature."
-msgstr "이 인증서는 올바르지 않은 서명을 가지고 있습니다."
+msgstr "이 인증서는 잘못된 서명을 가지고 있습니다."
#: dlls/cryptui/cryptui.rc:43
msgid "This certificate has expired or is not yet valid."
@@ -2709,7 +2709,7 @@ msgstr "인증서 속성"
#: dlls/cryptui/cryptui.rc:67
msgid "Please enter an OID in the form 1.2.3.4"
-msgstr "폼 1,2,3,4에 하나의 OID를 입력하십시오"
+msgstr "폼 1,2,3,4에 하나의 OID를 입력하세요"
#: dlls/cryptui/cryptui.rc:68
msgid "The OID you entered already exists."
@@ -2717,14 +2717,14 @@ msgstr "입력한 OID가 이미 존재합니다."
#: dlls/cryptui/cryptui.rc:70
msgid "Please select a certificate store."
-msgstr "인증서 저장소를 선택하십시오."
+msgstr "인증서 저장소를 선택하세요."
#: dlls/cryptui/cryptui.rc:72
msgid ""
"The file contains objects that do not match the given criteria. Please "
"select another file."
msgstr ""
-"이 파일에 주어진 기준에 맞지 않는 개체가 있습니다. 다른 파일을 선택하십시오."
+"이 파일에 주어진 기준에 맞지 않는 개체가 있습니다. 다른 파일을 선택하세요."
#: dlls/cryptui/cryptui.rc:73
msgid "File to Import"
@@ -2767,11 +2767,11 @@ msgstr "CMS/PKCS #7 메시지 (*.spc; *.p7b)"
#: dlls/cryptui/cryptui.rc:84
msgid "Please select a file."
-msgstr "파일을 선택하십시오."
+msgstr "파일을 선택하세요."
#: dlls/cryptui/cryptui.rc:85
msgid "The file format is not recognized. Please select another file."
-msgstr "이 파일 형식을 이해할 수 없습니다. 다른 파일을 선택하십시오."
+msgstr "이 파일 형식을 이해할 수 없습니다. 다른 파일을 선택하세요."
#: dlls/cryptui/cryptui.rc:86
msgid "Could not open "
@@ -2783,7 +2783,7 @@ msgstr "프로그램이 결정"
#: dlls/cryptui/cryptui.rc:88
msgid "Please select a store"
-msgstr "보관소를 선택하십시오"
+msgstr "보관소를 선택하세요"
#: dlls/cryptui/cryptui.rc:89
msgid "Certificate Store Selected"
@@ -2965,7 +2965,7 @@ msgstr ""
#: dlls/cryptui/cryptui.rc:127
msgid "Protects e-mail messages"
-msgstr "전자 메일 메시지를 보호합니다"
+msgstr "전자메일 메시지를 보호합니다"
#: dlls/cryptui/cryptui.rc:128
msgid "Allows secure communication over the Internet"
@@ -3092,7 +3092,7 @@ msgstr "구현되지 않음"
#: dlls/dinput/dinput.rc:34
msgid "Configure Devices"
-msgstr "장치 설정"
+msgstr "장치 구성"
#: dlls/dinput/dinput.rc:39
msgid "Reset"
@@ -3136,19 +3136,19 @@ msgstr "%1!u!메가바이트 사용됨, %2!u!메가바이 사용 가능함"
#: dlls/gdi32/gdi32.rc:28
msgid "Western"
-msgstr "서부"
+msgstr "영어"
#: dlls/gdi32/gdi32.rc:29
msgid "Central European"
-msgstr "중부 유럽"
+msgstr "중앙 유럽어"
#: dlls/gdi32/gdi32.rc:30
msgid "Cyrillic"
-msgstr "키릴문자"
+msgstr "키릴 문자"
#: dlls/gdi32/gdi32.rc:31
msgid "Greek"
-msgstr "그리스어"
+msgstr "그리스 문자"
#: dlls/gdi32/gdi32.rc:32
msgid "Turkish"
@@ -3200,20 +3200,20 @@ msgstr "기호"
#: dlls/gdi32/gdi32.rc:44
msgid "OEM/DOS"
-msgstr "OEM/도"
+msgstr "OEM/DOS"
#: dlls/gdi32/gdi32.rc:45 dlls/oledb32/version.rc:100
#: dlls/wldap32/wldap32.rc:112
msgid "Other"
-msgstr "다른 문제"
+msgstr "기타"
#: dlls/gphoto2.ds/gphoto2.rc:30
msgid "Files on Camera"
-msgstr "카메라에 있는 파"
+msgstr "카메라에 있는 파일"
#: dlls/gphoto2.ds/gphoto2.rc:34
msgid "Import Selected"
-msgstr "선택된 것을 불러오기"
+msgstr "선택한 항목 가져오기"
#: dlls/gphoto2.ds/gphoto2.rc:35
msgid "Preview"
@@ -3221,31 +3221,31 @@ msgstr "미리 보기"
#: dlls/gphoto2.ds/gphoto2.rc:36
msgid "Import All"
-msgstr "모두 불러오기"
+msgstr "모두 가져오기"
#: dlls/gphoto2.ds/gphoto2.rc:37
msgid "Skip This Dialog"
-msgstr "대화상자 지나치기"
+msgstr "이 대화상자 건너뛰기"
#: dlls/gphoto2.ds/gphoto2.rc:38
msgid "Exit"
-msgstr "나가기"
+msgstr "끝내기"
#: dlls/gphoto2.ds/gphoto2.rc:43
msgid "Transferring"
-msgstr "옮기는 중"
+msgstr "전송 중"
#: dlls/gphoto2.ds/gphoto2.rc:46
msgid "Transferring... Please Wait"
-msgstr "옮기는 중... 잠시만 기다리십시오"
+msgstr "전송 중입니다. 잠시 기다려 주세요"
#: dlls/gphoto2.ds/gphoto2.rc:51
msgid "Connecting to camera"
-msgstr "카메라하고 연결중"
+msgstr "카메라에 연결 중입니다"
#: dlls/gphoto2.ds/gphoto2.rc:55
msgid "Connecting to camera... Please Wait"
-msgstr "카메라하고 연결중... 잠시만 기다리십시오"
+msgstr "카메라에 연결 중입니다. 잠시 기다려 주세요"
#: dlls/hhctrl.ocx/hhctrl.rc:59
msgid "S&ync"
@@ -3287,7 +3287,7 @@ msgstr "모두 선택(&A)"
#: dlls/hhctrl.ocx/hhctrl.rc:78 dlls/shdoclc/shdoclc.rc:54
msgid "&View Source"
-msgstr "소스 보기(&V)"
+msgstr "원본 보기(&V)"
#: dlls/hhctrl.ocx/hhctrl.rc:83
msgid "Proper&ties"
@@ -3353,7 +3353,7 @@ msgstr "숨기기"
#: dlls/hhctrl.ocx/hhctrl.rc:44 dlls/ieframe/ieframe.rc:68
#: dlls/shdoclc/shdoclc.rc:167 dlls/shdoclc/shdoclc.rc:191
msgid "Stop"
-msgstr "멈추기"
+msgstr "중지"
#: dlls/hhctrl.ocx/hhctrl.rc:45 dlls/ieframe/ieframe.rc:69
#: dlls/shell32/shell32.rc:62
@@ -3428,15 +3428,15 @@ msgstr "인쇄 미리보기(&W)"
#: dlls/ieframe/ieframe.rc:47
msgid "&Toolbars"
-msgstr "도구바(&T)"
+msgstr "도구 모음(&T)"
#: dlls/ieframe/ieframe.rc:49
msgid "&Standard bar"
-msgstr "표준 바(&S)"
+msgstr "표준 도구 모음(&S)"
#: dlls/ieframe/ieframe.rc:50
msgid "&Address bar"
-msgstr "주소 바(&A)"
+msgstr "주소 표시줄(&A)"
#: dlls/ieframe/ieframe.rc:53 programs/regedit/regedit.rc:72
msgid "&Favorites"
@@ -3448,7 +3448,7 @@ msgstr "즐겨찾기 추가(&A)..."
#: dlls/ieframe/ieframe.rc:60
msgid "&About Internet Explorer"
-msgstr "인터넷 익스플로어에 관하여(&A)"
+msgstr "인터넷 익스플로어 정보(&A)"
#: dlls/ieframe/ieframe.rc:90
msgid "Open URL"
@@ -3456,7 +3456,7 @@ msgstr "URL 열기"
#: dlls/ieframe/ieframe.rc:93
msgid "Specify the URL you wish to open in Internet Explorer"
-msgstr "인터넷 익스플로어로 열 URL 지정"
+msgstr "인터넷 탐색기에서 열 URL을 지정합니다"
#: dlls/ieframe/ieframe.rc:94
msgid "Open:"
@@ -3485,7 +3485,7 @@ msgstr "%s 다운로드 시작"
#: dlls/ieframe/ieframe.rc:83
msgid "Downloading %s"
-msgstr "%s 다운로드중"
+msgstr "%s 다운로드 중"
#: dlls/ieframe/ieframe.rc:84
msgid "Asking for %s"
@@ -3517,7 +3517,7 @@ msgstr "방문 기록"
#: dlls/inetcpl.cpl/inetcpl.rc:57
msgid "You can delete cached pages, cookies and other data."
-msgstr "캐시된 페이지, 쿠키 및 기타 데이터를 제거할 수 있습니다."
+msgstr "캐시된 페이지, 쿠키 및 기타 데이터를 삭제할 수 있습니다."
#: dlls/inetcpl.cpl/inetcpl.rc:59
msgid "Delete &files..."
@@ -3537,7 +3537,7 @@ msgid ""
"Cached copies of web pages, images and certificates."
msgstr ""
"임시 인터넷 파일\n"
-"웹 페이지의 캐시된 복사본,그림 그리고 인증서."
+"웹 페이지, 이미지 및 인증서의 캐시된 복사본."
#: dlls/inetcpl.cpl/inetcpl.rc:73
msgid ""
@@ -3547,7 +3547,7 @@ msgid ""
msgstr ""
"쿠키\n"
"사용자 기본 설정 및 로그인 정보와 같은 항목을 저장하는 웹 사이트에서 컴퓨터"
-"에 저장된 파일입니다."
+"에 저장한 파일입니다."
#: dlls/inetcpl.cpl/inetcpl.rc:75
msgid ""
@@ -3601,7 +3601,7 @@ msgstr "연결"
#: dlls/inetcpl.cpl/inetcpl.rc:125
msgid "Automatic configuration"
-msgstr "자동 설정"
+msgstr "자동 구성"
#: dlls/inetcpl.cpl/inetcpl.rc:126
msgid "Use Web Proxy Auto-Discovery (WPAD)"
@@ -3633,7 +3633,7 @@ msgstr "인터넷 설정"
#: dlls/inetcpl.cpl/inetcpl.rc:32
msgid "Configure Wine Internet Browser and related settings"
-msgstr "Wine 인터넷 브라우저와 관련 설정 처리"
+msgstr "Wine 인터넷 브라우저 및 관련 설정 구성"
#: dlls/inetcpl.cpl/inetcpl.rc:33
msgid "Security settings for zone: "
@@ -3705,7 +3705,7 @@ msgstr "강제 피드백 테스트"
#: dlls/joy.cpl/joy.rc:68
msgid "Available Effects"
-msgstr "가능한 효과들"
+msgstr "사용 가능한 효과"
#: dlls/joy.cpl/joy.rc:70
msgid ""
@@ -3729,7 +3729,7 @@ msgstr "개체를 기본 형식으로 변환하는 중에 오류 발생"
#: dlls/jscript/jscript.rc:29 dlls/vbscript/vbscript.rc:29
msgid "Invalid procedure call or argument"
-msgstr "올바르지 않은 프로시져 호출이나 인수"
+msgstr "잘못된 프로시져 호출이나 인수"
#: dlls/jscript/jscript.rc:30 dlls/vbscript/vbscript.rc:32
msgid "Subscript out of range"
@@ -3749,7 +3749,7 @@ msgstr "자동화 서버가 개체를 만들 수 없음"
#: dlls/jscript/jscript.rc:34 dlls/vbscript/vbscript.rc:49
msgid "Object doesn't support this property or method"
-msgstr "개체는 이 속성이나 메소드를 지원하지 않음"
+msgstr "개체가 이 속성이나 메소드를 지원하지 않습니다"
#: dlls/jscript/jscript.rc:35 dlls/vbscript/vbscript.rc:50
msgid "Object doesn't support this action"
@@ -3893,7 +3893,7 @@ msgstr "예외가 발생했지만 catch할 수 없습니다"
#: dlls/jscript/jscript.rc:68
msgid "URI to be encoded contains invalid characters"
-msgstr "인코딩할 URI에 올바르지 않은 문자가 들어 있습니다"
+msgstr "인코딩할 URI에 잘못된 문자가 들어 있습니다"
#: dlls/jscript/jscript.rc:67
msgid "URI to be decoded is incorrect"
@@ -3949,7 +3949,7 @@ msgstr "성공.\n"
#: dlls/kernel32/winerror.mc:33
msgid "Invalid function.\n"
-msgstr "올바르지 않은 함수.\n"
+msgstr "잘못된 함수입니다.\n"
#: dlls/kernel32/winerror.mc:38
msgid "File not found.\n"
@@ -3961,43 +3961,43 @@ msgstr "경로를 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:48
msgid "Too many open files.\n"
-msgstr "너무 많은 파일 오픈.\n"
+msgstr "열린 파일이 너무 많습니다.\n"
#: dlls/kernel32/winerror.mc:53
msgid "Access denied.\n"
-msgstr "접근 거부.\n"
+msgstr "접근이 거부되었습니다.\n"
#: dlls/kernel32/winerror.mc:58
msgid "Invalid handle.\n"
-msgstr "올바르지 않은 핸들.\n"
+msgstr "잘못된 핸들입니다.\n"
#: dlls/kernel32/winerror.mc:63
msgid "Memory trashed.\n"
-msgstr "메모리 손상.\n"
+msgstr "메모리 손상되었습니다.\n"
#: dlls/kernel32/winerror.mc:68
msgid "Not enough memory.\n"
-msgstr "메모리 부족.\n"
+msgstr "메모리가 부족합니다.\n"
#: dlls/kernel32/winerror.mc:73
msgid "Invalid block.\n"
-msgstr "올바르지 않은 블록.\n"
+msgstr "잘못된 블록입니다.\n"
#: dlls/kernel32/winerror.mc:78
msgid "Bad environment.\n"
-msgstr "잘못된 환경.\n"
+msgstr "잘못된 환경입니다.\n"
#: dlls/kernel32/winerror.mc:83
msgid "Bad format.\n"
-msgstr "잘못된 형식.\n"
+msgstr "잘못된 형식입니다.\n"
#: dlls/kernel32/winerror.mc:88
msgid "Invalid access.\n"
-msgstr "올바르지 않은 접근.\n"
+msgstr "잘못된 접근입니다.\n"
#: dlls/kernel32/winerror.mc:93
msgid "Invalid data.\n"
-msgstr "올바르지 않은 데이터.\n"
+msgstr "잘못된 데이터입니다.\n"
#: dlls/kernel32/winerror.mc:98
msgid "Out of memory.\n"
@@ -4005,7 +4005,7 @@ msgstr "메모리 부족.\n"
#: dlls/kernel32/winerror.mc:103
msgid "Invalid drive.\n"
-msgstr "올바르지 않은 드라이브.\n"
+msgstr "잘못된 드라이브.\n"
#: dlls/kernel32/winerror.mc:108
msgid "Can't delete current directory.\n"
@@ -4209,11 +4209,11 @@ msgstr "이미 할당되어 있습니다.\n"
#: dlls/kernel32/winerror.mc:358 dlls/kernel32/winerror.mc:1713
msgid "Invalid password.\n"
-msgstr "올바르지 않은 암호.\n"
+msgstr "잘못된 암호.\n"
#: dlls/kernel32/winerror.mc:363
msgid "Invalid parameter.\n"
-msgstr "올바르지 않은 매개변수.\n"
+msgstr "잘못된 매개변수.\n"
#: dlls/kernel32/winerror.mc:368
msgid "Net write fault.\n"
@@ -4241,7 +4241,7 @@ msgstr "너무 많은 세마포어 요청.\n"
#: dlls/kernel32/winerror.mc:398
msgid "Invalid at interrupt time.\n"
-msgstr "올바르지 않은 인터럽트 시간.\n"
+msgstr "잘못된 인터럽트 시간.\n"
#: dlls/kernel32/winerror.mc:403
msgid "Semaphore owner died.\n"
@@ -4253,7 +4253,7 @@ msgstr "세마포어 사용자 제한.\n"
#: dlls/kernel32/winerror.mc:413
msgid "Insert disk for drive %1.\n"
-msgstr "드라이브 %1에 디스크를 넣으십시오.\n"
+msgstr "드라이브 %1에 디스크를 넣으세요.\n"
#: dlls/kernel32/winerror.mc:418
msgid "Drive locked.\n"
@@ -4277,15 +4277,15 @@ msgstr "핸들을 더이상 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:448
msgid "Invalid target handle.\n"
-msgstr "올바르지 않은 목표 핸들.\n"
+msgstr "잘못된 목표 핸들.\n"
#: dlls/kernel32/winerror.mc:453
msgid "Invalid IOCTL.\n"
-msgstr "올바르지 않은 IOCTL.\n"
+msgstr "잘못된 IOCTL.\n"
#: dlls/kernel32/winerror.mc:458
msgid "Invalid verify switch.\n"
-msgstr "올바르지 않은 검증 스위치.\n"
+msgstr "잘못된 검증 스위치.\n"
#: dlls/kernel32/winerror.mc:463
msgid "Bad driver level.\n"
@@ -4293,7 +4293,7 @@ msgstr "잘못된 드라이버 레벨.\n"
#: dlls/kernel32/winerror.mc:468
msgid "Call not implemented.\n"
-msgstr "지원하지 않는 요청.\n"
+msgstr "호출이 구현되지 않았습니다.\n"
#: dlls/kernel32/winerror.mc:473
msgid "Semaphore timeout.\n"
@@ -4305,11 +4305,11 @@ msgstr "충분하지 않은 버퍼.\n"
#: dlls/kernel32/winerror.mc:483 dlls/mferror/mferror.mc:109
msgid "Invalid name.\n"
-msgstr "올바르지 않은 이름.\n"
+msgstr "잘못된 이름.\n"
#: dlls/kernel32/winerror.mc:488
msgid "Invalid level.\n"
-msgstr "올바르지 않은 레벨.\n"
+msgstr "잘못된 레벨.\n"
#: dlls/kernel32/winerror.mc:493
msgid "No volume label.\n"
@@ -4413,7 +4413,7 @@ msgstr "시스템 추적이 지정하지 않았거나 허용되지 않습니다.
#: dlls/kernel32/winerror.mc:623
msgid "Event count for DosMuxSemWait incorrect.\n"
-msgstr "DosMuxSemWait 용 이벤트 개수가 올바르지 않습니다.\n"
+msgstr "DosMuxSemWait 용 이벤트 개수가 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:628
msgid "Too many waiters for DosMuxSemWait.\n"
@@ -4421,7 +4421,7 @@ msgstr "DosMuxSemWait 용 대기자가 너무 많습니다.\n"
#: dlls/kernel32/winerror.mc:633
msgid "DosSemMuxWait list invalid.\n"
-msgstr "DosSemMuxWait 목록이 올바르지 않습니다.\n"
+msgstr "DosSemMuxWait 목록이 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:638
msgid "Volume label too long.\n"
@@ -4453,7 +4453,7 @@ msgstr "잘못된 DosExecPgm 인수.\n"
#: dlls/kernel32/winerror.mc:673
msgid "Path is invalid.\n"
-msgstr "올바르지 않은 경로.\n"
+msgstr "잘못된 경로.\n"
#: dlls/kernel32/winerror.mc:678
msgid "Signal pending.\n"
@@ -4481,11 +4481,11 @@ msgstr "원자적 잠금 미지원.\n"
#: dlls/kernel32/winerror.mc:708
msgid "Invalid segment number.\n"
-msgstr "올바르지 않은 세그멘트 번호.\n"
+msgstr "잘못된 세그멘트 번호.\n"
#: dlls/kernel32/winerror.mc:713
msgid "Invalid ordinal for %1.\n"
-msgstr "올바르지 않은 %1 번호.\n"
+msgstr "잘못된 %1 번호.\n"
#: dlls/kernel32/winerror.mc:718
msgid "File already exists.\n"
@@ -4493,7 +4493,7 @@ msgstr "파일이 이미 존재합니다.\n"
#: dlls/kernel32/winerror.mc:723
msgid "Invalid flag number.\n"
-msgstr "올바르지 않은 플래그.\n"
+msgstr "잘못된 플래그.\n"
#: dlls/kernel32/winerror.mc:728
msgid "Semaphore name not found.\n"
@@ -4501,27 +4501,27 @@ msgstr "세마포어 이름을 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:733
msgid "Invalid starting code segment for %1.\n"
-msgstr "올바르지 않은 %1 시작 코드 세그멘트.\n"
+msgstr "잘못된 %1 시작 코드 세그멘트.\n"
#: dlls/kernel32/winerror.mc:738
msgid "Invalid starting stack segment for %1.\n"
-msgstr "올바르지 않은 %1 시작 스택 세그먼트.\n"
+msgstr "잘못된 %1 시작 스택 세그먼트.\n"
#: dlls/kernel32/winerror.mc:743
msgid "Invalid module type for %1.\n"
-msgstr "올바르지 않은 %1 모듈 유형.\n"
+msgstr "잘못된 %1 모듈 유형.\n"
#: dlls/kernel32/winerror.mc:748
msgid "Invalid EXE signature in %1.\n"
-msgstr "올바르지 않은 %1 실행 서명.\n"
+msgstr "잘못된 %1 EXE 서명.\n"
#: dlls/kernel32/winerror.mc:753
msgid "EXE %1 is marked invalid.\n"
-msgstr "올바르지 않다고 표신된 EXE %1.\n"
+msgstr "EXE %1이(가) 잘못된 것으로 표시되었습니다.\n"
#: dlls/kernel32/winerror.mc:758
msgid "Bad EXE format for %1.\n"
-msgstr "잘못된 %1 실행 형식.\n"
+msgstr "잘못된 %1 EXE 형식.\n"
#: dlls/kernel32/winerror.mc:763
msgid "Iterated data exceeds 64k in %1.\n"
@@ -4533,7 +4533,7 @@ msgstr "%1 최소 할당 크기가 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:773
msgid "Dynlink from invalid ring.\n"
-msgstr "올바르지 않은 링에서의 동적 링크.\n"
+msgstr "잘못된 링에서의 동적 링크.\n"
#: dlls/kernel32/winerror.mc:778
msgid "IOPL not enabled.\n"
@@ -4541,7 +4541,7 @@ msgstr "불가능한 IOPL.\n"
#: dlls/kernel32/winerror.mc:783
msgid "Invalid SEGDPL in %1.\n"
-msgstr "올바르지 않은 %1 SEGDPL.\n"
+msgstr "잘못된 %1 SEGDPL.\n"
#: dlls/kernel32/winerror.mc:788
msgid "Auto data segment exceeds 64k.\n"
@@ -4581,7 +4581,7 @@ msgstr "파일 이름 와일드카드 사용 오류.\n"
#: dlls/kernel32/winerror.mc:833
msgid "Invalid signal number.\n"
-msgstr "올바르지 않은 시그널 번호.\n"
+msgstr "잘못된 시그널 번호.\n"
#: dlls/kernel32/winerror.mc:838
msgid "Error setting signal handler.\n"
@@ -4629,7 +4629,7 @@ msgstr "세션 취소.\n"
#: dlls/kernel32/winerror.mc:893
msgid "Invalid extended attribute name.\n"
-msgstr "올바르지 않은 확장 속성 이름.\n"
+msgstr "잘못된 확장 속성 이름.\n"
#: dlls/kernel32/winerror.mc:898
msgid "Extended attribute list inconsistent.\n"
@@ -4645,7 +4645,7 @@ msgstr "복사 API를 사용할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:913
msgid "Directory name invalid.\n"
-msgstr "올바르지 않은 디렉터리 이름.\n"
+msgstr "잘못된 디렉터리 이름.\n"
#: dlls/kernel32/winerror.mc:918
msgid "Extended attributes didn't fit.\n"
@@ -4661,7 +4661,7 @@ msgstr "확장 속성 테이블이 가득 찾습니다.\n"
#: dlls/kernel32/winerror.mc:933
msgid "Invalid extended attribute handle.\n"
-msgstr "올바르지 않은 확장 속성 핸들.\n"
+msgstr "잘못된 확장 속성 핸들.\n"
#: dlls/kernel32/winerror.mc:938
msgid "Extended attributes not supported.\n"
@@ -4685,7 +4685,7 @@ msgstr "승인되지 않은 oplock.\n"
#: dlls/kernel32/winerror.mc:963
msgid "Invalid oplock message received.\n"
-msgstr "올바르지 않은 oplock 메시지 수신.\n"
+msgstr "잘못된 oplock 메시지 수신.\n"
#: dlls/kernel32/winerror.mc:968
msgid "Message 0x%1 not found in file %2.\n"
@@ -4693,7 +4693,7 @@ msgstr "파일 %2에 메시지 0x%1이(가) 없습니다.\n"
#: dlls/kernel32/winerror.mc:973
msgid "Invalid address.\n"
-msgstr "올바르지 않은 주소.\n"
+msgstr "잘못된 주소.\n"
#: dlls/kernel32/winerror.mc:978
msgid "Arithmetic overflow.\n"
@@ -4737,7 +4737,7 @@ msgstr "스택 오버플로우.\n"
#: dlls/kernel32/winerror.mc:1028
msgid "Invalid message.\n"
-msgstr "올바르지 않은 메시지.\n"
+msgstr "잘못된 메시지입니다.\n"
#: dlls/kernel32/winerror.mc:1033
msgid "Cannot complete.\n"
@@ -4745,7 +4745,7 @@ msgstr "완료할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:1038
msgid "Invalid flags.\n"
-msgstr "올바르지 않은 플래그.\n"
+msgstr "잘못된 플래그입니다.\n"
#: dlls/kernel32/winerror.mc:1043
msgid "Unrecognized volume.\n"
@@ -4753,7 +4753,7 @@ msgstr "인식되지 않는 볼륨.\n"
#: dlls/kernel32/winerror.mc:1048
msgid "File invalid.\n"
-msgstr "올바르지 않는 파일.\n"
+msgstr "잘못된 파일입니다.\n"
#: dlls/kernel32/winerror.mc:1053
msgid "Cannot run full-screen.\n"
@@ -4769,7 +4769,7 @@ msgstr "레지스트리 손상.\n"
#: dlls/kernel32/winerror.mc:1068
msgid "Invalid key.\n"
-msgstr "올바르지 않은 키.\n"
+msgstr "잘못된 키.\n"
#: dlls/kernel32/winerror.mc:1073
msgid "Can't open registry key.\n"
@@ -4825,7 +4825,7 @@ msgstr "의존 서비스 실행 중.\n"
#: dlls/kernel32/winerror.mc:1138
msgid "Invalid service control.\n"
-msgstr "올바르지 않은 서비스 컨트롤.\n"
+msgstr "잘못된 서비스 컨트롤.\n"
#: dlls/kernel32/winerror.mc:1143
msgid "Service request timeout.\n"
@@ -4845,7 +4845,7 @@ msgstr "서비스 실행 증.\n"
#: dlls/kernel32/winerror.mc:1163
msgid "Invalid service account.\n"
-msgstr "올바르지 않은 서비스 계정.\n"
+msgstr "잘못된 서비스 계정.\n"
#: dlls/kernel32/winerror.mc:1168
msgid "Service is disabled.\n"
@@ -4901,7 +4901,7 @@ msgstr "서비스 start-hang.\n"
#: dlls/kernel32/winerror.mc:1233
msgid "Invalid service lock.\n"
-msgstr "올바르지 않은 서비스 잠금.\n"
+msgstr "잘못된 서비스 잠금.\n"
#: dlls/kernel32/winerror.mc:1238
msgid "Service marked for delete.\n"
@@ -4977,7 +4977,7 @@ msgstr "파티션 실패.\n"
#: dlls/kernel32/winerror.mc:1328
msgid "Invalid block length.\n"
-msgstr "올바르지 않은 블럭 길이.\n"
+msgstr "잘못된 블럭 길이.\n"
#: dlls/kernel32/winerror.mc:1333
msgid "Device not partitioned.\n"
@@ -5113,7 +5113,7 @@ msgstr "리얼 모드 프로그램.\n"
#: dlls/kernel32/winerror.mc:1498
msgid "Invalid DLL.\n"
-msgstr "올바르지 않은 DLL.\n"
+msgstr "잘못된 DLL.\n"
#: dlls/kernel32/winerror.mc:1503
msgid "No associated application.\n"
@@ -5145,7 +5145,7 @@ msgstr "대상 요소가 가능 차 있습니다.\n"
#: dlls/kernel32/winerror.mc:1538
msgid "The element address is invalid.\n"
-msgstr "올바르지 않은 요소 주소.\n"
+msgstr "잘못된 요소 주소.\n"
#: dlls/kernel32/winerror.mc:1543
msgid "The magazine is not present.\n"
@@ -5153,15 +5153,15 @@ msgstr "Magazine이 없습니다.\n"
#: dlls/kernel32/winerror.mc:1548
msgid "The device needs reinitialization.\n"
-msgstr "이 장치는 초기화가 다시 필요합니다.\n"
+msgstr "이 장치는 재초기화가 필요합니다.\n"
#: dlls/kernel32/winerror.mc:1553
msgid "The device requires cleaning.\n"
-msgstr "장치는 청소가 필요함.\n"
+msgstr "이 장치는 정리가 필요합니다.\n"
#: dlls/kernel32/winerror.mc:1558
msgid "The device door is open.\n"
-msgstr "장치의 문이 열려있음.\n"
+msgstr "장치 문이 열려 있습니다.\n"
#: dlls/kernel32/winerror.mc:1563
msgid "The device is not connected.\n"
@@ -5185,15 +5185,15 @@ msgstr "포인트를 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:1588
msgid "No running tracking service.\n"
-msgstr "추적 서비스가 실행중이 아님.\n"
+msgstr "실행 중인 추적 서비스가 없습니다.\n"
#: dlls/kernel32/winerror.mc:1593
msgid "No such volume ID.\n"
-msgstr "볼륨 아이디가 없음.\n"
+msgstr "그런 볼륨 ID가 없습니다.\n"
#: dlls/kernel32/winerror.mc:1598
msgid "Unable to remove the file to be replaced.\n"
-msgstr "교체하려는 파일을 지울 수 없습니다.\n"
+msgstr "바꿀 파일을 제거할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:1603
msgid "Unable to move the replacement file into place.\n"
@@ -5201,11 +5201,11 @@ msgstr "교체 파일을 제자리로 이동할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:1608
msgid "Moving the replacement file failed.\n"
-msgstr "교체 파일 이동 실패.\n"
+msgstr "교체 파일을 이동하지 못했습니다.\n"
#: dlls/kernel32/winerror.mc:1613
msgid "The journal is being deleted.\n"
-msgstr "저널이 지워졌습니다.\n"
+msgstr "저널이 삭제되고 있습니다.\n"
#: dlls/kernel32/winerror.mc:1618
msgid "The journal is not active.\n"
@@ -5221,7 +5221,7 @@ msgstr "저널 엔트리가 지워짐.\n"
#: dlls/kernel32/winerror.mc:1633
msgid "Invalid device name.\n"
-msgstr "올바르지 않은 장치 이름.\n"
+msgstr "잘못된 장치 이름.\n"
#: dlls/kernel32/winerror.mc:1638
msgid "Connection unavailable.\n"
@@ -5237,7 +5237,7 @@ msgstr "네트워크가 없거나 잘못된 경로.\n"
#: dlls/kernel32/winerror.mc:1653
msgid "Invalid network provider name.\n"
-msgstr "올바르지 않은 네트워크 제공자 이름.\n"
+msgstr "잘못된 네트워크 제공자 이름.\n"
#: dlls/kernel32/winerror.mc:1658
msgid "Cannot open network connection profile.\n"
@@ -5257,39 +5257,39 @@ msgstr "확장된 오류.\n"
#: dlls/kernel32/winerror.mc:1678
msgid "Invalid group name.\n"
-msgstr "올바르지 않은 그룹 이름.\n"
+msgstr "잘못된 그룹 이름.\n"
#: dlls/kernel32/winerror.mc:1683
msgid "Invalid computer name.\n"
-msgstr "올바르지 않은 컴퓨터 이름.\n"
+msgstr "잘못된 컴퓨터 이름.\n"
#: dlls/kernel32/winerror.mc:1688
msgid "Invalid event name.\n"
-msgstr "올바르지 않은 이벤트 이름.\n"
+msgstr "잘못된 이벤트 이름.\n"
#: dlls/kernel32/winerror.mc:1693
msgid "Invalid domain name.\n"
-msgstr "올바르지 않은 도메인 이름.\n"
+msgstr "잘못된 도메인 이름.\n"
#: dlls/kernel32/winerror.mc:1698
msgid "Invalid service name.\n"
-msgstr "올바르지 않은 서비스 이름.\n"
+msgstr "잘못된 서비스 이름.\n"
#: dlls/kernel32/winerror.mc:1703
msgid "Invalid network name.\n"
-msgstr "올바르지 않은 네트워크 이름.\n"
+msgstr "잘못된 네트워크 이름.\n"
#: dlls/kernel32/winerror.mc:1708
msgid "Invalid share name.\n"
-msgstr "올바르지 않은 공유 이름.\n"
+msgstr "잘못된 공유 이름.\n"
#: dlls/kernel32/winerror.mc:1718
msgid "Invalid message name.\n"
-msgstr "올바르지 않은 메시지 이름.\n"
+msgstr "잘못된 메시지 이름.\n"
#: dlls/kernel32/winerror.mc:1723
msgid "Invalid message destination.\n"
-msgstr "올바르지 않은 메시지 대상.\n"
+msgstr "잘못된 메시지 대상.\n"
#: dlls/kernel32/winerror.mc:1728
msgid "Session credential conflict.\n"
@@ -5305,7 +5305,7 @@ msgstr "도메인 또는 작업그룹 이름 중복.\n"
#: dlls/kernel32/winerror.mc:1743
msgid "No network.\n"
-msgstr "네트쿼크 없음.\n"
+msgstr "네트워크 없음.\n"
#: dlls/kernel32/winerror.mc:1748
msgid "Operation canceled by user.\n"
@@ -5325,27 +5325,27 @@ msgstr "정상적으로 연결 종료.\n"
#: dlls/kernel32/winerror.mc:1768
msgid "Address already associated with transport endpoint.\n"
-msgstr "주소는 이미 전송 끝점과 관련되어 있음.\n"
+msgstr "이미 전송 엔드포인트와 연결된 주소입니다.\n"
#: dlls/kernel32/winerror.mc:1773
msgid "Address not associated with transport endpoint.\n"
-msgstr "주소가 전송 끝점과 연관되지 않았습니다.\n"
+msgstr "주소가 전송 엔드포인트와 연결되지 않았습니다.\n"
#: dlls/kernel32/winerror.mc:1778
msgid "Connection invalid.\n"
-msgstr "올바르지 않은 연결.\n"
+msgstr "연결이 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:1783
msgid "Connection is active.\n"
-msgstr "연결 활성화.\n"
+msgstr "연결이 활성화되었습니다.\n"
#: dlls/kernel32/winerror.mc:1788
msgid "Network unreachable.\n"
-msgstr "접근할 수 없는 네트워크.\n"
+msgstr "네트워크에 연결할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:1793
msgid "Host unreachable.\n"
-msgstr "접근할 수 없는 호스트.\n"
+msgstr "호스트에 연결할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:1798
msgid "Protocol unreachable.\n"
@@ -5365,7 +5365,7 @@ msgstr "연결 중단.\n"
#: dlls/kernel32/winerror.mc:1818
msgid "Please retry operation.\n"
-msgstr "작업을 다시 시도하십시오.\n"
+msgstr "작업을 다시 시도하세요.\n"
#: dlls/kernel32/winerror.mc:1823
msgid "Connection count limit reached.\n"
@@ -5433,7 +5433,7 @@ msgstr "사용자 프로파일이 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:1903
msgid "Not supported on Small Business Server.\n"
-msgstr "Small Business Server는 지원하지 않습니다.\n"
+msgstr "Small Business Server는 지원되지 않습니다.\n"
#: dlls/kernel32/winerror.mc:1908
msgid "Not all privileges assigned.\n"
@@ -5465,11 +5465,11 @@ msgstr "호환되지 않는 리비전 레벨.\n"
#: dlls/kernel32/winerror.mc:1943
msgid "Invalid owner.\n"
-msgstr "올바르지 않은 소유자.\n"
+msgstr "잘못된 소유자.\n"
#: dlls/kernel32/winerror.mc:1948
msgid "Invalid primary group.\n"
-msgstr "올바르지 않은 기본 그룹.\n"
+msgstr "잘못된 기본 그룹.\n"
#: dlls/kernel32/winerror.mc:1953
msgid "No impersonation token.\n"
@@ -5497,7 +5497,7 @@ msgstr "권한이 유지 되지 않음.\n"
#: dlls/kernel32/winerror.mc:1983
msgid "Invalid account name.\n"
-msgstr "올바르지 않은 계정 이름.\n"
+msgstr "잘못된 계정 이름.\n"
#: dlls/kernel32/winerror.mc:1988
msgid "User already exists.\n"
@@ -5549,11 +5549,11 @@ msgstr "계정 제한.\n"
#: dlls/kernel32/winerror.mc:2048
msgid "Invalid logon hours.\n"
-msgstr "올바르지 않은 로그온 시간.\n"
+msgstr "잘못된 로그온 시간.\n"
#: dlls/kernel32/winerror.mc:2053
msgid "Invalid workstation.\n"
-msgstr "올바르지 않은 워크스테이션.\n"
+msgstr "잘못된 워크스테이션.\n"
#: dlls/kernel32/winerror.mc:2058
msgid "Password expired.\n"
@@ -5577,19 +5577,19 @@ msgstr "LUID가 고갈됨.\n"
#: dlls/kernel32/winerror.mc:2083
msgid "Invalid sub authority.\n"
-msgstr "올바르지 않은 하위 기관.\n"
+msgstr "잘못된 하위 기관.\n"
#: dlls/kernel32/winerror.mc:2088
msgid "Invalid ACL.\n"
-msgstr "올바르지 않은 ACL.\n"
+msgstr "잘못된 ACL.\n"
#: dlls/kernel32/winerror.mc:2093
msgid "Invalid SID.\n"
-msgstr "올바르지 않은 SID.\n"
+msgstr "잘못된 SID.\n"
#: dlls/kernel32/winerror.mc:2098
msgid "Invalid security descriptor.\n"
-msgstr "올바르지 않은 보안 설명자.\n"
+msgstr "잘못된 보안 설명자.\n"
#: dlls/kernel32/winerror.mc:2103
msgid "Bad inherited ACL.\n"
@@ -5605,7 +5605,7 @@ msgstr "서버가 가능하지 않지가 않음.\n"
#: dlls/kernel32/winerror.mc:2118
msgid "Invalid ID authority.\n"
-msgstr "올바르지 않은 아이디 권한.\n"
+msgstr "잘못된 아이디 권한.\n"
#: dlls/kernel32/winerror.mc:2123
msgid "Allotted space exceeded.\n"
@@ -5613,7 +5613,7 @@ msgstr "할당된 공간을 초과했습니다.\n"
#: dlls/kernel32/winerror.mc:2128
msgid "Invalid group attributes.\n"
-msgstr "올바르지 않은 그룹 속성.\n"
+msgstr "잘못된 그룹 속성.\n"
#: dlls/kernel32/winerror.mc:2133
msgid "Bad impersonation level.\n"
@@ -5641,15 +5641,15 @@ msgstr "도메인 정보에 접근할 수 없음.\n"
#: dlls/kernel32/winerror.mc:2163
msgid "Invalid server state.\n"
-msgstr "올바르지 않은 서버 상태.\n"
+msgstr "잘못된 서버 상태.\n"
#: dlls/kernel32/winerror.mc:2168
msgid "Invalid domain state.\n"
-msgstr "올바르지 않은 도메인 상태.\n"
+msgstr "잘못된 도메인 상태.\n"
#: dlls/kernel32/winerror.mc:2173
msgid "Invalid domain role.\n"
-msgstr "올바르지 않은 도메인 법칙.\n"
+msgstr "잘못된 도메인 법칙.\n"
#: dlls/kernel32/winerror.mc:2178
msgid "No such domain.\n"
@@ -5701,7 +5701,7 @@ msgstr "로그온 세션 아이디 충돌.\n"
#: dlls/kernel32/winerror.mc:2238
msgid "Invalid logon type.\n"
-msgstr "올바르지 않은 로그온 타입.\n"
+msgstr "잘못된 로그온 타입.\n"
#: dlls/kernel32/winerror.mc:2243
msgid "Cannot impersonate.\n"
@@ -5709,7 +5709,7 @@ msgstr "사칭할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:2248
msgid "Invalid transaction state.\n"
-msgstr "트랜잭션 상태가 올바르지 않습니다.\n"
+msgstr "트랜잭션 상태가 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:2253
msgid "Security DB commit failure.\n"
@@ -5781,7 +5781,7 @@ msgstr "어떤 회원도 없습니다.\n"
#: dlls/kernel32/winerror.mc:2343
msgid "Invalid member.\n"
-msgstr "올바르지 않은 회원.\n"
+msgstr "잘못된 회원.\n"
#: dlls/kernel32/winerror.mc:2348
msgid "Too many SIDs.\n"
@@ -5825,27 +5825,27 @@ msgstr "클라이언트와 서버 사이의 시간 왜곡.\n"
#: dlls/kernel32/winerror.mc:2398
msgid "Invalid window handle.\n"
-msgstr "올바르지 않은 원도우 핸들.\n"
+msgstr "잘못된 원도우 핸들.\n"
#: dlls/kernel32/winerror.mc:2403
msgid "Invalid menu handle.\n"
-msgstr "올바르지 않은 메뉴 핸들.\n"
+msgstr "잘못된 메뉴 핸들.\n"
#: dlls/kernel32/winerror.mc:2408
msgid "Invalid cursor handle.\n"
-msgstr "올바르지 않은 커서 핸들.\n"
+msgstr "잘못된 커서 핸들.\n"
#: dlls/kernel32/winerror.mc:2413
msgid "Invalid accelerator table handle.\n"
-msgstr "올바르지 않은 엑셀레이터 테이블 핸들.\n"
+msgstr "잘못된 엑셀레이터 테이블 핸들.\n"
#: dlls/kernel32/winerror.mc:2418
msgid "Invalid hook handle.\n"
-msgstr "올바르지 않은 hook 핸들.\n"
+msgstr "잘못된 hook 핸들.\n"
#: dlls/kernel32/winerror.mc:2423
msgid "Invalid DWP handle.\n"
-msgstr "올바르지 않은 DWP 핸들.\n"
+msgstr "잘못된 DWP 핸들.\n"
#: dlls/kernel32/winerror.mc:2428
msgid "Can't create top-level child window.\n"
@@ -5877,11 +5877,11 @@ msgstr "클래스는 연 상태의 창을 가지고 있습니다.\n"
#: dlls/kernel32/winerror.mc:2463 dlls/mferror/mferror.mc:130
msgid "Invalid index.\n"
-msgstr "올바르지 않은 인덱스.\n"
+msgstr "잘못된 인덱스.\n"
#: dlls/kernel32/winerror.mc:2468
msgid "Invalid icon handle.\n"
-msgstr "올바르지 않은 아이콘 핸들.\n"
+msgstr "잘못된 아이콘 핸들.\n"
#: dlls/kernel32/winerror.mc:2473
msgid "Private dialog index.\n"
@@ -5913,7 +5913,7 @@ msgstr "컨트롤 아이디를 찾을 수 없음.\n"
#: dlls/kernel32/winerror.mc:2508
msgid "Invalid combo box message.\n"
-msgstr "올바르지 않은 콤보 박스 메시지입니다.\n"
+msgstr "잘못된 콤보 박스 메시지입니다.\n"
#: dlls/kernel32/winerror.mc:2513
msgid "Not a combo box window.\n"
@@ -5921,7 +5921,7 @@ msgstr "콤보 박스 창이 아닙니다.\n"
#: dlls/kernel32/winerror.mc:2518
msgid "Invalid edit height.\n"
-msgstr "올바르지 않은 편집 높이.\n"
+msgstr "잘못된 편집 높이.\n"
#: dlls/kernel32/winerror.mc:2523
msgid "DC not found.\n"
@@ -5929,43 +5929,43 @@ msgstr "DC를 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:2528
msgid "Invalid hook filter.\n"
-msgstr "올바르지 않은 hook 필터.\n"
+msgstr "잘못된 훅 필터.\n"
#: dlls/kernel32/winerror.mc:2533
msgid "Invalid filter procedure.\n"
-msgstr "올바르지 않은 필터 프로시져.\n"
+msgstr "잘못된 필터 프로시져.\n"
#: dlls/kernel32/winerror.mc:2538
msgid "Hook procedure needs module handle.\n"
-msgstr "후크 프로 시저가 처리 모듈 필요.\n"
+msgstr "훅 프로시저가 모듈 핸들을 필요로 합니다.\n"
#: dlls/kernel32/winerror.mc:2543
msgid "Global-only hook procedure.\n"
-msgstr "글로벌 전용 후크 프로 시저.\n"
+msgstr "글로벌 전용 훅 프로시저.\n"
#: dlls/kernel32/winerror.mc:2548
msgid "Journal hook already set.\n"
-msgstr "저널 후크는 이미 설정되어 있음.\n"
+msgstr "저널 훅이 이미 설정되어 있습니다.\n"
#: dlls/kernel32/winerror.mc:2553
msgid "Hook procedure not installed.\n"
-msgstr "설치되어 있지 않은 후크 프로 시저.\n"
+msgstr "훅 프로시저가 설치되어 있지 않습니다.\n"
#: dlls/kernel32/winerror.mc:2558
msgid "Invalid list box message.\n"
-msgstr "올바르지 않은 목록상자 메시지.\n"
+msgstr "잘못된 목록상자 메시지.\n"
#: dlls/kernel32/winerror.mc:2563
msgid "Invalid LB_SETCOUNT sent.\n"
-msgstr "올바르지 않은 LB_SETCOUNT 보내기.\n"
+msgstr "잘못된 LB_SETCOUNT 보내기.\n"
#: dlls/kernel32/winerror.mc:2568
msgid "No tab stops on this list box.\n"
-msgstr "목록상자에는 탭정지가 없음.\n"
+msgstr "이 목록상자는 탭정지가 없습니다.\n"
#: dlls/kernel32/winerror.mc:2573
msgid "Can't destroy object owned by another thread.\n"
-msgstr "다른 스레드가 소유한 개체를 파괴할 수 없다.\n"
+msgstr "다른 스레드가 소유한 개체를 파괴할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:2578
msgid "Child window menus not allowed.\n"
@@ -5973,15 +5973,15 @@ msgstr "자식 창 메뉴는 허용되지 않습니다.\n"
#: dlls/kernel32/winerror.mc:2583
msgid "Window has no system menu.\n"
-msgstr "창은 시스템 메뉴를 가지고 있지 않습니다.\n"
+msgstr "창이 시스템 메뉴를 가지고 있지 않습니다.\n"
#: dlls/kernel32/winerror.mc:2588
msgid "Invalid message box style.\n"
-msgstr "올바르지 않은 메시지 박스 스타일.\n"
+msgstr "잘못된 메시지 박스 스타일.\n"
#: dlls/kernel32/winerror.mc:2593
msgid "Invalid SPI parameter.\n"
-msgstr "올바르지 않은 SPI 매개변수.\n"
+msgstr "잘못된 SPI 매개변수.\n"
#: dlls/kernel32/winerror.mc:2598
msgid "Screen already locked.\n"
@@ -5997,11 +5997,11 @@ msgstr "자식 창이 아닙니다.\n"
#: dlls/kernel32/winerror.mc:2613
msgid "Invalid GW command.\n"
-msgstr "올바르지 않은 GW 명령.\n"
+msgstr "잘못된 GW 명령.\n"
#: dlls/kernel32/winerror.mc:2618
msgid "Invalid thread ID.\n"
-msgstr "올바르지 않은 스레드 ID.\n"
+msgstr "잘못된 스레드 ID.\n"
#: dlls/kernel32/winerror.mc:2623
msgid "Not an MDI child window.\n"
@@ -6017,11 +6017,11 @@ msgstr "스크롤바가 없습니다.\n"
#: dlls/kernel32/winerror.mc:2638
msgid "Invalid scrollbar range.\n"
-msgstr "올바르지 않은 스코롤바 범위.\n"
+msgstr "잘못된 스코롤바 범위.\n"
#: dlls/kernel32/winerror.mc:2643
msgid "Invalid ShowWin command.\n"
-msgstr "올바르지 않은 ShowWin 명령.\n"
+msgstr "잘못된 ShowWin 명령.\n"
#: dlls/kernel32/winerror.mc:2648
msgid "No system resources.\n"
@@ -6053,7 +6053,7 @@ msgstr "메뉴 항목을 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:2683
msgid "Invalid keyboard handle.\n"
-msgstr "올바르지 않은 키보드 핸들.\n"
+msgstr "잘못된 키보드 핸들.\n"
#: dlls/kernel32/winerror.mc:2688
msgid "Hook type not allowed.\n"
@@ -6069,7 +6069,7 @@ msgstr "시간 초과.\n"
#: dlls/kernel32/winerror.mc:2703
msgid "Invalid monitor handle.\n"
-msgstr "올바르지 않은 모니터 핸들.\n"
+msgstr "잘못된 모니터 핸들.\n"
#: dlls/kernel32/winerror.mc:2708
msgid "Event log file corrupt.\n"
@@ -6141,31 +6141,31 @@ msgstr "잘못된 설치 패키지 버전.\n"
#: dlls/kernel32/winerror.mc:2793
msgid "Product uninstalled.\n"
-msgstr "제품 제거됨.\n"
+msgstr "제품이 제거되었습니다.\n"
#: dlls/kernel32/winerror.mc:2798
msgid "Invalid query syntax.\n"
-msgstr "잘못된 쿼리 구문.\n"
+msgstr "잘못된 쿼리 구문입니다.\n"
#: dlls/kernel32/winerror.mc:2803
msgid "Invalid field.\n"
-msgstr "올바르지 않은 필드.\n"
+msgstr "잘못된 필드입니다.\n"
#: dlls/kernel32/winerror.mc:2808
msgid "Device removed.\n"
-msgstr "장치가 제거됨.\n"
+msgstr "장치가 제거되었습니다.\n"
#: dlls/kernel32/winerror.mc:2813
msgid "Installation already running.\n"
-msgstr "설치 작업은 이미 실행증임.\n"
+msgstr "설치 작업이 이미 실행중입니다.\n"
#: dlls/kernel32/winerror.mc:2818
msgid "Installation package failed to open.\n"
-msgstr "설치 패키지 열기 실패.\n"
+msgstr "설치 패키지를 열지 못했습니다.\n"
#: dlls/kernel32/winerror.mc:2823
msgid "Installation package is invalid.\n"
-msgstr "설치 패키지가 올바르지 않음.\n"
+msgstr "설치 패키지가 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:2828
msgid "Installer user interface failed.\n"
@@ -6177,7 +6177,7 @@ msgstr "설치 로그 파일 열기 실패.\n"
#: dlls/kernel32/winerror.mc:2838
msgid "Installation language not supported.\n"
-msgstr "설치 언어를 지원하지 않습니다.\n"
+msgstr "설치하려는 언어가 지원되지 않습니다.\n"
#: dlls/kernel32/winerror.mc:2843
msgid "Installation transform failed to apply.\n"
@@ -6197,7 +6197,7 @@ msgstr "함수 실패.\n"
#: dlls/kernel32/winerror.mc:2863
msgid "Invalid table.\n"
-msgstr "올바르지 않은 테이블.\n"
+msgstr "잘못된 테이블.\n"
#: dlls/kernel32/winerror.mc:2868
msgid "Data type mismatch.\n"
@@ -6205,7 +6205,7 @@ msgstr "데이터 형식이 맞지 않습니다.\n"
#: dlls/kernel32/winerror.mc:2873 dlls/kernel32/winerror.mc:3083
msgid "Unsupported type.\n"
-msgstr "지원하지 않는 형식.\n"
+msgstr "지원되지 않는 형식.\n"
#: dlls/kernel32/winerror.mc:2878
msgid "Creation failed.\n"
@@ -6217,7 +6217,7 @@ msgstr "임시 디렉터리에 기록할 수 없음.\n"
#: dlls/kernel32/winerror.mc:2888
msgid "Installation platform not supported.\n"
-msgstr "설치 플랫폼을 지원하지 않음.\n"
+msgstr "설치하려는 플랫폼이 지원되지 않스니다.\n"
#: dlls/kernel32/winerror.mc:2893
msgid "Installer not used.\n"
@@ -6229,11 +6229,11 @@ msgstr "패치 패키지 열기 실패.\n"
#: dlls/kernel32/winerror.mc:2903
msgid "Invalid patch package.\n"
-msgstr "올바르지 않은 패치 패키지.\n"
+msgstr "잘못된 패치 패키지.\n"
#: dlls/kernel32/winerror.mc:2908
msgid "Unsupported patch package.\n"
-msgstr "지원하지 않는 패치 패키지.\n"
+msgstr "지원되지 않는 패치 패키지입니다.\n"
#: dlls/kernel32/winerror.mc:2913
msgid "Another version is installed.\n"
@@ -6241,7 +6241,7 @@ msgstr "다른 버전이 설치되어 있음.\n"
#: dlls/kernel32/winerror.mc:2918
msgid "Invalid command line.\n"
-msgstr "올바르지 않은 명령 라인.\n"
+msgstr "잘못된 명령 라인.\n"
#: dlls/kernel32/winerror.mc:2923
msgid "Remote installation not allowed.\n"
@@ -6253,7 +6253,7 @@ msgstr "설치가 성공한 후에 스스로 재부팅될 것임.\n"
#: dlls/kernel32/winerror.mc:2933
msgid "Invalid string binding.\n"
-msgstr "올바르지 않은 문자열 바인딩.\n"
+msgstr "잘못된 문자열 바인딩.\n"
#: dlls/kernel32/winerror.mc:2938
msgid "Wrong kind of binding.\n"
@@ -6261,7 +6261,7 @@ msgstr "잘못된 종류의 바인딩.\n"
#: dlls/kernel32/winerror.mc:2943
msgid "Invalid binding.\n"
-msgstr "올바르지 않은 바인딩.\n"
+msgstr "잘못된 바인딩.\n"
#: dlls/kernel32/winerror.mc:2948
msgid "RPC protocol sequence not supported.\n"
@@ -6269,19 +6269,19 @@ msgstr "RPC 프로토콜 시퀀스가 지원되지 않음.\n"
#: dlls/kernel32/winerror.mc:2953
msgid "Invalid RPC protocol sequence.\n"
-msgstr "올바르지 않은 RPC 프로토콜 순서.\n"
+msgstr "잘못된 RPC 프로토콜 순서.\n"
#: dlls/kernel32/winerror.mc:2958
msgid "Invalid string UUID.\n"
-msgstr "올바르지 않은 문자열 UUID.\n"
+msgstr "잘못된 문자열 UUID.\n"
#: dlls/kernel32/winerror.mc:2963
msgid "Invalid endpoint format.\n"
-msgstr "올바르지 않은 엔드포인트 포맷.\n"
+msgstr "잘못된 엔드포인트 포맷.\n"
#: dlls/kernel32/winerror.mc:2968
msgid "Invalid network address.\n"
-msgstr "올바르지 않은 네트워크 주소.\n"
+msgstr "잘못된 네트워크 주소.\n"
#: dlls/kernel32/winerror.mc:2973
msgid "No endpoint found.\n"
@@ -6289,7 +6289,7 @@ msgstr "엔드포인트를 찾을 수 없음.\n"
#: dlls/kernel32/winerror.mc:2978
msgid "Invalid timeout value.\n"
-msgstr "올바르지 않은 시간 초과 값.\n"
+msgstr "잘못된 시간 초과 값.\n"
#: dlls/kernel32/winerror.mc:2983
msgid "Object UUID not found.\n"
@@ -6337,59 +6337,59 @@ msgstr "엔드포인트를 만들 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3038
msgid "Out of resources.\n"
-msgstr "리소스가 부족합니다.\n"
+msgstr "리소스 부족.\n"
#: dlls/kernel32/winerror.mc:3043
msgid "RPC server unavailable.\n"
-msgstr "RPC 서버가 가능하지 않습니다.\n"
+msgstr "RPC 서버를 사용할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3048
msgid "RPC server too busy.\n"
-msgstr "RPC 서버는 매우 바쁩니다.\n"
+msgstr "RPC 서버가 지나치게 사용 중입니다.\n"
#: dlls/kernel32/winerror.mc:3053
msgid "Invalid network options.\n"
-msgstr "올바르지 않은 네트워크 옵션.\n"
+msgstr "잘못된 네트워크 옵션.\n"
#: dlls/kernel32/winerror.mc:3058
msgid "No RPC call active.\n"
-msgstr "어떤 RPC 호출도 활성화되어있지 않습니다.\n"
+msgstr "RPC 호출이 활성화되지 않았습니다.\n"
#: dlls/kernel32/winerror.mc:3063
msgid "RPC call failed.\n"
-msgstr "RPC 호출 실패.\n"
+msgstr "RPC 호출이 실패했습니다.\n"
#: dlls/kernel32/winerror.mc:3068
msgid "RPC call failed and didn't execute.\n"
-msgstr "RPC 호출 실패 그리고 실행못함.\n"
+msgstr "RPC 호출이 실패하여 실행하지 않았습니다.\n"
#: dlls/kernel32/winerror.mc:3073
msgid "RPC protocol error.\n"
-msgstr "RPC 프로토콜 오류.\n"
+msgstr "RPC 프로토콜 오류.\n"
#: dlls/kernel32/winerror.mc:3078
msgid "Unsupported transfer syntax.\n"
-msgstr "지원하지 않는 트랜스퍼 문법.\n"
+msgstr "지원되지 않는 전송 구문.\n"
#: dlls/kernel32/winerror.mc:3088
msgid "Invalid tag.\n"
-msgstr "올바르지 않은 태그.\n"
+msgstr "잘못된 태그.\n"
#: dlls/kernel32/winerror.mc:3093
msgid "Invalid array bounds.\n"
-msgstr "올바르지 않은 배치 영역.\n"
+msgstr "배열 경계가 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:3098
msgid "No entry name.\n"
-msgstr "엔트리 이름이 없음.\n"
+msgstr "항목 이름이 없습니다.\n"
#: dlls/kernel32/winerror.mc:3103
msgid "Invalid name syntax.\n"
-msgstr "올바르지 않은 이름 문법.\n"
+msgstr "잘못된 이름 구문.\n"
#: dlls/kernel32/winerror.mc:3108
msgid "Unsupported name syntax.\n"
-msgstr "지원하지 않는 이름 문법.\n"
+msgstr "지원되지 않는 이름 구문.\n"
#: dlls/kernel32/winerror.mc:3113
msgid "No network address.\n"
@@ -6397,7 +6397,7 @@ msgstr "네트워크 주소가 없습니다.\n"
#: dlls/kernel32/winerror.mc:3118
msgid "Duplicate endpoint.\n"
-msgstr "중복된 끝나는 점.\n"
+msgstr "중복된 엔드포인트.\n"
#: dlls/kernel32/winerror.mc:3123
msgid "Unknown authentication type.\n"
@@ -6405,7 +6405,7 @@ msgstr "알 수 없는 인증 형식.\n"
#: dlls/kernel32/winerror.mc:3128
msgid "Maximum calls too low.\n"
-msgstr "호출의 최대값이 너무 낮습니다.\n"
+msgstr "최대 호출이 너무 낮습니다.\n"
#: dlls/kernel32/winerror.mc:3133
msgid "String too long.\n"
@@ -6413,15 +6413,15 @@ msgstr "문자열이 너무 깁니다.\n"
#: dlls/kernel32/winerror.mc:3138
msgid "Protocol sequence not found.\n"
-msgstr "프로토콜 순서를 찾을 수 없습니다.\n"
+msgstr "프로토콜 시퀀스를 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3143
msgid "Procedure number out of range.\n"
-msgstr "처리절차 번호가 범위를 벗어납니다.\n"
+msgstr "절차 번호가 범위를 벗어났습니다.\n"
#: dlls/kernel32/winerror.mc:3148
msgid "Binding has no authentication data.\n"
-msgstr "바인딩은 어떤 인증 정보도 가지고 있지 않습니다.\n"
+msgstr "바인딩에 인증 데이터가 없습니다.\n"
#: dlls/kernel32/winerror.mc:3153
msgid "Unknown authentication service.\n"
@@ -6429,11 +6429,11 @@ msgstr "알 수 없는 인증 서비스.\n"
#: dlls/kernel32/winerror.mc:3158
msgid "Unknown authentication level.\n"
-msgstr "알 수 없는 인증 레벨.\n"
+msgstr "알 수 없는 인증 수준.\n"
#: dlls/kernel32/winerror.mc:3163
msgid "Invalid authentication identity.\n"
-msgstr "올바르지 않은 인증 증명서.\n"
+msgstr "잘못된 인증 ID.\n"
#: dlls/kernel32/winerror.mc:3168
msgid "Unknown authorization service.\n"
@@ -6441,35 +6441,35 @@ msgstr "알 수 없는 인증 서비스.\n"
#: dlls/kernel32/winerror.mc:3173
msgid "Invalid entry.\n"
-msgstr "올바르지 않은 엔트리.\n"
+msgstr "잘못된 항목.\n"
#: dlls/kernel32/winerror.mc:3178
msgid "Can't perform operation.\n"
-msgstr "작업을 완료할 수 없습니다.\n"
+msgstr "작업을 수행할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3183
msgid "Endpoints not registered.\n"
-msgstr "끝나는 점이 등록되지 않았습니다.\n"
+msgstr "엔드포인트가 등록되지 않았습니다.\n"
#: dlls/kernel32/winerror.mc:3188
msgid "Nothing to export.\n"
-msgstr "불러 올 것이 없습니다.\n"
+msgstr "내보낼 것이 없습니다.\n"
#: dlls/kernel32/winerror.mc:3193
msgid "Incomplete name.\n"
-msgstr "완성되지 않은 이름.\n"
+msgstr "불완전한 이름.\n"
#: dlls/kernel32/winerror.mc:3198
msgid "Invalid version option.\n"
-msgstr "올바르지 않은 버전 옵션.\n"
+msgstr "잘못된 버전 옵션.\n"
#: dlls/kernel32/winerror.mc:3203
msgid "No more members.\n"
-msgstr "더 이상 회원은 없습니다.\n"
+msgstr "구성원이 더 이상 없습니다.\n"
#: dlls/kernel32/winerror.mc:3208
msgid "Not all objects unexported.\n"
-msgstr "모든 개체가 내보내지지 못했습니다.\n"
+msgstr "내보내기 취소된 개체가 없습니다.\n"
#: dlls/kernel32/winerror.mc:3213
msgid "Interface not found.\n"
@@ -6477,27 +6477,27 @@ msgstr "인터페이스를 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3218
msgid "Entry already exists.\n"
-msgstr "엔트리는 이미 존재합니다.\n"
+msgstr "항목이 이미 존재합니다.\n"
#: dlls/kernel32/winerror.mc:3223
msgid "Entry not found.\n"
-msgstr "엔트리를 찾을 수 업습니다.\n"
+msgstr "항목을 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3228
msgid "Name service unavailable.\n"
-msgstr "네임 서비스는 가능하지 않습니다.\n"
+msgstr "이름 서비스를 사용할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3233
msgid "Invalid network address family.\n"
-msgstr "올바르지 않은 네트워크 주소 가족.\n"
+msgstr "네트워크 주소 패밀리가 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:3238
msgid "Operation not supported.\n"
-msgstr "이 작업은 지원하지 않습니다.\n"
+msgstr "작업이 지원되지 않습니다.\n"
#: dlls/kernel32/winerror.mc:3243
msgid "No security context available.\n"
-msgstr "가능한 보안 컨텍스가 없음.\n"
+msgstr "사용할 수 있는 보안 컨텍스트가 없습니다.\n"
#: dlls/kernel32/winerror.mc:3248
msgid "RPCInternal error.\n"
@@ -6513,75 +6513,75 @@ msgstr "주소 오류.\n"
#: dlls/kernel32/winerror.mc:3263
msgid "Floating-point divide-by-zero.\n"
-msgstr "플로팅 0으로 나눔.\n"
+msgstr "0으로 나뉜 부동 소수점.\n"
#: dlls/kernel32/winerror.mc:3268
msgid "Floating-point underflow.\n"
-msgstr "플로팅 언더플로우.\n"
+msgstr "부동 소수점 언더플로우.\n"
#: dlls/kernel32/winerror.mc:3273
msgid "Floating-point overflow.\n"
-msgstr "플로팅 오버플로우.\n"
+msgstr "부동 소수점 오버플로.\n"
#: dlls/kernel32/winerror.mc:3278
msgid "No more entries.\n"
-msgstr "더 이상 엔트리가 없습니다.\n"
+msgstr "추가 항목이 없습니다.\n"
#: dlls/kernel32/winerror.mc:3283
msgid "Character translation table open failed.\n"
-msgstr "문자변환테이블 열기 실패.\n"
+msgstr "문자 변환 테이블을 열지 못했습니다.\n"
#: dlls/kernel32/winerror.mc:3288
msgid "Character translation table file too small.\n"
-msgstr "문자변환테이블 파일이 너무 작습니다.\n"
+msgstr "문자 변환 테이블 파일이 너무 작습니다.\n"
#: dlls/kernel32/winerror.mc:3293
msgid "Null context handle.\n"
-msgstr "빈 콘택트 핸들.\n"
+msgstr "널 컨택스트 핸들.\n"
#: dlls/kernel32/winerror.mc:3298
msgid "Context handle damaged.\n"
-msgstr "콘텍트 핸들이 손상되었습니다.\n"
+msgstr "컨텍스트 핸들이 손상되었습니다.\n"
#: dlls/kernel32/winerror.mc:3303
msgid "Binding handle mismatch.\n"
-msgstr "바인딩 핸들이 맞지 않습니다.\n"
+msgstr "바인딩 핸들이 일치하지 않습니다.\n"
#: dlls/kernel32/winerror.mc:3308
msgid "Cannot get call handle.\n"
-msgstr "호출 핸들을 얻을 수 없습니다.\n"
+msgstr "호출 핸들을 가져올 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3313
msgid "Null reference pointer.\n"
-msgstr "빈 레퍼런스 포인터.\n"
+msgstr "널 참조 포인터.\n"
#: dlls/kernel32/winerror.mc:3318
msgid "Enumeration value out of range.\n"
-msgstr "열거 값이 범위를 벗어남.\n"
+msgstr "열거 값이 범위를 벗어났습니다.\n"
#: dlls/kernel32/winerror.mc:3323
msgid "Byte count too small.\n"
-msgstr "바이트 카운트가 너무 작습니다.\n"
+msgstr "바이트 수가 너무 적습니다.\n"
#: dlls/kernel32/winerror.mc:3328
msgid "Bad stub data.\n"
-msgstr "나쁜 스텁 정보.\n"
+msgstr "잘못된 스텁 데이터.\n"
#: dlls/kernel32/winerror.mc:3333
msgid "Invalid user buffer.\n"
-msgstr "올바르지 않은 사용자 버퍼.\n"
+msgstr "잘못된 사용자 버퍼.\n"
#: dlls/kernel32/winerror.mc:3338
msgid "Unrecognized media.\n"
-msgstr "이해할 수 없는 미디어.\n"
+msgstr "알 수 없는 미디어입니다.\n"
#: dlls/kernel32/winerror.mc:3343
msgid "No trust secret.\n"
-msgstr "어떤 신뢰된 비밀이 없습니다.\n"
+msgstr "트러스트 암호가 없습니다.\n"
#: dlls/kernel32/winerror.mc:3348
msgid "No trust SAM account.\n"
-msgstr "어떤 신뢰 SAM 계정이 없습니다.\n"
+msgstr "트러스트 SAM 계정이 없습니다.\n"
#: dlls/kernel32/winerror.mc:3353
msgid "Trusted domain failure.\n"
@@ -6593,11 +6593,11 @@ msgstr "신뢰할 수 있는 관계 실패.\n"
#: dlls/kernel32/winerror.mc:3363
msgid "Trust logon failure.\n"
-msgstr "신뢰할 수 있는 로그온 실패.\n"
+msgstr "트러스트 로그온 실패.\n"
#: dlls/kernel32/winerror.mc:3368
msgid "RPC call already in progress.\n"
-msgstr "RPC 요구는 이미 작업중입니다.\n"
+msgstr "RPC 호출이 이미 진행 중입니다.\n"
#: dlls/kernel32/winerror.mc:3373
msgid "NETLOGON is not started.\n"
@@ -6605,15 +6605,15 @@ msgstr "NETLOGON이 시작되지 않았습니다.\n"
#: dlls/kernel32/winerror.mc:3378
msgid "Account expired.\n"
-msgstr "계정이 만기되었습니다.\n"
+msgstr "계좌가 만료되었습니다.\n"
#: dlls/kernel32/winerror.mc:3383
msgid "Redirector has open handles.\n"
-msgstr "리다이렉터가 핸들을 열었습니다.\n"
+msgstr "리디렉터 핸들이 열려 있습니다.\n"
#: dlls/kernel32/winerror.mc:3388
msgid "Printer driver already installed.\n"
-msgstr "프린터 드라이버는 이미 설치되어 있습니다.\n"
+msgstr "프린터 드라이버가 이미 설치되었습니다.\n"
#: dlls/kernel32/winerror.mc:3393
msgid "Unknown port.\n"
@@ -6625,59 +6625,59 @@ msgstr "알 수 없는 프린터 드라이버.\n"
#: dlls/kernel32/winerror.mc:3403
msgid "Unknown print processor.\n"
-msgstr "알 수 없는 프린터 프로세서.\n"
+msgstr "알 수 없는 인쇄 프로세서.\n"
#: dlls/kernel32/winerror.mc:3408
msgid "Invalid separator file.\n"
-msgstr "올바르지 않은 파일 구분 기호.\n"
+msgstr "잘못된 구분 파일.\n"
#: dlls/kernel32/winerror.mc:3413
msgid "Invalid priority.\n"
-msgstr "올바르지 않은 우선순위.\n"
+msgstr "잘못된 우선순위.\n"
#: dlls/kernel32/winerror.mc:3418
msgid "Invalid printer name.\n"
-msgstr "올바르지 않은 프린터 이름.\n"
+msgstr "잘못된 프린터 이름.\n"
#: dlls/kernel32/winerror.mc:3423
msgid "Printer already exists.\n"
-msgstr "프린터는 이미 존재합니다.\n"
+msgstr "프린터가 이미 존재합니다.\n"
#: dlls/kernel32/winerror.mc:3428
msgid "Invalid printer command.\n"
-msgstr "올바르지 않은 프린터 명령.\n"
+msgstr "잘못된 프린터 명령.\n"
#: dlls/kernel32/winerror.mc:3433
msgid "Invalid data type.\n"
-msgstr "올바르지 않은 데이터 형식.\n"
+msgstr "잘못된 데이터 형식.\n"
#: dlls/kernel32/winerror.mc:3438
msgid "Invalid environment.\n"
-msgstr "올바르지 않은 환경변수.\n"
+msgstr "잘못된 환경변수.\n"
#: dlls/kernel32/winerror.mc:3443
msgid "No more bindings.\n"
-msgstr "더 이상의 바인딩은 없음.\n"
+msgstr "이제 바인딩이 없습니다.\n"
#: dlls/kernel32/winerror.mc:3448
msgid "Can't log on with inter-domain trust account.\n"
-msgstr "내부 도메인의 신뢰된 계정에 로그온할 수 없습니다.\n"
+msgstr "도메인 간 트러스트 계정으로 로그온할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3453
msgid "Can't log on with workstation trust account.\n"
-msgstr "워크스테이션의 신뢰된 계정에 로그온할 수 없습니다.\n"
+msgstr "워크스테이션 트러스트 계정으로 로그온할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3458
msgid "Can't log on with server trust account.\n"
-msgstr "서버의 신뢰된 계정에 로그온할 수 없습니다.\n"
+msgstr "서버 트러스트 계정으로 로그온할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3463
msgid "Domain trust information inconsistent.\n"
-msgstr "도메인 신뢰 정보가 다름.\n"
+msgstr "도메인 신뢰 정보가 일치하지 않습니다.\n"
#: dlls/kernel32/winerror.mc:3468
msgid "Server has open handles.\n"
-msgstr "서버가 핸들을 열었습니다.\n"
+msgstr "서버에 열린 핸들이 있습니다.\n"
#: dlls/kernel32/winerror.mc:3473
msgid "Resource data not found.\n"
@@ -6697,11 +6697,11 @@ msgstr "리소스 언어를 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3493
msgid "Not enough quota.\n"
-msgstr "쿼터가 충분하지 않습니다.\n"
+msgstr "할당량이 충분하지 않습니다.\n"
#: dlls/kernel32/winerror.mc:3498
msgid "No interfaces.\n"
-msgstr "인터페이스가 없음.\n"
+msgstr "인터페이스가 없습니다.\n"
#: dlls/kernel32/winerror.mc:3503
msgid "RPC call canceled.\n"
@@ -6709,27 +6709,27 @@ msgstr "RPC 호출이 취소되었습니다.\n"
#: dlls/kernel32/winerror.mc:3508
msgid "Binding incomplete.\n"
-msgstr "바인딩이 완료되지 않음.\n"
+msgstr "Binding incomplete.\n"
#: dlls/kernel32/winerror.mc:3513
msgid "RPC comm failure.\n"
-msgstr "RPC 일반 실패.\n"
+msgstr "RPC 통신 오류.\n"
#: dlls/kernel32/winerror.mc:3518
msgid "Unsupported authorization level.\n"
-msgstr "지원하지 않는 인증 레벨.\n"
+msgstr "지원되지 않는 권한 수준.\n"
#: dlls/kernel32/winerror.mc:3523
msgid "No principal name registered.\n"
-msgstr "어떤 등록된 주요 이름이 없음.\n"
+msgstr "등록된 기본 이름이 없습니다.\n"
#: dlls/kernel32/winerror.mc:3528
msgid "Not an RPC error.\n"
-msgstr "RPC 오류가 아닙.\n"
+msgstr "RPC 오류가 아닙니다.\n"
#: dlls/kernel32/winerror.mc:3533
msgid "UUID is local only.\n"
-msgstr "UUID는 오직 로컬에서만 가능합니다.\n"
+msgstr "UUID는 로컬 전용입니다.\n"
#: dlls/kernel32/winerror.mc:3538
msgid "Security package error.\n"
@@ -6737,15 +6737,15 @@ msgstr "보안 패키지 오류.\n"
#: dlls/kernel32/winerror.mc:3543
msgid "Thread not canceled.\n"
-msgstr "스레드는 취소되지 않았습니다.\n"
+msgstr "스레드가 취소되지 않았습니다.\n"
#: dlls/kernel32/winerror.mc:3548
msgid "Invalid handle operation.\n"
-msgstr "올바르지 않은 핸들 작업.\n"
+msgstr "잘못된 핸들 작업.\n"
#: dlls/kernel32/winerror.mc:3553
msgid "Wrong serializing package version.\n"
-msgstr "잘못된 연속 패키지 버전.\n"
+msgstr "잘못된 일련의 순차적인 패키지 버전.\n"
#: dlls/kernel32/winerror.mc:3558
msgid "Wrong stub version.\n"
@@ -6753,7 +6753,7 @@ msgstr "잘못된 스텁 버전.\n"
#: dlls/kernel32/winerror.mc:3563
msgid "Invalid pipe object.\n"
-msgstr "올바르지 않은 파이프 개체.\n"
+msgstr "잘못된 파이프 개체.\n"
#: dlls/kernel32/winerror.mc:3568
msgid "Wrong pipe order.\n"
@@ -6769,39 +6769,39 @@ msgstr "그룹 멤버를 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3583
msgid "Can't create endpoint mapper DB.\n"
-msgstr "엔드포인트 매퍼 DB를 만들 수 없습니다.\n"
+msgstr "엔드포인트 매핑기 DB를 만들 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3588
msgid "Invalid object.\n"
-msgstr "올바르지 않은 개체.\n"
+msgstr "잘못된 개체.\n"
#: dlls/kernel32/winerror.mc:3593
msgid "Invalid time.\n"
-msgstr "올바르지 않은 시간.\n"
+msgstr "잘못된 시간.\n"
#: dlls/kernel32/winerror.mc:3598
msgid "Invalid form name.\n"
-msgstr "올바르지 않은 폼 이름.\n"
+msgstr "잘못된 폼 이름.\n"
#: dlls/kernel32/winerror.mc:3603
msgid "Invalid form size.\n"
-msgstr "올바르지 않은 폼 크기.\n"
+msgstr "잘못된 폼 크기.\n"
#: dlls/kernel32/winerror.mc:3608
msgid "Already awaiting printer handle.\n"
-msgstr "이미 프린터 핸들르 기다리고 있습니다.\n"
+msgstr "이미 프린터 핸들을 기다리고 있습니다.\n"
#: dlls/kernel32/winerror.mc:3613
msgid "Printer deleted.\n"
-msgstr "프린터가 지워졌습니다.\n"
+msgstr "프린터가 삭제되었습니다.\n"
#: dlls/kernel32/winerror.mc:3618
msgid "Invalid printer state.\n"
-msgstr "올바르지 않은 프린터 상태.\n"
+msgstr "프린터 상태가 잘못되었습니다.\n"
#: dlls/kernel32/winerror.mc:3623
msgid "User must change password.\n"
-msgstr "사용자는 반드시 암호를 바꾸어야 합니다.\n"
+msgstr "사용자는 암호를 변경해야 합니다.\n"
#: dlls/kernel32/winerror.mc:3628
msgid "Domain controller not found.\n"
@@ -6809,59 +6809,59 @@ msgstr "도메인 컨트롤러를 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3633
msgid "Account locked out.\n"
-msgstr "계정이 잠겨 있음.\n"
+msgstr "계정이 잠겨 있습니다.\n"
#: dlls/kernel32/winerror.mc:3638
msgid "Invalid pixel format.\n"
-msgstr "올바르지 않은 픽셀 형식.\n"
+msgstr "잘못된 픽셀 형식.\n"
#: dlls/kernel32/winerror.mc:3643
msgid "Invalid driver.\n"
-msgstr "올바르지 않은 드라이버.\n"
+msgstr "잘못된 드라이버.\n"
#: dlls/kernel32/winerror.mc:3648
msgid "Invalid object resolver set.\n"
-msgstr "잘못된 개체 확인자 세트.\n"
+msgstr "잘못된 개체 해결기 집합.\n"
#: dlls/kernel32/winerror.mc:3653
msgid "Incomplete RPC send.\n"
-msgstr "불완전 RPC를 보냄.\n"
+msgstr "불완전한 RPC 전송.\n"
#: dlls/kernel32/winerror.mc:3658
msgid "Invalid asynchronous RPC handle.\n"
-msgstr "올바르지 않은 비동기식 RPC 핸들.\n"
+msgstr "잘못된 비동기 RPC 핸들.\n"
#: dlls/kernel32/winerror.mc:3663
msgid "Invalid asynchronous RPC call.\n"
-msgstr "비동기 RPC 호출이 잘못되었습니다.\n"
+msgstr "잘못된 비동기 RPC 호출.\n"
#: dlls/kernel32/winerror.mc:3668
msgid "RPC pipe closed.\n"
-msgstr "RPC 파이프가 닫힘.\n"
+msgstr "RPC 파이프가 닫혔습니다.\n"
#: dlls/kernel32/winerror.mc:3673
msgid "Discipline error on RPC pipe.\n"
-msgstr "RPC 파이프에 대한 규율 오류.\n"
+msgstr "RPC 파이프의 징계 오류입니다.\n"
#: dlls/kernel32/winerror.mc:3678
msgid "No data on RPC pipe.\n"
-msgstr "RPC 파이프에 어떠한 데이터도 없음.\n"
+msgstr "RPC 파이프에 데이터가 없습니다.\n"
#: dlls/kernel32/winerror.mc:3683
msgid "No site name available.\n"
-msgstr "가능한 사이트 이름이 없음.\n"
+msgstr "사용할 수 있는 사이트 이름이 없습니다.\n"
#: dlls/kernel32/winerror.mc:3688
msgid "The file cannot be accessed.\n"
-msgstr "이 파일은 접근할 수 없습니다.\n"
+msgstr "파일에 액세스할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3693
msgid "The filename cannot be resolved.\n"
-msgstr "파일 이름을 확인할 수 없음.\n"
+msgstr "파일 이름을 확인할 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3698
msgid "RPC entry type mismatch.\n"
-msgstr "RPC 입력 유형 불일치.\n"
+msgstr "RPC 입력 유형이 일치하지 않습니다.\n"
#: dlls/kernel32/winerror.mc:3703
msgid "Not all objects could be exported.\n"
@@ -6917,11 +6917,11 @@ msgstr "파일에서 서명을 찾을 수 없습니다.\n"
#: dlls/kernel32/winerror.mc:3774
msgid "Invalid call.\n"
-msgstr "올바르지 않은 호출입니다.\n"
+msgstr "잘못된 호출.\n"
#: dlls/kernel32/winerror.mc:3781
msgid "Resource is not currently available.\n"
-msgstr "지금은 리소스를 사용할 수 없습니다.\n"
+msgstr "현재 리소스를 사용할 수 없습니다.\n"
#: dlls/localspl/localspl.rc:31 dlls/localui/localui.rc:31
#: dlls/winspool.drv/winspool.rc:30
@@ -6942,7 +6942,7 @@ msgstr "추가할 포트 이름 입력(&E):"
#: dlls/localui/localui.rc:51
msgid "Configure LPT Port"
-msgstr "LPT 포트 설정"
+msgstr "LPT 포트 구성"
#: dlls/localui/localui.rc:54
msgid "Timeout (seconds)"
@@ -6966,7 +6966,7 @@ msgstr "이 포트는 설정할 옵션이 없습니다"
#: dlls/mapi32/mapi32.rc:31
msgid "Mail sending failed as you do not have a MAPI mail client installed."
-msgstr "설치된 MAPI 메일 클라이언트가 없어서 메일 보내기 실패."
+msgstr "MAPI 메일 클라이언트가 설치되어 있지 않아 메일 발송이 실패했습니다."
#: dlls/mapi32/mapi32.rc:32
msgid "Send Mail"
@@ -6982,11 +6982,11 @@ msgstr "싱크가 완료되지 않았습니다.\n"
#: dlls/mferror/mferror.mc:732
msgid "Clock was stopped\n"
-msgstr "시계가 중지되었습니다.\n"
+msgstr "시계가 중지되었습니다\n"
#: dlls/mferror/mferror.mc:32
msgid "Media Foundation platform is not initialized.\n"
-msgstr "미디어 기초 플랫폼이 최기화되지 않았습니다.\n"
+msgstr "미디어 기초 플랫폼이 초기화되지 않았습니다.\n"
#: dlls/mferror/mferror.mc:39
msgid "Buffer is too small.\n"
@@ -7030,15 +7030,15 @@ msgstr "예상치 못한 오류입니다.\n"
#: dlls/mferror/mferror.mc:116
msgid "Invalid type.\n"
-msgstr "올바르지 않은 형식입니다.\n"
+msgstr "잘못된 형식입니다.\n"
#: dlls/mferror/mferror.mc:123
msgid "Invalid file format.\n"
-msgstr "올바르지 않은 파일 형식입니다.\n"
+msgstr "잘못된 파일 형식입니다.\n"
#: dlls/mferror/mferror.mc:137
msgid "Invalid timestamp.\n"
-msgstr "올바르지 않은 타임스탬프입니다.\n"
+msgstr "잘못된 타임스탬프입니다.\n"
#: dlls/mferror/mferror.mc:144
msgid "Unsupported scheme.\n"
@@ -7058,35 +7058,35 @@ msgstr "이 샘플에 대한 타임스탬프가 설정되지 않았습니다.\n"
#: dlls/mferror/mferror.mc:172
msgid "No duration set for the sample.\n"
-msgstr "이 샘플에 대한 기간(duration) 설정이 없습니다.\n"
+msgstr "샘플에 대한 재생 시간 설정이 없습니다.\n"
#: dlls/mferror/mferror.mc:179
msgid "Invalid stream data.\n"
-msgstr "올바르지 않은 스트림 데이터입니다.\n"
+msgstr "잘못된 스트림 데이터입니다.\n"
#: dlls/mferror/mferror.mc:186
msgid "Realtime support is not available.\n"
-msgstr "실시간 지원은 가능하지 않습니다.\n"
+msgstr "실시간 지원을 사용할 수 없습니다.\n"
#: dlls/mferror/mferror.mc:193
msgid "Unsupported rate.\n"
-msgstr "지원하지 않는 비율(rate).\n"
+msgstr "지원되지 않는 비율입니다.\n"
#: dlls/mferror/mferror.mc:200
msgid "Unsupported thinning.\n"
-msgstr "지원하지 않는 세선화(thinning).\n"
+msgstr "지원되지 않는 THINING.\n"
#: dlls/mferror/mferror.mc:207
msgid "Reversing is not supported.\n"
-msgstr "리버싱(reversing)은 지원되지 않습니다.\n"
+msgstr "반전은 지원되지 않습니다.\n"
#: dlls/mferror/mferror.mc:214
msgid "Unsupported rate transition.\n"
-msgstr "지원하지 않는 비율(rate) 변환.\n"
+msgstr "지원되지 않는 비율 변환입니다.\n"
#: dlls/mferror/mferror.mc:221
msgid "Rate change was preempted.\n"
-msgstr "비율(rate) 변경이 선점되었습니다.\n"
+msgstr "비율 변경이 선점되었습니다.\n"
#: dlls/mferror/mferror.mc:228
msgid "Object or value wasn't found.\n"
@@ -7106,7 +7106,7 @@ msgstr "다중 가입자는 지원되지 않습니다.\n"
#: dlls/mferror/mferror.mc:270
msgid "The timer was orphaned.\n"
-msgstr "타이머가 고립되었습니다.\n"
+msgstr "타이머가 분리되었습니다.\n"
#: dlls/mferror/mferror.mc:277
msgid "State transition is pending.\n"
@@ -7114,7 +7114,7 @@ msgstr "상태 전환이 보류 중입니다.\n"
#: dlls/mferror/mferror.mc:284
msgid "Unsupported state transition.\n"
-msgstr "지원되지 않는 상태 전환.\n"
+msgstr "지원되지 않는 상태 전환입니다.\n"
#: dlls/mferror/mferror.mc:291
msgid "Unrecoverable error occurred.\n"
@@ -7130,19 +7130,19 @@ msgstr "샘플에 쓰기가 가능하지 않습니다.\n"
#: dlls/mferror/mferror.mc:312
msgid "Key is invalid.\n"
-msgstr "올바르지 않은 키.\n"
+msgstr "키가 잘못되었습니다.\n"
#: dlls/mferror/mferror.mc:319
msgid "Bad startup version.\n"
-msgstr "잘못된 시작 버전.\n"
+msgstr "시작 버전이 잘못되었습니다.\n"
#: dlls/mferror/mferror.mc:326
msgid "Unsupported caption.\n"
-msgstr "지원하지 않는 자막.\n"
+msgstr "지원되지 않는 자막입니다.\n"
#: dlls/mferror/mferror.mc:333
msgid "Invalid position.\n"
-msgstr "올바르지 않은 위치.\n"
+msgstr "잘못된 위치입니다.\n"
#: dlls/mferror/mferror.mc:340
msgid "Attribute is not found.\n"
@@ -7190,7 +7190,7 @@ msgstr "바이트 스트림을 구문 분석할 수 없습니다.\n"
#: dlls/mferror/mferror.mc:417
msgid "Mutually exclusive flags passed to source resolver.\n"
-msgstr "상호 배타적이 플래그가 소스 확인자로 전달되었습니다.\n"
+msgstr "상호 배타적이 플래그가 원본 확인자에 전달되었습니다.\n"
#: dlls/mferror/mferror.mc:424
msgid "Unknown bytestream length.\n"
@@ -7198,7 +7198,7 @@ msgstr "알 수 없는 바이트 스트림 길이입니다.\n"
#: dlls/mferror/mferror.mc:431
msgid "Invalid work queue index.\n"
-msgstr "올바르지 않은 작업 큐 인덱스.\n"
+msgstr "잘못된 작업 큐 인덱스입니다.\n"
#: dlls/mferror/mferror.mc:438
msgid "No events available.\n"
@@ -7206,7 +7206,7 @@ msgstr "사용할 수 있는 이벤트가 없습니다.\n"
#: dlls/mferror/mferror.mc:445
msgid "Invalid media source state transition.\n"
-msgstr "올바르지 않은 미디어 소스 상태 전환.\n"
+msgstr "잘못된 미디어 원본 상태 전환입니다.\n"
#: dlls/mferror/mferror.mc:452
msgid "End of media stream has been reached.\n"
@@ -7222,7 +7222,7 @@ msgstr "미디어 스트림에 기간 설정이 없습니다.\n"
#: dlls/mferror/mferror.mc:473
msgid "Media format was recognized but is invalid.\n"
-msgstr "미디어 형식이 인식되었지만 올바르지 않습니다.\n"
+msgstr "미디어 형식이 인식되었지만 유효하지 않습니다.\n"
#: dlls/mferror/mferror.mc:480
msgid "Property wasn't found.\n"
@@ -7238,15 +7238,15 @@ msgstr "속성이 허용되지 않습니다.\n"
#: dlls/mferror/mferror.mc:501
msgid "Media source is not started.\n"
-msgstr "미디어 소스가 시작되지 않았습니다.\n"
+msgstr "미디어 원본이 시작되지 않았습니다.\n"
#: dlls/mferror/mferror.mc:508
msgid "Unsupported media format.\n"
-msgstr "지원하지 않는 미디어 형식.\n"
+msgstr "지원되지 않는 미디어 형식입니다.\n"
#: dlls/mferror/mferror.mc:515
msgid "Media source is in wrong state.\n"
-msgstr "미디어 소스가 잘못된 상태에 있습니다.\n"
+msgstr "미디어 원본이 잘못된 상태에 있습니다.\n"
#: dlls/mferror/mferror.mc:522
msgid "No media streams were selected.\n"
@@ -7254,7 +7254,7 @@ msgstr "미디어 스트림이 선택되지 않았습니다.\n"
#: dlls/mferror/mferror.mc:529
msgid "Unsupported media source characteristics.\n"
-msgstr "지원되지 않는 미디어 소스 특성입니다.\n"
+msgstr "지원되지 않는 미디어 원본 특성입니다.\n"
#: dlls/mferror/mferror.mc:536
msgid "Stream sink was removed.\n"
@@ -7306,7 +7306,7 @@ msgstr "싱크가 필요한 헤더를 제공하지 않았습니다.\n"
#: dlls/mferror/mferror.mc:627
msgid "Optional node is invalid.\n"
-msgstr "선택적 노드가 올바르지 않습니다.\n"
+msgstr "선택적 노드가 잘못되었습니다.\n"
#: dlls/mferror/mferror.mc:634
msgid "Cannot find decryptor.\n"
@@ -7326,7 +7326,7 @@ msgstr "토폴로지 요청이 지원되지 않습니다.\n"
#: dlls/mferror/mferror.mc:662
msgid "Invalid topology time attributes.\n"
-msgstr "올바르지 않은 토폴로지 시간 특성.\n"
+msgstr "잘못된 토폴로지 시간 특성입니다.\n"
#: dlls/mferror/mferror.mc:669
msgid "Found loops in topology.\n"
@@ -7346,7 +7346,7 @@ msgstr "스트림 설명자가 선택되지 않았습니다.\n"
#: dlls/mferror/mferror.mc:697
msgid "Source is missing.\n"
-msgstr "소스가 없습니다.\n"
+msgstr "원본이 없습니다.\n"
#: dlls/mferror/mferror.mc:704
msgid "Topology loader does not support sink activates.\n"
@@ -7354,7 +7354,7 @@ msgstr "토폴로지 로더가 싱크 활성화를 지원하지 않습니다.\n"
#: dlls/mferror/mferror.mc:711
msgid "Clock has no time source set.\n"
-msgstr "시계가 시간 소스 설정을 가지고 있지 않습니다.\n"
+msgstr "시계가 시간 원본 집합을 가지고 있지 않습니다.\n"
#: dlls/mferror/mferror.mc:718
msgid "Clock state was already set.\n"
@@ -7362,7 +7362,7 @@ msgstr "시계 상태가 이미 설정되었습니다.\n"
#: dlls/mferror/mferror.mc:725
msgid "Clock is not simple\n"
-msgstr "시계가 단순하지 않습니다.\n"
+msgstr "시계가 단순하지 않습니다\n"
#: dlls/mpr/mpr.rc:35 dlls/wininet/wininet.rc:48
msgid "Enter Network Password"
@@ -7370,7 +7370,7 @@ msgstr "네트워크 암호 입력"
#: dlls/mpr/mpr.rc:38 dlls/wininet/wininet.rc:51 dlls/wininet/wininet.rc:71
msgid "Please enter your username and password:"
-msgstr "사용자 이름과 암호를 입력하십시오:"
+msgstr "사용자 이름과 암호를 입력하세요:"
#: dlls/mpr/mpr.rc:39 dlls/wininet/wininet.rc:52
msgid "Proxy"
@@ -7441,7 +7441,7 @@ msgid ""
"The specified installation package could not be opened. Please check the "
"file path and try again."
msgstr ""
-"지정한 설치 패키지를 열 수 없습니다. 파일 경로를 검사한 후 다시 시도하십시오."
+"지정한 설치 패키지를 열 수 없습니다. 파일 경로를 검사한 후 다시 시도하세요."
#: dlls/msi/msi.rc:32
msgid "path %s not found"
@@ -7449,7 +7449,7 @@ msgstr "경로 %s을(를) 찾을 수 없습니다"
#: dlls/msi/msi.rc:33
msgid "insert disk %s"
-msgstr "디스크 %s을(를) 넣으십시오"
+msgstr "디스크 %s을(를) 넣으세요"
#: dlls/msi/msi.rc:34
msgid ""
@@ -7928,12 +7928,12 @@ msgid ""
"arguments are: [2], [3], [4]}}"
msgstr ""
"설치 프로그램에서 이 패키지를 설치하는 동안 예기치 않은 오류가 발생했습니다. "
-"이 패키지에 문제가 있음을 나타낼 수 있습니다. 오류 코드 [1]. {{인수 : [2], "
+"이 패키지에 문제가 있음을 나타낼 수 있습니다. 오류 코드 [1]. {{인수: [2], "
"[3], [4]}}"
#: dlls/msi/msi.rc:77
msgid "{{Disk full: }}"
-msgstr "{{디스크가 꽉 찼습니다: }}"
+msgstr "{{디스크가 가득 찼습니다: }}"
#: dlls/msi/msi.rc:78
msgid "Action [Time]: [1]. [2]"
@@ -7957,7 +7957,7 @@ msgstr "작업 끝 [Time]: [1]. 반환 값 [2]."
#: dlls/msi/msi.rc:84
msgid "Please insert the disk: [2]"
-msgstr "디스크를 넣으십시오: [2]"
+msgstr "디스크를 넣으세요: [2]"
#: dlls/msi/msi.rc:85
msgid ""
@@ -7965,7 +7965,7 @@ msgid ""
"that you can access it."
msgstr ""
"원본 파일을 찾을 수 없습니다 {{(cabinet)}}: [2]. 파일 존재 및 액세스 가능 여"
-"부를 확인하십시오."
+"부를 확인하세요."
#: dlls/msrle32/msrle32.rc:31
msgid "Wine MS-RLE video codec"
@@ -8161,11 +8161,11 @@ msgstr "목록 항목"
#: dlls/oleacc/oleacc.rc:66
msgid "outline"
-msgstr "외곽선"
+msgstr "윤곽선"
#: dlls/oleacc/oleacc.rc:67
msgid "outline item"
-msgstr "외곽선 항목"
+msgstr "윤곽선 항목"
#: dlls/oleacc/oleacc.rc:68
msgid "page tab"
@@ -8193,7 +8193,7 @@ msgstr "문자"
#: dlls/oleacc/oleacc.rc:74
msgid "push button"
-msgstr "누르기 버튼"
+msgstr "푸쉬 버튼"
#: dlls/oleacc/oleacc.rc:75
msgid "check button"
@@ -8205,15 +8205,15 @@ msgstr "라디오 버튼"
#: dlls/oleacc/oleacc.rc:77
msgid "combo box"
-msgstr "콤보 상자"
+msgstr "콤보 상자"
#: dlls/oleacc/oleacc.rc:78
msgid "drop down"
-msgstr "드룹 다운"
+msgstr "드롭다운"
#: dlls/oleacc/oleacc.rc:79
msgid "progress bar"
-msgstr "진행바"
+msgstr "진행률 표시줄"
#: dlls/oleacc/oleacc.rc:80
msgid "dial"
@@ -8221,7 +8221,7 @@ msgstr "다이얼"
#: dlls/oleacc/oleacc.rc:81
msgid "hot key field"
-msgstr "바로 가기 모음"
+msgstr "바로 가기 키 필드"
#: dlls/oleacc/oleacc.rc:82
msgid "slider"
@@ -8245,7 +8245,7 @@ msgstr "수식"
#: dlls/oleacc/oleacc.rc:87
msgid "drop down button"
-msgstr "드룹 다운 버튼"
+msgstr "드롭다운 버튼"
#: dlls/oleacc/oleacc.rc:88
msgid "menu button"
@@ -8253,11 +8253,11 @@ msgstr "메뉴 버튼"
#: dlls/oleacc/oleacc.rc:89
msgid "grid drop down button"
-msgstr "그립 드룹 다운 단추"
+msgstr "그리드 드롭다운 버튼"
#: dlls/oleacc/oleacc.rc:90
msgid "white space"
-msgstr "빈 공간"
+msgstr "공백"
#: dlls/oleacc/oleacc.rc:91
msgid "page tab list"
@@ -8269,7 +8269,7 @@ msgstr "시계"
#: dlls/oleacc/oleacc.rc:93
msgid "split button"
-msgstr "나누기 단추"
+msgstr "나누기 버튼"
#: dlls/oleacc/oleacc.rc:94
msgid "IP address"
@@ -8277,42 +8277,42 @@ msgstr "IP 주소"
#: dlls/oleacc/oleacc.rc:95
msgid "outline button"
-msgstr "외곽선 단추"
+msgstr "윤곽선 버튼"
#: dlls/oleacc/oleacc.rc:97
msgctxt "object state"
msgid "normal"
-msgstr "normal"
+msgstr "보통"
#: dlls/oleacc/oleacc.rc:98
msgctxt "object state"
msgid "unavailable"
-msgstr "unavailable"
+msgstr "사용할 수 없음"
#: dlls/oleacc/oleacc.rc:99
msgctxt "object state"
msgid "selected"
-msgstr "selected"
+msgstr "선택됨"
#: dlls/oleacc/oleacc.rc:100
msgctxt "object state"
msgid "focused"
-msgstr "focused"
+msgstr "포커스됨"
#: dlls/oleacc/oleacc.rc:101
msgctxt "object state"
msgid "pressed"
-msgstr "pressed"
+msgstr "눌림"
#: dlls/oleacc/oleacc.rc:102
msgctxt "object state"
msgid "checked"
-msgstr "checked"
+msgstr "선택 표시됨"
#: dlls/oleacc/oleacc.rc:103
msgctxt "object state"
msgid "mixed"
-msgstr "mixed"
+msgstr "혼합됨"
#: dlls/oleacc/oleacc.rc:104
msgctxt "object state"
@@ -8322,122 +8322,122 @@ msgstr "읽기 전용"
#: dlls/oleacc/oleacc.rc:105
msgctxt "object state"
msgid "hot tracked"
-msgstr "hot tracked"
+msgstr "상시 추적됨"
#: dlls/oleacc/oleacc.rc:106
msgctxt "object state"
msgid "default"
-msgstr "default"
+msgstr "기본값"
#: dlls/oleacc/oleacc.rc:107
msgctxt "object state"
msgid "expanded"
-msgstr "expanded"
+msgstr "확장됨"
#: dlls/oleacc/oleacc.rc:108
msgctxt "object state"
msgid "collapsed"
-msgstr "collapsed"
+msgstr "축소됨"
#: dlls/oleacc/oleacc.rc:109
msgctxt "object state"
msgid "busy"
-msgstr "busy"
+msgstr "사용 중"
#: dlls/oleacc/oleacc.rc:110
msgctxt "object state"
msgid "floating"
-msgstr "floating"
+msgstr "떠다님"
#: dlls/oleacc/oleacc.rc:111
msgctxt "object state"
msgid "marqueed"
-msgstr "marqueed"
+msgstr "움직임"
#: dlls/oleacc/oleacc.rc:112
msgctxt "object state"
msgid "animated"
-msgstr "animated"
+msgstr "애니메이트됨"
#: dlls/oleacc/oleacc.rc:113
msgctxt "object state"
msgid "invisible"
-msgstr "invisible"
+msgstr "숨김"
#: dlls/oleacc/oleacc.rc:114
msgctxt "object state"
msgid "offscreen"
-msgstr "offscreen"
+msgstr "화면 벗어남"
#: dlls/oleacc/oleacc.rc:115
msgctxt "object state"
msgid "sizeable"
-msgstr "sizeable"
+msgstr "크기 조절 가능"
#: dlls/oleacc/oleacc.rc:116
msgctxt "object state"
msgid "moveable"
-msgstr "moveable"
+msgstr "이동 가능"
#: dlls/oleacc/oleacc.rc:117
msgctxt "object state"
msgid "self voicing"
-msgstr "self voicing"
+msgstr "자가 발성"
#: dlls/oleacc/oleacc.rc:118
msgctxt "object state"
msgid "focusable"
-msgstr "focusable"
+msgstr "포커스 가능"
#: dlls/oleacc/oleacc.rc:119
msgctxt "object state"
msgid "selectable"
-msgstr "selectable"
+msgstr "선택 가능"
#: dlls/oleacc/oleacc.rc:120
msgctxt "object state"
msgid "linked"
-msgstr "linked"
+msgstr "연결됨"
#: dlls/oleacc/oleacc.rc:121
msgctxt "object state"
msgid "traversed"
-msgstr "traversed"
+msgstr "방문됨"
#: dlls/oleacc/oleacc.rc:122
msgctxt "object state"
msgid "multi selectable"
-msgstr "multi selectable"
+msgstr "다중 선택 가능"
#: dlls/oleacc/oleacc.rc:123
msgctxt "object state"
msgid "extended selectable"
-msgstr "extended selectable"
+msgstr "확장된 선택 가능"
#: dlls/oleacc/oleacc.rc:124
msgctxt "object state"
msgid "alert low"
-msgstr "alert low"
+msgstr "낮은 수준의 경고"
#: dlls/oleacc/oleacc.rc:125
msgctxt "object state"
msgid "alert medium"
-msgstr "alert medium"
+msgstr "보통 수준의 경고"
#: dlls/oleacc/oleacc.rc:126
msgctxt "object state"
msgid "alert high"
-msgstr "alert high"
+msgstr "높은 수준의 경고"
#: dlls/oleacc/oleacc.rc:127
msgctxt "object state"
msgid "protected"
-msgstr "protected"
+msgstr "보호됨"
#: dlls/oleacc/oleacc.rc:128
msgctxt "object state"
msgid "has popup"
-msgstr "has popup"
+msgstr "팝업 있음"
#: dlls/oleaut32/oleaut32.rc:30 programs/oleview/oleview.rc:146
msgid "True"
@@ -8553,7 +8553,7 @@ msgid ""
"value, select a property, then choose Edit Value below."
msgstr ""
"이러한 유형의 데이터에 대한 초기화 속성입니다. 값을 편집하려면 속성을 선택한 "
-"다음 아래의 값 편집을 선택합니다."
+"다음 아래의 [값 편집]을 선택합니다."
#: dlls/oledb32/version.rc:115
msgid "&Edit Value..."
@@ -8565,7 +8565,7 @@ msgstr "데이터 링크 오류"
#: dlls/oledb32/version.rc:50
msgid "Please select a provider."
-msgstr "공급자를 선택하십시오."
+msgstr "공급자를 선택하세요."
#: dlls/oledb32/version.rc:51
msgid ""
@@ -8633,7 +8633,7 @@ msgstr "컨트롤 만들기"
#: dlls/oledlg/oledlg.rc:69
msgid "Create From File"
-msgstr "파일로부터 만들기"
+msgstr "파일에서 만들기"
#: dlls/oledlg/oledlg.rc:72
msgid "&Add Control..."
@@ -8641,7 +8641,7 @@ msgstr "컨트롤 추가(&A)..."
#: dlls/oledlg/oledlg.rc:73
msgid "Display As Icon"
-msgstr "아이콘으로 보기"
+msgstr "아이콘으로 표시"
#: dlls/oledlg/oledlg.rc:75 dlls/setupapi/setupapi.rc:61
msgid "Browse..."
@@ -8653,7 +8653,7 @@ msgstr "파일:"
#: dlls/oledlg/oledlg.rc:82
msgid "Paste Special"
-msgstr "특별하게 붙여넣기"
+msgstr "선택하여 붙여넣기"
#: dlls/oledlg/oledlg.rc:85 dlls/setupapi/setupapi.rc:43
msgid "Source:"
@@ -8669,7 +8669,7 @@ msgstr "붙여넣기(&P)"
#: dlls/oledlg/oledlg.rc:88
msgid "Paste &Link"
-msgstr "링크로 붙여넣기(&L)"
+msgstr "연결하여 붙여넣기(&L)"
#: dlls/oledlg/oledlg.rc:90
msgid "&As:"
@@ -8677,7 +8677,7 @@ msgstr "다른 이름으로(&A):"
#: dlls/oledlg/oledlg.rc:97
msgid "&Display As Icon"
-msgstr "아이콘으로 보기(&D)"
+msgstr "아이콘으로 표시(&D)"
#: dlls/oledlg/oledlg.rc:99
msgid "Change &Icon..."
@@ -8794,7 +8794,7 @@ msgstr "스캔 중"
#: dlls/sane.ds/sane.rc:44
msgid "SCANNING... Please Wait"
-msgstr "스캔 중... 기다려 주십시오"
+msgstr "스캔 중... 기다려 주세요"
#: dlls/sane.ds/sane.rc:31
msgctxt "unit: pixels"
@@ -8863,12 +8863,12 @@ msgid ""
"Insert the manufacturer's installation disk, and then\n"
"make sure the correct drive is selected below"
msgstr ""
-"제작사의 설치 디스크를 삽입하고,\n"
+"제조업체 설치 디스크를 삽입하고,\n"
"아래의 선택된 드라이브가 올바른지 확인하시오"
#: dlls/setupapi/setupapi.rc:57
msgid "Copy manufacturer's files from:"
-msgstr "제작사의 파일이 복사할 곳:"
+msgstr "제조업체의 파일을 복사하세요:"
#: dlls/setupapi/setupapi.rc:31
msgid "The file '%1' on %2 is needed"
@@ -8876,15 +8876,15 @@ msgstr "%2의 '%1' 파일이 필요합니다"
#: dlls/setupapi/setupapi.rc:32 programs/ipconfig/ipconfig.rc:34
msgid "Unknown"
-msgstr "없음"
+msgstr "알 수 없음"
#: dlls/setupapi/setupapi.rc:33
msgid "Copy files from:"
-msgstr "복사할 파일이 위치한 곳:"
+msgstr "파일을 복사하세요:"
#: dlls/setupapi/setupapi.rc:34
msgid "Type the path where the file is located, and then click OK."
-msgstr "파일이 위치한 경로를 입력하고, [확인]을 클릭하십시오."
+msgstr "파일이 위치한 경로를 입력하고, [확인]을 클릭하세요."
#: dlls/shdoclc/shdoclc.rc:42
msgid "F&orward"
@@ -8892,7 +8892,7 @@ msgstr "앞으로(&O)"
#: dlls/shdoclc/shdoclc.rc:44
msgid "&Save Background As..."
-msgstr "배경으로 저장(&S)..."
+msgstr "다른 이름으로 배경 저장(&S)..."
#: dlls/shdoclc/shdoclc.rc:45
msgid "Set As Back&ground"
@@ -8900,7 +8900,7 @@ msgstr "배경으로 설정(&G)"
#: dlls/shdoclc/shdoclc.rc:46
msgid "&Copy Background"
-msgstr "배경으로 복사(&C)"
+msgstr "배경 화면 복사(&C)"
#: dlls/shdoclc/shdoclc.rc:47
msgid "Set as &Desktop Item"
@@ -8942,28 +8942,28 @@ msgstr "다른 이름으로 저장(&A)..."
#: dlls/shdoclc/shdoclc.rc:69 dlls/shdoclc/shdoclc.rc:130
#: dlls/shdoclc/shdoclc.rc:152 dlls/shdoclc/shdoclc.rc:176
msgid "&Print Target"
-msgstr "타겟 저장(&P)"
+msgstr "대상 인쇄(&P)"
#: dlls/shdoclc/shdoclc.rc:71 dlls/shdoclc/shdoclc.rc:154
#: dlls/shdoclc/shdoclc.rc:178
msgid "S&how Picture"
-msgstr "그림 보기(&H)"
+msgstr "사진 표시(&H)"
#: dlls/shdoclc/shdoclc.rc:72 dlls/shdoclc/shdoclc.rc:179
msgid "&Save Picture As..."
-msgstr "다른 이름으로 그림 저장(&S)..."
+msgstr "다른 이름으로 사진 저장(&S)..."
#: dlls/shdoclc/shdoclc.rc:73
msgid "&E-mail Picture..."
-msgstr "그림을 전자메일로(&E)..."
+msgstr "사진을 메일로 보내기(&E)..."
#: dlls/shdoclc/shdoclc.rc:74
msgid "Pr&int Picture..."
-msgstr "그림 인쇄(&I)..."
+msgstr "사진 인쇄(&I)..."
#: dlls/shdoclc/shdoclc.rc:75
msgid "&Go to My Pictures"
-msgstr "내 그림으로 가기(&G)"
+msgstr "[내 사진]으로 가기(&G)"
#: dlls/shdoclc/shdoclc.rc:76 dlls/shdoclc/shdoclc.rc:156
#: dlls/shdoclc/shdoclc.rc:180
@@ -9000,15 +9000,15 @@ msgstr "선택(&S)"
#: dlls/shdoclc/shdoclc.rc:105
msgid "&Cell"
-msgstr "칸(&C)"
+msgstr "셀(&C)"
#: dlls/shdoclc/shdoclc.rc:106
msgid "&Row"
-msgstr "가로줄(&R)"
+msgstr "행(&R)"
#: dlls/shdoclc/shdoclc.rc:107
msgid "&Column"
-msgstr "세로줄(&C)"
+msgstr "열(&C)"
#: dlls/shdoclc/shdoclc.rc:108
msgid "&Table"
@@ -9016,7 +9016,7 @@ msgstr "표(&T)"
#: dlls/shdoclc/shdoclc.rc:111
msgid "&Cell Properties"
-msgstr "가로줄 속성(&C)"
+msgstr "셀 속성(&C)"
#: dlls/shdoclc/shdoclc.rc:112
msgid "&Table Properties"
@@ -9032,7 +9032,7 @@ msgstr "잘라내기"
#: dlls/shdoclc/shdoclc.rc:155
msgid "&Save Video As..."
-msgstr "비디오 다른 이름으로 저장(&S)..."
+msgstr "다른 이름으로 비디오 저장(&S)..."
#: dlls/shdoclc/shdoclc.rc:166 dlls/shdoclc/shdoclc.rc:190
msgid "Play"
@@ -9044,7 +9044,7 @@ msgstr "다시 감기"
#: dlls/shdoclc/shdoclc.rc:199
msgid "Trace Tags"
-msgstr "태그 추적"
+msgstr "추적 태그"
#: dlls/shdoclc/shdoclc.rc:200
msgid "Resource Failures"
@@ -9060,7 +9060,7 @@ msgstr "디버깅 중지"
#: dlls/shdoclc/shdoclc.rc:203
msgid "Debug View"
-msgstr "디버깅 정보 보기"
+msgstr "디버깅 보기"
#: dlls/shdoclc/shdoclc.rc:204
msgid "Dump Tree"
@@ -9068,19 +9068,19 @@ msgstr "트리 덤프"
#: dlls/shdoclc/shdoclc.rc:205
msgid "Dump Lines"
-msgstr "라인 덤프"
+msgstr "줄 덤프"
#: dlls/shdoclc/shdoclc.rc:206
msgid "Dump DisplayTree"
-msgstr "디스플레이트리 덤프"
+msgstr "DisplayTree 덤프"
#: dlls/shdoclc/shdoclc.rc:207
msgid "Dump FormatCaches"
-msgstr "포맷캐쉬 덤프"
+msgstr "FormatCaches 덤프"
#: dlls/shdoclc/shdoclc.rc:208
msgid "Dump LayoutRects"
-msgstr "레이아웃렉트 덤프"
+msgstr "LayoutRects 덤프"
#: dlls/shdoclc/shdoclc.rc:209
msgid "Memory Monitor"
@@ -9088,7 +9088,7 @@ msgstr "메모리 모니터"
#: dlls/shdoclc/shdoclc.rc:210
msgid "Performance Meters"
-msgstr "성능 측정"
+msgstr "성능 측정기"
#: dlls/shdoclc/shdoclc.rc:211
msgid "Save HTML"
@@ -9096,31 +9096,31 @@ msgstr "HTML 저장"
#: dlls/shdoclc/shdoclc.rc:213
msgid "&Browse View"
-msgstr "보기 상태(&B)"
+msgstr "브라우저 보기(&B)"
#: dlls/shdoclc/shdoclc.rc:214
msgid "&Edit View"
-msgstr "편집 상태(&E)"
+msgstr "편집 보기(&E)"
#: dlls/shdoclc/shdoclc.rc:219 dlls/shdoclc/shdoclc.rc:233
msgid "Scroll Here"
-msgstr "여기서 스크롤"
+msgstr "여기로 스크롤"
#: dlls/shdoclc/shdoclc.rc:221
msgid "Top"
-msgstr "위"
+msgstr "맨 위"
#: dlls/shdoclc/shdoclc.rc:222
msgid "Bottom"
-msgstr "아래"
+msgstr "맨 아래"
#: dlls/shdoclc/shdoclc.rc:224
msgid "Page Up"
-msgstr "위 페이지"
+msgstr "페이지 위로"
#: dlls/shdoclc/shdoclc.rc:225
msgid "Page Down"
-msgstr "아래 페이지"
+msgstr "페이지 아래로"
#: dlls/shdoclc/shdoclc.rc:227
msgid "Scroll Up"
@@ -9160,7 +9160,7 @@ msgstr "Wine 인터넷 익스폴로어"
#: dlls/shdoclc/shdoclc.rc:33
msgid "&w&bPage &p"
-msgstr "&w&b&p쪽"
+msgstr "&w&b페이지 &p"
#: dlls/shell32/shell32.rc:30 dlls/shell32/shell32.rc:45
#: dlls/shell32/shell32.rc:122 dlls/shell32/shell32.rc:162
@@ -9194,19 +9194,19 @@ msgstr "아이콘 정렬(&I)"
#: dlls/shell32/shell32.rc:53
msgid "By &Name"
-msgstr "이름으로(&N)"
+msgstr "이름별(&N)"
#: dlls/shell32/shell32.rc:54
msgid "By &Type"
-msgstr "형식으로(&T)"
+msgstr "종류별(&T)"
#: dlls/shell32/shell32.rc:55
msgid "By &Size"
-msgstr "크기로(&S)"
+msgstr "크기순(&S)"
#: dlls/shell32/shell32.rc:56
msgid "By &Date"
-msgstr "날짜로(&D)"
+msgstr "날짜순(&D)"
#: dlls/shell32/shell32.rc:58
msgid "&Auto Arrange"
@@ -9214,7 +9214,7 @@ msgstr "자동 정렬(&A)"
#: dlls/shell32/shell32.rc:60
msgid "Line up Icons"
-msgstr "아이콘 정렬"
+msgstr "아이콘 줄 맞춤"
#: dlls/shell32/shell32.rc:65
msgid "Paste as Link"
@@ -9308,7 +9308,7 @@ msgstr "%s 실행중"
#: dlls/shell32/shell32.rc:329
msgid "Wine was brought to you by:"
-msgstr "Wine에 도움주신 분:"
+msgstr "Wine 기여자 목록:"
#: dlls/shell32/shell32.rc:334
msgid "Run"
@@ -9319,7 +9319,7 @@ msgid ""
"Type the name of a program, folder, document, or Internet resource, and Wine "
"will open it for you."
msgstr ""
-"프로그램,폴더,문서나 인터넷 자원, 그리고 Wine이 열 것의 이름을 적어주세요."
+"프로그램, 폴더, 문서 또는 인터넷 리소스의 이름을 입력하면 Wine이 열어줍니다."
#: dlls/shell32/shell32.rc:339
msgid "&Open:"
@@ -9373,11 +9373,11 @@ msgstr "바꾸기(&C)..."
#: dlls/shell32/shell32.rc:400
msgid "Last modified:"
-msgstr "수정날짜:"
+msgstr "마지막으로 수정한 날짜:"
#: dlls/shell32/shell32.rc:402
msgid "Last accessed:"
-msgstr "마지막 접근:"
+msgstr "마지막으로 액세스한 날짜:"
#: dlls/shell32/shell32.rc:138 dlls/shell32/shell32.rc:142
#: programs/winefile/winefile.rc:107
@@ -9390,7 +9390,7 @@ msgstr "종류"
#: dlls/shell32/shell32.rc:140
msgid "Modified"
-msgstr "수정날짜"
+msgstr "수정됨"
#: dlls/shell32/shell32.rc:141 programs/winefile/winefile.rc:171
#: programs/winefile/winefile.rc:113
@@ -9399,7 +9399,7 @@ msgstr "속성"
#: dlls/shell32/shell32.rc:143
msgid "Size available"
-msgstr "가능한 크기"
+msgstr "사용할 수 있는 크기"
#: dlls/shell32/shell32.rc:145
msgid "Comments"
@@ -9419,7 +9419,7 @@ msgstr "원래 위치"
#: dlls/shell32/shell32.rc:149
msgid "Date deleted"
-msgstr "지워진 날짜"
+msgstr "삭제된 날짜"
#: dlls/shell32/shell32.rc:156 programs/winecfg/winecfg.rc:100
#: programs/winefile/winefile.rc:99
@@ -9519,7 +9519,7 @@ msgstr "Common Files"
#: dlls/shell32/shell32.rc:219 dlls/shell32/shell32.rc:150
#: dlls/shell32/shell32.rc:235
msgid "Documents"
-msgstr "내 문서"
+msgstr "문서"
#: dlls/shell32/shell32.rc:220
msgid "Administrative Tools"
@@ -9527,15 +9527,15 @@ msgstr "관리 도구"
#: dlls/shell32/shell32.rc:221
msgid "Music"
-msgstr "내 음악"
+msgstr "음악"
#: dlls/shell32/shell32.rc:222
msgid "Pictures"
-msgstr "내 그림"
+msgstr "그림"
#: dlls/shell32/shell32.rc:223
msgid "Videos"
-msgstr "내 비디오"
+msgstr "비디오"
#: dlls/shell32/shell32.rc:216
msgid "Program Files (x86)"
@@ -10707,7 +10707,7 @@ msgid ""
"not click install unless you have absolute trust in the above source."
msgstr ""
"설치할 때, ActiveX 구성 요소는 컴퓨터에 대한 완전한 액세스 권한을 가집니다. "
-"위 원본에 대한 절대적인 신뢰가 없는 경우 [설치]를 클릭하지 마십시오."
+"위 원본에 대한 절대적인 신뢰가 없는 경우 [설치]를 클릭하지 마세요."
#: dlls/urlmon/urlmon.rc:51
msgid "Installation of component failed: %08x"
@@ -10836,7 +10836,7 @@ msgstr "개체 변수가 설정되어 있지 않습니다"
#: dlls/vbscript/vbscript.rc:44
msgid "Invalid use of Null"
-msgstr "올바르지 않은 널 사용"
+msgstr "잘못된 널 사용"
#: dlls/vbscript/vbscript.rc:45
msgid "Can't create necessary temporary file"
@@ -10880,7 +10880,7 @@ msgstr "지정한 DLL 함수를 찾을 수 없습니다"
#: dlls/vbscript/vbscript.rc:58
msgid "Variable uses an Automation type not supported in VBScript"
-msgstr "변수에 VBScript에서 지원하지 않는 자동화 형식이 사용되었습니다"
+msgstr "변수에 VBScript에서 지원되지 않는 자동화 형식이 사용되었습니다"
#: dlls/vbscript/vbscript.rc:59
msgid "The remote server machine does not exist or is unavailable"
@@ -10888,7 +10888,7 @@ msgstr "원격 서버가 없거나 사용할 수 없습니다"
#: dlls/vbscript/vbscript.rc:60
msgid "Invalid or unqualified reference"
-msgstr "올바르지 않거나 비정규화된 참조"
+msgstr "잘못된 참조입니다"
#: dlls/vbscript/vbscript.rc:62
msgid "Microsoft VBScript compilation error"
@@ -10980,7 +10980,7 @@ msgstr "알려지지 않았거나 신뢰할 수 없는 게시자가 발행한
#: dlls/wininet/wininet.rc:30
msgid "The date on the certificate is invalid."
-msgstr "인증서 날짜가 올바르지 않습니다."
+msgstr "인증서 날짜가 잘못되었습니다."
#: dlls/wininet/wininet.rc:31
msgid "The name on the certificate does not match the site."
@@ -11025,7 +11025,7 @@ msgstr "내부 오류 발생.\n"
#: dlls/wininet/winineterror.mc:36
msgid "The URL is invalid.\n"
-msgstr "URL이 올바르지 않습니다.\n"
+msgstr "URL이 잘못되었습니다.\n"
#: dlls/wininet/winineterror.mc:41
msgid "The URL scheme could not be recognized or is not supported.\n"
@@ -11037,7 +11037,7 @@ msgstr "서버 이름을 확인할 수 없습니다.\n"
#: dlls/wininet/winineterror.mc:51
msgid "The requested operation is invalid.\n"
-msgstr "요청한 작업이 올바르지 않습니다.\n"
+msgstr "요청한 작업이 잘못되었습니다.\n"
#: dlls/wininet/winineterror.mc:56
msgid ""
@@ -11091,7 +11091,7 @@ msgid ""
"again."
msgstr ""
"지정한 장치가 이미 사용되고 있습니다. 사용할 수 있을 때까지 기다린 다음 다시 "
-"시도하십시오."
+"시도하세요."
#: dlls/winmm/winmm.rc:37
msgid "The specified device handle is invalid."
@@ -11107,15 +11107,15 @@ msgid ""
"increase available memory, and then try again."
msgstr ""
"메모리가 부족하기 때문에 이 작업을 할 수 없습니다. 응용 프로그램을 한 개 이"
-"상 닫아 사용 가능한 메모리를 늘린 다음 다시 실행하십시오."
+"상 닫아 사용 가능한 메모리를 늘린 다음 다시 실행하세요."
#: dlls/winmm/winmm.rc:40
msgid ""
"This function is not supported. Use the Capabilities function to determine "
"which functions and messages the driver supports."
msgstr ""
-"이 기능은 지원하지 않습니다. Capabilities 함수를 사용하여 드라이버가 지원하"
-"는 기능 및 메시지를 결정하십시오."
+"이 기능은 지원되지 않습니다. Capabilities 함수를 사용하여 드라이버가 지원하"
+"는 기능 및 메시지를 결정하세요."
#: dlls/winmm/winmm.rc:41
msgid "An error number was specified that is not defined in the system."
@@ -11135,7 +11135,7 @@ msgid ""
"Capabilities function to determine the supported formats."
msgstr ""
"지정한 형식이 지원되지 않거나 변환할 수 없습니다. 지원되는 형식을 결정하려면 "
-"Capabilities 함수를 사용하십시오."
+"Capabilities 함수를 사용하세요."
#: dlls/winmm/winmm.rc:47 dlls/winmm/winmm.rc:53
msgid ""
@@ -11151,7 +11151,7 @@ msgid ""
"header, and then try again."
msgstr ""
"웨이브 헤더가 준비되지 않았습니다. Prepare 함수를 사용하여 헤더를 준비한 후 "
-"다시 시도하십시오."
+"다시 시도하세요."
#: dlls/winmm/winmm.rc:49
msgid ""
@@ -11159,7 +11159,7 @@ msgid ""
"and then try again."
msgstr ""
"WAVE_ALLOWSYNC 플래그를 사용하지 않고 장치를 열 수 없습니다. 플래그를 사용한 "
-"후 다시 시도하십시오."
+"후 다시 시도하세요."
#: dlls/winmm/winmm.rc:52
msgid ""
@@ -11167,7 +11167,7 @@ msgid ""
"header, and then try again."
msgstr ""
"MIDI 헤더가 준비되지 않았습니다. Prepare 함수를 사용하여 헤더를 준비한 후 다"
-"시 시도하십시오."
+"시 시도하세요."
#: dlls/winmm/winmm.rc:54
msgid ""
@@ -11183,7 +11183,7 @@ msgid ""
"transmitted, and then try again."
msgstr ""
"포트가 데이터를 장치로 전송하고 있습니다. 데이터가 모두 전송될 때까지 기다린 "
-"후 다시 시도하십시오."
+"후 다시 시도하세요."
#: dlls/winmm/winmm.rc:56 dlls/winmm/winmm.rc:129
msgid ""
@@ -11197,12 +11197,11 @@ msgid ""
"Windows SYSTEM directory, and then try again."
msgstr ""
"현재 MIDI 설정이 손상되었습니다. 원래의 MIDIMAP.CFG 파일을 Windows SYSTEM 디"
-"렉터리에 복사한 후 다시 시도하십시오."
+"렉터리에 복사한 후 다시 시도하세요."
#: dlls/winmm/winmm.rc:60
msgid "Invalid MCI device ID. Use the ID returned when opening the MCI device."
-msgstr ""
-"MCI 장치 ID가 잘못되었습니다. MCI 장치를 열 때 반환된 ID를 사용하십시오."
+msgstr "MCI 장치 ID가 잘못되었습니다. MCI 장치를 열 때 반환된 ID를 사용하세요."
#: dlls/winmm/winmm.rc:61
msgid "The driver cannot recognize the specified command parameter."
@@ -11218,7 +11217,7 @@ msgid ""
"or contact the device manufacturer."
msgstr ""
"미디어 장치에 문제가 있습니다. 제대로 작동하는지 확인하거나 장치 제조업체에 "
-"문의하십시오."
+"문의하세요."
#: dlls/winmm/winmm.rc:64
msgid "The specified device is not open or is not recognized by MCI."
@@ -11230,7 +11229,7 @@ msgid ""
"unique alias."
msgstr ""
"프로그램에서 장치 이름을 이미 별칭으로 사용하고 있습니다. 고유한 별칭을 사용"
-"하십시오."
+"하세요."
#: dlls/winmm/winmm.rc:67
msgid ""
@@ -11253,7 +11252,7 @@ msgstr ""
msgid ""
"The specified command requires a character-string parameter. Please provide "
"one."
-msgstr "지정한 명령에 문자열 매개변수가 필요합니다. 매개변수를 입력하십시오."
+msgstr "지정한 명령에 문자열 매개변수가 필요합니다. 매개변수를 입력하세요."
#: dlls/winmm/winmm.rc:71
msgid "The specified integer is invalid for this command."
@@ -11265,7 +11264,7 @@ msgid ""
"manufacturer about obtaining a new driver."
msgstr ""
"장치 드라이버가 잘못된 반환 형식을 반환했습니다. 새 드라이버를 얻을 수 있는"
-"지 장치 제조업체에 확인하십시오."
+"지 장치 제조업체에 확인하세요."
#: dlls/winmm/winmm.rc:73
msgid ""
@@ -11273,21 +11272,20 @@ msgid ""
"manufacturer about obtaining a new driver."
msgstr ""
"장치 드라이버에 문제가 있습니다. 새 드라이버를 얻을 수 있는지 장치 제조업체"
-"에 확인하십시오."
+"에 확인하세요."
#: dlls/winmm/winmm.rc:74
msgid "The specified command requires a parameter. Please supply one."
-msgstr "지정한 명령은 매개변수가 필요합니다. 매개변수를 입력하십시오."
+msgstr "지정한 명령은 매개변수가 필요합니다. 매개변수를 입력하세요."
#: dlls/winmm/winmm.rc:75
msgid "The MCI device you are using does not support the specified command."
-msgstr "사용 중인 MCI 장치가 지정한 명령을 지원하지 않습니다."
+msgstr "사용 중인 MCI 장치가 지정한 명령을 지원되지 않습니다."
#: dlls/winmm/winmm.rc:76
msgid ""
"Cannot find the specified file. Make sure the path and filename are correct."
-msgstr ""
-"지정한 파일을 찾을 수 없습니다.경로와 파일 이름이 올바른지 확인하십시오."
+msgstr "지정한 파일을 찾을 수 없습니다.경로와 파일 이름이 올바른지 확인하세요."
#: dlls/winmm/winmm.rc:77
msgid "The device driver is not ready."
@@ -11295,7 +11293,7 @@ msgstr "장치 드라이버가 준비되지 않았습니다."
#: dlls/winmm/winmm.rc:78
msgid "A problem occurred in initializing MCI. Try restarting Windows."
-msgstr "MCI 초기화 중 문제가 발생했습니다. Windows를 다시 시작하십시오."
+msgstr "MCI 초기화 중 문제가 발생했습니다. Windows를 다시 시작하세요."
#: dlls/winmm/winmm.rc:79
msgid ""
@@ -11335,7 +11333,7 @@ msgid ""
"still connected to the network."
msgstr ""
"지정한 파일을 저장할 수 없습니다. 디스크 공간이 충분한지 또는 아직 네트에크"
-"에 연결되어 있는지 확인하십시오."
+"에 연결되어 있는지 확인하세요."
#: dlls/winmm/winmm.rc:86
msgid ""
@@ -11343,13 +11341,13 @@ msgid ""
"device name is spelled correctly."
msgstr ""
"지정한 장치를 찾을 수 없습니다. 장치가 설치 여부와 장치 이름 철자가 올바른지"
-"를 확인하십시오."
+"를 확인하세요."
#: dlls/winmm/winmm.rc:87
msgid ""
"The specified device is now being closed. Wait a few seconds, and then try "
"again."
-msgstr "지정한 장치는 현재 닫혀 있습니다. 잠시 기다린 후, 다시 시도하십시오."
+msgstr "지정한 장치는 현재 닫혀 있습니다. 잠시 기다린 후, 다시 시도하세요."
#: dlls/winmm/winmm.rc:88
msgid ""
@@ -11357,7 +11355,7 @@ msgid ""
"alias."
msgstr ""
"지정한 별칭이 이미 응용프로그램에서 사용되고 있습니다. 다른 고유한 별칭을 사"
-"용하십시오."
+"용하세요."
#: dlls/winmm/winmm.rc:89
msgid "The specified parameter is invalid for this command."
@@ -11369,7 +11367,7 @@ msgid ""
"parameter with each 'open' command."
msgstr ""
"장치 드라이버가 이미 사용되고 있습니다. 공유하려면 각 'open' 명령마다 "
-"'shareable' 매개변수를 사용하십시오."
+"'shareable' 매개변수를 사용하세요."
#: dlls/winmm/winmm.rc:91
msgid ""
@@ -11377,7 +11375,7 @@ msgid ""
"Please supply one."
msgstr ""
"지정한 명령은 별칭, 파일, 드라이버 또는 장치 이름이 필요합니다. 이 중 하나를 "
-"입력하십시오."
+"입력하세요."
#: dlls/winmm/winmm.rc:92
msgid ""
@@ -11385,17 +11383,17 @@ msgid ""
"documentation for valid formats."
msgstr ""
"시간 형식에 지정한 값이 잘못되었습니다. MCI 문서에서 유효한 형식에 관한 내용"
-"을 참조하십시오."
+"을 참조하세요."
#: dlls/winmm/winmm.rc:93
msgid ""
"A closing double-quotation mark is missing from the parameter value. Please "
"supply one."
-msgstr "매개변수 값에 닫는 큰 따옴표(\")가 빠졌습니다. 입력하십시오."
+msgstr "매개변수 값에 닫는 큰 따옴표(\")가 빠졌습니다. 입력하세요."
#: dlls/winmm/winmm.rc:94
msgid "A parameter or value was specified twice. Only specify it once."
-msgstr "매개변수 또는 값을 두 번 지정했습니다. 한번만 지정하십시오."
+msgstr "매개변수 또는 값을 두 번 지정했습니다. 한번만 지정하세요."
#: dlls/winmm/winmm.rc:95
msgid ""
@@ -11411,7 +11409,7 @@ msgstr "비어있는 매개변수 블럭이 MCI에 전달되었습니다."
#: dlls/winmm/winmm.rc:97
msgid "Cannot save an unnamed file. Supply a filename."
-msgstr "이름없는 파일을 저장할 수 없습니다. 파일 이름을 지정하십시오."
+msgstr "이름없는 파일을 저장할 수 없습니다. 파일 이름을 지정하세요."
#: dlls/winmm/winmm.rc:98
msgid "You must specify an alias when using the 'new' parameter."
@@ -11431,7 +11429,7 @@ msgid ""
"sequence, and then try again."
msgstr ""
"지정한 순서대로 명령을 수행할 수 없습니다. 명령 순서를 수정한 다음 다시 시도"
-"하십시오."
+"하세요."
#: dlls/winmm/winmm.rc:102
msgid ""
@@ -11439,7 +11437,7 @@ msgid ""
"the device is closed, and then try again."
msgstr ""
"자동 열기 장치에서 지정한 명령을 수행할 수 없습니다. 장치가 닫힐 때까지 기다"
-"렸다가 다시 시도하십시오."
+"렸다가 다시 시도하세요."
#: dlls/winmm/winmm.rc:103
msgid ""
@@ -11447,7 +11445,7 @@ msgid ""
"characters, followed by a period and an extension."
msgstr ""
"파일 이름이 잘못되었습니다. 파일 이름이 8 문자를 넘지 않고, 점과 확장명이 있"
-"는지 확인하십시오."
+"는지 확인하세요."
#: dlls/winmm/winmm.rc:104
msgid ""
@@ -11460,7 +11458,7 @@ msgid ""
"in Control Panel to install the device."
msgstr ""
"지정한 장치가 시스템에 설치되지 않았습니다. 제어판에서 드라이버 옵션을 사용하"
-"여 장치를 설치하십시오."
+"여 장치를 설치하세요."
#: dlls/winmm/winmm.rc:106
msgid ""
@@ -11468,7 +11466,7 @@ msgid ""
"restarting your computer."
msgstr ""
"지정한 파일이나 MCI 장치에 접근할 수 없습니다. 디렉터리를 바꾸거나 컴퓨터를 "
-"다시 시작하십시오."
+"다시 시작하세요."
#: dlls/winmm/winmm.rc:107
msgid ""
@@ -11488,17 +11486,17 @@ msgstr ""
#: dlls/winmm/winmm.rc:109
msgid "Specify a device or driver name that is less than 79 characters."
-msgstr "장치나 드라이버 이름을 79자 미만으로 지정하십시오."
+msgstr "장치나 드라이버 이름을 79자 미만으로 지정하세요."
#: dlls/winmm/winmm.rc:110
msgid "Specify a device or driver name that is less than 69 characters."
-msgstr "장치나 드라이버 이름을 69자 미만으로 지정하십시오."
+msgstr "장치나 드라이버 이름을 69자 미만으로 지정하세요."
#: dlls/winmm/winmm.rc:111
msgid ""
"The specified command requires an integer parameter. Please provide one."
msgstr ""
-"지정한 명령에는 정수 매개변수가 필요합니다. 올바른 매개변수를 지정하십시오."
+"지정한 명령에는 정수 매개변수가 필요합니다. 올바른 매개변수를 지정하세요."
#: dlls/winmm/winmm.rc:112
msgid ""
@@ -11506,7 +11504,7 @@ msgid ""
"until a wave device is free, and then try again."
msgstr ""
"현재 형식으로 파일을 재생할 수 있는 모든 웨이브 장치가 사용 중입니다. 웨이브 "
-"장치를 사용할 수 있을 때까지 기다린 다음 다시 시도하십시오."
+"장치를 사용할 수 있을 때까지 기다린 다음 다시 시도하세요."
#: dlls/winmm/winmm.rc:113
msgid ""
@@ -11514,7 +11512,7 @@ msgid ""
"until the device is free, and then try again."
msgstr ""
"현재 웨이브 장치가 사용 중이므로 재생하도록 설정할 수 없습니다. 장치를 사용"
-"할 수 있을 때까지 기다린 다음 다시 시도하십시오."
+"할 수 있을 때까지 기다린 다음 다시 시도하세요."
#: dlls/winmm/winmm.rc:114
msgid ""
@@ -11522,7 +11520,7 @@ msgid ""
"Wait until a wave device is free, and then try again."
msgstr ""
"파일을 현재 형식으로 녹음할 수 있는 모든 웨이브 장치가 사용 중입니다. 웨이브 "
-"장치를 사용할 수 있을 때까지 기다린 다음 다시 시도하십시오."
+"장치를 사용할 수 있을 때까지 기다린 다음 다시 시도하세요."
#: dlls/winmm/winmm.rc:115
msgid ""
@@ -11530,7 +11528,7 @@ msgid ""
"until the device is free, and then try again."
msgstr ""
"현재 웨이브 장치가 사용 중이므로 녹음하도록 설정할 수 없습니다. 장치를 사용"
-"할 수 있을 때까지 기다린 다음 다시 시도하십시오."
+"할 수 있을 때까지 기다린 다음 다시 시도하세요."
#: dlls/winmm/winmm.rc:116
msgid "Any compatible waveform playback device may be used."
@@ -11546,7 +11544,7 @@ msgid ""
"the Drivers option to install the wave device."
msgstr ""
"현재 형식으로 파일을 재생할 수 있는 웨이브 장치가 설치되지 않았습니다. [드라"
-"이버] 옵션을 사용하여 웨이브 장치를 설치하십시오."
+"이버] 옵션을 사용하여 웨이브 장치를 설치하세요."
#: dlls/winmm/winmm.rc:119
msgid ""
@@ -11560,7 +11558,7 @@ msgid ""
"the Drivers option to install the wave device."
msgstr ""
"현재 형식으로 파일을 기록할 수 있는 웨이브 장치가 설치되지 않았습니다. [드라"
-"이버] 옵션을 사용하여 웨이브 장치를 설치하십시오."
+"이버] 옵션을 사용하여 웨이브 장치를 설치하세요."
#: dlls/winmm/winmm.rc:121
msgid ""
@@ -11582,7 +11580,7 @@ msgid ""
"try again."
msgstr ""
"저정한 MIDI 포트는 이미 사용 중입니다. 사용할 수 있을 때까지 기다렸다가 다시 "
-"시도하십시오."
+"시도하세요."
#: dlls/winmm/winmm.rc:131
msgid ""
@@ -11590,7 +11588,7 @@ msgid ""
"option from the Control Panel to install a MIDI device."
msgstr ""
"지정한 MIDI 장치는 시스템에 설치되어 있지 않습니다. 제어판에서 [드라이버] 옵"
-"션을 사용해서 MIDI 장치를 설치하십시오."
+"션을 사용해서 MIDI 장치를 설치하세요."
#: dlls/winmm/winmm.rc:130
msgid "An error occurred with the specified port."
@@ -11602,7 +11600,7 @@ msgid ""
"these applications, and then try again."
msgstr ""
"모든 멀티미디어 타이머는 다른 프로그램에서 사용되고 있습니다. 이 중 하나를 종"
-"료한 다음 다시 시도하십시오."
+"료한 다음 다시 시도하세요."
#: dlls/winmm/winmm.rc:132
msgid "The system doesn't have a current MIDI port specified."
@@ -11614,7 +11612,7 @@ msgid ""
"Control Panel to install a MIDI driver."
msgstr ""
"시스템에 MIDI 장치가 설치되어 있지 않습니다. 제어판에서 [드라이버] 옵션을 사"
-"용해서 MIDI 드라이버를 설치하십시오."
+"용해서 MIDI 드라이버를 설치하세요."
#: dlls/winmm/winmm.rc:122
msgid "There is no display window."
@@ -11630,7 +11628,7 @@ msgid ""
"check your disk or network connection."
msgstr ""
"지정한 파일을 읽을 수 없습니다. 파일이 있는지 확인하거나, 디스크나 네트워크 "
-"연결을 확인하십시오."
+"연결을 확인하세요."
#: dlls/winmm/winmm.rc:125
msgid ""
@@ -11638,7 +11636,7 @@ msgid ""
"are still connected to the network."
msgstr ""
"지정한 파일에 쓸 수 없습니다. 디스크 용량이 충분한 지 또는 네트워크 연결이 되"
-"었는지 확인하십시오."
+"었는지 확인하세요."
#: dlls/winmm/winmm.rc:136
msgid "Wine Sound Mapper"
@@ -11666,7 +11664,7 @@ msgstr "출력 파일 이름(&O):"
#: dlls/winspool.drv/winspool.rc:31
msgid "The output file already exists. Click OK to overwrite."
-msgstr "출력 파일이 이미 존재합니다. 덮어 쓰려면 [확인]을 클릭하십시오."
+msgstr "출력 파일이 이미 존재합니다. 덮어 쓰려면 [확인]을 클릭하세요."
#: dlls/winspool.drv/winspool.rc:32
msgid "Unable to create the output file."
@@ -11686,43 +11684,43 @@ msgstr "프로토콜 오류"
#: dlls/wldap32/wldap32.rc:35
msgid "Time Limit Exceeded"
-msgstr "시간 제한 도달"
+msgstr "시간 제한 초과"
#: dlls/wldap32/wldap32.rc:36
msgid "Size Limit Exceeded"
-msgstr "크기 제한 도달"
+msgstr "크기 제한 초과"
#: dlls/wldap32/wldap32.rc:37
msgid "Compare False"
-msgstr "잘못된 비교"
+msgstr "비교 - 거짓"
#: dlls/wldap32/wldap32.rc:38
msgid "Compare True"
-msgstr "잘된 비교"
+msgstr "비교 - 참"
#: dlls/wldap32/wldap32.rc:39
msgid "Authentication Method Not Supported"
-msgstr "인증 방법을 지원하지 않습니다"
+msgstr "지원되지 않는 인증 방법입니다"
#: dlls/wldap32/wldap32.rc:40
msgid "Strong Authentication Required"
-msgstr "강력한 인증이 필요합니다"
+msgstr "높은 수준의 인증이 요구됩니다"
#: dlls/wldap32/wldap32.rc:41
msgid "Referral (v2)"
-msgstr "추천 (v2)"
+msgstr "조회 (v2)"
#: dlls/wldap32/wldap32.rc:42
msgid "Referral"
-msgstr "추천"
+msgstr "조회"
#: dlls/wldap32/wldap32.rc:43
msgid "Administration Limit Exceeded"
-msgstr "관리 제한을 넘었습니다"
+msgstr "관리 제한이 초과되었습니다"
#: dlls/wldap32/wldap32.rc:44
msgid "Unavailable Critical Extension"
-msgstr "가능하지 않은 치명적 확장"
+msgstr "중요한 확장을 사용할 수 없습니다"
#: dlls/wldap32/wldap32.rc:45
msgid "Confidentiality Required"
@@ -11734,59 +11732,59 @@ msgstr "SASL 바인딩 진행 중"
#: dlls/wldap32/wldap32.rc:48
msgid "No Such Attribute"
-msgstr "어떤 속성도 없습니다"
+msgstr "그런 특성이 없습니다"
#: dlls/wldap32/wldap32.rc:49
msgid "Undefined Type"
-msgstr "정의되지 않은 타입"
+msgstr "정의되지 않은 유형입니다"
#: dlls/wldap32/wldap32.rc:50
msgid "Inappropriate Matching"
-msgstr "어울리지 않습니다"
+msgstr "부적합한 일치입니다"
#: dlls/wldap32/wldap32.rc:51
msgid "Constraint Violation"
-msgstr "강제 위반"
+msgstr "제약 조건 위반"
#: dlls/wldap32/wldap32.rc:52
msgid "Attribute Or Value Exists"
-msgstr "속성이나 값이 존재합니다"
+msgstr "특성 또는 값이 있습니다"
#: dlls/wldap32/wldap32.rc:53
msgid "Invalid Syntax"
-msgstr "잘못된 문법"
+msgstr "잘못된 구문"
#: dlls/wldap32/wldap32.rc:64
msgid "No Such Object"
-msgstr "어떤 개체도 없음"
+msgstr "그런 개체가 없습니다"
#: dlls/wldap32/wldap32.rc:65
msgid "Alias Problem"
-msgstr "Alias 문제"
+msgstr "별칭 문제"
#: dlls/wldap32/wldap32.rc:66
msgid "Invalid DN Syntax"
-msgstr "잘못된 DN 문법"
+msgstr "잘못된 DN 구문입니다"
#: dlls/wldap32/wldap32.rc:67
msgid "Is Leaf"
-msgstr "Is Leaf"
+msgstr "잎 노드임"
#: dlls/wldap32/wldap32.rc:68
msgid "Alias Dereference Problem"
-msgstr "Alias 역참조 문제"
+msgstr "별칭 참조 취소에 문제가 있습니다"
#: dlls/wldap32/wldap32.rc:80
msgid "Inappropriate Authentication"
-msgstr "부적절한 인증"
+msgstr "부적합한 인증입니다"
#: dlls/wldap32/wldap32.rc:81
msgid "Invalid Credentials"
-msgstr "잘못된 증명서"
+msgstr "자격 증명이 올바르지 않습니다"
#: dlls/wldap32/wldap32.rc:82
msgid "Insufficient Rights"
-msgstr "충분하지 않은 권리"
+msgstr "권한이 부족합니다"
#: dlls/wldap32/wldap32.rc:83
msgid "Busy"
@@ -11794,19 +11792,19 @@ msgstr "바쁨"
#: dlls/wldap32/wldap32.rc:84
msgid "Unavailable"
-msgstr "불가능"
+msgstr "사용할 수 없음"
#: dlls/wldap32/wldap32.rc:85
msgid "Unwilling To Perform"
-msgstr "실행하는 것이 마음에 내키지 않습니다"
+msgstr "수행하지 않으려고 합니다"
#: dlls/wldap32/wldap32.rc:86
msgid "Loop Detected"
-msgstr "루프가 발견되었습니다"
+msgstr "루프를 감지했습니다"
#: dlls/wldap32/wldap32.rc:92
msgid "Sort Control Missing"
-msgstr "정렬 제어가 빠졌습니다"
+msgstr "정렬 컨트롤 손실"
#: dlls/wldap32/wldap32.rc:93
msgid "Index range error"
@@ -11814,7 +11812,7 @@ msgstr "인덱스 범위 오류"
#: dlls/wldap32/wldap32.rc:96
msgid "Naming Violation"
-msgstr "명명 위반"
+msgstr "이름 짓기 규칙 위반"
#: dlls/wldap32/wldap32.rc:97
msgid "Object Class Violation"
@@ -11822,11 +11820,11 @@ msgstr "개체 클래스 위반"
#: dlls/wldap32/wldap32.rc:98
msgid "Not allowed on Non-leaf"
-msgstr "론-리프를 따를 수 없습니다"
+msgstr "잎 노드 이외에는 허용되지 않습니다"
#: dlls/wldap32/wldap32.rc:99
msgid "Not allowed on RDN"
-msgstr "RDN은 따를수 없습니다"
+msgstr "RDN에서 허용되지 않습니다"
#: dlls/wldap32/wldap32.rc:100
msgid "Already Exists"
@@ -11834,7 +11832,7 @@ msgstr "이미 존재합니다"
#: dlls/wldap32/wldap32.rc:101
msgid "No Object Class Mods"
-msgstr "어떤 개체 클래스 모드도 없숩니다"
+msgstr "개체 클래스 모드가 없습니다"
#: dlls/wldap32/wldap32.rc:102
msgid "Results Too Large"
@@ -11842,11 +11840,11 @@ msgstr "결과가 너무 큽니다"
#: dlls/wldap32/wldap32.rc:103
msgid "Affects Multiple DSAs"
-msgstr "다중 DSA를 적용합니다"
+msgstr "여러 DSA에 영향을 미칩니다"
#: dlls/wldap32/wldap32.rc:113
msgid "Server Down"
-msgstr "서버 다운"
+msgstr "서버 작동 안함"
#: dlls/wldap32/wldap32.rc:114
msgid "Local Error"
@@ -11874,15 +11872,15 @@ msgstr "필터 오류"
#: dlls/wldap32/wldap32.rc:120
msgid "User Canceled"
-msgstr "사용자가 취소함"
+msgstr "사용자가 취소했습니다"
#: dlls/wldap32/wldap32.rc:121
msgid "Parameter Error"
-msgstr "매개변수 오류"
+msgstr "매개 변수 오류"
#: dlls/wldap32/wldap32.rc:122
msgid "No Memory"
-msgstr "메모리 없음"
+msgstr "메모리 부족"
#: dlls/wldap32/wldap32.rc:123
msgid "Can't connect to the LDAP server"
@@ -11890,27 +11888,27 @@ msgstr "LDAP 서버에 연결할 수 없습니다"
#: dlls/wldap32/wldap32.rc:124
msgid "Operation not supported by this version of the LDAP protocol"
-msgstr "LDAP 프로토콜의 이 버전은 그 작업을 지원하지 않습니다"
+msgstr "작업이 현재 버전의 LDAP 프로토콜에서 지원되지 않습니다"
#: dlls/wldap32/wldap32.rc:125
msgid "Specified control was not found in message"
-msgstr "지정한 제어는 메시지에서 발견할 수 없습니다"
+msgstr "지정한 컨트롤이 메시지에 없습니다"
#: dlls/wldap32/wldap32.rc:126
msgid "No result present in message"
-msgstr "메시지에 결과가 없습니다"
+msgstr "결과가 메시지에 없습니다"
#: dlls/wldap32/wldap32.rc:127
msgid "More results returned"
-msgstr "더 많은 결과가 돌아왔습니다"
+msgstr "추가 결과를 반환했습니다"
#: dlls/wldap32/wldap32.rc:128
msgid "Loop while handling referrals"
-msgstr "리퍼럴을 다루는 동안의 루프"
+msgstr "조회를 처리하는 동안의 루프"
#: dlls/wldap32/wldap32.rc:129
msgid "Referral hop limit exceeded"
-msgstr "리퍼럴 홉 제한에 도달했습니다"
+msgstr "조회 홉 한계를 초과했습니다"
#: programs/attrib/attrib.rc:30 programs/cmd/cmd.rc:373
msgid ""
@@ -12321,7 +12319,7 @@ msgstr ""
"Wine 아래의 Win32 환경 변수에는 기반 운영체제의 환경 변수도 들어 있기\n"
"때문에 일반적으로 네이티브 Win32 구현보다 더 많은 값이 들어 있습니다.\n"
"cmd에서 운영체제 환경 변수에 영향을 미치는 것이 가능하지 않다는 것에\n"
-"주목하십시오.\n"
+"주목하세요.\n"
#: programs/cmd/cmd.rc:234
msgid ""
@@ -12657,11 +12655,11 @@ msgstr "N"
#: programs/cmd/cmd.rc:368
msgid "File association missing for extension %1\n"
-msgstr "이 파일확장자 %1에 연결된 프로그램이 없습니다\n"
+msgstr "확장자 %1에 대한 파일 연결을 찾을 수 없습니다\n"
#: programs/cmd/cmd.rc:369
msgid "No open command associated with file type '%1'\n"
-msgstr "이 파일 형식 '%1'과 연결된 어떠한 명령도 없습니다'\n"
+msgstr "'%1' 파일 형식과 연결된 열기 명령이 없습니다\n"
#: programs/cmd/cmd.rc:370
msgid "Overwrite %1?"
@@ -12673,11 +12671,11 @@ msgstr "더..."
#: programs/cmd/cmd.rc:372
msgid "Line in Batch processing possibly truncated. Using:\n"
-msgstr "배치 작업의 줄은 아마도 불완전한 것 같습니다. 사용법:\n"
+msgstr "일괄 처리 과정에서 줄이 잘릴 수 있습니다. 사용법:\n"
#: programs/cmd/cmd.rc:374
msgid "Argument missing\n"
-msgstr "인수가 없습니다\n"
+msgstr "인수 없음\n"
#: programs/cmd/cmd.rc:375
msgid "Syntax error\n"
@@ -12685,7 +12683,7 @@ msgstr "문법 오류\n"
#: programs/cmd/cmd.rc:377
msgid "No help available for %1\n"
-msgstr "%1을(를) 위한 도움말을 찾을 수 없습니다\n"
+msgstr "%1에 대한 도움말이 없습니다\n"
#: programs/cmd/cmd.rc:378
msgid "Target to GOTO not found\n"
@@ -12738,7 +12736,7 @@ msgstr "Verify: %1\n"
#: programs/cmd/cmd.rc:390
msgid "Verify must be ON or OFF\n"
-msgstr "Verify는 ON 또는 OFF 여야 합니다\n"
+msgstr "Verify는 ON 또는 OFF이어야 합니다\n"
#: programs/cmd/cmd.rc:391
msgid "Parameter error\n"
@@ -12754,7 +12752,7 @@ msgstr ""
#: programs/cmd/cmd.rc:393
msgid "Volume label (11 characters, <Enter> for none)?"
-msgstr "볼륨 레이블 (11 문자, <ENTER>키는 없음과 같음)?"
+msgstr "볼륨 레이블을 입력하세요(11문자까지 입력 가능, <Enter>: 입력 안 함)?"
#: programs/cmd/cmd.rc:394
msgid "PATH not found\n"
@@ -12762,7 +12760,7 @@ msgstr "PATH를 찾을 수 없습니다\n"
#: programs/cmd/cmd.rc:395
msgid "Press any key to continue... "
-msgstr "계속하려면 아무 키나 누르십시오... "
+msgstr "계속하려면 아무 키나 누르세요... "
#: programs/cmd/cmd.rc:396
msgid "Wine Command Prompt"
@@ -12778,7 +12776,7 @@ msgstr "더? "
#: programs/cmd/cmd.rc:399
msgid "The input line is too long.\n"
-msgstr "입력 라인이 너무 깁니다.\n"
+msgstr "입력 줄이 너무 깁니다.\n"
#: programs/cmd/cmd.rc:400
msgid "Volume in drive %1!c! is %2\n"
@@ -12823,8 +12821,8 @@ msgid ""
"Badly formed number - must be one of decimal (12),\n"
" hexadecimal (0x34) or octal (056).\n"
msgstr ""
-"잘못된 형식의 숫자 - 십진수(12)나,\n"
-"16진수(0x34)나 팔진수(056)중의 하나이어야 합니다.\n"
+"잘못된 형식의 숫자 - 10진수(12)나,\n"
+"16진수(0x34)나 8진수(056)중의 하나이어야 합니다.\n"
#: programs/conhost/conhost.rc:54
msgid "Cursor size"
@@ -13040,7 +13038,7 @@ msgstr "사용법: hostname\n"
#: programs/hostname/hostname.rc:31
msgid "Error: Invalid option '%c'.\n"
-msgstr "오류: 올바르지 않은 옵션 '%c'.\n"
+msgstr "오류: 잘못된 옵션 '%c'.\n"
#: programs/hostname/hostname.rc:32
msgid "Error: Could not get hostname: %u.\n"
@@ -13059,7 +13057,7 @@ msgstr "사용법: ipconfig [ /? | /all ]\n"
#: programs/ipconfig/ipconfig.rc:31
msgid "Error: Unknown or invalid command line parameters specified\n"
-msgstr "오류: 없거나 올바르지 않은 명령어 라인 매개변수가 지정됨\n"
+msgstr "오류: 없거나 잘못된 명령어 라인 매개변수가 지정됨\n"
#: programs/ipconfig/ipconfig.rc:32
msgid "%1 adapter %2\n"
@@ -13602,7 +13600,7 @@ msgstr ""
"파일이 %2 인코딩으로 저장하면 손실되는 유니코드 문자를 포합하고\n"
"있습니다.\n"
"손실을 피하려면 [취소]를 클릭한 다음, 인코딩 드롭다운 목록에서\n"
-"유니코드 옵션 중 하나를 선택하십시오.\n"
+"유니코드 옵션 중 하나를 선택하세요.\n"
"계속하시겠습니까?"
#: programs/oleview/oleview.rc:32
@@ -13651,7 +13649,7 @@ msgstr "인스턴스 만들기(&I)"
#: programs/oleview/oleview.rc:53
msgid "Create Instance &On..."
-msgstr "인스턴트 온 만들기(&O)..."
+msgstr "인스턴트 만들기(&O)..."
#: programs/oleview/oleview.rc:54
msgid "&Release Instance"
@@ -13671,13 +13669,13 @@ msgstr "전문가 모드(&E)"
#: programs/oleview/oleview.rc:65
msgid "&Hidden component categories"
-msgstr "구성 요소 분류 숨기기(&H)"
+msgstr "숨겨진 구성 요소 범주(&H)"
#: programs/oleview/oleview.rc:67 programs/oleview/oleview.rc:89
#: programs/winefile/winefile.rc:65 programs/wordpad/wordpad.rc:71
#: programs/wordpad/wordpad.rc:272
msgid "&Toolbar"
-msgstr "도구바(&T)"
+msgstr "도구 모음(&T)"
#: programs/oleview/oleview.rc:68 programs/oleview/oleview.rc:90
#: programs/winefile/winefile.rc:67 programs/wordpad/wordpad.rc:74
@@ -13692,7 +13690,7 @@ msgstr "새로 고침(&R)\tF5"
#: programs/oleview/oleview.rc:74
msgid "&About OleView"
-msgstr "OleView에 관하여(&A)"
+msgstr "OleView 정보(&A)"
#: programs/oleview/oleview.rc:82
msgid "&Save as..."
@@ -13704,39 +13702,39 @@ msgstr "타입 종류에 따라 구분(&G)"
#: programs/oleview/oleview.rc:156
msgid "Connect to another machine"
-msgstr "다른 머신(machine)에 접속"
+msgstr "다른 머신에 접속"
#: programs/oleview/oleview.rc:159
msgid "&Machine name:"
-msgstr "머신(&Machine) 이름:"
+msgstr "머신 이름(&M):"
#: programs/oleview/oleview.rc:167
msgid "System Configuration"
-msgstr "시스템 설정"
+msgstr "시스템 구성"
#: programs/oleview/oleview.rc:170
msgid "System Settings"
-msgstr "시스템 셋팅"
+msgstr "시스템 설정"
#: programs/oleview/oleview.rc:171
msgid "&Enable Distributed COM"
-msgstr "DCOM 허용(&E)"
+msgstr "DCOM 사용(&E)"
#: programs/oleview/oleview.rc:172
msgid "Enable &Remote Connections (Win95 only)"
-msgstr "원격 연결 허용(&R) (Win95만 해당)"
+msgstr "원격 연결 사용(Win95 전용)(&R)"
#: programs/oleview/oleview.rc:173
msgid ""
"These settings change only registry values.\n"
"They have no effect on Wine performance."
msgstr ""
-"이 셋팅은 오직 레지스트리 값만 바꿉니다.\n"
-"WIne의 성능에는 아무 영향을 안 미칩니다."
+"이 셋팅은 레지스트리 값만 바꿉니다.\n"
+"Wine의 성능에는 영향을 미치지 않습니다."
#: programs/oleview/oleview.rc:180
msgid "Default Interface Viewer"
-msgstr "기본 인터페이스 보기"
+msgstr "기본 인터페이스 뷰어"
#: programs/oleview/oleview.rc:183
msgid "Interface"
@@ -13792,7 +13790,7 @@ msgstr "TypeLib 파일 열고 내용 보기"
#: programs/oleview/oleview.rc:107
msgid "Change machine wide Distributed COM settings"
-msgstr "머신 전체의 DCOM설정 바꾸기"
+msgstr "머신 전체의 DCOM 설정 바꾸기"
#: programs/oleview/oleview.rc:108
msgid "Run the Wine registry editor"
@@ -13945,7 +13943,7 @@ msgstr "타입정보를 타입에 따라 분류"
#: programs/progman/progman.rc:33
msgid "&New..."
-msgstr "새 작업(&N)..."
+msgstr "새로 만들기(&N)..."
#: programs/progman/progman.rc:34
msgid "O&pen\tEnter"
@@ -13969,7 +13967,7 @@ msgstr "실행(&E)..."
#: programs/progman/progman.rc:42
msgid "E&xit Windows"
-msgstr "창 나가기(&X)"
+msgstr "끝내기(&X)"
#: programs/progman/progman.rc:44 programs/taskmgr/taskmgr.rc:41
#: programs/winefile/winefile.rc:62 programs/winhlp32/winhlp32.rc:47
@@ -13978,15 +13976,15 @@ msgstr "옵션(&O)"
#: programs/progman/progman.rc:45
msgid "&Arrange automatically"
-msgstr "자동 정렬(&A)"
+msgstr "자동으로 정렬(&A)"
#: programs/progman/progman.rc:46
msgid "&Minimize on run"
-msgstr "실행시 최소화(&M)"
+msgstr "실행 중 최소화(&M)"
#: programs/progman/progman.rc:47 programs/winefile/winefile.rc:70
msgid "&Save settings on exit"
-msgstr "끝내면서 설정 저장(&S)"
+msgstr "끝낼 때 설정 내용 저장(&S)"
#: programs/progman/progman.rc:49 programs/taskmgr/taskmgr.rc:78
#: programs/taskmgr/taskmgr.rc:255
@@ -13995,11 +13993,11 @@ msgstr "창(&W)"
#: programs/progman/progman.rc:50
msgid "&Overlapped\tShift+F5"
-msgstr "겹치기(&O)\tShift+F5"
+msgstr "겹쳐서 배열(&O)\tShift+F5"
#: programs/progman/progman.rc:51
msgid "&Side by side\tShift+F4"
-msgstr "나누기(&S)\tShift+F4"
+msgstr "나란히 배열(&S)\tShift+F4"
#: programs/progman/progman.rc:52
msgid "&Arrange Icons"
@@ -14031,7 +14029,7 @@ msgstr "대상 그룹:"
#: programs/progman/progman.rc:122 programs/progman/progman.rc:140
msgid "&To group:"
-msgstr "목적 그룹(&T):"
+msgstr "대상 그룹(&T):"
#: programs/progman/progman.rc:134
msgid "Copy Program"
@@ -14071,11 +14069,11 @@ msgstr "실행시 최소화(&M)"
#: programs/progman/progman.rc:183
msgid "Change &icon..."
-msgstr "아이콘 바꾸기(&I)..."
+msgstr "아이콘 변경(&I)..."
#: programs/progman/progman.rc:192
msgid "Change Icon"
-msgstr "아이콘 바꾸기"
+msgstr "아이콘 변경"
#: programs/progman/progman.rc:194
msgid "&Filename:"
@@ -14131,11 +14129,11 @@ msgstr ""
#: programs/progman/progman.rc:77
msgid "Help not available."
-msgstr "도움말은 가능하지않습니다."
+msgstr "도움말을 사용할 수 없습니다."
#: programs/progman/progman.rc:78
msgid "Unknown feature in %s"
-msgstr "%s의 알 수 없는 특징"
+msgstr "%s에서 알 수 없는 기능"
#: programs/progman/progman.rc:79
msgid "File `%s' exists. Not overwritten."
@@ -14143,7 +14141,7 @@ msgstr "파일 '%s'이(가) 존재합니다. 덮어 쓸 수 없습니다."
#: programs/progman/progman.rc:80
msgid "Save group as `%s' to prevent overwriting original files."
-msgstr "원본 파일을 덮어쓰는 것을 패해서 '%s'로 저장합니다."
+msgstr "원본 파일을 덮어쓰지 않도록 그룹을 '%s'로 저장합니다."
#: programs/progman/progman.rc:84
msgid "Libraries (*.dll)"
@@ -14203,7 +14201,7 @@ msgstr "reg: 키 이름이 잘못되었습니다\n"
#: programs/reg/reg.rc:41
msgid "reg: Invalid command line parameters\n"
-msgstr "reg: 명령줄 매개변수가 올바르지 않습니다\n"
+msgstr "reg: 명령줄 매개변수가 잘못되었습니다\n"
#: programs/reg/reg.rc:42
msgid "reg: Unable to access remote machine\n"
@@ -14279,19 +14277,19 @@ msgstr "검색 완료. 일치하는 항목 수: %1!d!\n"
#: programs/reg/reg.rc:61
msgid "reg: Invalid syntax. "
-msgstr "reg: 올바르지 않은 구문. "
+msgstr "reg: 잘못된 구문. "
#: programs/reg/reg.rc:62
msgid "reg: Invalid option [%1]. "
-msgstr "reg: 올바르지 않은 옵션 [%1]. "
+msgstr "reg: 잘못된 옵션 [%1]. "
#: programs/reg/reg.rc:63
msgid "Type \"REG /?\" for help.\n"
-msgstr "도움말을 보려면 \"REG /?\"를 입력하십시오.\n"
+msgstr "도움말을 보려면 \"REG /?\"를 입력하세요.\n"
#: programs/reg/reg.rc:64
msgid "Type \"REG %1 /?\" for help.\n"
-msgstr "도움말을 보려면 \"REG %1 /?\"를 입력하십시오.\n"
+msgstr "도움말을 보려면 \"REG %1 /?\"를 입력하세요.\n"
#: programs/reg/reg.rc:65 programs/regedit/regedit.rc:240
msgid "(value not set)"
@@ -14319,7 +14317,7 @@ msgstr "REG EXPORT key_name 파일.reg [/y]\n"
#: programs/reg/reg.rc:71
msgid "reg: Invalid system key [%1]\n"
-msgstr "reg: 올바르지 않은 시스템 키 [%1]\n"
+msgstr "reg: 잘못된 시스템 키 [%1]\n"
#: programs/reg/reg.rc:72
msgid "The file '%1' already exists. Do you want to overwrite it?"
@@ -14661,7 +14659,7 @@ msgstr "regedit: [%1](은)는 유효하지 않거나 인식할 수 없는 스위
#: programs/regedit/regedit.rc:410
msgid "Type \"regedit /?\" for help.\n"
-msgstr "도움말을 보려면 \"regedit /?\"를 입력하십시오.\n"
+msgstr "도움말을 보려면 \"regedit /?\"를 입력하세요.\n"
#: programs/regedit/regedit.rc:411
msgid "regedit: No filename was specified.\n"
@@ -14689,14 +14687,13 @@ msgstr "regedit: 메모리 초과! (%1!S!, line %2!u!)\n"
#: programs/regedit/regedit.rc:417
msgid "regedit: Invalid hexadecimal value.\n"
-msgstr "regedit: 올바르지 않은 16진수 값.\n"
+msgstr "regedit: 잘못된 16진수 값.\n"
#: programs/regedit/regedit.rc:418
msgid ""
"regedit: Unable to convert hexadecimal data. An invalid value was "
"encountered at '%1'.\n"
-msgstr ""
-"regedit: 16진수 값을 변환할 수 없습니다. '%1'(이)가 올바르지 않습니다.\n"
+msgstr "regedit: 16진수 값을 변환할 수 없습니다. '%1'(이)가 잘못되었습니다.\n"
#: programs/regedit/regedit.rc:419
msgid "regedit: Unrecognized escape sequence [\\%1!c!]\n"
@@ -14704,7 +14701,7 @@ msgstr "regedit: [\\%1!c!](은)는 알 수 없는 제어 문자입니다\n"
#: programs/regedit/regedit.rc:420
msgid "regedit: Unsupported registry data type [0x%1!x!]\n"
-msgstr "regedit: [0x%1!x!](은)는 지원하지 않는 레지스트리 데이터 유형입니다\n"
+msgstr "regedit: [0x%1!x!](은)는 지원되지 않는 레지스트리 데이터 유형입니다\n"
#: programs/regedit/regedit.rc:421
msgid "regedit: Unexpected end of line in '%1'.\n"
@@ -14726,7 +14723,7 @@ msgstr "regedit: 레지스트리 키 '%1'을(를) 열 수 없습니다.\n"
msgid ""
"regedit: Unsupported registry data type [0x%1!x!] encountered in '%2'.\n"
msgstr ""
-"regedit: 지원하지 않는 레지스트리 데이터 유형 [0x%1!x!]이(가) '%2'에서 발생하"
+"regedit: 지원되지 않는 레지스트리 데이터 유형 [0x%1!x!]이(가) '%2'에서 발생하"
"였습니다.\n"
#: programs/regedit/regedit.rc:426
@@ -14735,7 +14732,7 @@ msgstr "regedit: 레지스트리 값 '%1'(이)가 이진 정보로 출력됩니
#: programs/regedit/regedit.rc:427
msgid "regedit: Invalid system key [%1]\n"
-msgstr "regedit: 올바르지 않은 시스템 키 [%1]\n"
+msgstr "regedit: 잘못된 시스템 키 [%1]\n"
#: programs/regedit/regedit.rc:428
msgid ""
@@ -15010,11 +15007,11 @@ msgstr "사용법: taskkill [/?] [/f] [/im 프로세스이름 | /pid 프로세
#: programs/taskkill/taskkill.rc:31
msgid "Error: Unknown or invalid command line option specified.\n"
-msgstr "오류: 없거나 올바르지 않은 명령라인 옵션이 지정되었습니다.\n"
+msgstr "오류: 없거나 잘못된 명령라인 옵션이 지정되었습니다.\n"
#: programs/taskkill/taskkill.rc:32
msgid "Error: Invalid command line parameter specified.\n"
-msgstr "오류: 올바르지 않은 명령어 라인 옵션이 지정되었습니다.\n"
+msgstr "오류: 잘못된 명령어 라인 옵션이 지정되었습니다.\n"
#: programs/taskkill/taskkill.rc:33
msgid "Error: One of options /im or /pid must be specified.\n"
@@ -15065,7 +15062,7 @@ msgstr "오류: 프로세스 자가 종료는 허용되지 않습니다.\n"
#: programs/taskmgr/taskmgr.rc:37 programs/taskmgr/taskmgr.rc:108
msgid "&New Task (Run...)"
-msgstr "새 작업(&N)( 실행...)"
+msgstr "새 작업(실행...)(&N)"
#: programs/taskmgr/taskmgr.rc:39
msgid "E&xit Task Manager"
@@ -15073,11 +15070,11 @@ msgstr "작업 관리자 나가기(&X)"
#: programs/taskmgr/taskmgr.rc:45
msgid "&Minimize On Use"
-msgstr "최소화 상태로 사용(&M)"
+msgstr "작업 전환할 때 최소화(&M)"
#: programs/taskmgr/taskmgr.rc:47
msgid "&Hide When Minimized"
-msgstr "최소화 상태일 때 숨기기(&H)"
+msgstr "최소화할 때 숨기기(&H)"
#: programs/taskmgr/taskmgr.rc:49 programs/taskmgr/taskmgr.rc:257
msgid "&Show 16-bit tasks"
@@ -15085,7 +15082,7 @@ msgstr "16-bit 작업 보기(&S)"
#: programs/taskmgr/taskmgr.rc:54
msgid "&Refresh Now"
-msgstr "지금 새로 읽기(&R)"
+msgstr "지금 새로 고침(&R)"
#: programs/taskmgr/taskmgr.rc:55
msgid "&Update Speed"
@@ -15097,7 +15094,7 @@ msgstr "높음(&H)"
#: programs/taskmgr/taskmgr.rc:58 programs/taskmgr/taskmgr.rc:162
msgid "&Normal"
-msgstr "정상(&N)"
+msgstr "보통(&N)"
#: programs/taskmgr/taskmgr.rc:60 programs/taskmgr/taskmgr.rc:166
msgid "&Low"
@@ -15105,11 +15102,11 @@ msgstr "낮음(&L)"
#: programs/taskmgr/taskmgr.rc:61
msgid "&Paused"
-msgstr "정지(&P)"
+msgstr "일시 중지됨(&P)"
#: programs/taskmgr/taskmgr.rc:68 programs/taskmgr/taskmgr.rc:256
msgid "&Select Columns..."
-msgstr "세로 칸 선택(&S)..."
+msgstr "열 선택(&S)..."
#: programs/taskmgr/taskmgr.rc:69 programs/taskmgr/taskmgr.rc:258
msgid "&CPU History"
@@ -15117,25 +15114,25 @@ msgstr "&CPU 기록"
#: programs/taskmgr/taskmgr.rc:71 programs/taskmgr/taskmgr.rc:259
msgid "&One Graph, All CPUs"
-msgstr "모든 CPU에 하나의 그래프(&O)"
+msgstr "그래프 하나에 모든 CPU(&O)"
#: programs/taskmgr/taskmgr.rc:73 programs/taskmgr/taskmgr.rc:260
msgid "One Graph &Per CPU"
-msgstr "CPU 당 하나의 그래프(&P)"
+msgstr "CPU마다 그래프 하나(&P)"
#: programs/taskmgr/taskmgr.rc:76 programs/taskmgr/taskmgr.rc:261
msgid "&Show Kernel Times"
-msgstr "커널 시간 보기(&S)"
+msgstr "커널 시간 표시(&S)"
#: programs/taskmgr/taskmgr.rc:80 programs/taskmgr/taskmgr.rc:96
#: programs/taskmgr/taskmgr.rc:123 programs/winefile/winefile.rc:76
msgid "Tile &Horizontally"
-msgstr "가로 바둑판식 정렬(&H)"
+msgstr "가로 바둑판식 배열(&H)"
#: programs/taskmgr/taskmgr.rc:81 programs/taskmgr/taskmgr.rc:97
#: programs/taskmgr/taskmgr.rc:124
msgid "Tile &Vertically"
-msgstr "세로 바둑판 정렬(&V)"
+msgstr "세로 바둑판식 배열(&V)"
#: programs/taskmgr/taskmgr.rc:82 programs/taskmgr/taskmgr.rc:98
#: programs/taskmgr/taskmgr.rc:125
@@ -15145,16 +15142,16 @@ msgstr "최소화(&M)"
#: programs/taskmgr/taskmgr.rc:84 programs/taskmgr/taskmgr.rc:100
#: programs/taskmgr/taskmgr.rc:127
msgid "&Cascade"
-msgstr "정렬(&C)"
+msgstr "계단식 배열(&C)"
#: programs/taskmgr/taskmgr.rc:85 programs/taskmgr/taskmgr.rc:101
#: programs/taskmgr/taskmgr.rc:121
msgid "&Bring To Front"
-msgstr "앞으로 가져오기(&B)"
+msgstr "맨 앞으로 가져오기(&B)"
#: programs/taskmgr/taskmgr.rc:90
msgid "&About Task Manager"
-msgstr "작업관리자에 관하여(&A)"
+msgstr "작업 관리자 정보(&A)"
#: programs/taskmgr/taskmgr.rc:120 programs/taskmgr/taskmgr.rc:352
msgid "&Switch To"
@@ -15162,19 +15159,19 @@ msgstr "전환(&S)"
#: programs/taskmgr/taskmgr.rc:129 programs/taskmgr/taskmgr.rc:353
msgid "&End Task"
-msgstr "작업 끝(&E)"
+msgstr "작업 끝내기(&E)"
#: programs/taskmgr/taskmgr.rc:130
msgid "&Go To Process"
-msgstr "프로세스로 가기(&G)"
+msgstr "프로세스로 이동(&G)"
#: programs/taskmgr/taskmgr.rc:149 programs/taskmgr/taskmgr.rc:363
msgid "&End Process"
-msgstr "작업 끝(&E)"
+msgstr "프로세스 끝내기(&E)"
#: programs/taskmgr/taskmgr.rc:150
msgid "End Process &Tree"
-msgstr "작업 트리 끝(&T)"
+msgstr "프로세스 트리 끝내기(&T)"
#: programs/taskmgr/taskmgr.rc:152 programs/winedbg/winedbg.rc:32
msgid "&Debug"
@@ -15182,7 +15179,7 @@ msgstr "디버깅(&D)"
#: programs/taskmgr/taskmgr.rc:154
msgid "Set &Priority"
-msgstr "우선순위 설정(&P)"
+msgstr "우선 순위 설정(&P)"
#: programs/taskmgr/taskmgr.rc:156
msgid "&Realtime"
@@ -15190,11 +15187,11 @@ msgstr "실시간(&R)"
#: programs/taskmgr/taskmgr.rc:160
msgid "&Above Normal"
-msgstr "보통보다 위(&A)"
+msgstr "보통 이상(&A)"
#: programs/taskmgr/taskmgr.rc:164
msgid "&Below Normal"
-msgstr "보통보다 아래(&B)"
+msgstr "보통 이하(&B)"
#: programs/taskmgr/taskmgr.rc:169
msgid "Set &Affinity..."
@@ -15215,7 +15212,7 @@ msgstr "새 작업(&N)..."
#: programs/taskmgr/taskmgr.rc:364
msgid "&Show processes from all users"
-msgstr "모든 사용자의 작업 보기(&S)"
+msgstr "모든 사용자의 프로세스 보기(&S)"
#: programs/taskmgr/taskmgr.rc:372
msgid "CPU usage"
@@ -15227,7 +15224,7 @@ msgstr "메모리 사용량"
#: programs/taskmgr/taskmgr.rc:374
msgid "Totals"
-msgstr "합계"
+msgstr "전체"
#: programs/taskmgr/taskmgr.rc:375
msgid "Commit charge (K)"
@@ -15251,7 +15248,7 @@ msgstr "스레드"
#: programs/taskmgr/taskmgr.rc:380 programs/taskmgr/taskmgr.rc:263
msgid "Processes"
-msgstr "작업"
+msgstr "프로세스"
#: programs/taskmgr/taskmgr.rc:387 programs/taskmgr/taskmgr.rc:396
#: programs/taskmgr/taskmgr.rc:405
@@ -15264,7 +15261,7 @@ msgstr "제한"
#: programs/taskmgr/taskmgr.rc:389
msgid "Peak"
-msgstr "피크"
+msgstr "최고"
#: programs/taskmgr/taskmgr.rc:398
msgid "System Cache"
@@ -15272,11 +15269,11 @@ msgstr "시스템 캐쉬"
#: programs/taskmgr/taskmgr.rc:406
msgid "Paged"
-msgstr "페이지된"
+msgstr "페이지 됨"
#: programs/taskmgr/taskmgr.rc:407
msgid "Nonpaged"
-msgstr "페이지안된"
+msgstr "페이지 안 됨"
#: programs/taskmgr/taskmgr.rc:414
msgid "CPU usage history"
@@ -15292,13 +15289,13 @@ msgstr "디버깅 채널"
#: programs/taskmgr/taskmgr.rc:439
msgid "Processor Affinity"
-msgstr "프로세서 친화도"
+msgstr "프로세서 선호도"
#: programs/taskmgr/taskmgr.rc:444
msgid ""
"The Processor Affinity setting controls which CPUs the process will be "
"allowed to execute on."
-msgstr "프로세서 친화도 설정은 어떤 CPU가 프로세스를 실행시킬 지를 제어한다."
+msgstr "프로세서 선호도 설정은 어떤 CPU가 프로세스를 실행시킬 지를 제어한다."
#: programs/taskmgr/taskmgr.rc:446
msgid "CPU 0"
@@ -15430,12 +15427,12 @@ msgstr "CPU 31"
#: programs/taskmgr/taskmgr.rc:514
msgid "Select Columns"
-msgstr "세로줄 선택"
+msgstr "열 선택"
#: programs/taskmgr/taskmgr.rc:519
msgid ""
"Select the columns that will appear on the Process page of the Task Manager."
-msgstr "세로줄 선택은 작업 관리자의 작업 페이지에 나타날것입니다."
+msgstr "작업 관리자의 프로세스 페이지에 표시될 열을 선택하십시오."
#: programs/taskmgr/taskmgr.rc:521
msgid "&Image Name"
@@ -15459,15 +15456,15 @@ msgstr "메모리 사용(&M)"
#: programs/taskmgr/taskmgr.rc:531
msgid "Memory Usage &Delta"
-msgstr "메모리 사용 델타(&D)"
+msgstr "메모리 사용 변화량(&D)"
#: programs/taskmgr/taskmgr.rc:533
msgid "Pea&k Memory Usage"
-msgstr "피크 메모리 사용(&K)"
+msgstr "최대 메모리 사용(&K)"
#: programs/taskmgr/taskmgr.rc:535
msgid "Page &Faults"
-msgstr "페이지 실패(&F)"
+msgstr "페이지 폴트(&F)"
#: programs/taskmgr/taskmgr.rc:537
msgid "&USER Objects"
@@ -15479,7 +15476,7 @@ msgstr "I/O 읽기"
#: programs/taskmgr/taskmgr.rc:541 programs/taskmgr/taskmgr.rc:282
msgid "I/O Read Bytes"
-msgstr "I/O 읽은 바이트"
+msgstr "I/O 읽기 바이트"
#: programs/taskmgr/taskmgr.rc:543
msgid "&Session ID"
@@ -15491,7 +15488,7 @@ msgstr "사용자 이름(&N)"
#: programs/taskmgr/taskmgr.rc:547
msgid "Page F&aults Delta"
-msgstr "페이지 실패 델타(&A)"
+msgstr "페이지 폴트 변화량(&A)"
#: programs/taskmgr/taskmgr.rc:549
msgid "&Virtual Memory Size"
@@ -15499,23 +15496,23 @@ msgstr "가상 메모리 크기(&V)"
#: programs/taskmgr/taskmgr.rc:551
msgid "Pa&ged Pool"
-msgstr "페이지된 풀(&G)"
+msgstr "페이징 풀(&G)"
#: programs/taskmgr/taskmgr.rc:553
msgid "N&on-paged Pool"
-msgstr "페이지되지 않은 풀(&O)"
+msgstr "비페이징 풀(&O)"
#: programs/taskmgr/taskmgr.rc:555
msgid "Base P&riority"
-msgstr "기본 우선권(&R)"
+msgstr "기본 우선 순위(&R)"
#: programs/taskmgr/taskmgr.rc:557
msgid "&Handle Count"
-msgstr "핸들 카운트(&H)"
+msgstr "핸들 수(&H)"
#: programs/taskmgr/taskmgr.rc:559
msgid "&Thread Count"
-msgstr "스레드 카운트(&T)"
+msgstr "스레드 수(&T)"
#: programs/taskmgr/taskmgr.rc:561 programs/taskmgr/taskmgr.rc:292
msgid "GDI Objects"
@@ -15527,7 +15524,7 @@ msgstr "I/O 쓰기"
#: programs/taskmgr/taskmgr.rc:565 programs/taskmgr/taskmgr.rc:294
msgid "I/O Write Bytes"
-msgstr "I/O 쓴 바이트"
+msgstr "I/O 쓰기 바이트"
#: programs/taskmgr/taskmgr.rc:567 programs/taskmgr/taskmgr.rc:295
msgid "I/O Other"
@@ -15547,167 +15544,167 @@ msgstr "새 프로그램 실행"
#: programs/taskmgr/taskmgr.rc:188
msgid "Task Manager remains in front of all other windows unless minimized"
-msgstr "작업관리자는 최소화 되지 않는 한 다른 창 앞에 있게 됩니다"
+msgstr "작업 관리자는 최소화되지 않는 한 다른 모든 창 앞에 있게 됩니다"
#: programs/taskmgr/taskmgr.rc:190
msgid "Task Manager is minimized when a SwitchTo operation is performed"
-msgstr "작엄관리자는 전환 작업이 완료될 때 최소화됩니다"
+msgstr "작업 관리자는 작업 전환이 실행될 때 최소화됩니다"
#: programs/taskmgr/taskmgr.rc:191
msgid "Hide the Task Manager when it is minimized"
-msgstr "작업관리자가 최소하 될 때 숨기기"
+msgstr "최소화되었을 때는 작업 관리자를 숨깁니다"
#: programs/taskmgr/taskmgr.rc:192
msgid "Force Task Manager to update now, regardless of Update Speed setting"
-msgstr "업데이트 속도 설정과는 상관없이 작업관리자 강제로 업데이트"
+msgstr "업데이트 속도 설정에 관계없이 작업 관리자를 바로 업데이트합니다"
#: programs/taskmgr/taskmgr.rc:193
msgid "Displays tasks by using large icons"
-msgstr "큰 아이콘 사용해서 작업 관리자 보여줌"
+msgstr "큰 아이콘을 사용하여 작업을 표시합니다"
#: programs/taskmgr/taskmgr.rc:194
msgid "Displays tasks by using small icons"
-msgstr "작은 아이콘 사용해서 작업 관리자 보여줌"
+msgstr "작은 아이콘을 사용하여 작업을 표시합니다"
#: programs/taskmgr/taskmgr.rc:195
msgid "Displays information about each task"
-msgstr "각각의 작업 정보 보여줌"
+msgstr "각 작업에 대한 정보를 표시합니다"
#: programs/taskmgr/taskmgr.rc:196
msgid "Updates the display twice per second"
-msgstr "1초에 2번 디스플레이 새로 고침"
+msgstr "표시를 1초마다 두 번 업데이트합니다"
#: programs/taskmgr/taskmgr.rc:197
msgid "Updates the display every two seconds"
-msgstr "2초마다 디스플레이 새로 고침"
+msgstr "표시를 2초마다 업데이트합니다"
#: programs/taskmgr/taskmgr.rc:198
msgid "Updates the display every four seconds"
-msgstr "4초마다 디스플레이 새로 고침"
+msgstr "표시를 4초마다 업데이트합니다"
#: programs/taskmgr/taskmgr.rc:203
msgid "Does not automatically update"
-msgstr "자동 업데이트할 수 없습니다"
+msgstr "표시를 자동으로 업데이트하지 않습니다"
#: programs/taskmgr/taskmgr.rc:205
msgid "Tiles the windows horizontally on the desktop"
-msgstr "수평 바둑판식으로 창 배열"
+msgstr "창을 바탕 화면에 가로로 배열합니다"
#: programs/taskmgr/taskmgr.rc:206
msgid "Tiles the windows vertically on the desktop"
-msgstr "수직 바둑판식으로 창 배열"
+msgstr "바탕 화면에 창을 수직으로 배열합니다"
#: programs/taskmgr/taskmgr.rc:207
msgid "Minimizes the windows"
-msgstr "창 최소화"
+msgstr "창을 최소화합니다"
#: programs/taskmgr/taskmgr.rc:208
msgid "Maximizes the windows"
-msgstr "창 최대화"
+msgstr "창을 최대화합니다"
#: programs/taskmgr/taskmgr.rc:209
msgid "Cascades the windows diagonally on the desktop"
-msgstr "계단식으로 창 배열"
+msgstr "창을 바탕 화면에 대각선으로 계단식 배열합니다"
#: programs/taskmgr/taskmgr.rc:210
msgid "Brings the window front, but does not switch to it"
-msgstr "포커스 전환 없이, 창을 앞으로 가져옵니다"
+msgstr "창을 앞으로 가져오지만 전환하지는 않습니다"
#: programs/taskmgr/taskmgr.rc:211
msgid "Displays Task Manager help topics"
-msgstr "작업 관리자 도움물 목차 보기"
+msgstr "작업 관리자 도움말 항목을 표시합니다"
#: programs/taskmgr/taskmgr.rc:212
msgid "Displays program information, version number, and copyright"
-msgstr "프로그램 정보,버전 그리고 저작권 보기"
+msgstr "프로그램 정보, 버전 번호, 저작권을 표시합니다"
#: programs/taskmgr/taskmgr.rc:213
msgid "Exits the Task Manager application"
-msgstr "작업 관리자 프로그램 나가기"
+msgstr "작업 관리자 응용 프로그램을 끝냅니다"
#: programs/taskmgr/taskmgr.rc:215
msgid "Shows 16-bit tasks under the associated ntvdm.exe"
-msgstr "NTVDM.EXE와 연관된 16비트 작업 보기"
+msgstr "NTVDM.EXE와 연관된 16비트 작업을 표시합니다"
#: programs/taskmgr/taskmgr.rc:216
msgid "Select which columns will be visible on the Process page"
-msgstr "세로줄 선택은 작업페이지의 보여주게 될 것입니다"
+msgstr "프로세스 페이지에서 볼 수 있는 열을 선택합니다"
#: programs/taskmgr/taskmgr.rc:217
msgid "Displays kernel time in the performance graphs"
-msgstr "성능 그래프의 커널 타입 보기"
+msgstr "커널 시간을 성능 그래프로 표시합니다"
#: programs/taskmgr/taskmgr.rc:219
msgid "A single history graph shows total CPU usage"
-msgstr "모든 CPU 사용을 하나의 기록 그래프로 보기"
+msgstr "단일 사용 현황 그래프를 보면 전체 CPU 사용을 알 수 있습니다"
#: programs/taskmgr/taskmgr.rc:220
msgid "Each CPU has its own history graph"
-msgstr "각각 CPU를 각자의 기록 그래프로 보기"
+msgstr "CPU마다 자체의 사용 현황 그래프를 가집니다"
#: programs/taskmgr/taskmgr.rc:222
msgid "Brings a task to the foreground, switch focus to that task"
-msgstr "작업을 앞으로 가져오고, 그 작업으로 포커스 이동"
+msgstr "작업을 앞으로 가져와서 포커스를 그 작업으로 전환합니다"
#: programs/taskmgr/taskmgr.rc:227
msgid "Tells the selected tasks to close"
-msgstr "선택한 작업을 닫으라고 말하기"
+msgstr "선택한 작업을 닫으라고 지시합니다"
#: programs/taskmgr/taskmgr.rc:228
msgid "Switches the focus to the process of the selected task"
-msgstr "선택된 태스크의 작업으로 포커스 이동"
+msgstr "선택한 작업의 프로세스로 포커스를 전환합니다"
#: programs/taskmgr/taskmgr.rc:229
msgid "Restores the Task Manager from its hidden state"
-msgstr "숨은 상태에서 작업관리자 복귀"
+msgstr "작업 관리자를 숨김 상태에서 복원합니다"
#: programs/taskmgr/taskmgr.rc:230
msgid "Removes the process from the system"
-msgstr "시스템에서 작업 제거"
+msgstr "시스템에서 프로세스를 제거합니다"
#: programs/taskmgr/taskmgr.rc:232
msgid "Removes this process and all descendants from the system"
-msgstr "작업과 시스템으로부터의 모든 자식 프로세스를 제거"
+msgstr "이 프로세스 및 모든 하위 항목을 시스템에서 제거합니다"
#: programs/taskmgr/taskmgr.rc:233
msgid "Attaches the debugger to this process"
-msgstr "프로세스에 디버거 부착"
+msgstr "이 프로세스에 디버거를 연결합니다"
#: programs/taskmgr/taskmgr.rc:235
msgid "Controls which processors the process will be allowed to run on"
-msgstr "프로세스를 실행할 수 있는 포로세서를 제어합니다"
+msgstr "프로세스가 어떤 프로세서에서 실행될 것인지 제어합니다"
#: programs/taskmgr/taskmgr.rc:237
msgid "Sets process to the REALTIME priority class"
-msgstr "작업을 실시간 순위 클래스로 설정"
+msgstr "프로세스를 실시간 우선 순위 클래스로 설정합니다"
#: programs/taskmgr/taskmgr.rc:238
msgid "Sets process to the HIGH priority class"
-msgstr "작업을 높은 순위 클래스로 설정"
+msgstr "프로세스를 높은 우선 순위 클래스로 설정합니다"
#: programs/taskmgr/taskmgr.rc:240
msgid "Sets process to the ABOVE NORMAL priority class"
-msgstr "작업을 보통보다 높은 순위 클래스로 설정"
+msgstr "프로세스를 보통 이상 우선 순위 클래스로 설정합니다"
#: programs/taskmgr/taskmgr.rc:242
msgid "Sets process to the NORMAL priority class"
-msgstr "작업을 보통 순위 클래스로 설정"
+msgstr "프로세스를 보통 우선 순위 클래스로 설정합니다"
#: programs/taskmgr/taskmgr.rc:244
msgid "Sets process to the BELOW NORMAL priority class"
-msgstr "작업을 보통보다 낮은 순위 클래스로 설정"
+msgstr "프로세스를 보통 이하 우선 순위 클래스로 설정합니다"
#: programs/taskmgr/taskmgr.rc:245
msgid "Sets process to the LOW priority class"
-msgstr "작업을 낮은 순위 클래스로 설정"
+msgstr "프로세스를 낮은 우선 순위 클래스로 설정합니다"
#: programs/taskmgr/taskmgr.rc:247
msgid "Controls Debug Channels"
-msgstr "디버깅 채널 제어"
+msgstr "디버깅 채널 제어합니다"
#: programs/taskmgr/taskmgr.rc:264
msgid "Performance"
-msgstr "퍼포먼스"
+msgstr "성능"
#: programs/taskmgr/taskmgr.rc:265
msgid "CPU Usage: %3d%%"
@@ -15719,7 +15716,7 @@ msgstr "프로세스: %d"
#: programs/taskmgr/taskmgr.rc:267
msgid "Mem Usage: %1!u!kB / %2!u!kB"
-msgstr "메모리 사용량: %1!u!킬로바이트 / %2!u!킬로바이트"
+msgstr "메모리 사용량: %1!u!kB / %2!u!kB"
#: programs/taskmgr/taskmgr.rc:272
msgid "Image Name"
@@ -15743,15 +15740,15 @@ msgstr "메모리 사용량"
#: programs/taskmgr/taskmgr.rc:277
msgid "Mem Delta"
-msgstr "메모리 델타"
+msgstr "메모리 변화량"
#: programs/taskmgr/taskmgr.rc:278
msgid "Peak Mem Usage"
-msgstr "피크 메모리 사용"
+msgstr "최고 메모리 사용률"
#: programs/taskmgr/taskmgr.rc:279
msgid "Page Faults"
-msgstr "페이지 실패"
+msgstr "페이지 폴트"
#: programs/taskmgr/taskmgr.rc:280
msgid "USER Objects"
@@ -15767,7 +15764,7 @@ msgstr "사용자 이름"
#: programs/taskmgr/taskmgr.rc:285
msgid "PF Delta"
-msgstr "PF 델타"
+msgstr "PF 변화량"
#: programs/taskmgr/taskmgr.rc:286
msgid "VM Size"
@@ -15775,7 +15772,7 @@ msgstr "VM 크기"
#: programs/taskmgr/taskmgr.rc:287
msgid "Paged Pool"
-msgstr "페이지된 풀"
+msgstr "페이징 풀"
#: programs/taskmgr/taskmgr.rc:288
msgid "NP Pool"
@@ -15795,13 +15792,13 @@ msgid ""
"cause undesired results including system instability. Are you\n"
"sure you want to change the priority class?"
msgstr ""
-"경고: 이 프로세스의 우선 순위 등급을 바꾸면 시스템 불안정과\n"
-"같은 원하지 않는 결과가 발생할 수 있습니다.\n"
-"우선 순위 등급을 바꾸시겠습니까?"
+"경고: 이 프로세스의 우선 순위 클래스를 변경하면 시스템 불안정을\n"
+"포함하여 원하지 않는 결과가 발생할 수 있습니다.\n"
+"우선 순위 클래스를 변경하시겠습니까?"
#: programs/taskmgr/taskmgr.rc:305
msgid "Unable to Change Priority"
-msgstr "우선순위를 바꿀 수 없습니다"
+msgstr "우선 순위를 변경할 수 없습니다"
#: programs/taskmgr/taskmgr.rc:310
msgid ""
@@ -15811,23 +15808,23 @@ msgid ""
"data before it is terminated. Are you sure you want to\n"
"terminate the process?"
msgstr ""
-"경고: 프로세스를 종료하면 데이터 손실 및 시스템 불안정과\n"
-"같은 원하지 않는 결과가 발생할 수 있습니다.\n"
-"프로세스는 종료되기 전에 상태 또는 데이터를 저장할 기회를\n"
-"얻지 못합니다.\n"
+"경고: 프로세스를 종료하면 데이터 손실 및 시스템 불안정을\n"
+"포함하여 원하지 않는 결과가 발생할 수 있습니다.\n"
+"프로세스는 종료되기 전에 상태 또는 데이터를 저장할 기회가\n"
+"제공되지 않습니다.\n"
"프로세스를 종료하시겠습니까?"
#: programs/taskmgr/taskmgr.rc:311
msgid "Unable to Terminate Process"
-msgstr "프로세스를 중단시킬 수 없습니다"
+msgstr "프로세스를 종료할 수 없습니다"
#: programs/taskmgr/taskmgr.rc:313
msgid ""
"WARNING: Debugging this process may result in loss of data.\n"
"Are you sure you wish to attach the debugger?"
msgstr ""
-"경고: 이 프로세스를 디버깅하면 데이터가 손실될 수 있습니다.\n"
-"디버거를 시작하시겠습니까?"
+"경고: 이 프로세스를 디버깅하면 데이터를 손실될 수 있습니다.\n"
+"디버거를 연결하시겠습니까?"
#: programs/taskmgr/taskmgr.rc:314
msgid "Unable to Debug Process"
@@ -15835,23 +15832,23 @@ msgstr "프로세스를 디버깅할 수 없습니다"
#: programs/taskmgr/taskmgr.rc:315
msgid "The process must have affinity with at least one processor"
-msgstr "프로세스는 최소 하나 이상의 프로세서와 선호도를 가져야 합니다"
+msgstr "프로세스는 하나 이상의 프로세서와 선호도가 있어야 합니다"
#: programs/taskmgr/taskmgr.rc:316
msgid "Invalid Option"
-msgstr "올바르지 않은 옵션"
+msgstr "잘못된 옵션입니다"
#: programs/taskmgr/taskmgr.rc:317
msgid "Unable to Access or Set Process Affinity"
-msgstr "프로세스 선호도에 접근하거나 설정할 수 없습니다"
+msgstr "프로세프 선호도를 설정 또는 액세스할 수 없습니다"
#: programs/taskmgr/taskmgr.rc:322
msgid "System Idle Process"
-msgstr "시스템 유휴 작업"
+msgstr "시스템 유휴 시간 프로세스"
#: programs/taskmgr/taskmgr.rc:323
msgid "Not Responding"
-msgstr "반응 없음"
+msgstr "응답하지 않음"
#: programs/taskmgr/taskmgr.rc:324
msgid "Running"
@@ -15863,7 +15860,7 @@ msgstr "작업"
#: programs/uninstaller/uninstaller.rc:29
msgid "Wine Application Uninstaller"
-msgstr "Wine 프로그램 삭제기"
+msgstr "Wine 프로그램 제거 관리자"
#: programs/uninstaller/uninstaller.rc:30
msgid ""
@@ -15871,8 +15868,9 @@ msgid ""
"executable.\n"
"Do you want to remove the uninstall entry from the registry?"
msgstr ""
-"실행 파일이 누락되어 있어서, 제거 명령 '%s'을(를) 실행하지 못했습니다.\n"
-"레지스트리에서 해당 제거 정보 제거하시겠습니까?"
+"삭제 명령 '%s'을(를) 실행하지 못했습니다. 실행 파일이 누락되었을 수 있습니"
+"다.\n"
+"레지스트리에서 해당 항목을 제거하시겠습니까?"
#: programs/uninstaller/uninstaller.rc:31
msgid "uninstaller: The application with GUID '%1' was not found\n"
@@ -15885,7 +15883,7 @@ msgstr "uninstaller: '--remove' 옵션 뒤에는 프로그램 GUID가 있어야
#: programs/uninstaller/uninstaller.rc:33
msgid "uninstaller: Invalid option [%1]\n"
-msgstr "uninstaller: 올바르지 않은 옵션 [%1]\n"
+msgstr "uninstaller: 잘못된 옵션 [%1]\n"
#: programs/uninstaller/uninstaller.rc:35
msgid ""
@@ -15896,7 +15894,7 @@ msgid ""
msgstr ""
"Wine Application Uninstaller\n"
"\n"
-"현재 실행한 Wine에 설치된 프로그램을 제거합니다.\n"
+"현재 Wine 구성(prefix)에서 프로그램을 제거합니다.\n"
"\n"
#: programs/uninstaller/uninstaller.rc:43
@@ -15916,11 +15914,11 @@ msgstr ""
" uninstaller [옵션]\n"
"\n"
"옵션:\n"
-" --help 지금 보고 있는 정보를 출력합니다.\n"
-" --list 실행한 Wine에 설치된 모든 프로그램의 목록을 출력합니다.\n"
-" --remove {GUID} 지정한 프로그램을 제거합니다. 프로그램의 GUID를 알아\n"
-" 내려면 '--list' 옵션을 사용하십시오.\n"
-" [옵션 없음] 옵션없이 실행하면 uninstaller의 GUI 버전이 시작됩니다.\n"
+" --help 지금 보고 있는 정보를 표시합니다.\n"
+" --list 실행한 Wine에 설치된 모든 프로그램의 목록을 표시합니다.\n"
+" --remove {GUID} 지정한 프로그램을 제거합니다. '--list' 옵션을\n"
+" 사용하면 프로그램의 GUID를 알 수 있습니다.\n"
+" [옵션 없음] 옵션없이 실행하면 uninstaller의 GUI 버전이 시작됩니다.\n"
"\n"
#: programs/view/view.rc:36
@@ -15929,7 +15927,7 @@ msgstr "이동(&P)"
#: programs/view/view.rc:38
msgid "&Scale to Window"
-msgstr "화면 가득 채우기(&S)"
+msgstr "창 크기에 맞춤(&S)"
#: programs/view/view.rc:40
msgid "&Left"
@@ -15941,7 +15939,7 @@ msgstr "오른쪽(&R)"
#: programs/view/view.rc:49
msgid "Regular Metafile Viewer"
-msgstr "정규 메타파일 보기"
+msgstr "일반 메타파일 뷰어"
#: programs/view/view.rc:50
msgid "Metafiles (*.wmf, *.emf)"
@@ -15949,11 +15947,11 @@ msgstr "메타파일 (*.wmf, *.emf)"
#: programs/wineboot/wineboot.rc:31
msgid "Waiting for Program"
-msgstr "프로그램 대기중"
+msgstr "프로그램 대기 중"
#: programs/wineboot/wineboot.rc:35
msgid "Terminate Process"
-msgstr "프로세스 끝내기"
+msgstr "프로세스 종료"
#: programs/wineboot/wineboot.rc:36
msgid ""
@@ -15969,7 +15967,7 @@ msgstr ""
#: programs/wineboot/wineboot.rc:46
msgid "The Wine configuration in %s is being updated, please wait..."
-msgstr "Wine 설정(%s)을 업데이트하고 있습니다. 잠시만 기다려주십시오..."
+msgstr "Wine 설정(%s)을 업데이트하고 있습니다. 잠시만 기다려주세요..."
# 라이선스 문구는 번역하지 않습니다.
#: programs/winecfg/winecfg.rc:140
@@ -16077,7 +16075,7 @@ msgstr "추가(&D)"
#: programs/winecfg/winecfg.rc:196
msgid "Existing &overrides:"
-msgstr "현재 재정의 DLL 목록(&O):"
+msgstr "현재 DLL 재정의 목록(&O):"
#: programs/winecfg/winecfg.rc:198
msgid "&Edit..."
@@ -16093,11 +16091,11 @@ msgstr "로드 순서"
#: programs/winecfg/winecfg.rc:208
msgid "&Builtin (Wine)"
-msgstr "내장(&B) (Wine)"
+msgstr "내장 (Wine &Builtin)"
#: programs/winecfg/winecfg.rc:209
msgid "&Native (Windows)"
-msgstr "네이티브(&N) (Windows)"
+msgstr "네이티브 (Windows &Native)"
#: programs/winecfg/winecfg.rc:210
msgid "Buil&tin then Native"
@@ -16132,7 +16130,7 @@ msgstr "경로(&P):"
#: programs/winecfg/winecfg.rc:246 programs/winecfg/winecfg.rc:37
msgid "Show Advan&ced"
-msgstr "추가 옵션(&C) 보이기"
+msgstr "고급 옵션 표시(&C)"
#: programs/winecfg/winecfg.rc:247
msgid "De&vice:"
@@ -16148,11 +16146,11 @@ msgstr "레이블(&L):"
#: programs/winecfg/winecfg.rc:253
msgid "S&erial:"
-msgstr "시리얼(&E):"
+msgstr "일련 번호(&E):"
#: programs/winecfg/winecfg.rc:256
msgid "&Show dot files"
-msgstr "숨김 파일(dot 파일) 보기(&S)"
+msgstr "숨김 파일(dot 파일) 표시(&S)"
#: programs/winecfg/winecfg.rc:263
msgid "Driver diagnostics"
@@ -16160,7 +16158,7 @@ msgstr "드라이버 진단"
#: programs/winecfg/winecfg.rc:265
msgid "Defaults"
-msgstr "기본"
+msgstr "기본값"
#: programs/winecfg/winecfg.rc:266
msgid "Output device:"
@@ -16184,7 +16182,7 @@ msgstr "소리 테스트(&T)"
#: programs/winecfg/winecfg.rc:275 programs/winecfg/winecfg.rc:89
msgid "Speaker configuration"
-msgstr "스피커 설정"
+msgstr "스피커 구성"
#: programs/winecfg/winecfg.rc:278
msgid "Speakers:"
@@ -16216,7 +16214,7 @@ msgstr "MIME 형식"
#: programs/winecfg/winecfg.rc:303
msgid "Manage file &associations"
-msgstr "Wine이 호스트 시스템의 파일 연결을 수정합니다(&A)"
+msgstr "Wine이 호스트 OS의 파일 연결을 수정합니다(&A)"
#: programs/winecfg/winecfg.rc:306
msgid "Folders"
@@ -16236,15 +16234,15 @@ msgstr "드라이브"
#: programs/winecfg/winecfg.rc:35
msgid "Select the Unix target directory, please."
-msgstr "유닉스 목적 폴더를 선택하십시오."
+msgstr "연결 대상 디렉터리를 선택하세요."
#: programs/winecfg/winecfg.rc:36
msgid "Hide Advan&ced"
-msgstr "추가 옵션 숨기기(&C)"
+msgstr "고급 옵션 숨기기(&C)"
#: programs/winecfg/winecfg.rc:38
msgid "(No Theme)"
-msgstr "(테마 선택하지 않음)"
+msgstr "(테마 사용 안함)"
#: programs/winecfg/winecfg.rc:39
msgid "Graphics"
@@ -16272,7 +16270,7 @@ msgstr "테마 파일 (*.msstyles; *.theme)"
#: programs/winecfg/winecfg.rc:46
msgid "Select a theme file"
-msgstr "테마 파일 선택"
+msgstr "테마 파일을 선택하세요"
#: programs/winecfg/winecfg.rc:47
msgid "Folder"
@@ -16280,7 +16278,7 @@ msgstr "폴더"
#: programs/winecfg/winecfg.rc:48
msgid "Links to"
-msgstr "연결 위치"
+msgstr "연결 대상"
#: programs/winecfg/winecfg.rc:44
msgid "Wine configuration for %s"
@@ -16368,7 +16366,7 @@ msgstr "실행 파일 선택"
#: programs/winecfg/winecfg.rc:68
msgid "Autodetect"
-msgstr "자동으로 찾기"
+msgstr "자동검색"
#: programs/winecfg/winecfg.rc:69
msgid "Local hard disk"
@@ -16421,7 +16419,7 @@ msgstr "문자"
#: programs/winecfg/winecfg.rc:77
msgid "Target folder"
-msgstr "목표 폴더"
+msgstr "대상 폴더"
#: programs/winecfg/winecfg.rc:78
msgid ""
@@ -16431,7 +16429,7 @@ msgid ""
msgstr ""
"드라이브 C가 없습니다. 좋은 구성이 아닙니다.\n"
"\n"
-"드라이브 탭에서 [추가]를 클릭해서 만드는 것을 잊지 마십시오!\n"
+"드라이브 탭에서 [추가]를 클릭해서 만드는 것을 잊지 마세요!\n"
#: programs/winecfg/winecfg.rc:98
msgid "Controls Background"
@@ -16563,7 +16561,7 @@ msgid ""
"The command is invalid.\n"
msgstr ""
"wineconsole: 프로그램 %s 시작 실패.\n"
-"이 명령은 올바르지 않습니다.\n"
+"이 명령은 잘못되었습니다.\n"
#: programs/winedbg/winedbg.rc:50 programs/winedbg/winedbg.rc:38
msgid "Program Error"
@@ -16585,11 +16583,11 @@ msgid ""
msgstr ""
"이것은 프로그램의 문제나 Wine의 결함으로 인해 발생할 수 있습니다. 프로그램 실"
"행에 대한 팁을 얻으려면 <a href=\"https://appdb.winehq.org\">Application "
-"Database</a>를 살펴보십시오."
+"Database</a>를 살펴보세요."
#: programs/winedbg/winedbg.rc:62
msgid "Show &Details"
-msgstr "자세히(&D) 보이기"
+msgstr "자세히 보이기(^D)"
#: programs/winedbg/winedbg.rc:67
msgid "Program Error Details"
@@ -16625,7 +16623,7 @@ msgstr "저장 실패"
#: programs/winedbg/winedbg.rc:45
msgid "Loading detailed information, please wait..."
-msgstr "자세한 정보를 불러오는 중입니다, 잠시만 기다리십시오..."
+msgstr "자세한 정보를 불러오는 중입니다, 잠시만 기다리세요..."
#: programs/winefile/winefile.rc:29
msgid "&Open\tEnter"
@@ -16633,7 +16631,7 @@ msgstr "열기(&O)\tEnter"
#: programs/winefile/winefile.rc:33
msgid "Re&name..."
-msgstr "이름바꾸기(&N)..."
+msgstr "이름 바꾸기(&N)..."
#: programs/winefile/winefile.rc:34
msgid "Propert&ies\tAlt+Enter"
@@ -16661,31 +16659,31 @@ msgstr "이름(&N)"
#: programs/winefile/winefile.rc:52
msgid "&All File Details"
-msgstr "모든 파일 설명(&A)"
+msgstr "파일 세부 정보(&A)"
#: programs/winefile/winefile.rc:54
msgid "&Sort by Name"
-msgstr "이름으로 정렬(&S)"
+msgstr "이름 정렬(&S)"
#: programs/winefile/winefile.rc:55
msgid "Sort &by Type"
-msgstr "타입으로 정렬(&B)"
+msgstr "종류별 정렬(&B)"
#: programs/winefile/winefile.rc:56
msgid "Sort by Si&ze"
-msgstr "크기로 정렬(&Z)"
+msgstr "크기별 정렬(&Z)"
#: programs/winefile/winefile.rc:57
msgid "Sort by &Date"
-msgstr "날짜로 정렬(&D)"
+msgstr "날짜별 정렬(&D)"
#: programs/winefile/winefile.rc:59
msgid "Filter by&..."
-msgstr "로 걸려내기&..."
+msgstr "필터링 기준&..."
#: programs/winefile/winefile.rc:66
msgid "&Drive Bar"
-msgstr "드라이브 바(&D)"
+msgstr "드라이브 표시줄(&D)"
#: programs/winefile/winefile.rc:68
msgid "F&ull Screen\tCtrl+Shift+S"
@@ -16697,11 +16695,11 @@ msgstr "새 창(&W)"
#: programs/winefile/winefile.rc:75
msgid "Cascading\tCtrl+F5"
-msgstr "정렬\tCtrl+F5"
+msgstr "계단식\tCtrl+F5"
#: programs/winefile/winefile.rc:77
msgid "Tile &Vertically\tCtrl+F4"
-msgstr "세로 바둑판식 정렬(&V)\tCtrl+F4"
+msgstr "세로 바둑판식 배열(&V)\tCtrl+F4"
#: programs/winefile/winefile.rc:84
msgid "&About Wine File Manager"
@@ -16713,11 +16711,11 @@ msgstr "대상 선택"
#: programs/winefile/winefile.rc:134
msgid "By File Type"
-msgstr "파일 타입으로"
+msgstr "파일 형식별 필터링 기준"
#: programs/winefile/winefile.rc:139
msgid "File type"
-msgstr "파일 타입"
+msgstr "파일 형식"
#: programs/winefile/winefile.rc:140
msgid "&Directories"
@@ -16729,15 +16727,15 @@ msgstr "프로그램(&P)"
#: programs/winefile/winefile.rc:144
msgid "Docu&ments"
-msgstr "문서파일(&M)"
+msgstr "문서(&M)"
#: programs/winefile/winefile.rc:146
msgid "&Other files"
-msgstr "다른 파일(&O)"
+msgstr "기타 파일(&O)"
#: programs/winefile/winefile.rc:148
msgid "Show Hidden/&System Files"
-msgstr "숨김/시스템 파일 보이기(&S)"
+msgstr "숨김/시스템 파일 표시(&S)"
#: programs/winefile/winefile.rc:159
msgid "&File Name:"
@@ -16745,11 +16743,11 @@ msgstr "파일 이름(&F):"
#: programs/winefile/winefile.rc:161
msgid "Full &Path:"
-msgstr "완전한 경로(&P):"
+msgstr "전체 경로(&P):"
#: programs/winefile/winefile.rc:163
msgid "Last Change:"
-msgstr "마지막 변화:"
+msgstr "마지막 변경:"
#: programs/winefile/winefile.rc:167
msgid "Cop&yright:"
@@ -16761,7 +16759,7 @@ msgstr "시스템(&S)"
#: programs/winefile/winefile.rc:176
msgid "&Compressed"
-msgstr "압축(&C)"
+msgstr "압축됨(&C)"
#: programs/winefile/winefile.rc:177
msgid "Version information"
@@ -16778,7 +16776,7 @@ msgstr "글꼴 설정 적용"
#: programs/winefile/winefile.rc:91
msgid "Error while selecting new font."
-msgstr "새 글꼴 선택 오류."
+msgstr "새 글꼴을 선택하는 동안 오류가 발생했습니다."
#: programs/winefile/winefile.rc:96
msgid "Wine File Manager"
@@ -16810,7 +16808,7 @@ msgstr "인덱스/아이노드"
#: programs/winefile/winefile.rc:116
msgid "%1 of %2 free"
-msgstr "%1 / %2 사용가능"
+msgstr "%2 중 %1 사용가능"
#: programs/winemine/winemine.rc:39
msgid "&Game"
@@ -16846,7 +16844,7 @@ msgstr "가장 빠른 시간(&F)"
#: programs/winemine/winemine.rc:54
msgid "&About WineMine"
-msgstr "WINE지뢰찾기 정보(&A)"
+msgstr "지뢰찾기 정보(&A)"
#: programs/winemine/winemine.rc:61
msgid "Fastest Times"
@@ -16902,7 +16900,7 @@ msgstr "모든 결과를 잃습니다. 계속 진행하시겠습니까?"
#: programs/winemine/winemine.rc:30
msgid "WineMine"
-msgstr "Wine지뢰찾기"
+msgstr "지뢰찾기"
#: programs/winemine/winemine.rc:31
msgid "Nobody"
@@ -16994,7 +16992,7 @@ msgstr "도움말 파일 (*.hlp)"
#: programs/winhlp32/winhlp32.rc:92
msgid "Cannot find '%s'. Do you want to find this file yourself?"
-msgstr "%s을(를) 찾을 수 없습니다'. 이 파일을 직접 찾겠시겠습니까?"
+msgstr "%s을(를) 찾을 수 없습니다'. 이 파일을 직접 찾으시겠습니까?"
#: programs/winhlp32/winhlp32.rc:93
msgid "Cannot find a richedit implementation... Aborting"
@@ -17006,7 +17004,7 @@ msgstr "도움말 목차: "
#: programs/wmic/wmic.rc:28
msgid "Error: Command line not supported\n"
-msgstr "오류: 명령 라인은 지원하지 않음\n"
+msgstr "오류: 명령 라인은 지원되지 않음\n"
#: programs/wmic/wmic.rc:29
msgid "Error: Alias not found\n"
@@ -17014,11 +17012,11 @@ msgstr "오류: Alias를 찾을 수 없음\n"
#: programs/wmic/wmic.rc:30
msgid "Error: Invalid query\n"
-msgstr "오류: 올바르지 않은 질의\n"
+msgstr "오류: 잘못된 질의\n"
#: programs/wmic/wmic.rc:31
msgid "Error: Invalid syntax for PATH\n"
-msgstr "오류: 올바르지 않은 키 이름\n"
+msgstr "오류: 잘못된 키 이름\n"
#: programs/wordpad/wordpad.rc:31
msgid "&New...\tCtrl+N"
@@ -17046,11 +17044,11 @@ msgstr "읽기 전용(&O)"
#: programs/wordpad/wordpad.rc:58
msgid "&Modified"
-msgstr "수정 가능(&M)"
+msgstr "수정됨(&M)"
#: programs/wordpad/wordpad.rc:60
msgid "E&xtras"
-msgstr "기타(&X)"
+msgstr "추가(&X)"
#: programs/wordpad/wordpad.rc:62
msgid "Selection &info"
@@ -17058,15 +17056,15 @@ msgstr "선택 영역 정보(&I)"
#: programs/wordpad/wordpad.rc:63
msgid "Character &format"
-msgstr "문자 형식(&F)"
+msgstr "글꼴 서식(&F)"
#: programs/wordpad/wordpad.rc:64
msgid "&Def. char format"
-msgstr "정의된 문자열 형식(&D)"
+msgstr "기본 글꼴 서식(&D)"
#: programs/wordpad/wordpad.rc:65
msgid "Paragrap&h format"
-msgstr "단락 형식(&H)"
+msgstr "단락 서식(&H)"
#: programs/wordpad/wordpad.rc:66
msgid "&Get text"
@@ -17074,11 +17072,11 @@ msgstr "문자열 얻기(&G)"
#: programs/wordpad/wordpad.rc:72 programs/wordpad/wordpad.rc:273
msgid "&Format Bar"
-msgstr "형식바(&F)"
+msgstr "서식 모음(&F)"
#: programs/wordpad/wordpad.rc:73 programs/wordpad/wordpad.rc:274
msgid "&Ruler"
-msgstr "눈금바(&R)"
+msgstr "눈금자(&R)"
#: programs/wordpad/wordpad.rc:78
msgid "&Insert"
@@ -17086,11 +17084,11 @@ msgstr "삽입(&I)"
#: programs/wordpad/wordpad.rc:80
msgid "&Date and time..."
-msgstr "날짜와 시간(&D)..."
+msgstr "날짜 및 시간(&D)..."
#: programs/wordpad/wordpad.rc:82
msgid "F&ormat"
-msgstr "형식(&O)"
+msgstr "서식(&O)"
#: programs/wordpad/wordpad.rc:85
msgid "&Lists"
@@ -17098,27 +17096,27 @@ msgstr "목록(&L)"
#: programs/wordpad/wordpad.rc:87 programs/wordpad/wordpad.rc:116
msgid "&Bullet points"
-msgstr "강조 점(&B)"
+msgstr "글머리 기호(&B)"
#: programs/wordpad/wordpad.rc:88
msgid "Numbers"
-msgstr "번호"
+msgstr "숫자"
#: programs/wordpad/wordpad.rc:89
msgid "Letters - lower case"
-msgstr "아래 첨자"
+msgstr "문자 - 소문자"
#: programs/wordpad/wordpad.rc:90
msgid "Letters - upper case"
-msgstr "위 첨자"
+msgstr "문자 - 대문자"
#: programs/wordpad/wordpad.rc:91
msgid "Roman numerals - lower case"
-msgstr "로마 숫자 위 첨자"
+msgstr "로마 숫자 - 소문자"
#: programs/wordpad/wordpad.rc:92
msgid "Roman numerals - upper case"
-msgstr "로마 숫자 아래 첨자"
+msgstr "로마 숫자 - 대문자"
#: programs/wordpad/wordpad.rc:94 programs/wordpad/wordpad.rc:117
msgid "&Paragraph..."
@@ -17138,11 +17136,11 @@ msgstr "시스템(&S)\tCtrl+1"
#: programs/wordpad/wordpad.rc:99
msgid "&Pale yellow\tCtrl+2"
-msgstr "노랑색으로(&P)\tCtrl+2"
+msgstr "흐린 노란색(&P)\tCtrl+2"
#: programs/wordpad/wordpad.rc:104
msgid "&About Wine Wordpad"
-msgstr "Wine 워드패드에 관하여(&A)"
+msgstr "Wine 워드패드 정보(&A)"
#: programs/wordpad/wordpad.rc:141
msgid "Automatic"
@@ -17150,19 +17148,19 @@ msgstr "자동"
#: programs/wordpad/wordpad.rc:210
msgid "Date and time"
-msgstr "날짜와 시간"
+msgstr "날짜 및 시간"
#: programs/wordpad/wordpad.rc:213
msgid "Available formats"
-msgstr "가능한 형식"
+msgstr "사용 가능한 형식"
#: programs/wordpad/wordpad.rc:224
msgid "New document type"
-msgstr "새 문서 형식"
+msgstr "새 문서 종류"
#: programs/wordpad/wordpad.rc:232
msgid "Paragraph format"
-msgstr "단락 형식"
+msgstr "단락 서식"
#: programs/wordpad/wordpad.rc:235
msgid "Indentation"
@@ -17194,7 +17192,7 @@ msgstr "탭 정지"
#: programs/wordpad/wordpad.rc:255
msgid "&Add"
-msgstr "더하기(&A)"
+msgstr "추가(&A)"
#: programs/wordpad/wordpad.rc:259
msgid "Remove al&l"
@@ -17329,7 +17327,7 @@ msgstr "페이지"
#: programs/wordpad/wordpad.rc:182
msgid "Pages"
-msgstr "페이지들"
+msgstr "페이지"
#: programs/wordpad/wordpad.rc:183
msgctxt "unit: centimeter"
@@ -17356,31 +17354,31 @@ msgstr "문서"
#: programs/wordpad/wordpad.rc:192
msgid "Save changes to '%s'?"
-msgstr "'%s'에 바뀐 사항을 저장하시겠습니까?"
+msgstr "변경 내용을 '%s'에 저장하시겠습니까?"
#: programs/wordpad/wordpad.rc:193
msgid "Finished searching the document."
-msgstr "문서 검색이 끝났습니다."
+msgstr "문서 검색을 마쳤습니다."
#: programs/wordpad/wordpad.rc:194
msgid "Failed to load the RichEdit library."
-msgstr "RichEdit 라이브러리 불러오기 실패."
+msgstr "RichEdit 라이브러리를 로드하지 못했습니다."
#: programs/wordpad/wordpad.rc:195
msgid ""
"You have chosen to save in plain text format, which will cause all "
"formatting to be lost. Are you sure that you wish to do this?"
msgstr ""
-"일반 텍스트 형식으로 저장하도록 선택했습니다. 이로 인해 모든 형식이 손실됩니"
-"다. 계속하시겠습니까?"
+"일반 텍스트 형식으로 저장하도록 선택했기 때문에 모든 서식이 손실됩니다. 계속"
+"하시겠습니까?"
#: programs/wordpad/wordpad.rc:198
msgid "Invalid number format."
-msgstr "올바르지 않은 숫자 형식."
+msgstr "잘못된 숫자 형식."
#: programs/wordpad/wordpad.rc:199
msgid "OLE storage documents are not supported."
-msgstr "OLE 저장 문서는 지원되지 않습니다."
+msgstr "OLE 저장소 문서는 지원되지 않습니다."
#: programs/wordpad/wordpad.rc:200
msgid "Could not save the file."
@@ -17388,7 +17386,7 @@ msgstr "파일을 저장할 수 없습니다."
#: programs/wordpad/wordpad.rc:201
msgid "You do not have access to save the file."
-msgstr "파일을 저장할 권한이 없습니다."
+msgstr "파일을 저장할 수 있는 권한이 없습니다."
#: programs/wordpad/wordpad.rc:202
msgid "Could not open the file."
@@ -17396,29 +17394,27 @@ msgstr "파일을 열 수 없습니다."
#: programs/wordpad/wordpad.rc:203
msgid "You do not have access to open the file."
-msgstr "파일을 열 권한이 없습니다."
+msgstr "파일을 열 수 있는 권한이 없습니다."
#: programs/wordpad/wordpad.rc:204
msgid "Printing not implemented."
-msgstr "인쇄는 지원되지 않습니다."
+msgstr "인쇄가 구현되지 않았습니다."
#: programs/wordpad/wordpad.rc:205
msgid "Cannot add more than 32 tab stops."
-msgstr "탭중지는 32개 이상 추가할 수 없습니다."
+msgstr "탭 중지는 32개 이상 추가할 수 없습니다."
#: programs/write/write.rc:30
msgid "Starting Wordpad failed"
-msgstr "워드패드 시작 실패함"
+msgstr "워드패드 시작 실패"
#: programs/xcopy/xcopy.rc:30
msgid "Invalid number of parameters - Use xcopy /? for help\n"
-msgstr ""
-"올바르지 않은 매개변수의 개수 - 도움말을 보려면 'xcopy /?'를 사용하십시오\n"
+msgstr "잘못된 매개변수 개수 - 도움말을 보려면 'xcopy /?'를 사용하세요\n"
#: programs/xcopy/xcopy.rc:31
msgid "Invalid parameter '%1' - Use xcopy /? for help\n"
-msgstr ""
-"올바르지 않은 매개변수 '%1' - 도움말을 보려면 'xcopy /?'를 사용하십시오\n"
+msgstr "잘못된 매개변수 '%1' - 도움말을 보려면 'xcopy /?'를 사용하세요\n"
#: programs/xcopy/xcopy.rc:32
msgid "Press <Enter> to begin copying\n"
--
2.29.2
Dec. 29, 2020
[PATCH] winebus: Remove redundant preprocessor check for libsdl2
by Alex Henrie
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
---
dlls/winebus.sys/bus_sdl.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/dlls/winebus.sys/bus_sdl.c b/dlls/winebus.sys/bus_sdl.c
index fa691011fde..8f48b44eb95 100644
--- a/dlls/winebus.sys/bus_sdl.c
+++ b/dlls/winebus.sys/bus_sdl.c
@@ -69,7 +69,6 @@ static void *sdl_handle = NULL;
static HANDLE deviceloop_handle;
static UINT quit_event = -1;
-#ifdef SONAME_LIBSDL2
#define MAKE_FUNCPTR(f) static typeof(f) * p##f = NULL
MAKE_FUNCPTR(SDL_GetError);
MAKE_FUNCPTR(SDL_Init);
@@ -109,7 +108,6 @@ MAKE_FUNCPTR(SDL_memset);
MAKE_FUNCPTR(SDL_GameControllerAddMapping);
MAKE_FUNCPTR(SDL_RegisterEvents);
MAKE_FUNCPTR(SDL_PushEvent);
-#endif
static Uint16 (*pSDL_JoystickGetProduct)(SDL_Joystick * joystick);
static Uint16 (*pSDL_JoystickGetProductVersion)(SDL_Joystick * joystick);
static Uint16 (*pSDL_JoystickGetVendor)(SDL_Joystick * joystick);
--
2.29.2
Dec. 29, 2020
Re: [PATCH] user32/tests: Don't kill explorer to test shell window.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83696
Your paranoid android.
=== w1064_2qxl (64 bit report) ===
user32:
win.c:3882: Test failed: hwnd 00000000000C003C/00000000000C003C message 0200
win.c:3885: Test failed: hwnd 00000000000C003C/00000000000C003C message 0201
Dec. 28, 2020
[PATCH] user32/tests: Don't kill explorer to test shell window.
by Esme Povirk
Killing explorer breaks later tests. We can create a new desktop
without a shell instead.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48142
Signed-off-by: Esme Povirk <esme(a)codeweavers.com>
---
dlls/user32/tests/win.c | 96 +++++++++++------------------------------
1 file changed, 24 insertions(+), 72 deletions(-)
diff --git a/dlls/user32/tests/win.c b/dlls/user32/tests/win.c
index 843da8900f1..c9d2819e1a9 100644
--- a/dlls/user32/tests/win.c
+++ b/dlls/user32/tests/win.c
@@ -1288,87 +1288,24 @@ static LRESULT CALLBACK cbt_hook_proc(int nCode, WPARAM wParam, LPARAM lParam)
return CallNextHookEx(hhook, nCode, wParam, lParam);
}
-static const WCHAR winlogonW[] =
- {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',
- 'W','i','n','d','o','w','s',' ','N','T','\\','C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
- 'W','i','n','l','o','g','o','n',0};
-static const WCHAR autorestartshellW[] =
- {'A','u','t','o','R','e','s','t','a','r','t','S','h','e','l','l',0};
-
-static DWORD get_autorestart(void)
-{
- DWORD type, val, len = sizeof(val);
- REGSAM access = KEY_ALL_ACCESS|KEY_WOW64_64KEY;
- HKEY hkey;
- LONG res;
-
- if (RegCreateKeyExW( HKEY_LOCAL_MACHINE, winlogonW, 0, 0, 0, access, NULL, &hkey, 0 )) return 0;
- res = RegQueryValueExW( hkey, autorestartshellW, NULL, &type, (BYTE *)&val, &len );
- RegCloseKey( hkey );
- return (!res && type == REG_DWORD) ? val : 0;
-}
-
-static BOOL set_autorestart( DWORD val )
-{
- REGSAM access = KEY_ALL_ACCESS|KEY_WOW64_64KEY;
- HKEY hkey;
- LONG res;
-
- if (RegCreateKeyExW( HKEY_LOCAL_MACHINE, winlogonW, 0, 0, 0, access, NULL, &hkey, 0 )) return FALSE;
- res = RegSetValueExW( hkey, autorestartshellW, 0, REG_DWORD, (BYTE *)&val, sizeof(val) );
- RegCloseKey( hkey );
- return !res;
-}
-
-static void test_shell_window(void)
+static DWORD WINAPI test_shell_window_thread(LPVOID param)
{
BOOL ret;
- DWORD error, restart = get_autorestart();
HMODULE hinst, hUser32;
BOOL (WINAPI*SetShellWindow)(HWND);
HWND hwnd1, hwnd2, hwnd3, hwnd4, hwnd5;
HWND shellWindow, nextWnd;
+ HDESK testDesktop = (HDESK)param;
- if (restart && !set_autorestart(0))
- {
- skip("cannot disable automatic shell restart (needs admin rights\n");
- return;
- }
+ SetThreadDesktop(testDesktop);
shellWindow = GetShellWindow();
hinst = GetModuleHandleA(NULL);
hUser32 = GetModuleHandleA("user32");
- SetShellWindow = (void *)GetProcAddress(hUser32, "SetShellWindow");
-
- if (shellWindow) {
- DWORD pid;
- HANDLE hProcess;
-
- GetWindowThreadProcessId(shellWindow, &pid);
- hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
- if (!hProcess)
- {
- skip( "cannot get access to shell process\n" );
- set_autorestart(restart);
- return;
- }
-
- SetLastError(0xdeadbeef);
- ret = DestroyWindow(shellWindow);
- error = GetLastError();
+ ok(shellWindow == NULL, "Newly created desktop has a shell window %p\n", shellWindow);
- ok(!ret, "DestroyWindow(shellWindow)\n");
- /* passes on Win XP, but not on Win98 */
- ok(error==ERROR_ACCESS_DENIED || error == 0xdeadbeef,
- "got %u after DestroyWindow(shellWindow)\n", error);
-
- /* close old shell instance */
- ret = TerminateProcess(hProcess, 0);
- ok(ret, "termination of previous shell process failed: GetLastError()=%d\n", GetLastError());
- WaitForSingleObject(hProcess, INFINITE); /* wait for termination */
- CloseHandle(hProcess);
- }
+ SetShellWindow = (void *)GetProcAddress(hUser32, "SetShellWindow");
hwnd1 = CreateWindowExA(0, "#32770", "TEST1", WS_OVERLAPPEDWINDOW/*|WS_VISIBLE*/, 100, 100, 300, 200, 0, 0, hinst, 0);
@@ -1381,8 +1318,8 @@ static void test_shell_window(void)
ok(!ret, "second call to SetShellWindow(hwnd1)\n");
ret = SetShellWindow(0);
- error = GetLastError();
/* passes on Win XP, but not on Win98
+ DWORD error = GetLastError();
ok(!ret, "reset shell window by SetShellWindow(0)\n");
ok(error==ERROR_INVALID_WINDOW_HANDLE, "ERROR_INVALID_WINDOW_HANDLE after SetShellWindow(0)\n"); */
@@ -1442,7 +1379,24 @@ static void test_shell_window(void)
DestroyWindow(hwnd3);
DestroyWindow(hwnd4);
DestroyWindow(hwnd5);
- set_autorestart(restart);
+
+ return 0;
+}
+
+static void test_shell_window(void)
+{
+ HDESK hdesk;
+ HANDLE hthread;
+
+ hdesk = CreateDesktopA("winetest", NULL, NULL, 0, GENERIC_ALL, NULL);
+
+ hthread = CreateThread(NULL, 0, test_shell_window_thread, (LPVOID)hdesk, 0, NULL);
+
+ WaitForSingleObject(hthread, INFINITE);
+
+ DeleteObject(hthread);
+
+ CloseDesktop(hdesk);
}
/************** MDI test ****************/
@@ -12075,7 +12029,5 @@ START_TEST(win)
*/
test_topmost();
- /* Execute the SetShellWindow() test last, since it kills explorer and that
- * breaks a lot of things. */
test_shell_window();
}
--
2.25.1
Dec. 28, 2020
Re: [PATCH 2/2] ntdll/tests: Align check test correctly clears AC flag.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83689
Your paranoid android.
=== w10pro64 (testbot log) ===
An error occurred while waiting for the test to complete: the 9180 process does not exist or is not a child process
=== w10pro64 (testbot log) ===
An error occurred while waiting for the test to complete: the 8280 process does not exist or is not a child process
=== w10pro64_ar (testbot log) ===
An error occurred while waiting for the test to complete: the 7720 process does not exist or is not a child process
=== w10pro64_zh_CN (testbot log) ===
An error occurred while waiting for the test to complete: the 7796 process does not exist or is not a child process
Dec. 28, 2020
Re: [PATCH v2] po: Update Ukrainian translation.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83678
Your paranoid android.
=== debiant (build log) ===
error: patch failed: po/uk.po:5
Task: Patch failed to apply
=== debiant (build log) ===
error: patch failed: po/uk.po:5
Task: Patch failed to apply
Dec. 28, 2020
Re: [PATCH] po: Update Ukrainian translation.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83677
Your paranoid android.
=== debiant (build log) ===
error: patch failed: po/uk.po:5
Task: Patch failed to apply
=== debiant (build log) ===
error: patch failed: po/uk.po:5
Task: Patch failed to apply
Dec. 28, 2020
Re: [PATCH] d3dcompiler/tests: Avoid initializing nameless unions in designated initializers.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83675
Your paranoid android.
=== build (build log) ===
error: patch failed: dlls/d3dcompiler_43/tests/hlsl_d3d11.c:526
Task: Patch failed to apply
=== debiant (build log) ===
error: patch failed: dlls/d3dcompiler_43/tests/hlsl_d3d11.c:526
Task: Patch failed to apply
=== debiant (build log) ===
error: patch failed: dlls/d3dcompiler_43/tests/hlsl_d3d11.c:526
Task: Patch failed to apply
Dec. 28, 2020
Re: [PATCH] ucrtbase: Do not prefix MSVCRT_ to the exported function name of _lrot*.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83672
Your paranoid android.
=== debiant (build log) ===
error: patch failed: dlls/ucrtbase/ucrtbase.spec:568
Task: Patch failed to apply
=== debiant (build log) ===
error: patch failed: dlls/ucrtbase/ucrtbase.spec:568
Task: Patch failed to apply
Dec. 28, 2020
Re: [PATCH] configure: Don't check for libVulkan on macOS.
by Dean Greer
On Sun, Dec 27, 2020 at 11:57 PM Chip Davis <cdavis(a)codeweavers.com> wrote:
> December 27, 2020 6:03 PM, "Dean M Greer" <gcenx83(a)gmail.com> wrote:
>
> > macOS uses libMoltenVK, finding libVulkan on macOS causes libMoltenVK to
> be ignored and Wine is
> > unable to interact with the Vulkan loader on macOS.
>
> If that's true, then we need to fix that. It should be possible to use
> MoltenVK as an ICD through the Vulkan loader.
>
>
> Chip
>
> I don’t remember the error code off hand just that when compiled with
libvulkan wine64 didn’t have functional Vulkan support.
Cube/Vulkan info etc could find libMoltenVK with the ICD file I’d setup
within my user but wine64 didn’t.
Dean M Greer
Dec. 28, 2020
Re: ARM disassembler bug
by André Hentschel
Am 27.12.20 um 23:59 schrieb Qijia Liu:
> Hello,
> I’m from downstream radare2 project. There seems to be a bug in winedbg’s ARM 32-bit disassembler. For the instruction 0xe329f00d, it produces “msr cpsr, sp” while our other 2 disassembler (gnu and capstone) produces “msr cpsr_fc, 13”. I think the bug is in https://github.com/wine-mirror/wine/blob/e377786a71c3b6eab5bc11c0b1c9c7c3dc….
> Please take a look. Thank you.
> Best,
> Qijia Liu
>
Hi,
Back then I wrote the code and yes, there might be some detail bugs left, good catch!
Patches are welcome here, as you already have fixed it in downstream according to [1] it should be easier for you than for me :)
[1] https://github.com/radareorg/radare2/pull/18117
Dec. 28, 2020
Re: [PATCH] configure: Don't check for libVulkan on macOS.
by Chip Davis
December 27, 2020 6:03 PM, "Dean M Greer" <gcenx83(a)gmail.com> wrote:
> macOS uses libMoltenVK, finding libVulkan on macOS causes libMoltenVK to be ignored and Wine is
> unable to interact with the Vulkan loader on macOS.
If that's true, then we need to fix that. It should be possible to use MoltenVK as an ICD through the Vulkan loader.
Chip
Dec. 28, 2020
[PATCH] Configure: Remove Xcode 3.x check.
by Dean M Greer
Check causes issues with newer Xcode versions. Xcode 3.x is unable to compile modern wine.
Signed-off-by: Dean M Greer <gcenx83(a)gmail.com>
---
configure.ac | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1d770009ae3..6b1b29fef3c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -867,24 +867,6 @@ case $host_os in
LIBS="$ac_save_LIBS"
fi
- dnl Check for Xcode 3.x broken 16-bit support
- if test "x$enable_win16" = "xyes"
- then
- AC_MSG_CHECKING([whether 16-bit code can be built correctly])
- AC_RUN_IFELSE([AC_LANG_PROGRAM([[asm(".text\n"
- "bad:\tnop;nop\n"
- "good:\tnop;nop\n\t"
- ".globl _testfunc\n"
- "_testfunc:\tcallw good");
- extern void testfunc();]],
- [[unsigned short *p = (unsigned short *)testfunc;
- return p[0] != 0xe866 || p[1] != 0xfffa]])],
- AC_MSG_RESULT(yes),
- [AC_MSG_RESULT(no)
- AC_MSG_ERROR([Xcode 3.x cannot build 16-bit code correctly. Use --disable-win16 if you don't need 16-bit support.])],
- AC_MSG_RESULT([[cross-compiling, assuming yes]]))
- fi
-
AC_SUBST(LIBWINE_SHAREDLIB,"libwine.$libwine_version.dylib")
AC_SUBST(LIBWINE_LDFLAGS,["-dynamiclib -install_name @rpath/libwine.$libwine_soversion.dylib -Wl,-rpath,@loader_path/ -compatibility_version $libwine_soversion -current_version $libwine_version"])
AC_SUBST(WINELOADER_DEPENDS,"wine_info.plist")
--
2.24.3 (Apple Git-128)
Dec. 28, 2020
[PATCH] configure: Don't check for libVulkan on macOS.
by Dean M Greer
macOS uses libMoltenVK, finding libVulkan on macOS causes libMoltenVK to be ignored and Wine is unable to interact with the Vulkan loader on macOS.
Signed-off-by: Dean M Greer <gcenx83(a)gmail.com>
---
configure.ac | 1 +
1 file changed, 1 insertion(+)
diff --git a/configure.ac b/configure.ac
index dafa8489b71..1d770009ae3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -130,6 +130,7 @@ AC_CHECK_TOOL(LD,ld)
case $host in
*-darwin*)
with_fontconfig=${with_fontconfig:-no}
+ ac_cv_lib_soname_vulkan=
;;
*-mingw32*|*-cygwin*)
enable_win16=${enable_win16:-no}
--
2.24.3 (Apple Git-128)
Dec. 28, 2020
[PATCH] README: Update OS X requirements.
by Dean M Greer
Signed-off-by: Dean M Greer <gcenx83(a)gmail.com>
---
README | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/README b/README
index 9761f667034..ed139d9cd18 100644
--- a/README
+++ b/README
@@ -40,7 +40,7 @@ To compile and run Wine, you must have one of the following:
FreeBSD 8.0 or later
Solaris x86 9 or later
NetBSD-current
- Mac OS X 10.5 or later
+ Mac OS X 10.8 or later
As Wine requires kernel-level thread support to run, only the operating
systems mentioned above are supported. Other operating systems which
@@ -61,9 +61,10 @@ NetBSD info:
turned on in your kernel.
Mac OS X info:
- You need Xcode 2.4 or later to build properly on x86.
- The Mac driver requires OS X 10.6 or later and won't be built on 10.5.
-
+ The minimum requirements for compiling Wine are clang 3.8 with
+ The MacOSX10.10.sdk and mingw-w64 v8.
+ The MacOSX10.14.sdk and later can only build wine64.
+ Xcode/Xcode Command Line Tools or Apple cctools.
Supported file systems:
Wine should run on most file systems. A few compatibility problems
--
2.24.3 (Apple Git-128)
Dec. 27, 2020
ARM disassembler bug
by Qijia Liu
Hello,
I’m from downstream radare2 project. There seems to be a bug in winedbg’s ARM 32-bit disassembler. For the instruction 0xe329f00d, it produces “msr cpsr, sp” while our other 2 disassembler (gnu and capstone) produces “msr cpsr_fc, 13”. I think the bug is in https://github.com/wine-mirror/wine/blob/e377786a71c3b6eab5bc11c0b1c9c7c3dc….
Please take a look. Thank you.
Best,
Qijia Liu
Dec. 27, 2020
[PATCH 2/2] ntdll/tests: Align check test correctly clears AC flag.
by Jefferson Carpenter
RESEND
Makes sure AC flag is set back to its original value regardless of the
outcome of the test, so it will not interfere with subsequent tests.
thanks,
Jefferson
Dec. 27, 2020
[PATCH 1/2] ntdll: Set signal stack before calling getenv.
by Jefferson Carpenter
Figured out what was causing the Segmentation Fault running the
exception tests. Since the AC bit was left on, an exception was thrown
inside of a glibc function in server_init_thread, and the current TEB
was mis-identified leading to the crash. This commit re-orders the code
in server_init_thread so that the TEB is correctly identified should an
exception be thrown from inside it.
thanks,
Jefferson
Dec. 27, 2020
[PATCH 2/2] ntdll/tests: Align check test correctly clears AC flag.
by Jefferson Carpenter
Makes sure AC flag is set back to its original value regardless of the
outcome of the test, so it will not interfere with subsequent tests.
thanks,
Jefferson
Dec. 27, 2020
[PATCH 1/2] ntdll: Set signal stack before calling getenv.
by Jefferson Carpenter
Figured out what was causing the Segmentation Fault running the
exception tests. Since the AC bit was left on, an exception was thrown
inside of a glibc function in server_init_thread, and the current TEB
was mis-identified leading to the crash. This commit re-orders the code
in server_init_thread so that the TEB is correctly identified should an
exception be thrown from inside it.
thanks,
Jefferson
Dec. 27, 2020
[PATCH] ws2_32: deal with getaddrinfo() returning NULL ai_canonname despite AI_CANONNAME
by Damjan Jovanovic
This fixes a wineboot crash on FreeBSD, where getaddrinfo() returns a NULL
ai_canonname, causing wineboot to pass NULL to strchr().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50408
Signed-off-by: Damjan Jovanovic <damjan.jov(a)gmail.com>
---
dlls/ws2_32/socket.c | 6 ++++++
1 file changed, 6 insertions(+)
Dec. 27, 2020
Wine staging 6.0-rc4 release
by Alistair Leslie-Hughes
Binary packages for various distributions will be available from:
https://www.winehq.org/download
Summary since last release
* Rebased to current wine 6.0-rc4 (772 patches are applied to wine vanilla)
Upstreamed (Either directly from staging or fixed with a similar patch).
* None
Added:
* None
Updated:
* server-File_Permissions
* mfplat-streaming-support
* dxdiag-new-dlls
Where can you help
* Run Steam/Battle.net/GOG/UPlay/Epic
* Test your favorite game.
* Test your favorite applications.
* Improve staging patches and get them accepted upstream.
As always, if you find a bug, please report it via
https://bugs.winehq.org
Best Regards
Alistair.
Dec. 27, 2020
[PATCH] httpapi/tests: Avoid some test failures with newer Windows 10.
by Zebediah Figura
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
dlls/httpapi/tests/httpapi.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/dlls/httpapi/tests/httpapi.c b/dlls/httpapi/tests/httpapi.c
index 5d79197505c..1d1ad56e9f6 100644
--- a/dlls/httpapi/tests/httpapi.c
+++ b/dlls/httpapi/tests/httpapi.c
@@ -304,7 +304,7 @@ static void test_v1_server(void)
ok(req->BytesReceived == strlen(req_text), "Got %s bytes.\n", wine_dbgstr_longlong(req->BytesReceived));
ok(!req->EntityChunkCount, "Got %u entity chunks.\n", req->EntityChunkCount);
ok(!req->pEntityChunks, "Got entity chunks %p.\n", req->pEntityChunks);
- ok(!req->RawConnectionId, "Got SSL connection ID %s.\n", wine_dbgstr_longlong(req->RawConnectionId));
+ /* req->RawConnectionId is zero until Win10 2004. */
ok(!req->pSslInfo, "Got SSL info %p.\n", req->pSslInfo);
response.StatusCode = 418;
@@ -1372,10 +1372,9 @@ static void test_v2_server(void)
ok(req->BytesReceived == strlen(req_text), "Got %s bytes.\n", wine_dbgstr_longlong(req->BytesReceived));
ok(!req->EntityChunkCount, "Got %u entity chunks.\n", req->EntityChunkCount);
ok(!req->pEntityChunks, "Got entity chunks %p.\n", req->pEntityChunks);
- ok(!req->RawConnectionId, "Got SSL connection ID %s.\n", wine_dbgstr_longlong(req->RawConnectionId));
+ /* req->RawConnectionId is zero until Win10 2004. */
ok(!req->pSslInfo, "Got SSL info %p.\n", req->pSslInfo);
- ok(!reqv2->RequestInfoCount, "Got request info count %u.\n", reqv2->RequestInfoCount);
- ok(!reqv2->pRequestInfo, "Got request info %p.\n", reqv2->pRequestInfo);
+ /* RequestInfoCount and pRequestInfo are zero until Win10 1909. */
response.s.StatusCode = 418;
response.s.pReason = "I'm a teapot";
--
2.29.2
Dec. 26, 2020
[PATCH] msscript.ocx/tests: Use wide-char string literals.
by Michael Stefaniuc
Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org>
---
dlls/msscript.ocx/tests/msscript.c | 47 ++++++++++++------------------
1 file changed, 18 insertions(+), 29 deletions(-)
diff --git a/dlls/msscript.ocx/tests/msscript.c b/dlls/msscript.ocx/tests/msscript.c
index 4f43764234c..756c21d887b 100644
--- a/dlls/msscript.ocx/tests/msscript.c
+++ b/dlls/msscript.ocx/tests/msscript.c
@@ -34,7 +34,6 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
#define TESTSCRIPT_CLSID "{178fc164-f585-4e24-9c13-4bb7faf80746}"
static const GUID CLSID_TestScript =
{0x178fc164,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xfa,0xf8,0x07,0x46}};
-static const WCHAR vbW[] = {'V','B','S','c','r','i','p','t',0};
#ifdef _WIN64
@@ -1371,9 +1370,6 @@ static void test_olecontrol(void)
static void test_Language(void)
{
- static const WCHAR jsW[] = {'J','S','c','r','i','p','t',0};
- static const WCHAR vb2W[] = {'v','B','s','c','r','i','p','t',0};
- static const WCHAR dummyW[] = {'d','u','m','m','y',0};
IScriptControl *sc;
HRESULT hr;
BSTR str;
@@ -1390,39 +1386,39 @@ static void test_Language(void)
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(str == NULL, "got %s\n", wine_dbgstr_w(str));
- str = SysAllocString(vbW);
+ str = SysAllocString(L"VBScript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
- str = SysAllocString(vb2W);
+ str = SysAllocString(L"vBscript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
hr = IScriptControl_get_Language(sc, &str);
ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(str, vbW), "got %s\n", wine_dbgstr_w(str));
+ ok(!lstrcmpW(str, L"VBScript"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
- str = SysAllocString(dummyW);
+ str = SysAllocString(L"dummy");
hr = IScriptControl_put_Language(sc, str);
ok(hr == CTL_E_INVALIDPROPERTYVALUE, "got 0x%08x\n", hr);
SysFreeString(str);
hr = IScriptControl_get_Language(sc, &str);
ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(str, vbW), "got %s\n", wine_dbgstr_w(str));
+ ok(!lstrcmpW(str, L"VBScript"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
- str = SysAllocString(jsW);
+ str = SysAllocString(L"JScript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
hr = IScriptControl_get_Language(sc, &str);
ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(str, jsW), "got %s\n", wine_dbgstr_w(str));
+ ok(!lstrcmpW(str, L"JScript"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
hr = IScriptControl_put_Language(sc, NULL);
@@ -1436,8 +1432,6 @@ static void test_Language(void)
/* custom script engine */
if (have_custom_engine) {
- static const WCHAR testscriptW[] = {'t','e','s','t','s','c','r','i','p','t',0};
-
hr = CoCreateInstance(&CLSID_ScriptControl, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
&IID_IScriptControl, (void**)&sc);
ok(hr == S_OK, "got 0x%08x\n", hr);
@@ -1448,7 +1442,7 @@ static void test_Language(void)
SET_EXPECT(QI_IActiveScriptParse);
SET_EXPECT(InitNew);
- str = SysAllocString(testscriptW);
+ str = SysAllocString(L"testscript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
@@ -1462,7 +1456,7 @@ static void test_Language(void)
todo_wine
ok(hr == S_OK, "got 0x%08x\n", hr);
if (hr == S_OK)
- ok(!lstrcmpW(testscriptW, str), "%s\n", wine_dbgstr_w(str));
+ ok(!lstrcmpW(L"testscript", str), "%s\n", wine_dbgstr_w(str));
SysFreeString(str);
IActiveScriptSite_Release(site);
@@ -1687,7 +1681,7 @@ static void test_timeout(void)
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(val == 0, "got %d\n", val);
- str = SysAllocString(vbW);
+ str = SysAllocString(L"VBScript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
@@ -1716,7 +1710,7 @@ static void test_Reset(void)
hr = IScriptControl_Reset(sc);
ok(hr == E_FAIL, "got 0x%08x\n", hr);
- str = SysAllocString(vbW);
+ str = SysAllocString(L"VBScript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
@@ -1726,15 +1720,13 @@ static void test_Reset(void)
hr = IScriptControl_get_Language(sc, &str);
ok(hr == S_OK, "got 0x%08x\n", hr);
- ok(!lstrcmpW(str, vbW), "got %s\n", wine_dbgstr_w(str));
+ ok(!lstrcmpW(str, L"VBScript"), "got %s\n", wine_dbgstr_w(str));
SysFreeString(str);
IScriptControl_Release(sc);
/* custom script engine */
if (have_custom_engine) {
- static const WCHAR testscriptW[] = {'t','e','s','t','s','c','r','i','p','t',0};
-
hr = CoCreateInstance(&CLSID_ScriptControl, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
&IID_IScriptControl, (void**)&sc);
ok(hr == S_OK, "got 0x%08x\n", hr);
@@ -1745,7 +1737,7 @@ static void test_Reset(void)
SET_EXPECT(QI_IActiveScriptParse);
SET_EXPECT(InitNew);
- str = SysAllocString(testscriptW);
+ str = SysAllocString(L"testscript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
@@ -1833,7 +1825,6 @@ static IDispatch testdisp = { &dispvtbl };
static void test_AddObject(void)
{
- static const WCHAR oW[] = {'o',0};
IScriptControl *sc;
BSTR str, objname;
HRESULT hr;
@@ -1842,14 +1833,14 @@ static void test_AddObject(void)
&IID_IScriptControl, (void**)&sc);
ok(hr == S_OK, "got 0x%08x\n", hr);
- objname = SysAllocString(oW);
+ objname = SysAllocString(L"o");
hr = IScriptControl_AddObject(sc, objname, NULL, VARIANT_FALSE);
ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
hr = IScriptControl_AddObject(sc, objname, &testdisp, VARIANT_FALSE);
ok(hr == E_FAIL, "got 0x%08x\n", hr);
- str = SysAllocString(vbW);
+ str = SysAllocString(L"VBScript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
@@ -1867,8 +1858,6 @@ static void test_AddObject(void)
/* custom script engine */
if (have_custom_engine) {
- static const WCHAR testscriptW[] = {'t','e','s','t','s','c','r','i','p','t',0};
-
hr = CoCreateInstance(&CLSID_ScriptControl, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
&IID_IScriptControl, (void**)&sc);
ok(hr == S_OK, "got 0x%08x\n", hr);
@@ -1879,7 +1868,7 @@ static void test_AddObject(void)
SET_EXPECT(QI_IActiveScriptParse);
SET_EXPECT(InitNew);
- str = SysAllocString(testscriptW);
+ str = SysAllocString(L"testscript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
@@ -2122,7 +2111,7 @@ static void test_UseSafeSubset(void)
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(use_safe_subset == VARIANT_TRUE, "got %d\n", use_safe_subset);
- str = SysAllocString(vbW);
+ str = SysAllocString(L"VBScript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
@@ -2239,7 +2228,7 @@ static void test_State(void)
hr = IScriptControl_put_State(sc, Connected);
ok(hr == E_FAIL, "got 0x%08x\n", hr);
- str = SysAllocString(vbW);
+ str = SysAllocString(L"VBScript");
hr = IScriptControl_put_Language(sc, str);
ok(hr == S_OK, "got 0x%08x\n", hr);
SysFreeString(str);
--
2.26.2
Dec. 26, 2020
Re: TestBot news
by Francois Gouget
So my understanding is that a snowstorm hit Minnesota and the power to
the VM hosts went off. I expect them to come alive again when the power
is restored which seems to be delayed by the holidays.
--
Francois Gouget <fgouget(a)codeweavers.com>
Dec. 26, 2020
[PATCH v2] po: Update Ukrainian translation.
by Andrey Gusev
Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com>
---
po/uk.po | 734 ++++++++++++++++++++++++-------------------------------
1 file changed, 317 insertions(+), 417 deletions(-)
diff --git a/po/uk.po b/po/uk.po
index 7ef7b4f29f6..d7b64f45a79 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -5,7 +5,7 @@ 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-09 22:24+0200\n"
+"PO-Revision-Date: 2020-12-25 21:00+0200\n"
"Last-Translator: Andrey Gusev <andrey.goosev(a)gmail.com>\n"
"Language-Team: Ukrainian\n"
"Language: uk\n"
@@ -700,7 +700,7 @@ msgstr "Д&одаткові кольори:"
#: dlls/comdlg32/comdlg32.rc:289
msgid "|S&olid"
-msgstr ""
+msgstr "|&Суцільний"
#: dlls/comdlg32/comdlg32.rc:290
msgid "&Red:"
@@ -737,11 +737,9 @@ msgid "&Define Custom Colors >>"
msgstr "&Визначити колір >>"
#: dlls/comdlg32/comdlg32.rc:312
-#, fuzzy
-#| msgid "&No"
msgctxt "Solid"
-msgid "&o"
-msgstr "&Ні"
+msgid "&Sol"
+msgstr "&Суц"
#: dlls/comdlg32/comdlg32.rc:318 programs/regedit/regedit.rc:275
#: programs/regedit/regedit.rc:285
@@ -3743,7 +3741,7 @@ msgstr "Ігрові Контролери"
#: dlls/joy.cpl/joy.rc:32
msgid "Test and configure game controllers."
-msgstr ""
+msgstr "Перевірте та налаштуйте ігрові контролери."
#: dlls/jscript/jscript.rc:28
msgid "Error converting object to primitive type"
@@ -3758,10 +3756,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"
@@ -3910,16 +3906,12 @@ msgid "JScript object expected"
msgstr "Очікується об'єкт JScript"
#: dlls/jscript/jscript.rc:63
-#, fuzzy
-#| msgid "Array object expected"
msgid "Enumerator object expected"
-msgstr "Очікується об'єкт Array"
+msgstr "Очікується об’єкт перечислювача"
#: dlls/jscript/jscript.rc:64
-#, fuzzy
-#| msgid "Boolean object expected"
msgid "Regular Expression object expected"
-msgstr "Очікується об'єкт Boolean"
+msgstr "Очікується об’єкт регулярного виразу"
#: dlls/jscript/jscript.rc:65
msgid "Syntax error in regular expression"
@@ -3927,7 +3919,7 @@ msgstr "Синтаксична помилка в регулярному вира
#: dlls/jscript/jscript.rc:66
msgid "Exception thrown and not caught"
-msgstr ""
+msgstr "Виняток викликано, але не перехоплено"
#: dlls/jscript/jscript.rc:68
msgid "URI to be encoded contains invalid characters"
@@ -6944,32 +6936,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 "Creation failed.\n"
msgid "Call failed.\n"
-msgstr "Помилка створення.\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/localspl/localspl.rc:31 dlls/localui/localui.rc:31
#: dlls/winspool.drv/winspool.rc:30
@@ -7029,10 +7013,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"
@@ -7411,10 +7393,8 @@ msgid "Clock state was already set.\n"
msgstr "Статус годинника вже встановлено.\n"
#: dlls/mferror/mferror.mc:725
-#, fuzzy
-#| msgid "Clock is not available.\n"
msgid "Clock is not simple\n"
-msgstr "Годинник недоступний.\n"
+msgstr "Годинник не простий\n"
#: dlls/mpr/mpr.rc:35 dlls/wininet/wininet.rc:48
msgid "Enter Network Password"
@@ -8582,98 +8562,72 @@ msgid "Off"
msgstr "Вимкнено"
#: dlls/oledb32/version.rc:56
-#, fuzzy
-#| msgid "video"
msgid "Provider"
-msgstr "відео"
+msgstr "Постачальник"
#: dlls/oledb32/version.rc:59
-#, fuzzy
-#| msgid "Select the format you want to use:"
msgid "Select the data you want to connect to:"
-msgstr "Виберіть формат, який ви хочете використати:"
+msgstr "Виберіть дані, до яких потрібно підключитися:"
#: dlls/oledb32/version.rc:66
-#, fuzzy
-#| msgid "Connections"
msgid "Connection"
msgstr "Підключення"
#: dlls/oledb32/version.rc:69
-#, fuzzy
-#| msgid "Select the format you want to use:"
msgid "Specify the following to connect to ODBC data:"
-msgstr "Виберіть формат, який ви хочете використати:"
+msgstr "Вкажіть наступне для підключення до даних ODBC:"
#: dlls/oledb32/version.rc:70
msgid "1. Specify the source of data:"
-msgstr ""
+msgstr "1. Вкажіть джерело даних:"
#: dlls/oledb32/version.rc:71
-#, fuzzy
-#| msgid "Please enter your name"
msgid "Use &data source name"
-msgstr "Введіть ваше ім'я"
+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
-#| msgid "A&dd..."
msgid "B&uild..."
-msgstr "&Додати..."
+msgstr "&Створити..."
#: dlls/oledb32/version.rc:78
msgid "2. Enter information to log on to the server"
-msgstr ""
+msgstr "2. Введіть інформацію для входу на сервер"
#: dlls/oledb32/version.rc:79
-#, fuzzy
-#| msgid "&User name:"
msgid "User &name:"
-msgstr "&Користувач:"
+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 ""
+msgstr "3. Введіть &початковий каталог для використання:"
#: 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
msgid "&Impersonation level:"
@@ -8681,83 +8635,67 @@ msgstr ""
#: dlls/oledb32/version.rc:98
msgid "P&rotection level:"
-msgstr ""
+msgstr "Р&івень захисту:"
#: dlls/oledb32/version.rc:101
-#, fuzzy
-#| msgid "Connected"
msgid "Connect:"
-msgstr "Під'єднано"
+msgstr "З'єднання:"
#: dlls/oledb32/version.rc:103
-#, fuzzy
-#| msgid "seconds"
msgid "seconds."
-msgstr "сек."
+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 ""
"These are the initialization properties for this type of data. To edit a "
"value, select a property, then choose Edit Value below."
msgstr ""
+"Це властивості ініціалізації даних цього типу. Щоб відредагувати "
+"значення, виберіть властивість, а потім нижче виберіть Редагувати Значення."
#: dlls/oledb32/version.rc:115
-#, fuzzy
-#| msgid "&Edit..."
msgid "&Edit Value..."
-msgstr "&Змінити..."
+msgstr "&Редагувати Значення..."
#: dlls/oledb32/version.rc:49
-#, fuzzy
-#| msgid "Properties"
msgid "Data Link Error"
-msgstr "Властивості"
+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 ""
"Provider is no longer available. Ensure that the provider is installed "
"properly."
msgstr ""
+"Постачальник більше не доступний. Переконайтеся, що постачальник "
+"встановлений належним чином."
#: dlls/oledb32/version.rc:36
-#, fuzzy
-#| msgid "Properties"
msgid "Data Link Properties"
-msgstr "Властивості"
+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"
@@ -8776,10 +8714,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"
@@ -9973,895 +9909,895 @@ msgstr "Виберіть джерело"
#: dlls/tzres/tzres.rc:90
msgid "China Standard Time"
-msgstr ""
+msgstr "Китайський стандартний час"
#: dlls/tzres/tzres.rc:91
msgid "China Daylight Time"
-msgstr ""
+msgstr "Китайський літній час"
#: dlls/tzres/tzres.rc:180
msgid "North Asia Standard Time"
-msgstr ""
+msgstr "Північноазіатський стандартний час"
#: dlls/tzres/tzres.rc:181
msgid "North Asia Daylight Time"
-msgstr ""
+msgstr "Північноазіатський літній час"
#: dlls/tzres/tzres.rc:116
msgid "Georgian Standard Time"
-msgstr ""
+msgstr "Грузинський стандартний час"
#: dlls/tzres/tzres.rc:117
msgid "Georgian Daylight Time"
-msgstr ""
+msgstr "Грузинський літній час"
#: dlls/tzres/tzres.rc:172
msgid "Nepal Standard Time"
-msgstr ""
+msgstr "Непальський стандартний час"
#: dlls/tzres/tzres.rc:173
msgid "Nepal Daylight Time"
-msgstr ""
+msgstr "Непальський літній час"
#: dlls/tzres/tzres.rc:66
msgid "Cape Verde Standard Time"
-msgstr ""
+msgstr "Стандартний час Кабо-Верде"
#: dlls/tzres/tzres.rc:67
msgid "Cape Verde Daylight Time"
-msgstr ""
+msgstr "Літній час Кабо-Верде"
#: dlls/tzres/tzres.rc:126
msgid "Haiti Standard Time"
-msgstr ""
+msgstr "Стандартний час Гаїті"
#: dlls/tzres/tzres.rc:127
msgid "Haiti Daylight Time"
-msgstr ""
+msgstr "Літній час Гаїті"
#: dlls/tzres/tzres.rc:80
msgid "Central European Standard Time"
-msgstr ""
+msgstr "Центральноєвропейський стандартний час"
#: dlls/tzres/tzres.rc:81
msgid "Central European Daylight Time"
-msgstr ""
+msgstr "Центральноєвропейський літній час"
#: dlls/tzres/tzres.rc:160
msgid "Morocco Standard Time"
-msgstr ""
+msgstr "Стандартний час Марокко"
#: dlls/tzres/tzres.rc:161
msgid "Morocco Daylight Time"
-msgstr ""
+msgstr "Літній час Марокко"
#: dlls/tzres/tzres.rc:78
msgid "Central Europe Standard Time"
-msgstr ""
+msgstr "Центральноєвропейський стандартний час"
#: dlls/tzres/tzres.rc:79
msgid "Central Europe Daylight Time"
-msgstr ""
+msgstr "Центральноєвропейський літній час"
#: dlls/tzres/tzres.rc:132
msgid "Iran Standard Time"
-msgstr ""
+msgstr "Іранський стандартний час"
#: dlls/tzres/tzres.rc:133
msgid "Iran Daylight Time"
-msgstr ""
+msgstr "Іранський літній час"
#: dlls/tzres/tzres.rc:204
msgid "Saint Pierre Standard Time"
-msgstr ""
+msgstr "Стандартний час Сен-П'єра"
#: dlls/tzres/tzres.rc:205
msgid "Saint Pierre Daylight Time"
-msgstr ""
+msgstr "Літній час Сен-П'єра"
#: dlls/tzres/tzres.rc:170
msgid "Namibia Standard Time"
-msgstr ""
+msgstr "Стандартний час Намібії"
#: dlls/tzres/tzres.rc:171
msgid "Namibia Daylight Time"
-msgstr ""
+msgstr "Літній час Намібії"
#: dlls/tzres/tzres.rc:226
msgid "Tonga Standard Time"
-msgstr ""
+msgstr "Стандартний час Королівства Тонга"
#: dlls/tzres/tzres.rc:227
msgid "Tonga Daylight Time"
-msgstr ""
+msgstr "Літній час Королівства Тонга"
#: dlls/tzres/tzres.rc:164
msgid "Mountain Standard Time (Mexico)"
-msgstr ""
+msgstr "Гірський стандартний час (Мексика)"
#: dlls/tzres/tzres.rc:165
msgid "Mountain Daylight Time (Mexico)"
-msgstr ""
+msgstr "Гірський літній час (Мексика)"
#: dlls/tzres/tzres.rc:118
msgid "GMT Standard Time"
-msgstr ""
+msgstr "GMT стандартний час"
#: dlls/tzres/tzres.rc:119
msgid "GMT Daylight Time"
-msgstr ""
+msgstr "GMT літній час"
#: dlls/tzres/tzres.rc:74
msgid "Central Asia Standard Time"
-msgstr ""
+msgstr "Середньоазіатський стандартний час"
#: dlls/tzres/tzres.rc:75
msgid "Central Asia Daylight Time"
-msgstr ""
+msgstr "Середньоазіатський літній час"
#: dlls/tzres/tzres.rc:146
msgid "Lord Howe Standard Time"
-msgstr ""
+msgstr "Стандартний час острова Лорд-Хау"
#: dlls/tzres/tzres.rc:147
msgid "Lord Howe Daylight Time"
-msgstr ""
+msgstr "Літній час острова Лорд-Хау"
#: dlls/tzres/tzres.rc:40
msgid "Arabic Standard Time"
-msgstr ""
+msgstr "Арабський стандартний час"
#: dlls/tzres/tzres.rc:41
msgid "Arabic Daylight Time"
-msgstr ""
+msgstr "Арабський літній час"
#: dlls/tzres/tzres.rc:148
msgid "Magadan Standard Time"
-msgstr ""
+msgstr "Магаданський стандартний час"
#: dlls/tzres/tzres.rc:149
msgid "Magadan Daylight Time"
-msgstr ""
+msgstr "Магаданський літній час"
#: dlls/tzres/tzres.rc:176
msgid "Newfoundland Standard Time"
-msgstr ""
+msgstr "Стандартний час Ньюфаундленда"
#: dlls/tzres/tzres.rc:177
msgid "Newfoundland Daylight Time"
-msgstr ""
+msgstr "Літній час Ньюфаундленда"
#: dlls/tzres/tzres.rc:250
msgid "West Pacific Standard Time"
-msgstr ""
+msgstr "Західно-Тихоокеанський стандартний час"
#: dlls/tzres/tzres.rc:251
msgid "West Pacific Daylight Time"
-msgstr ""
+msgstr "Західно-Тихоокеанський літній час"
#: dlls/tzres/tzres.rc:186
msgid "Pacific Standard Time"
-msgstr ""
+msgstr "Тихоокеанський стандартний час"
#: dlls/tzres/tzres.rc:187
msgid "Pacific Daylight Time"
-msgstr ""
+msgstr "Тихоокеанський літній час"
#: dlls/tzres/tzres.rc:52
msgid "Azerbaijan Standard Time"
-msgstr ""
+msgstr "Азербайджанський стандартний час"
#: dlls/tzres/tzres.rc:53
msgid "Azerbaijan Daylight Time"
-msgstr ""
+msgstr "Азербайджанський літній час"
#: dlls/tzres/tzres.rc:150
msgid "Magallanes Standard Time"
-msgstr ""
+msgstr "Стандартний час Магальянеса"
#: dlls/tzres/tzres.rc:151
msgid "Magallanes Daylight Time"
-msgstr ""
+msgstr "Літній час Магальянеса"
#: dlls/tzres/tzres.rc:206
msgid "Samoa Standard Time"
-msgstr ""
+msgstr "Стандартний час Самоа"
#: dlls/tzres/tzres.rc:207
msgid "Samoa Daylight Time"
-msgstr ""
+msgstr "Літній час Самоа"
#: dlls/tzres/tzres.rc:138
msgid "Kaliningrad Standard Time"
-msgstr ""
+msgstr "Калінінградський стандартний час"
#: dlls/tzres/tzres.rc:139
msgid "Kaliningrad Daylight Time"
-msgstr ""
+msgstr "Калінінградський літній час"
#: dlls/tzres/tzres.rc:188
msgid "Pacific Standard Time (Mexico)"
-msgstr ""
+msgstr "Тихоокеанський стандартний час (Мексика)"
#: dlls/tzres/tzres.rc:189
msgid "Pacific Daylight Time (Mexico)"
-msgstr ""
+msgstr "Тихоокеанський літній час (Мексика)"
#: dlls/tzres/tzres.rc:156
msgid "Middle East Standard Time"
-msgstr ""
+msgstr "Близькосхідний стандартний час"
#: dlls/tzres/tzres.rc:157
msgid "Middle East Daylight Time"
-msgstr ""
+msgstr "Близькосхідний літній час"
#: dlls/tzres/tzres.rc:224
msgid "Tokyo Standard Time"
-msgstr ""
+msgstr "Токійський стандартний час"
#: dlls/tzres/tzres.rc:225
msgid "Tokyo Daylight Time"
-msgstr ""
+msgstr "Токійський літній час"
#: dlls/tzres/tzres.rc:144
msgid "Line Islands Standard Time"
-msgstr ""
+msgstr "Стандартний час островів Лайн"
#: dlls/tzres/tzres.rc:145
msgid "Line Islands Daylight Time"
-msgstr ""
+msgstr "Літній час островів Лайн"
#: dlls/tzres/tzres.rc:92
msgid "Cuba Standard Time"
-msgstr ""
+msgstr "Кубинський стандартний час"
#: dlls/tzres/tzres.rc:93
msgid "Cuba Daylight Time"
-msgstr ""
+msgstr "Кубинський літній час"
#: dlls/tzres/tzres.rc:136
msgid "Jordan Standard Time"
-msgstr ""
+msgstr "Йорданський стандартний час"
#: dlls/tzres/tzres.rc:137
msgid "Jordan Daylight Time"
-msgstr ""
+msgstr "Йорданський літній час"
#: dlls/tzres/tzres.rc:84
msgid "Central Standard Time"
-msgstr ""
+msgstr "Центральний стандартний час"
#: dlls/tzres/tzres.rc:85
msgid "Central Daylight Time"
-msgstr ""
+msgstr "Центральний літній час"
#: dlls/tzres/tzres.rc:54
msgid "Azores Standard Time"
-msgstr ""
+msgstr "Стандартний час Азорських островів"
#: dlls/tzres/tzres.rc:55
msgid "Azores Daylight Time"
-msgstr ""
+msgstr "Літній час Азорських островів"
#: dlls/tzres/tzres.rc:178
msgid "North Asia East Standard Time"
-msgstr ""
+msgstr "Північноазіатський східний стандартний час"
#: dlls/tzres/tzres.rc:179
msgid "North Asia East Daylight Time"
-msgstr ""
+msgstr "Північноазіатський східний літній час"
#: dlls/tzres/tzres.rc:42
msgid "Argentina Standard Time"
-msgstr ""
+msgstr "Аргентинський стандартний час"
#: dlls/tzres/tzres.rc:43
msgid "Argentina Daylight Time"
-msgstr ""
+msgstr "Аргентинський літній час"
#: dlls/tzres/tzres.rc:152
msgid "Marquesas Standard Time"
-msgstr ""
+msgstr "Стандартний час Маркізьких островів"
#: dlls/tzres/tzres.rc:153
msgid "Marquesas Daylight Time"
-msgstr ""
+msgstr "Літній час Маркізьких островів"
#: dlls/tzres/tzres.rc:166
msgid "Myanmar Standard Time"
-msgstr ""
+msgstr "Стандартний час М'янми"
#: dlls/tzres/tzres.rc:167
msgid "Myanmar Daylight Time"
-msgstr ""
+msgstr "Літній час М'янми"
#: dlls/tzres/tzres.rc:236 dlls/tzres/tzres.rc:237
msgid "Coordinated Universal Time"
-msgstr ""
+msgstr "Всесвітній координований час"
#: dlls/tzres/tzres.rc:130
msgid "India Standard Time"
-msgstr ""
+msgstr "Індійський стандартний час"
#: dlls/tzres/tzres.rc:131
msgid "India Daylight Time"
-msgstr ""
+msgstr "Індійський літній час"
#: dlls/tzres/tzres.rc:124
msgid "GTB Standard Time"
-msgstr ""
+msgstr "GTB стандартний час"
#: dlls/tzres/tzres.rc:125
msgid "GTB Daylight Time"
-msgstr ""
+msgstr "GTB літній час"
#: dlls/tzres/tzres.rc:228
msgid "Turkey Standard Time"
-msgstr ""
+msgstr "Турецький стандартний час"
#: dlls/tzres/tzres.rc:229
msgid "Turkey Daylight Time"
-msgstr ""
+msgstr "Турецький літній час"
#: dlls/tzres/tzres.rc:112
msgid "Fiji Standard Time"
-msgstr ""
+msgstr "Стандартний час Фіджі"
#: dlls/tzres/tzres.rc:113
msgid "Fiji Daylight Time"
-msgstr ""
+msgstr "Літній час Фіджі"
#: dlls/tzres/tzres.rc:64
msgid "Canada Central Standard Time"
-msgstr ""
+msgstr "Центральний стандартний час Канади"
#: dlls/tzres/tzres.rc:65
msgid "Canada Central Daylight Time"
-msgstr ""
+msgstr "Центральний літній час Канади"
#: dlls/tzres/tzres.rc:218
msgid "Taipei Standard Time"
-msgstr ""
+msgstr "Тайбейський стандартний час"
#: dlls/tzres/tzres.rc:219
msgid "Taipei Daylight Time"
-msgstr ""
+msgstr "Тайбейський літній час"
#: dlls/tzres/tzres.rc:246
msgid "W. Europe Standard Time"
-msgstr ""
+msgstr "Західноєвропейський стандартний час"
#: dlls/tzres/tzres.rc:247
msgid "W. Europe Daylight Time"
-msgstr ""
+msgstr "Західноєвропейський літній час"
#: dlls/tzres/tzres.rc:158
msgid "Montevideo Standard Time"
-msgstr ""
+msgstr "Стандартний час Монтевідео"
#: dlls/tzres/tzres.rc:159
msgid "Montevideo Daylight Time"
-msgstr ""
+msgstr "Літній час Монтевідео"
#: dlls/tzres/tzres.rc:190
msgid "Pakistan Standard Time"
-msgstr ""
+msgstr "Пакистанський стандартний час"
#: dlls/tzres/tzres.rc:191
msgid "Pakistan Daylight Time"
-msgstr ""
+msgstr "Пакистанський літній час"
#: dlls/tzres/tzres.rc:68
msgid "Caucasus Standard Time"
-msgstr ""
+msgstr "Кавказький стандартний час"
#: dlls/tzres/tzres.rc:69
msgid "Caucasus Daylight Time"
-msgstr ""
+msgstr "Кавказький літній час"
#: dlls/tzres/tzres.rc:50
msgid "AUS Eastern Standard Time"
-msgstr ""
+msgstr "AUS східний стандартний час"
#: dlls/tzres/tzres.rc:51
msgid "AUS Eastern Daylight Time"
-msgstr ""
+msgstr "AUS східний літній час"
#: dlls/tzres/tzres.rc:168
msgid "N. Central Asia Standard Time"
-msgstr ""
+msgstr "Північно-Центральна Азія за стандартним часом"
#: dlls/tzres/tzres.rc:169
msgid "N. Central Asia Daylight Time"
-msgstr ""
+msgstr "Північно-Центральна Азія за літнім часом"
#: dlls/tzres/tzres.rc:104
msgid "Eastern Standard Time"
-msgstr ""
+msgstr "Східний стандартний час"
#: dlls/tzres/tzres.rc:105
msgid "Eastern Daylight Time"
-msgstr ""
+msgstr "Східний літній час"
#: dlls/tzres/tzres.rc:86
msgid "Central Standard Time (Mexico)"
-msgstr ""
+msgstr "Центральний стандартний час (Мексика)"
#: dlls/tzres/tzres.rc:87
msgid "Central Daylight Time (Mexico)"
-msgstr ""
+msgstr "Центральний літній час (Мексика)"
#: dlls/tzres/tzres.rc:44
msgid "Atlantic Standard Time"
-msgstr ""
+msgstr "Атлантичний стандартний час"
#: dlls/tzres/tzres.rc:45
msgid "Atlantic Daylight Time"
-msgstr ""
+msgstr "Атлантичний літній час"
#: dlls/tzres/tzres.rc:162
msgid "Mountain Standard Time"
-msgstr ""
+msgstr "Гірський стандартний час"
#: dlls/tzres/tzres.rc:163
msgid "Mountain Daylight Time"
-msgstr ""
+msgstr "Гірський літній час"
#: dlls/tzres/tzres.rc:232
msgid "US Eastern Standard Time"
-msgstr ""
+msgstr "Східний стандартний час США"
#: dlls/tzres/tzres.rc:233
msgid "US Eastern Daylight Time"
-msgstr ""
+msgstr "Східний літній час США"
#: dlls/tzres/tzres.rc:182
msgid "North Korea Standard Time"
-msgstr ""
+msgstr "Північнокорейський стандартний час"
#: dlls/tzres/tzres.rc:183
msgid "North Korea Daylight Time"
-msgstr ""
+msgstr "Північнокорейський літній час"
#: dlls/tzres/tzres.rc:220
msgid "Tasmania Standard Time"
-msgstr ""
+msgstr "Тасманійський стандартний час"
#: dlls/tzres/tzres.rc:221
msgid "Tasmania Daylight Time"
-msgstr ""
+msgstr "Тасманійський літній час"
#: dlls/tzres/tzres.rc:72
msgid "Central America Standard Time"
-msgstr ""
+msgstr "Центральна Америка за стандартним часом"
#: dlls/tzres/tzres.rc:73
msgid "Central America Daylight Time"
-msgstr ""
+msgstr "Центральна Америка за літнім часом"
#: dlls/tzres/tzres.rc:234
msgid "US Mountain Standard Time"
-msgstr ""
+msgstr "Американський гірський стандартний час"
#: dlls/tzres/tzres.rc:235
msgid "US Mountain Daylight Time"
-msgstr ""
+msgstr "Американський гірський літній час"
#: dlls/tzres/tzres.rc:212
msgid "South Africa Standard Time"
-msgstr ""
+msgstr "Південно-Африканський стандартний час"
#: dlls/tzres/tzres.rc:213
msgid "South Africa Daylight Time"
-msgstr ""
+msgstr "Південно-Африканський літній час"
#: dlls/tzres/tzres.rc:70
msgid "Cen. Australia Standard Time"
-msgstr ""
+msgstr "Цен. Австралійський стандартний час"
#: dlls/tzres/tzres.rc:71
msgid "Cen. Australia Daylight Time"
-msgstr ""
+msgstr "Цен. Австралійський літній час"
#: dlls/tzres/tzres.rc:214
msgid "Sri Lanka Standard Time"
-msgstr ""
+msgstr "Стандартний час Шрі-Ланки"
#: dlls/tzres/tzres.rc:215
msgid "Sri Lanka Daylight Time"
-msgstr ""
+msgstr "Літній час Шрі-Ланки"
#: dlls/tzres/tzres.rc:30
msgid "Afghanistan Standard Time"
-msgstr ""
+msgstr "Стандартний час в Афганістані"
#: dlls/tzres/tzres.rc:31
msgid "Afghanistan Daylight Time"
-msgstr ""
+msgstr "Літній час в Афганістані"
#: dlls/tzres/tzres.rc:252
msgid "Yakutsk Standard Time"
-msgstr ""
+msgstr "Якутський стандартний час"
#: dlls/tzres/tzres.rc:253
msgid "Yakutsk Daylight Time"
-msgstr ""
+msgstr "Якутський літній час"
#: dlls/tzres/tzres.rc:198
msgid "SA Eastern Standard Time"
-msgstr ""
+msgstr "SA східний стандартний час"
#: dlls/tzres/tzres.rc:199
msgid "SA Eastern Daylight Time"
-msgstr ""
+msgstr "SA східний літній час"
#: dlls/tzres/tzres.rc:36
msgid "Arab Standard Time"
-msgstr ""
+msgstr "Арабський стандартний час"
#: dlls/tzres/tzres.rc:37
msgid "Arab Daylight Time"
-msgstr ""
+msgstr "Арабський літній час"
#: dlls/tzres/tzres.rc:38
msgid "Arabian Standard Time"
-msgstr ""
+msgstr "Арабський стандартний час"
#: dlls/tzres/tzres.rc:39
msgid "Arabian Daylight Time"
-msgstr ""
+msgstr "Арабський літній час"
#: dlls/tzres/tzres.rc:222
msgid "Tocantins Standard Time"
-msgstr ""
+msgstr "Стандартний час Токантінс"
#: dlls/tzres/tzres.rc:223
msgid "Tocantins Daylight Time"
-msgstr ""
+msgstr "Літній час Токантінс"
#: dlls/tzres/tzres.rc:196
msgid "Russian Standard Time"
-msgstr ""
+msgstr "Російський стандартний час"
#: dlls/tzres/tzres.rc:197
msgid "Russian Daylight Time"
-msgstr ""
+msgstr "Російський літній час"
#: dlls/tzres/tzres.rc:48
msgid "Aus Central W. Standard Time"
-msgstr ""
+msgstr "Aus Central W. стандартний час"
#: dlls/tzres/tzres.rc:49
msgid "Aus Central W. Daylight Time"
-msgstr ""
+msgstr "Aus Central W. літній час"
#: dlls/tzres/tzres.rc:194
msgid "Romance Standard Time"
-msgstr ""
+msgstr "Романський стандартний час"
#: dlls/tzres/tzres.rc:195
msgid "Romance Daylight Time"
-msgstr ""
+msgstr "Романський літній час"
#: dlls/tzres/tzres.rc:110
msgid "Ekaterinburg Standard Time"
-msgstr ""
+msgstr "Стандартний час Єкатеринбурга"
#: dlls/tzres/tzres.rc:111
msgid "Ekaterinburg Daylight Time"
-msgstr ""
+msgstr "Літній час Єкатеринбурга"
#: dlls/tzres/tzres.rc:216
msgid "Syria Standard Time"
-msgstr ""
+msgstr "Стандартний час Сирії"
#: dlls/tzres/tzres.rc:217
msgid "Syria Daylight Time"
-msgstr ""
+msgstr "Літній час Сирії"
#: dlls/tzres/tzres.rc:46
msgid "AUS Central Standard Time"
-msgstr ""
+msgstr "Центральний стандартний час AUS"
#: dlls/tzres/tzres.rc:47
msgid "AUS Central Daylight Time"
-msgstr ""
+msgstr "Центральний літній час AUS"
#: dlls/tzres/tzres.rc:122
msgid "Greenwich Standard Time"
-msgstr ""
+msgstr "Стандартний час за Грінвічем"
#: dlls/tzres/tzres.rc:123
msgid "Greenwich Daylight Time"
-msgstr ""
+msgstr "Літній час за Грінвічем"
#: dlls/tzres/tzres.rc:230
msgid "Ulaanbaatar Standard Time"
-msgstr ""
+msgstr "Стандартний час Улан-Батора"
#: dlls/tzres/tzres.rc:231
msgid "Ulaanbaatar Daylight Time"
-msgstr ""
+msgstr "Літній час Улан-Батора"
#: dlls/tzres/tzres.rc:134
msgid "Israel Standard Time"
-msgstr ""
+msgstr "Стандартний час Ізраїлю"
#: dlls/tzres/tzres.rc:135
msgid "Israel Daylight Time"
-msgstr ""
+msgstr "Літній час Ізраїлю"
#: dlls/tzres/tzres.rc:58
msgid "Bangladesh Standard Time"
-msgstr ""
+msgstr "Стандартний час Бангладеш"
#: dlls/tzres/tzres.rc:59
msgid "Bangladesh Daylight Time"
-msgstr ""
+msgstr "Літній час Бангладеш"
#: dlls/tzres/tzres.rc:200
msgid "SA Pacific Standard Time"
-msgstr ""
+msgstr "SA Тихоокеанський стандартний час"
#: dlls/tzres/tzres.rc:201
msgid "SA Pacific Daylight Time"
-msgstr ""
+msgstr "SA Тихоокеанський літній час"
#: dlls/tzres/tzres.rc:248
msgid "West Asia Standard Time"
-msgstr ""
+msgstr "Західноазіатський стандартний час"
#: dlls/tzres/tzres.rc:249
msgid "West Asia Daylight Time"
-msgstr ""
+msgstr "Західноазіатський літній час"
#: dlls/tzres/tzres.rc:32
msgid "Alaskan Standard Time"
-msgstr ""
+msgstr "Аляскинський стандартний час"
#: dlls/tzres/tzres.rc:33
msgid "Alaskan Daylight Time"
-msgstr ""
+msgstr "Аляскинський літній час"
#: dlls/tzres/tzres.rc:192
msgid "Paraguay Standard Time"
-msgstr ""
+msgstr "Парагвайський стандартний час"
#: dlls/tzres/tzres.rc:193
msgid "Paraguay Daylight Time"
-msgstr ""
+msgstr "Парагвайський літній час"
#: dlls/tzres/tzres.rc:94
msgid "Dateline Standard Time"
-msgstr ""
+msgstr "Стандартний час у Дателіні"
#: dlls/tzres/tzres.rc:95
msgid "Dateline Daylight Time"
-msgstr ""
+msgstr "Літній час у Дателіні"
#: dlls/tzres/tzres.rc:142
msgid "Libya Standard Time"
-msgstr ""
+msgstr "Лівійський стандартний час"
#: dlls/tzres/tzres.rc:143
msgid "Libya Daylight Time"
-msgstr ""
+msgstr "Лівійський літній час"
#: dlls/tzres/tzres.rc:56
msgid "Bahia Standard Time"
-msgstr ""
+msgstr "Стандартний час Баїя"
#: dlls/tzres/tzres.rc:57
msgid "Bahia Daylight Time"
-msgstr ""
+msgstr "Літній час Баїя"
#: dlls/tzres/tzres.rc:238
msgid "Venezuela Standard Time"
-msgstr ""
+msgstr "Стандартний час Венесуели"
#: dlls/tzres/tzres.rc:239
msgid "Venezuela Daylight Time"
-msgstr ""
+msgstr "Літній час Венесуели"
#: dlls/tzres/tzres.rc:62
msgid "Bougainville Standard Time"
-msgstr ""
+msgstr "Стандартний час Бугенвіля"
#: dlls/tzres/tzres.rc:63
msgid "Bougainville Daylight Time"
-msgstr ""
+msgstr "Літній час Бугенвіля"
#: dlls/tzres/tzres.rc:128
msgid "Hawaiian Standard Time"
-msgstr ""
+msgstr "Гавайський стандартний час"
#: dlls/tzres/tzres.rc:129
msgid "Hawaiian Daylight Time"
-msgstr ""
+msgstr "Гавайський літній час"
#: dlls/tzres/tzres.rc:208
msgid "SE Asia Standard Time"
-msgstr ""
+msgstr "Південно-Східний Азіатський стандартний час"
#: dlls/tzres/tzres.rc:209
msgid "SE Asia Daylight Time"
-msgstr ""
+msgstr "Південно-Східний Азіатський літній час"
#: dlls/tzres/tzres.rc:174
msgid "New Zealand Standard Time"
-msgstr ""
+msgstr "Стандартний час Нової Зеландії"
#: dlls/tzres/tzres.rc:175
msgid "New Zealand Daylight Time"
-msgstr ""
+msgstr "Літній час Нової Зеландії"
#: dlls/tzres/tzres.rc:34
msgid "Aleutian Standard Time"
-msgstr ""
+msgstr "Алеутський стандартний час"
#: dlls/tzres/tzres.rc:35
msgid "Aleutian Daylight Time"
-msgstr ""
+msgstr "Алеутський літній час"
#: dlls/tzres/tzres.rc:76
msgid "Central Brazilian Standard Time"
-msgstr ""
+msgstr "Центральний бразильський стандартний час"
#: dlls/tzres/tzres.rc:77
msgid "Central Brazilian Daylight Time"
-msgstr ""
+msgstr "Центральний бразильський літній час"
#: dlls/tzres/tzres.rc:60
msgid "Belarus Standard Time"
-msgstr ""
+msgstr "Білоруський стандартний час"
#: dlls/tzres/tzres.rc:61
msgid "Belarus Daylight Time"
-msgstr ""
+msgstr "Білоруський літній час"
#: dlls/tzres/tzres.rc:202
msgid "SA Western Standard Time"
-msgstr ""
+msgstr "SA Західний стандартний час"
#: dlls/tzres/tzres.rc:203
msgid "SA Western Daylight Time"
-msgstr ""
+msgstr "SA Західний літній час"
#: dlls/tzres/tzres.rc:120
msgid "Greenland Standard Time"
-msgstr ""
+msgstr "Стандартний час Гренландії"
#: dlls/tzres/tzres.rc:121
msgid "Greenland Daylight Time"
-msgstr ""
+msgstr "Літній час Гренландії"
#: dlls/tzres/tzres.rc:102
msgid "Easter Island Standard Time"
-msgstr ""
+msgstr "Стандартний час острова Пасхи"
#: dlls/tzres/tzres.rc:103
msgid "Easter Island Daylight Time"
-msgstr ""
+msgstr "Літній час острова Пасхи"
#: dlls/tzres/tzres.rc:108
msgid "Egypt Standard Time"
-msgstr ""
+msgstr "Єгипетський стандартний час"
#: dlls/tzres/tzres.rc:109
msgid "Egypt Daylight Time"
-msgstr ""
+msgstr "Єгипетський літній час"
#: dlls/tzres/tzres.rc:106
msgid "Eastern Standard Time (Mexico)"
-msgstr ""
+msgstr "Східний стандартний час (Мексика)"
#: dlls/tzres/tzres.rc:107
msgid "Eastern Daylight Time (Mexico)"
-msgstr ""
+msgstr "Східний літній час (Мексика)"
#: dlls/tzres/tzres.rc:154
msgid "Mauritius Standard Time"
-msgstr ""
+msgstr "Стандартний час Маврикія"
#: dlls/tzres/tzres.rc:155
msgid "Mauritius Daylight Time"
-msgstr ""
+msgstr "Літній час Маврикія"
#: dlls/tzres/tzres.rc:240
msgid "Vladivostok Standard Time"
-msgstr ""
+msgstr "Стандартний час Владивостока"
#: dlls/tzres/tzres.rc:241
msgid "Vladivostok Daylight Time"
-msgstr ""
+msgstr "Літній час Владивостока"
#: dlls/tzres/tzres.rc:210
msgid "Singapore Standard Time"
-msgstr ""
+msgstr "Стандартний час Сінгапуру"
#: dlls/tzres/tzres.rc:211
msgid "Singapore Daylight Time"
-msgstr ""
+msgstr "Літній час Сінгапуру"
#: dlls/tzres/tzres.rc:140
msgid "Korea Standard Time"
-msgstr ""
+msgstr "Корейський стандартний час"
#: dlls/tzres/tzres.rc:141
msgid "Korea Daylight Time"
-msgstr ""
+msgstr "Корейський літній час"
#: dlls/tzres/tzres.rc:88
msgid "Chatham Islands Standard Time"
-msgstr ""
+msgstr "Стандартний час островів Чатем"
#: dlls/tzres/tzres.rc:89
msgid "Chatham Islands Daylight Time"
-msgstr ""
+msgstr "Літній час островів Чатем"
#: dlls/tzres/tzres.rc:96
msgid "E. Africa Standard Time"
-msgstr ""
+msgstr "E. Стандартний час в Африці"
#: dlls/tzres/tzres.rc:97
msgid "E. Africa Daylight Time"
-msgstr ""
+msgstr "E. Літній час в Африці"
#: dlls/tzres/tzres.rc:114
msgid "FLE Standard Time"
-msgstr ""
+msgstr "Стандартний час FLE"
#: dlls/tzres/tzres.rc:115
msgid "FLE Daylight Time"
-msgstr ""
+msgstr "Літній час FLE"
#: dlls/tzres/tzres.rc:100
msgid "E. South America Standard Time"
-msgstr ""
+msgstr "E. Стандартний час Південної Америки"
#: dlls/tzres/tzres.rc:101
msgid "E. South America Daylight Time"
-msgstr ""
+msgstr "E. Літній час Південної Америки"
#: dlls/tzres/tzres.rc:82
msgid "Central Pacific Standard Time"
-msgstr ""
+msgstr "Центральний тихоокеанський стандартний час"
#: dlls/tzres/tzres.rc:83
msgid "Central Pacific Daylight Time"
-msgstr ""
+msgstr "Центральний тихоокеанський літній час"
#: dlls/tzres/tzres.rc:244
msgid "W. Central Africa Standard Time"
-msgstr ""
+msgstr "В. Стандартний час у Центральній Африці"
#: dlls/tzres/tzres.rc:245
msgid "W. Central Africa Daylight Time"
-msgstr ""
+msgstr "В. Літній час у Центральній Африці"
#: dlls/tzres/tzres.rc:184
msgid "Pacific SA Standard Time"
-msgstr ""
+msgstr "Тихоокеанський стандартний час SA"
#: dlls/tzres/tzres.rc:185
msgid "Pacific SA Daylight Time"
-msgstr ""
+msgstr "Тихоокеанський літній час SA"
#: dlls/tzres/tzres.rc:98
msgid "E. Australia Standard Time"
-msgstr ""
+msgstr "E. Стандартний час в Австралії"
#: dlls/tzres/tzres.rc:99
msgid "E. Australia Daylight Time"
-msgstr ""
+msgstr "E. Літній час в Австралії"
#: dlls/tzres/tzres.rc:242
msgid "W. Australia Standard Time"
-msgstr ""
+msgstr "В. Стандартний час в Австралії"
#: dlls/tzres/tzres.rc:243
msgid "W. Australia Daylight Time"
-msgstr ""
+msgstr "В. Літній час в Австралії"
#: dlls/urlmon/urlmon.rc:32 dlls/wininet/wininet.rc:88
msgid "Security Warning"
@@ -10960,147 +10896,115 @@ 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 ""
+msgstr "Цей масив виправлений або тимчасово заблокований"
#: dlls/vbscript/vbscript.rc:34
-#, fuzzy
-#| msgid "Data type mismatch.\n"
msgid "Type mismatch"
-msgstr "Невідповідність типів даних.\n"
+msgstr "Невідповідність типу"
#: dlls/vbscript/vbscript.rc:36
msgid "Device I/O error"
-msgstr ""
+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
-#| msgid "Access denied.\n"
msgid "Permission denied"
-msgstr "Доступ заборонено.\n"
+msgstr "Доступ заборонено"
#: dlls/vbscript/vbscript.rc:41
msgid "Path/File access error"
-msgstr ""
+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
-#| msgid "(value not set)"
msgid "Object variable not set"
-msgstr "(значення не задане)"
+msgstr "Не встановлена змінна об'єкта"
#: dlls/vbscript/vbscript.rc:44
-#, fuzzy
-#| msgid "Invalid cursor handle.\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 ""
+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"
-msgstr ""
+msgstr "Неправильна кількість аргументів або недійсне призначення властивості"
#: dlls/vbscript/vbscript.rc:56
-#, fuzzy
-#| msgid "Object Class Violation"
msgid "Object not a collection"
-msgstr "Порушення класу об'єкту"
+msgstr "Об'єкт не є набором"
#: dlls/vbscript/vbscript.rc:57
-#, fuzzy
-#| msgid "Specified control was not found in message"
msgid "Specified DLL function not found"
-msgstr "Вказаний елемент керування не знайдено в повідомленні"
+msgstr "Вказану функцію DLL не знайдено"
#: dlls/vbscript/vbscript.rc:58
msgid "Variable uses an Automation type not supported in VBScript"
-msgstr ""
+msgstr "Змінна використовує тип автоматизації, який не підтримується у VBScript"
#: dlls/vbscript/vbscript.rc:59
msgid "The remote server machine does not exist or is unavailable"
-msgstr ""
+msgstr "Віддалений сервер не існує або недоступний"
#: dlls/vbscript/vbscript.rc:60
msgid "Invalid or unqualified reference"
-msgstr ""
+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 %@"
@@ -11197,33 +11101,27 @@ msgstr "Існує принаймні одна невизначена пробл
#: dlls/wininet/wininet.rc:35
msgid "Effective Date"
-msgstr ""
+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"
-msgstr ""
+msgstr "Сила конфіденційності"
#: dlls/wininet/wininet.rc:43
msgid "bits"
-msgstr ""
+msgstr "біти"
#: dlls/wininet/winineterror.mc:26
msgid "The request has timed out.\n"
@@ -13236,6 +13134,9 @@ msgid ""
"\n"
"hardlink hardlink management\n"
msgstr ""
+"- Підтримувані команди -\n"
+"\n"
+"hardlink управління жорстким посиланням\n"
#: programs/fsutil/fsutil.mc:35
msgid ""
@@ -13243,10 +13144,13 @@ msgid ""
"\n"
"create create a hardlink\n"
msgstr ""
+"- Жорстке посилання - Підтримувані команди -\n"
+"\n"
+"create створити жорстке посилання\n"
#: 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"
@@ -16053,10 +15957,10 @@ msgid ""
"data before it is terminated. Are you sure you want to\n"
"terminate the process?"
msgstr ""
-"УВАГА: Завершення цього процесу може призвести до\n"
-"небажаних результатів, включаючи втрату даних та\n"
-"нестабільність системи. Процес не зможе зберегти\n"
-"свою позицію чи дані. Ви справді хочете завершити\n"
+"УВАГА: Завершення цього процесу може призвести до "
+"небажаних результатів, включаючи втрату даних та "
+"нестабільність системи. Процес не зможе зберегти "
+"свою позицію чи дані. Ви справді хочете завершити "
"процес?"
#: programs/taskmgr/taskmgr.rc:311
@@ -17069,10 +16973,8 @@ msgid "&Beginner"
msgstr "Н&овачок"
#: programs/winemine/winemine.rc:45
-#, fuzzy
-#| msgid "Interface"
msgid "&Intermediate"
-msgstr "Інтерфейс"
+msgstr "&Проміжний"
#: programs/winemine/winemine.rc:46
msgid "&Expert"
@@ -17103,10 +17005,8 @@ msgid "Beginner"
msgstr "Новачок"
#: programs/winemine/winemine.rc:65
-#, fuzzy
-#| msgid "Interface"
msgid "Intermediate"
-msgstr "Інтерфейс"
+msgstr "Проміжний"
#: programs/winemine/winemine.rc:66
msgid "Expert"
--
2.29.2
Dec. 25, 2020
Re: [PATCH] po: Update Ukrainian translation.
by Nikolay Sivov
On 12/25/20 8:44 PM, Andrey Gusev wrote:
> #: dlls/comdlg32/comdlg32.rc:289
> msgid "|S&olid"
> -msgstr ""
> +msgstr "|&Твердий"
>
> #: dlls/comdlg32/comdlg32.rc:290
> msgid "&Red:"
> @@ -737,11 +737,9 @@ msgid "&Define Custom Colors >>"
> msgstr "&Визначити колір >>"
>
> #: dlls/comdlg32/comdlg32.rc:312
> -#, fuzzy
> -#| msgid "&No"
> msgctxt "Solid"
> -msgid "&o"
> -msgstr "&Ні"
> +msgid "&Sol"
> +msgstr "&Тврд"
Is this correct? In this context it means "solid color", as opposed to
"solid body".
Dec. 25, 2020
[PATCH] po: Update Ukrainian translation.
by Andrey Gusev
Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com>
---
po/uk.po | 734 ++++++++++++++++++++++++-------------------------------
1 file changed, 317 insertions(+), 417 deletions(-)
diff --git a/po/uk.po b/po/uk.po
index 7ef7b4f29f6..2b3a5ad8577 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -5,7 +5,7 @@ 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-09 22:24+0200\n"
+"PO-Revision-Date: 2020-12-25 19:38+0200\n"
"Last-Translator: Andrey Gusev <andrey.goosev(a)gmail.com>\n"
"Language-Team: Ukrainian\n"
"Language: uk\n"
@@ -700,7 +700,7 @@ msgstr "Д&одаткові кольори:"
#: dlls/comdlg32/comdlg32.rc:289
msgid "|S&olid"
-msgstr ""
+msgstr "|&Твердий"
#: dlls/comdlg32/comdlg32.rc:290
msgid "&Red:"
@@ -737,11 +737,9 @@ msgid "&Define Custom Colors >>"
msgstr "&Визначити колір >>"
#: dlls/comdlg32/comdlg32.rc:312
-#, fuzzy
-#| msgid "&No"
msgctxt "Solid"
-msgid "&o"
-msgstr "&Ні"
+msgid "&Sol"
+msgstr "&Тврд"
#: dlls/comdlg32/comdlg32.rc:318 programs/regedit/regedit.rc:275
#: programs/regedit/regedit.rc:285
@@ -3743,7 +3741,7 @@ msgstr "Ігрові Контролери"
#: dlls/joy.cpl/joy.rc:32
msgid "Test and configure game controllers."
-msgstr ""
+msgstr "Перевірте та налаштуйте ігрові контролери."
#: dlls/jscript/jscript.rc:28
msgid "Error converting object to primitive type"
@@ -3758,10 +3756,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"
@@ -3910,16 +3906,12 @@ msgid "JScript object expected"
msgstr "Очікується об'єкт JScript"
#: dlls/jscript/jscript.rc:63
-#, fuzzy
-#| msgid "Array object expected"
msgid "Enumerator object expected"
-msgstr "Очікується об'єкт Array"
+msgstr "Очікується об’єкт перечислювача"
#: dlls/jscript/jscript.rc:64
-#, fuzzy
-#| msgid "Boolean object expected"
msgid "Regular Expression object expected"
-msgstr "Очікується об'єкт Boolean"
+msgstr "Очікується об’єкт регулярного виразу"
#: dlls/jscript/jscript.rc:65
msgid "Syntax error in regular expression"
@@ -3927,7 +3919,7 @@ msgstr "Синтаксична помилка в регулярному вира
#: dlls/jscript/jscript.rc:66
msgid "Exception thrown and not caught"
-msgstr ""
+msgstr "Виняток викликано, але не перехоплено"
#: dlls/jscript/jscript.rc:68
msgid "URI to be encoded contains invalid characters"
@@ -6944,32 +6936,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 "Creation failed.\n"
msgid "Call failed.\n"
-msgstr "Помилка створення.\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/localspl/localspl.rc:31 dlls/localui/localui.rc:31
#: dlls/winspool.drv/winspool.rc:30
@@ -7029,10 +7013,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"
@@ -7411,10 +7393,8 @@ msgid "Clock state was already set.\n"
msgstr "Статус годинника вже встановлено.\n"
#: dlls/mferror/mferror.mc:725
-#, fuzzy
-#| msgid "Clock is not available.\n"
msgid "Clock is not simple\n"
-msgstr "Годинник недоступний.\n"
+msgstr "Годинник не простий\n"
#: dlls/mpr/mpr.rc:35 dlls/wininet/wininet.rc:48
msgid "Enter Network Password"
@@ -8582,98 +8562,72 @@ msgid "Off"
msgstr "Вимкнено"
#: dlls/oledb32/version.rc:56
-#, fuzzy
-#| msgid "video"
msgid "Provider"
-msgstr "відео"
+msgstr "Постачальник"
#: dlls/oledb32/version.rc:59
-#, fuzzy
-#| msgid "Select the format you want to use:"
msgid "Select the data you want to connect to:"
-msgstr "Виберіть формат, який ви хочете використати:"
+msgstr "Виберіть дані, до яких потрібно підключитися:"
#: dlls/oledb32/version.rc:66
-#, fuzzy
-#| msgid "Connections"
msgid "Connection"
msgstr "Підключення"
#: dlls/oledb32/version.rc:69
-#, fuzzy
-#| msgid "Select the format you want to use:"
msgid "Specify the following to connect to ODBC data:"
-msgstr "Виберіть формат, який ви хочете використати:"
+msgstr "Вкажіть наступне для підключення до даних ODBC:"
#: dlls/oledb32/version.rc:70
msgid "1. Specify the source of data:"
-msgstr ""
+msgstr "1. Вкажіть джерело даних:"
#: dlls/oledb32/version.rc:71
-#, fuzzy
-#| msgid "Please enter your name"
msgid "Use &data source name"
-msgstr "Введіть ваше ім'я"
+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
-#| msgid "A&dd..."
msgid "B&uild..."
-msgstr "&Додати..."
+msgstr "&Створити..."
#: dlls/oledb32/version.rc:78
msgid "2. Enter information to log on to the server"
-msgstr ""
+msgstr "2. Введіть інформацію для входу на сервер"
#: dlls/oledb32/version.rc:79
-#, fuzzy
-#| msgid "&User name:"
msgid "User &name:"
-msgstr "&Користувач:"
+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 ""
+msgstr "3. Введіть &початковий каталог для використання:"
#: 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
msgid "&Impersonation level:"
@@ -8681,83 +8635,67 @@ msgstr ""
#: dlls/oledb32/version.rc:98
msgid "P&rotection level:"
-msgstr ""
+msgstr "Р&івень захисту:"
#: dlls/oledb32/version.rc:101
-#, fuzzy
-#| msgid "Connected"
msgid "Connect:"
-msgstr "Під'єднано"
+msgstr "З'єднання:"
#: dlls/oledb32/version.rc:103
-#, fuzzy
-#| msgid "seconds"
msgid "seconds."
-msgstr "сек."
+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 ""
"These are the initialization properties for this type of data. To edit a "
"value, select a property, then choose Edit Value below."
msgstr ""
+"Це властивості ініціалізації даних цього типу. Щоб відредагувати "
+"значення, виберіть властивість, а потім нижче виберіть Редагувати Значення."
#: dlls/oledb32/version.rc:115
-#, fuzzy
-#| msgid "&Edit..."
msgid "&Edit Value..."
-msgstr "&Змінити..."
+msgstr "&Редагувати Значення..."
#: dlls/oledb32/version.rc:49
-#, fuzzy
-#| msgid "Properties"
msgid "Data Link Error"
-msgstr "Властивості"
+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 ""
"Provider is no longer available. Ensure that the provider is installed "
"properly."
msgstr ""
+"Постачальник більше не доступний. Переконайтеся, що постачальник "
+"встановлений належним чином."
#: dlls/oledb32/version.rc:36
-#, fuzzy
-#| msgid "Properties"
msgid "Data Link Properties"
-msgstr "Властивості"
+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"
@@ -8776,10 +8714,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"
@@ -9973,895 +9909,895 @@ msgstr "Виберіть джерело"
#: dlls/tzres/tzres.rc:90
msgid "China Standard Time"
-msgstr ""
+msgstr "Китайський стандартний час"
#: dlls/tzres/tzres.rc:91
msgid "China Daylight Time"
-msgstr ""
+msgstr "Китайський літній час"
#: dlls/tzres/tzres.rc:180
msgid "North Asia Standard Time"
-msgstr ""
+msgstr "Північноазіатський стандартний час"
#: dlls/tzres/tzres.rc:181
msgid "North Asia Daylight Time"
-msgstr ""
+msgstr "Північноазіатський літній час"
#: dlls/tzres/tzres.rc:116
msgid "Georgian Standard Time"
-msgstr ""
+msgstr "Грузинський стандартний час"
#: dlls/tzres/tzres.rc:117
msgid "Georgian Daylight Time"
-msgstr ""
+msgstr "Грузинський літній час"
#: dlls/tzres/tzres.rc:172
msgid "Nepal Standard Time"
-msgstr ""
+msgstr "Непальський стандартний час"
#: dlls/tzres/tzres.rc:173
msgid "Nepal Daylight Time"
-msgstr ""
+msgstr "Непальський літній час"
#: dlls/tzres/tzres.rc:66
msgid "Cape Verde Standard Time"
-msgstr ""
+msgstr "Стандартний час Кабо-Верде"
#: dlls/tzres/tzres.rc:67
msgid "Cape Verde Daylight Time"
-msgstr ""
+msgstr "Літній час Кабо-Верде"
#: dlls/tzres/tzres.rc:126
msgid "Haiti Standard Time"
-msgstr ""
+msgstr "Стандартний час Гаїті"
#: dlls/tzres/tzres.rc:127
msgid "Haiti Daylight Time"
-msgstr ""
+msgstr "Літній час Гаїті"
#: dlls/tzres/tzres.rc:80
msgid "Central European Standard Time"
-msgstr ""
+msgstr "Центральноєвропейський стандартний час"
#: dlls/tzres/tzres.rc:81
msgid "Central European Daylight Time"
-msgstr ""
+msgstr "Центральноєвропейський літній час"
#: dlls/tzres/tzres.rc:160
msgid "Morocco Standard Time"
-msgstr ""
+msgstr "Стандартний час Марокко"
#: dlls/tzres/tzres.rc:161
msgid "Morocco Daylight Time"
-msgstr ""
+msgstr "Літній час Марокко"
#: dlls/tzres/tzres.rc:78
msgid "Central Europe Standard Time"
-msgstr ""
+msgstr "Центральноєвропейський стандартний час"
#: dlls/tzres/tzres.rc:79
msgid "Central Europe Daylight Time"
-msgstr ""
+msgstr "Центральноєвропейський літній час"
#: dlls/tzres/tzres.rc:132
msgid "Iran Standard Time"
-msgstr ""
+msgstr "Іранський стандартний час"
#: dlls/tzres/tzres.rc:133
msgid "Iran Daylight Time"
-msgstr ""
+msgstr "Іранський літній час"
#: dlls/tzres/tzres.rc:204
msgid "Saint Pierre Standard Time"
-msgstr ""
+msgstr "Стандартний час Сен-П'єра"
#: dlls/tzres/tzres.rc:205
msgid "Saint Pierre Daylight Time"
-msgstr ""
+msgstr "Літній час Сен-П'єра"
#: dlls/tzres/tzres.rc:170
msgid "Namibia Standard Time"
-msgstr ""
+msgstr "Стандартний час Намібії"
#: dlls/tzres/tzres.rc:171
msgid "Namibia Daylight Time"
-msgstr ""
+msgstr "Літній час Намібії"
#: dlls/tzres/tzres.rc:226
msgid "Tonga Standard Time"
-msgstr ""
+msgstr "Стандартний час Королівства Тонга"
#: dlls/tzres/tzres.rc:227
msgid "Tonga Daylight Time"
-msgstr ""
+msgstr "Літній час Королівства Тонга"
#: dlls/tzres/tzres.rc:164
msgid "Mountain Standard Time (Mexico)"
-msgstr ""
+msgstr "Гірський стандартний час (Мексика)"
#: dlls/tzres/tzres.rc:165
msgid "Mountain Daylight Time (Mexico)"
-msgstr ""
+msgstr "Гірський літній час (Мексика)"
#: dlls/tzres/tzres.rc:118
msgid "GMT Standard Time"
-msgstr ""
+msgstr "GMT стандартний час"
#: dlls/tzres/tzres.rc:119
msgid "GMT Daylight Time"
-msgstr ""
+msgstr "GMT літній час"
#: dlls/tzres/tzres.rc:74
msgid "Central Asia Standard Time"
-msgstr ""
+msgstr "Середньоазіатський стандартний час"
#: dlls/tzres/tzres.rc:75
msgid "Central Asia Daylight Time"
-msgstr ""
+msgstr "Середньоазіатський літній час"
#: dlls/tzres/tzres.rc:146
msgid "Lord Howe Standard Time"
-msgstr ""
+msgstr "Стандартний час острова Лорд-Хау"
#: dlls/tzres/tzres.rc:147
msgid "Lord Howe Daylight Time"
-msgstr ""
+msgstr "Літній час острова Лорд-Хау"
#: dlls/tzres/tzres.rc:40
msgid "Arabic Standard Time"
-msgstr ""
+msgstr "Арабський стандартний час"
#: dlls/tzres/tzres.rc:41
msgid "Arabic Daylight Time"
-msgstr ""
+msgstr "Арабський літній час"
#: dlls/tzres/tzres.rc:148
msgid "Magadan Standard Time"
-msgstr ""
+msgstr "Магаданський стандартний час"
#: dlls/tzres/tzres.rc:149
msgid "Magadan Daylight Time"
-msgstr ""
+msgstr "Магаданський літній час"
#: dlls/tzres/tzres.rc:176
msgid "Newfoundland Standard Time"
-msgstr ""
+msgstr "Стандартний час Ньюфаундленда"
#: dlls/tzres/tzres.rc:177
msgid "Newfoundland Daylight Time"
-msgstr ""
+msgstr "Літній час Ньюфаундленда"
#: dlls/tzres/tzres.rc:250
msgid "West Pacific Standard Time"
-msgstr ""
+msgstr "Західно-Тихоокеанський стандартний час"
#: dlls/tzres/tzres.rc:251
msgid "West Pacific Daylight Time"
-msgstr ""
+msgstr "Західно-Тихоокеанський літній час"
#: dlls/tzres/tzres.rc:186
msgid "Pacific Standard Time"
-msgstr ""
+msgstr "Тихоокеанський стандартний час"
#: dlls/tzres/tzres.rc:187
msgid "Pacific Daylight Time"
-msgstr ""
+msgstr "Тихоокеанський літній час"
#: dlls/tzres/tzres.rc:52
msgid "Azerbaijan Standard Time"
-msgstr ""
+msgstr "Азербайджанський стандартний час"
#: dlls/tzres/tzres.rc:53
msgid "Azerbaijan Daylight Time"
-msgstr ""
+msgstr "Азербайджанський літній час"
#: dlls/tzres/tzres.rc:150
msgid "Magallanes Standard Time"
-msgstr ""
+msgstr "Стандартний час Магальянеса"
#: dlls/tzres/tzres.rc:151
msgid "Magallanes Daylight Time"
-msgstr ""
+msgstr "Літній час Магальянеса"
#: dlls/tzres/tzres.rc:206
msgid "Samoa Standard Time"
-msgstr ""
+msgstr "Стандартний час Самоа"
#: dlls/tzres/tzres.rc:207
msgid "Samoa Daylight Time"
-msgstr ""
+msgstr "Літній час Самоа"
#: dlls/tzres/tzres.rc:138
msgid "Kaliningrad Standard Time"
-msgstr ""
+msgstr "Калінінградський стандартний час"
#: dlls/tzres/tzres.rc:139
msgid "Kaliningrad Daylight Time"
-msgstr ""
+msgstr "Калінінградський літній час"
#: dlls/tzres/tzres.rc:188
msgid "Pacific Standard Time (Mexico)"
-msgstr ""
+msgstr "Тихоокеанський стандартний час (Мексика)"
#: dlls/tzres/tzres.rc:189
msgid "Pacific Daylight Time (Mexico)"
-msgstr ""
+msgstr "Тихоокеанський літній час (Мексика)"
#: dlls/tzres/tzres.rc:156
msgid "Middle East Standard Time"
-msgstr ""
+msgstr "Близькосхідний стандартний час"
#: dlls/tzres/tzres.rc:157
msgid "Middle East Daylight Time"
-msgstr ""
+msgstr "Близькосхідний літній час"
#: dlls/tzres/tzres.rc:224
msgid "Tokyo Standard Time"
-msgstr ""
+msgstr "Токійський стандартний час"
#: dlls/tzres/tzres.rc:225
msgid "Tokyo Daylight Time"
-msgstr ""
+msgstr "Токійський літній час"
#: dlls/tzres/tzres.rc:144
msgid "Line Islands Standard Time"
-msgstr ""
+msgstr "Стандартний час островів Лайн"
#: dlls/tzres/tzres.rc:145
msgid "Line Islands Daylight Time"
-msgstr ""
+msgstr "Літній час островів Лайн"
#: dlls/tzres/tzres.rc:92
msgid "Cuba Standard Time"
-msgstr ""
+msgstr "Кубинський стандартний час"
#: dlls/tzres/tzres.rc:93
msgid "Cuba Daylight Time"
-msgstr ""
+msgstr "Кубинський літній час"
#: dlls/tzres/tzres.rc:136
msgid "Jordan Standard Time"
-msgstr ""
+msgstr "Йорданський стандартний час"
#: dlls/tzres/tzres.rc:137
msgid "Jordan Daylight Time"
-msgstr ""
+msgstr "Йорданський літній час"
#: dlls/tzres/tzres.rc:84
msgid "Central Standard Time"
-msgstr ""
+msgstr "Центральний стандартний час"
#: dlls/tzres/tzres.rc:85
msgid "Central Daylight Time"
-msgstr ""
+msgstr "Центральний літній час"
#: dlls/tzres/tzres.rc:54
msgid "Azores Standard Time"
-msgstr ""
+msgstr "Стандартний час Азорських островів"
#: dlls/tzres/tzres.rc:55
msgid "Azores Daylight Time"
-msgstr ""
+msgstr "Літній час Азорських островів"
#: dlls/tzres/tzres.rc:178
msgid "North Asia East Standard Time"
-msgstr ""
+msgstr "Північноазіатський східний стандартний час"
#: dlls/tzres/tzres.rc:179
msgid "North Asia East Daylight Time"
-msgstr ""
+msgstr "Північноазіатський східний літній час"
#: dlls/tzres/tzres.rc:42
msgid "Argentina Standard Time"
-msgstr ""
+msgstr "Аргентинський стандартний час"
#: dlls/tzres/tzres.rc:43
msgid "Argentina Daylight Time"
-msgstr ""
+msgstr "Аргентинський літній час"
#: dlls/tzres/tzres.rc:152
msgid "Marquesas Standard Time"
-msgstr ""
+msgstr "Стандартний час Маркізьких островів"
#: dlls/tzres/tzres.rc:153
msgid "Marquesas Daylight Time"
-msgstr ""
+msgstr "Літній час Маркізьких островів"
#: dlls/tzres/tzres.rc:166
msgid "Myanmar Standard Time"
-msgstr ""
+msgstr "Стандартний час М'янми"
#: dlls/tzres/tzres.rc:167
msgid "Myanmar Daylight Time"
-msgstr ""
+msgstr "Літній час М'янми"
#: dlls/tzres/tzres.rc:236 dlls/tzres/tzres.rc:237
msgid "Coordinated Universal Time"
-msgstr ""
+msgstr "Всесвітній координований час"
#: dlls/tzres/tzres.rc:130
msgid "India Standard Time"
-msgstr ""
+msgstr "Індійський стандартний час"
#: dlls/tzres/tzres.rc:131
msgid "India Daylight Time"
-msgstr ""
+msgstr "Індійський літній час"
#: dlls/tzres/tzres.rc:124
msgid "GTB Standard Time"
-msgstr ""
+msgstr "GTB стандартний час"
#: dlls/tzres/tzres.rc:125
msgid "GTB Daylight Time"
-msgstr ""
+msgstr "GTB літній час"
#: dlls/tzres/tzres.rc:228
msgid "Turkey Standard Time"
-msgstr ""
+msgstr "Турецький стандартний час"
#: dlls/tzres/tzres.rc:229
msgid "Turkey Daylight Time"
-msgstr ""
+msgstr "Турецький літній час"
#: dlls/tzres/tzres.rc:112
msgid "Fiji Standard Time"
-msgstr ""
+msgstr "Стандартний час Фіджі"
#: dlls/tzres/tzres.rc:113
msgid "Fiji Daylight Time"
-msgstr ""
+msgstr "Літній час Фіджі"
#: dlls/tzres/tzres.rc:64
msgid "Canada Central Standard Time"
-msgstr ""
+msgstr "Центральний стандартний час Канади"
#: dlls/tzres/tzres.rc:65
msgid "Canada Central Daylight Time"
-msgstr ""
+msgstr "Центральний літній час Канади"
#: dlls/tzres/tzres.rc:218
msgid "Taipei Standard Time"
-msgstr ""
+msgstr "Тайбейський стандартний час"
#: dlls/tzres/tzres.rc:219
msgid "Taipei Daylight Time"
-msgstr ""
+msgstr "Тайбейський літній час"
#: dlls/tzres/tzres.rc:246
msgid "W. Europe Standard Time"
-msgstr ""
+msgstr "Західноєвропейський стандартний час"
#: dlls/tzres/tzres.rc:247
msgid "W. Europe Daylight Time"
-msgstr ""
+msgstr "Західноєвропейський літній час"
#: dlls/tzres/tzres.rc:158
msgid "Montevideo Standard Time"
-msgstr ""
+msgstr "Стандартний час Монтевідео"
#: dlls/tzres/tzres.rc:159
msgid "Montevideo Daylight Time"
-msgstr ""
+msgstr "Літній час Монтевідео"
#: dlls/tzres/tzres.rc:190
msgid "Pakistan Standard Time"
-msgstr ""
+msgstr "Пакистанський стандартний час"
#: dlls/tzres/tzres.rc:191
msgid "Pakistan Daylight Time"
-msgstr ""
+msgstr "Пакистанський літній час"
#: dlls/tzres/tzres.rc:68
msgid "Caucasus Standard Time"
-msgstr ""
+msgstr "Кавказький стандартний час"
#: dlls/tzres/tzres.rc:69
msgid "Caucasus Daylight Time"
-msgstr ""
+msgstr "Кавказький літній час"
#: dlls/tzres/tzres.rc:50
msgid "AUS Eastern Standard Time"
-msgstr ""
+msgstr "AUS східний стандартний час"
#: dlls/tzres/tzres.rc:51
msgid "AUS Eastern Daylight Time"
-msgstr ""
+msgstr "AUS східний літній час"
#: dlls/tzres/tzres.rc:168
msgid "N. Central Asia Standard Time"
-msgstr ""
+msgstr "Північно-Центральна Азія за стандартним часом"
#: dlls/tzres/tzres.rc:169
msgid "N. Central Asia Daylight Time"
-msgstr ""
+msgstr "Північно-Центральна Азія за літнім часом"
#: dlls/tzres/tzres.rc:104
msgid "Eastern Standard Time"
-msgstr ""
+msgstr "Східний стандартний час"
#: dlls/tzres/tzres.rc:105
msgid "Eastern Daylight Time"
-msgstr ""
+msgstr "Східний літній час"
#: dlls/tzres/tzres.rc:86
msgid "Central Standard Time (Mexico)"
-msgstr ""
+msgstr "Центральний стандартний час (Мексика)"
#: dlls/tzres/tzres.rc:87
msgid "Central Daylight Time (Mexico)"
-msgstr ""
+msgstr "Центральний літній час (Мексика)"
#: dlls/tzres/tzres.rc:44
msgid "Atlantic Standard Time"
-msgstr ""
+msgstr "Атлантичний стандартний час"
#: dlls/tzres/tzres.rc:45
msgid "Atlantic Daylight Time"
-msgstr ""
+msgstr "Атлантичний літній час"
#: dlls/tzres/tzres.rc:162
msgid "Mountain Standard Time"
-msgstr ""
+msgstr "Гірський стандартний час"
#: dlls/tzres/tzres.rc:163
msgid "Mountain Daylight Time"
-msgstr ""
+msgstr "Гірський літній час"
#: dlls/tzres/tzres.rc:232
msgid "US Eastern Standard Time"
-msgstr ""
+msgstr "Східний стандартний час США"
#: dlls/tzres/tzres.rc:233
msgid "US Eastern Daylight Time"
-msgstr ""
+msgstr "Східний літній час США"
#: dlls/tzres/tzres.rc:182
msgid "North Korea Standard Time"
-msgstr ""
+msgstr "Північнокорейський стандартний час"
#: dlls/tzres/tzres.rc:183
msgid "North Korea Daylight Time"
-msgstr ""
+msgstr "Північнокорейський літній час"
#: dlls/tzres/tzres.rc:220
msgid "Tasmania Standard Time"
-msgstr ""
+msgstr "Тасманійський стандартний час"
#: dlls/tzres/tzres.rc:221
msgid "Tasmania Daylight Time"
-msgstr ""
+msgstr "Тасманійський літній час"
#: dlls/tzres/tzres.rc:72
msgid "Central America Standard Time"
-msgstr ""
+msgstr "Центральна Америка за стандартним часом"
#: dlls/tzres/tzres.rc:73
msgid "Central America Daylight Time"
-msgstr ""
+msgstr "Центральна Америка за літнім часом"
#: dlls/tzres/tzres.rc:234
msgid "US Mountain Standard Time"
-msgstr ""
+msgstr "Американський гірський стандартний час"
#: dlls/tzres/tzres.rc:235
msgid "US Mountain Daylight Time"
-msgstr ""
+msgstr "Американський гірський літній час"
#: dlls/tzres/tzres.rc:212
msgid "South Africa Standard Time"
-msgstr ""
+msgstr "Південно-Африканський стандартний час"
#: dlls/tzres/tzres.rc:213
msgid "South Africa Daylight Time"
-msgstr ""
+msgstr "Південно-Африканський літній час"
#: dlls/tzres/tzres.rc:70
msgid "Cen. Australia Standard Time"
-msgstr ""
+msgstr "Цен. Австралійський стандартний час"
#: dlls/tzres/tzres.rc:71
msgid "Cen. Australia Daylight Time"
-msgstr ""
+msgstr "Цен. Австралійський літній час"
#: dlls/tzres/tzres.rc:214
msgid "Sri Lanka Standard Time"
-msgstr ""
+msgstr "Стандартний час Шрі-Ланки"
#: dlls/tzres/tzres.rc:215
msgid "Sri Lanka Daylight Time"
-msgstr ""
+msgstr "Літній час Шрі-Ланки"
#: dlls/tzres/tzres.rc:30
msgid "Afghanistan Standard Time"
-msgstr ""
+msgstr "Стандартний час в Афганістані"
#: dlls/tzres/tzres.rc:31
msgid "Afghanistan Daylight Time"
-msgstr ""
+msgstr "Літній час в Афганістані"
#: dlls/tzres/tzres.rc:252
msgid "Yakutsk Standard Time"
-msgstr ""
+msgstr "Якутський стандартний час"
#: dlls/tzres/tzres.rc:253
msgid "Yakutsk Daylight Time"
-msgstr ""
+msgstr "Якутський літній час"
#: dlls/tzres/tzres.rc:198
msgid "SA Eastern Standard Time"
-msgstr ""
+msgstr "SA східний стандартний час"
#: dlls/tzres/tzres.rc:199
msgid "SA Eastern Daylight Time"
-msgstr ""
+msgstr "SA східний літній час"
#: dlls/tzres/tzres.rc:36
msgid "Arab Standard Time"
-msgstr ""
+msgstr "Арабський стандартний час"
#: dlls/tzres/tzres.rc:37
msgid "Arab Daylight Time"
-msgstr ""
+msgstr "Арабський літній час"
#: dlls/tzres/tzres.rc:38
msgid "Arabian Standard Time"
-msgstr ""
+msgstr "Арабський стандартний час"
#: dlls/tzres/tzres.rc:39
msgid "Arabian Daylight Time"
-msgstr ""
+msgstr "Арабський літній час"
#: dlls/tzres/tzres.rc:222
msgid "Tocantins Standard Time"
-msgstr ""
+msgstr "Стандартний час Токантінс"
#: dlls/tzres/tzres.rc:223
msgid "Tocantins Daylight Time"
-msgstr ""
+msgstr "Літній час Токантінс"
#: dlls/tzres/tzres.rc:196
msgid "Russian Standard Time"
-msgstr ""
+msgstr "Російський стандартний час"
#: dlls/tzres/tzres.rc:197
msgid "Russian Daylight Time"
-msgstr ""
+msgstr "Російський літній час"
#: dlls/tzres/tzres.rc:48
msgid "Aus Central W. Standard Time"
-msgstr ""
+msgstr "Aus Central W. стандартний час"
#: dlls/tzres/tzres.rc:49
msgid "Aus Central W. Daylight Time"
-msgstr ""
+msgstr "Aus Central W. літній час"
#: dlls/tzres/tzres.rc:194
msgid "Romance Standard Time"
-msgstr ""
+msgstr "Романський стандартний час"
#: dlls/tzres/tzres.rc:195
msgid "Romance Daylight Time"
-msgstr ""
+msgstr "Романський літній час"
#: dlls/tzres/tzres.rc:110
msgid "Ekaterinburg Standard Time"
-msgstr ""
+msgstr "Стандартний час Єкатеринбурга"
#: dlls/tzres/tzres.rc:111
msgid "Ekaterinburg Daylight Time"
-msgstr ""
+msgstr "Літній час Єкатеринбурга"
#: dlls/tzres/tzres.rc:216
msgid "Syria Standard Time"
-msgstr ""
+msgstr "Стандартний час Сирії"
#: dlls/tzres/tzres.rc:217
msgid "Syria Daylight Time"
-msgstr ""
+msgstr "Літній час Сирії"
#: dlls/tzres/tzres.rc:46
msgid "AUS Central Standard Time"
-msgstr ""
+msgstr "Центральний стандартний час AUS"
#: dlls/tzres/tzres.rc:47
msgid "AUS Central Daylight Time"
-msgstr ""
+msgstr "Центральний літній час AUS"
#: dlls/tzres/tzres.rc:122
msgid "Greenwich Standard Time"
-msgstr ""
+msgstr "Стандартний час за Грінвічем"
#: dlls/tzres/tzres.rc:123
msgid "Greenwich Daylight Time"
-msgstr ""
+msgstr "Літній час за Грінвічем"
#: dlls/tzres/tzres.rc:230
msgid "Ulaanbaatar Standard Time"
-msgstr ""
+msgstr "Стандартний час Улан-Батора"
#: dlls/tzres/tzres.rc:231
msgid "Ulaanbaatar Daylight Time"
-msgstr ""
+msgstr "Літній час Улан-Батора"
#: dlls/tzres/tzres.rc:134
msgid "Israel Standard Time"
-msgstr ""
+msgstr "Стандартний час Ізраїлю"
#: dlls/tzres/tzres.rc:135
msgid "Israel Daylight Time"
-msgstr ""
+msgstr "Літній час Ізраїлю"
#: dlls/tzres/tzres.rc:58
msgid "Bangladesh Standard Time"
-msgstr ""
+msgstr "Стандартний час Бангладеш"
#: dlls/tzres/tzres.rc:59
msgid "Bangladesh Daylight Time"
-msgstr ""
+msgstr "Літній час Бангладеш"
#: dlls/tzres/tzres.rc:200
msgid "SA Pacific Standard Time"
-msgstr ""
+msgstr "SA Тихоокеанський стандартний час"
#: dlls/tzres/tzres.rc:201
msgid "SA Pacific Daylight Time"
-msgstr ""
+msgstr "SA Тихоокеанський літній час"
#: dlls/tzres/tzres.rc:248
msgid "West Asia Standard Time"
-msgstr ""
+msgstr "Західноазіатський стандартний час"
#: dlls/tzres/tzres.rc:249
msgid "West Asia Daylight Time"
-msgstr ""
+msgstr "Західноазіатський літній час"
#: dlls/tzres/tzres.rc:32
msgid "Alaskan Standard Time"
-msgstr ""
+msgstr "Аляскинський стандартний час"
#: dlls/tzres/tzres.rc:33
msgid "Alaskan Daylight Time"
-msgstr ""
+msgstr "Аляскинський літній час"
#: dlls/tzres/tzres.rc:192
msgid "Paraguay Standard Time"
-msgstr ""
+msgstr "Парагвайський стандартний час"
#: dlls/tzres/tzres.rc:193
msgid "Paraguay Daylight Time"
-msgstr ""
+msgstr "Парагвайський літній час"
#: dlls/tzres/tzres.rc:94
msgid "Dateline Standard Time"
-msgstr ""
+msgstr "Стандартний час у Дателіні"
#: dlls/tzres/tzres.rc:95
msgid "Dateline Daylight Time"
-msgstr ""
+msgstr "Літній час у Дателіні"
#: dlls/tzres/tzres.rc:142
msgid "Libya Standard Time"
-msgstr ""
+msgstr "Лівійський стандартний час"
#: dlls/tzres/tzres.rc:143
msgid "Libya Daylight Time"
-msgstr ""
+msgstr "Лівійський літній час"
#: dlls/tzres/tzres.rc:56
msgid "Bahia Standard Time"
-msgstr ""
+msgstr "Стандартний час Баїя"
#: dlls/tzres/tzres.rc:57
msgid "Bahia Daylight Time"
-msgstr ""
+msgstr "Літній час Баїя"
#: dlls/tzres/tzres.rc:238
msgid "Venezuela Standard Time"
-msgstr ""
+msgstr "Стандартний час Венесуели"
#: dlls/tzres/tzres.rc:239
msgid "Venezuela Daylight Time"
-msgstr ""
+msgstr "Літній час Венесуели"
#: dlls/tzres/tzres.rc:62
msgid "Bougainville Standard Time"
-msgstr ""
+msgstr "Стандартний час Бугенвіля"
#: dlls/tzres/tzres.rc:63
msgid "Bougainville Daylight Time"
-msgstr ""
+msgstr "Літній час Бугенвіля"
#: dlls/tzres/tzres.rc:128
msgid "Hawaiian Standard Time"
-msgstr ""
+msgstr "Гавайський стандартний час"
#: dlls/tzres/tzres.rc:129
msgid "Hawaiian Daylight Time"
-msgstr ""
+msgstr "Гавайський літній час"
#: dlls/tzres/tzres.rc:208
msgid "SE Asia Standard Time"
-msgstr ""
+msgstr "Південно-Східний Азіатський стандартний час"
#: dlls/tzres/tzres.rc:209
msgid "SE Asia Daylight Time"
-msgstr ""
+msgstr "Південно-Східний Азіатський літній час"
#: dlls/tzres/tzres.rc:174
msgid "New Zealand Standard Time"
-msgstr ""
+msgstr "Стандартний час Нової Зеландії"
#: dlls/tzres/tzres.rc:175
msgid "New Zealand Daylight Time"
-msgstr ""
+msgstr "Літній час Нової Зеландії"
#: dlls/tzres/tzres.rc:34
msgid "Aleutian Standard Time"
-msgstr ""
+msgstr "Алеутський стандартний час"
#: dlls/tzres/tzres.rc:35
msgid "Aleutian Daylight Time"
-msgstr ""
+msgstr "Алеутський літній час"
#: dlls/tzres/tzres.rc:76
msgid "Central Brazilian Standard Time"
-msgstr ""
+msgstr "Центральний бразильський стандартний час"
#: dlls/tzres/tzres.rc:77
msgid "Central Brazilian Daylight Time"
-msgstr ""
+msgstr "Центральний бразильський літній час"
#: dlls/tzres/tzres.rc:60
msgid "Belarus Standard Time"
-msgstr ""
+msgstr "Білоруський стандартний час"
#: dlls/tzres/tzres.rc:61
msgid "Belarus Daylight Time"
-msgstr ""
+msgstr "Білоруський літній час"
#: dlls/tzres/tzres.rc:202
msgid "SA Western Standard Time"
-msgstr ""
+msgstr "SA Західний стандартний час"
#: dlls/tzres/tzres.rc:203
msgid "SA Western Daylight Time"
-msgstr ""
+msgstr "SA Західний літній час"
#: dlls/tzres/tzres.rc:120
msgid "Greenland Standard Time"
-msgstr ""
+msgstr "Стандартний час Гренландії"
#: dlls/tzres/tzres.rc:121
msgid "Greenland Daylight Time"
-msgstr ""
+msgstr "Літній час Гренландії"
#: dlls/tzres/tzres.rc:102
msgid "Easter Island Standard Time"
-msgstr ""
+msgstr "Стандартний час острова Пасхи"
#: dlls/tzres/tzres.rc:103
msgid "Easter Island Daylight Time"
-msgstr ""
+msgstr "Літній час острова Пасхи"
#: dlls/tzres/tzres.rc:108
msgid "Egypt Standard Time"
-msgstr ""
+msgstr "Єгипетський стандартний час"
#: dlls/tzres/tzres.rc:109
msgid "Egypt Daylight Time"
-msgstr ""
+msgstr "Єгипетський літній час"
#: dlls/tzres/tzres.rc:106
msgid "Eastern Standard Time (Mexico)"
-msgstr ""
+msgstr "Східний стандартний час (Мексика)"
#: dlls/tzres/tzres.rc:107
msgid "Eastern Daylight Time (Mexico)"
-msgstr ""
+msgstr "Східний літній час (Мексика)"
#: dlls/tzres/tzres.rc:154
msgid "Mauritius Standard Time"
-msgstr ""
+msgstr "Стандартний час Маврикія"
#: dlls/tzres/tzres.rc:155
msgid "Mauritius Daylight Time"
-msgstr ""
+msgstr "Літній час Маврикія"
#: dlls/tzres/tzres.rc:240
msgid "Vladivostok Standard Time"
-msgstr ""
+msgstr "Стандартний час Владивостока"
#: dlls/tzres/tzres.rc:241
msgid "Vladivostok Daylight Time"
-msgstr ""
+msgstr "Літній час Владивостока"
#: dlls/tzres/tzres.rc:210
msgid "Singapore Standard Time"
-msgstr ""
+msgstr "Стандартний час Сінгапуру"
#: dlls/tzres/tzres.rc:211
msgid "Singapore Daylight Time"
-msgstr ""
+msgstr "Літній час Сінгапуру"
#: dlls/tzres/tzres.rc:140
msgid "Korea Standard Time"
-msgstr ""
+msgstr "Корейський стандартний час"
#: dlls/tzres/tzres.rc:141
msgid "Korea Daylight Time"
-msgstr ""
+msgstr "Корейський літній час"
#: dlls/tzres/tzres.rc:88
msgid "Chatham Islands Standard Time"
-msgstr ""
+msgstr "Стандартний час островів Чатем"
#: dlls/tzres/tzres.rc:89
msgid "Chatham Islands Daylight Time"
-msgstr ""
+msgstr "Літній час островів Чатем"
#: dlls/tzres/tzres.rc:96
msgid "E. Africa Standard Time"
-msgstr ""
+msgstr "E. Стандартний час в Африці"
#: dlls/tzres/tzres.rc:97
msgid "E. Africa Daylight Time"
-msgstr ""
+msgstr "E. Літній час в Африці"
#: dlls/tzres/tzres.rc:114
msgid "FLE Standard Time"
-msgstr ""
+msgstr "Стандартний час FLE"
#: dlls/tzres/tzres.rc:115
msgid "FLE Daylight Time"
-msgstr ""
+msgstr "Літній час FLE"
#: dlls/tzres/tzres.rc:100
msgid "E. South America Standard Time"
-msgstr ""
+msgstr "E. Стандартний час Південної Америки"
#: dlls/tzres/tzres.rc:101
msgid "E. South America Daylight Time"
-msgstr ""
+msgstr "E. Літній час Південної Америки"
#: dlls/tzres/tzres.rc:82
msgid "Central Pacific Standard Time"
-msgstr ""
+msgstr "Центральний тихоокеанський стандартний час"
#: dlls/tzres/tzres.rc:83
msgid "Central Pacific Daylight Time"
-msgstr ""
+msgstr "Центральний тихоокеанський літній час"
#: dlls/tzres/tzres.rc:244
msgid "W. Central Africa Standard Time"
-msgstr ""
+msgstr "В. Стандартний час у Центральній Африці"
#: dlls/tzres/tzres.rc:245
msgid "W. Central Africa Daylight Time"
-msgstr ""
+msgstr "В. Літній час у Центральній Африці"
#: dlls/tzres/tzres.rc:184
msgid "Pacific SA Standard Time"
-msgstr ""
+msgstr "Тихоокеанський стандартний час SA"
#: dlls/tzres/tzres.rc:185
msgid "Pacific SA Daylight Time"
-msgstr ""
+msgstr "Тихоокеанський літній час SA"
#: dlls/tzres/tzres.rc:98
msgid "E. Australia Standard Time"
-msgstr ""
+msgstr "E. Стандартний час в Австралії"
#: dlls/tzres/tzres.rc:99
msgid "E. Australia Daylight Time"
-msgstr ""
+msgstr "E. Літній час в Австралії"
#: dlls/tzres/tzres.rc:242
msgid "W. Australia Standard Time"
-msgstr ""
+msgstr "В. Стандартний час в Австралії"
#: dlls/tzres/tzres.rc:243
msgid "W. Australia Daylight Time"
-msgstr ""
+msgstr "В. Літній час в Австралії"
#: dlls/urlmon/urlmon.rc:32 dlls/wininet/wininet.rc:88
msgid "Security Warning"
@@ -10960,147 +10896,115 @@ 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 ""
+msgstr "Цей масив виправлений або тимчасово заблокований"
#: dlls/vbscript/vbscript.rc:34
-#, fuzzy
-#| msgid "Data type mismatch.\n"
msgid "Type mismatch"
-msgstr "Невідповідність типів даних.\n"
+msgstr "Невідповідність типу"
#: dlls/vbscript/vbscript.rc:36
msgid "Device I/O error"
-msgstr ""
+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
-#| msgid "Access denied.\n"
msgid "Permission denied"
-msgstr "Доступ заборонено.\n"
+msgstr "Доступ заборонено"
#: dlls/vbscript/vbscript.rc:41
msgid "Path/File access error"
-msgstr ""
+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
-#| msgid "(value not set)"
msgid "Object variable not set"
-msgstr "(значення не задане)"
+msgstr "Не встановлена змінна об'єкта"
#: dlls/vbscript/vbscript.rc:44
-#, fuzzy
-#| msgid "Invalid cursor handle.\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 ""
+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"
-msgstr ""
+msgstr "Неправильна кількість аргументів або недійсне призначення властивості"
#: dlls/vbscript/vbscript.rc:56
-#, fuzzy
-#| msgid "Object Class Violation"
msgid "Object not a collection"
-msgstr "Порушення класу об'єкту"
+msgstr "Об'єкт не є набором"
#: dlls/vbscript/vbscript.rc:57
-#, fuzzy
-#| msgid "Specified control was not found in message"
msgid "Specified DLL function not found"
-msgstr "Вказаний елемент керування не знайдено в повідомленні"
+msgstr "Вказану функцію DLL не знайдено"
#: dlls/vbscript/vbscript.rc:58
msgid "Variable uses an Automation type not supported in VBScript"
-msgstr ""
+msgstr "Змінна використовує тип автоматизації, який не підтримується у VBScript"
#: dlls/vbscript/vbscript.rc:59
msgid "The remote server machine does not exist or is unavailable"
-msgstr ""
+msgstr "Віддалений сервер не існує або недоступний"
#: dlls/vbscript/vbscript.rc:60
msgid "Invalid or unqualified reference"
-msgstr ""
+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 %@"
@@ -11197,33 +11101,27 @@ msgstr "Існує принаймні одна невизначена пробл
#: dlls/wininet/wininet.rc:35
msgid "Effective Date"
-msgstr ""
+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"
-msgstr ""
+msgstr "Сила конфіденційності"
#: dlls/wininet/wininet.rc:43
msgid "bits"
-msgstr ""
+msgstr "біти"
#: dlls/wininet/winineterror.mc:26
msgid "The request has timed out.\n"
@@ -13236,6 +13134,9 @@ msgid ""
"\n"
"hardlink hardlink management\n"
msgstr ""
+"- Підтримувані команди -\n"
+"\n"
+"hardlink управління жорстким посиланням\n"
#: programs/fsutil/fsutil.mc:35
msgid ""
@@ -13243,10 +13144,13 @@ msgid ""
"\n"
"create create a hardlink\n"
msgstr ""
+"- Жорстке посилання - Підтримувані команди -\n"
+"\n"
+"create створити жорстке посилання\n"
#: 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"
@@ -16053,10 +15957,10 @@ msgid ""
"data before it is terminated. Are you sure you want to\n"
"terminate the process?"
msgstr ""
-"УВАГА: Завершення цього процесу може призвести до\n"
-"небажаних результатів, включаючи втрату даних та\n"
-"нестабільність системи. Процес не зможе зберегти\n"
-"свою позицію чи дані. Ви справді хочете завершити\n"
+"УВАГА: Завершення цього процесу може призвести до "
+"небажаних результатів, включаючи втрату даних та "
+"нестабільність системи. Процес не зможе зберегти "
+"свою позицію чи дані. Ви справді хочете завершити "
"процес?"
#: programs/taskmgr/taskmgr.rc:311
@@ -17069,10 +16973,8 @@ msgid "&Beginner"
msgstr "Н&овачок"
#: programs/winemine/winemine.rc:45
-#, fuzzy
-#| msgid "Interface"
msgid "&Intermediate"
-msgstr "Інтерфейс"
+msgstr "&Проміжний"
#: programs/winemine/winemine.rc:46
msgid "&Expert"
@@ -17103,10 +17005,8 @@ msgid "Beginner"
msgstr "Новачок"
#: programs/winemine/winemine.rc:65
-#, fuzzy
-#| msgid "Interface"
msgid "Intermediate"
-msgstr "Інтерфейс"
+msgstr "Проміжний"
#: programs/winemine/winemine.rc:66
msgid "Expert"
--
2.29.2
Dec. 25, 2020
[PATCH] wined3d: Use debug_d3dusage() for both usage and usage query flags.
by Zebediah Figura
Avoid spurious FIXME messages in wined3d_check_device_format().
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
dlls/wined3d/directx.c | 4 ++--
dlls/wined3d/utils.c | 29 ++++++++---------------------
dlls/wined3d/wined3d_private.h | 1 -
3 files changed, 10 insertions(+), 24 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index d35108710c2..2764b113065 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -1692,10 +1692,10 @@ HRESULT CDECL wined3d_check_device_format(const struct wined3d *wined3d,
DWORD format_flags = 0;
DWORD allowed_usage;
- TRACE("wined3d %p, adapter %p, device_type %s, adapter_format %s, usage %s, %s, "
+ TRACE("wined3d %p, adapter %p, device_type %s, adapter_format %s, usage %s, "
"bind_flags %s, resource_type %s, check_format %s.\n",
wined3d, adapter, debug_d3ddevicetype(device_type), debug_d3dformat(adapter_format_id),
- debug_d3dusage(usage), debug_d3dusagequery(usage), wined3d_debug_bind_flags(bind_flags),
+ debug_d3dusage(usage), wined3d_debug_bind_flags(bind_flags),
debug_d3dresourcetype(resource_type), debug_d3dformat(check_format_id));
adapter_format = wined3d_get_format(adapter, adapter_format_id, WINED3D_BIND_RENDER_TARGET);
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 88175d4bf26..4ec6e4db42d 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -4710,6 +4710,14 @@ const char *debug_d3dusage(DWORD usage)
WINED3DUSAGE_TO_STR(WINED3DUSAGE_OWNDC);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_STATICDECL);
WINED3DUSAGE_TO_STR(WINED3DUSAGE_OVERLAY);
+ WINED3DUSAGE_TO_STR(WINED3DUSAGE_QUERY_FILTER);
+ WINED3DUSAGE_TO_STR(WINED3DUSAGE_QUERY_GENMIPMAP);
+ WINED3DUSAGE_TO_STR(WINED3DUSAGE_QUERY_LEGACYBUMPMAP);
+ WINED3DUSAGE_TO_STR(WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING);
+ WINED3DUSAGE_TO_STR(WINED3DUSAGE_QUERY_SRGBREAD);
+ WINED3DUSAGE_TO_STR(WINED3DUSAGE_QUERY_SRGBWRITE);
+ WINED3DUSAGE_TO_STR(WINED3DUSAGE_QUERY_VERTEXTEXTURE);
+ WINED3DUSAGE_TO_STR(WINED3DUSAGE_QUERY_WRAPANDMIP);
#undef WINED3DUSAGE_TO_STR
if (usage)
FIXME("Unrecognized usage flag(s) %#x.\n", usage);
@@ -4717,27 +4725,6 @@ const char *debug_d3dusage(DWORD usage)
return wine_dbg_sprintf("%s", buffer.str);
}
-const char *debug_d3dusagequery(DWORD usage)
-{
- struct debug_buffer buffer;
-
- init_debug_buffer(&buffer, "0");
-#define WINED3DUSAGEQUERY_TO_STR(x) if (usage & x) { debug_append(&buffer, #x, " | "); usage &= ~x; }
- WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_FILTER);
- WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_GENMIPMAP);
- WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_LEGACYBUMPMAP);
- WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING);
- WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_SRGBREAD);
- WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_SRGBWRITE);
- WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_VERTEXTEXTURE);
- WINED3DUSAGEQUERY_TO_STR(WINED3DUSAGE_QUERY_WRAPANDMIP);
-#undef WINED3DUSAGEQUERY_TO_STR
- if (usage)
- FIXME("Unrecognized usage query flag(s) %#x.\n", usage);
-
- return wine_dbg_sprintf("%s", buffer.str);
-}
-
const char *debug_d3ddeclmethod(enum wined3d_decl_method method)
{
switch (method)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 0749f95f998..bd848f61e32 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -5273,7 +5273,6 @@ const char *debug_d3dformat(enum wined3d_format_id format_id) DECLSPEC_HIDDEN;
const char *debug_d3ddevicetype(enum wined3d_device_type device_type) DECLSPEC_HIDDEN;
const char *debug_d3dresourcetype(enum wined3d_resource_type resource_type) DECLSPEC_HIDDEN;
const char *debug_d3dusage(DWORD usage) DECLSPEC_HIDDEN;
-const char *debug_d3dusagequery(DWORD usagequery) DECLSPEC_HIDDEN;
const char *debug_d3ddeclmethod(enum wined3d_decl_method method) DECLSPEC_HIDDEN;
const char *debug_d3ddeclusage(enum wined3d_decl_usage usage) DECLSPEC_HIDDEN;
const char *debug_d3dinput_classification(enum wined3d_input_classification classification) DECLSPEC_HIDDEN;
--
2.29.2
Dec. 25, 2020
[PATCH] d3dcompiler/tests: Avoid initializing nameless unions in designated initializers.
by Zebediah Figura
Old versions of gcc can't handle this.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50397
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
dlls/d3dcompiler_43/tests/hlsl_d3d11.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/dlls/d3dcompiler_43/tests/hlsl_d3d11.c b/dlls/d3dcompiler_43/tests/hlsl_d3d11.c
index 7a1243b9ccf..53dbd3e2df7 100644
--- a/dlls/d3dcompiler_43/tests/hlsl_d3d11.c
+++ b/dlls/d3dcompiler_43/tests/hlsl_d3d11.c
@@ -526,6 +526,7 @@ static void test_trig(void)
static void test_sampling(void)
{
+ D3D11_SHADER_RESOURCE_VIEW_DESC srv_desc = {0};
struct test_context test_context;
ID3D11ShaderResourceView *srv;
ID3D11SamplerState *sampler;
@@ -592,13 +593,6 @@ static void test_sampling(void)
static const D3D11_SUBRESOURCE_DATA resource_data = {&texture_data, sizeof(texture_data) / 2};
- static const D3D11_SHADER_RESOURCE_VIEW_DESC srv_desc =
- {
- .Format = DXGI_FORMAT_R32G32B32A32_FLOAT,
- .ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D,
- .Texture2D.MipLevels = 1,
- };
-
static const D3D11_SAMPLER_DESC sampler_desc =
{
.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR,
@@ -614,6 +608,9 @@ static void test_sampling(void)
hr = ID3D11Device_CreateTexture2D(test_context.device, &texture_desc, &resource_data, &texture);
ok(hr == S_OK, "Failed to create texture, hr %#x.\n", hr);
+ srv_desc.Format = DXGI_FORMAT_R32G32B32A32_FLOAT;
+ srv_desc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
+ srv_desc.Texture2D.MipLevels = 1;
hr = ID3D11Device_CreateShaderResourceView(test_context.device, (ID3D11Resource *)texture, &srv_desc, &srv);
ok(hr == S_OK, "Failed to create SRV, hr %#x.\n", hr);
ID3D11DeviceContext_PSSetShaderResources(test_context.immediate_context, 0, 1, &srv);
--
2.29.2
Dec. 25, 2020
[PATCH v2] winegstreamer: Split audio data to fit in the sample buffer.
by Anton Baskanov
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50355
Signed-off-by: Anton Baskanov <baskanov(a)gmail.com>
---
v2: Set discontinuity and sync point flags only for the first sample.
---
dlls/winegstreamer/gstdemux.c | 144 +++++++++++++++++++++-------------
1 file changed, 90 insertions(+), 54 deletions(-)
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index 9114e6610a3..676b7396515 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -81,6 +81,7 @@ struct gstdemux_source
HANDLE caps_event, eos_event;
GstSegment *segment;
SourceSeeking seek;
+ DWORD bytes_per_second;
};
static inline struct gstdemux *impl_from_strmbase_filter(struct strmbase_filter *iface)
@@ -801,6 +802,7 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
BYTE *ptr = NULL;
IMediaSample *sample;
GstMapInfo info;
+ gsize position = 0;
TRACE("%p %p\n", pad, buf);
@@ -809,76 +811,108 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
return GST_FLOW_OK;
}
- hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
-
- if (hr == VFW_E_NOT_CONNECTED) {
- gst_buffer_unref(buf);
- return GST_FLOW_NOT_LINKED;
- }
+ gst_buffer_map(buf, &info, GST_MAP_READ);
- if (FAILED(hr)) {
- gst_buffer_unref(buf);
- ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
- return GST_FLOW_FLUSHING;
- }
+ while (position < info.size)
+ {
+ gsize advance;
- gst_buffer_map(buf, &info, GST_MAP_READ);
+ hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
- hr = IMediaSample_SetActualDataLength(sample, info.size);
- if(FAILED(hr)){
- WARN("SetActualDataLength failed: %08x\n", hr);
- return GST_FLOW_FLUSHING;
- }
+ if (hr == VFW_E_NOT_CONNECTED) {
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ return GST_FLOW_NOT_LINKED;
+ }
- IMediaSample_GetPointer(sample, &ptr);
+ if (FAILED(hr)) {
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
+ return GST_FLOW_FLUSHING;
+ }
- memcpy(ptr, info.data, info.size);
+ advance = min(IMediaSample_GetSize(sample), info.size - position);
- gst_buffer_unmap(buf, &info);
+ hr = IMediaSample_SetActualDataLength(sample, advance);
+ if(FAILED(hr)){
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ WARN("SetActualDataLength failed: %08x\n", hr);
+ return GST_FLOW_FLUSHING;
+ }
- if (GST_BUFFER_PTS_IS_VALID(buf)) {
- REFERENCE_TIME rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts);
- if (rtStart >= 0)
- rtStart /= 100;
-
- if (GST_BUFFER_DURATION_IS_VALID(buf)) {
- REFERENCE_TIME tStart = buf->pts / 100;
- REFERENCE_TIME tStop = (buf->pts + buf->duration) / 100;
- REFERENCE_TIME rtStop;
- rtStop = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts + buf->duration);
- if (rtStop >= 0)
- rtStop /= 100;
- TRACE("Current time on %p: %i to %i ms\n", pin, (int)(rtStart / 10000), (int)(rtStop / 10000));
- IMediaSample_SetTime(sample, &rtStart, rtStop >= 0 ? &rtStop : NULL);
- IMediaSample_SetMediaTime(sample, &tStart, &tStop);
+ IMediaSample_GetPointer(sample, &ptr);
+
+ memcpy(ptr, &info.data[position], advance);
+
+ if (GST_BUFFER_PTS_IS_VALID(buf)) {
+ REFERENCE_TIME rtStart;
+ GstClockTime ptsStart = buf->pts;
+ if (position > 0 && pin->bytes_per_second)
+ ptsStart = buf->pts + gst_util_uint64_scale(position, GST_SECOND, pin->bytes_per_second);
+ rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, ptsStart);
+ if (rtStart >= 0)
+ rtStart /= 100;
+
+ if (GST_BUFFER_DURATION_IS_VALID(buf)) {
+ REFERENCE_TIME rtStop;
+ REFERENCE_TIME tStart;
+ REFERENCE_TIME tStop;
+ GstClockTime ptsStop = buf->pts + buf->duration;
+ if (position + advance < info.size && pin->bytes_per_second)
+ ptsStop = buf->pts + gst_util_uint64_scale(position + advance, GST_SECOND, pin->bytes_per_second);
+ tStart = ptsStart / 100;
+ tStop = ptsStop / 100;
+ rtStop = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, ptsStop);
+ if (rtStop >= 0)
+ rtStop /= 100;
+ TRACE("Current time on %p: %i to %i ms\n", pin, (int)(rtStart / 10000), (int)(rtStop / 10000));
+ IMediaSample_SetTime(sample, &rtStart, rtStop >= 0 ? &rtStop : NULL);
+ IMediaSample_SetMediaTime(sample, &tStart, &tStop);
+ } else {
+ IMediaSample_SetTime(sample, rtStart >= 0 ? &rtStart : NULL, NULL);
+ IMediaSample_SetMediaTime(sample, NULL, NULL);
+ }
} else {
- IMediaSample_SetTime(sample, rtStart >= 0 ? &rtStart : NULL, NULL);
+ IMediaSample_SetTime(sample, NULL, NULL);
IMediaSample_SetMediaTime(sample, NULL, NULL);
}
- } else {
- IMediaSample_SetTime(sample, NULL, NULL);
- IMediaSample_SetMediaTime(sample, NULL, NULL);
- }
- IMediaSample_SetDiscontinuity(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DISCONT));
- IMediaSample_SetPreroll(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_LIVE));
- IMediaSample_SetSyncPoint(sample, !GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DELTA_UNIT));
+ IMediaSample_SetDiscontinuity(sample,
+ !position && GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DISCONT));
+ IMediaSample_SetPreroll(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_LIVE));
+ IMediaSample_SetSyncPoint(sample,
+ !position && !GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DELTA_UNIT));
- if (!pin->pin.pin.peer)
- hr = VFW_E_NOT_CONNECTED;
- else
- hr = IMemInputPin_Receive(pin->pin.pMemInputPin, sample);
+ if (!pin->pin.pin.peer)
+ hr = VFW_E_NOT_CONNECTED;
+ else
+ hr = IMemInputPin_Receive(pin->pin.pMemInputPin, sample);
- TRACE("sending sample returned: %08x\n", hr);
+ TRACE("sending sample returned: %08x\n", hr);
- gst_buffer_unref(buf);
- IMediaSample_Release(sample);
+ IMediaSample_Release(sample);
- if (hr == VFW_E_NOT_CONNECTED)
- return GST_FLOW_NOT_LINKED;
+ if (hr == VFW_E_NOT_CONNECTED)
+ {
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ return GST_FLOW_NOT_LINKED;
+ }
- if (FAILED(hr))
- return GST_FLOW_FLUSHING;
+ if (FAILED(hr))
+ {
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ return GST_FLOW_FLUSHING;
+ }
+
+ position += advance;
+ }
+
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
return GST_FLOW_OK;
}
@@ -2104,6 +2138,8 @@ static HRESULT WINAPI GSTOutPin_DecideBufferSize(struct strmbase_source *iface,
{
WAVEFORMATEX *format = (WAVEFORMATEX *)pin->pin.pin.mt.pbFormat;
buffer_size = format->nAvgBytesPerSec;
+
+ pin->bytes_per_second = format->nAvgBytesPerSec;
}
props->cBuffers = max(props->cBuffers, 1);
--
2.25.1
Dec. 25, 2020
[PATCH] winegstreamer: Split audio data to fit in the sample buffer.
by Anton Baskanov
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50355
Signed-off-by: Anton Baskanov <baskanov(a)gmail.com>
---
dlls/winegstreamer/gstdemux.c | 142 +++++++++++++++++++++-------------
1 file changed, 88 insertions(+), 54 deletions(-)
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c
index 9114e6610a3..8a9c0a84191 100644
--- a/dlls/winegstreamer/gstdemux.c
+++ b/dlls/winegstreamer/gstdemux.c
@@ -81,6 +81,7 @@ struct gstdemux_source
HANDLE caps_event, eos_event;
GstSegment *segment;
SourceSeeking seek;
+ DWORD bytes_per_second;
};
static inline struct gstdemux *impl_from_strmbase_filter(struct strmbase_filter *iface)
@@ -801,6 +802,7 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
BYTE *ptr = NULL;
IMediaSample *sample;
GstMapInfo info;
+ gsize position = 0;
TRACE("%p %p\n", pad, buf);
@@ -809,76 +811,106 @@ static GstFlowReturn got_data_sink(GstPad *pad, GstObject *parent, GstBuffer *bu
return GST_FLOW_OK;
}
- hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
-
- if (hr == VFW_E_NOT_CONNECTED) {
- gst_buffer_unref(buf);
- return GST_FLOW_NOT_LINKED;
- }
+ gst_buffer_map(buf, &info, GST_MAP_READ);
- if (FAILED(hr)) {
- gst_buffer_unref(buf);
- ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
- return GST_FLOW_FLUSHING;
- }
+ while (position < info.size)
+ {
+ gsize advance;
- gst_buffer_map(buf, &info, GST_MAP_READ);
+ hr = BaseOutputPinImpl_GetDeliveryBuffer(&pin->pin, &sample, NULL, NULL, 0);
- hr = IMediaSample_SetActualDataLength(sample, info.size);
- if(FAILED(hr)){
- WARN("SetActualDataLength failed: %08x\n", hr);
- return GST_FLOW_FLUSHING;
- }
+ if (hr == VFW_E_NOT_CONNECTED) {
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ return GST_FLOW_NOT_LINKED;
+ }
- IMediaSample_GetPointer(sample, &ptr);
+ if (FAILED(hr)) {
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ ERR("Could not get a delivery buffer (%x), returning GST_FLOW_FLUSHING\n", hr);
+ return GST_FLOW_FLUSHING;
+ }
- memcpy(ptr, info.data, info.size);
+ advance = min(IMediaSample_GetSize(sample), info.size - position);
- gst_buffer_unmap(buf, &info);
+ hr = IMediaSample_SetActualDataLength(sample, advance);
+ if(FAILED(hr)){
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ WARN("SetActualDataLength failed: %08x\n", hr);
+ return GST_FLOW_FLUSHING;
+ }
- if (GST_BUFFER_PTS_IS_VALID(buf)) {
- REFERENCE_TIME rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts);
- if (rtStart >= 0)
- rtStart /= 100;
-
- if (GST_BUFFER_DURATION_IS_VALID(buf)) {
- REFERENCE_TIME tStart = buf->pts / 100;
- REFERENCE_TIME tStop = (buf->pts + buf->duration) / 100;
- REFERENCE_TIME rtStop;
- rtStop = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, buf->pts + buf->duration);
- if (rtStop >= 0)
- rtStop /= 100;
- TRACE("Current time on %p: %i to %i ms\n", pin, (int)(rtStart / 10000), (int)(rtStop / 10000));
- IMediaSample_SetTime(sample, &rtStart, rtStop >= 0 ? &rtStop : NULL);
- IMediaSample_SetMediaTime(sample, &tStart, &tStop);
+ IMediaSample_GetPointer(sample, &ptr);
+
+ memcpy(ptr, &info.data[position], advance);
+
+ if (GST_BUFFER_PTS_IS_VALID(buf)) {
+ REFERENCE_TIME rtStart;
+ GstClockTime ptsStart = buf->pts;
+ if (position > 0 && pin->bytes_per_second)
+ ptsStart = buf->pts + gst_util_uint64_scale(position, GST_SECOND, pin->bytes_per_second);
+ rtStart = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, ptsStart);
+ if (rtStart >= 0)
+ rtStart /= 100;
+
+ if (GST_BUFFER_DURATION_IS_VALID(buf)) {
+ REFERENCE_TIME rtStop;
+ REFERENCE_TIME tStart;
+ REFERENCE_TIME tStop;
+ GstClockTime ptsStop = buf->pts + buf->duration;
+ if (position + advance < info.size && pin->bytes_per_second)
+ ptsStop = buf->pts + gst_util_uint64_scale(position + advance, GST_SECOND, pin->bytes_per_second);
+ tStart = ptsStart / 100;
+ tStop = ptsStop / 100;
+ rtStop = gst_segment_to_running_time(pin->segment, GST_FORMAT_TIME, ptsStop);
+ if (rtStop >= 0)
+ rtStop /= 100;
+ TRACE("Current time on %p: %i to %i ms\n", pin, (int)(rtStart / 10000), (int)(rtStop / 10000));
+ IMediaSample_SetTime(sample, &rtStart, rtStop >= 0 ? &rtStop : NULL);
+ IMediaSample_SetMediaTime(sample, &tStart, &tStop);
+ } else {
+ IMediaSample_SetTime(sample, rtStart >= 0 ? &rtStart : NULL, NULL);
+ IMediaSample_SetMediaTime(sample, NULL, NULL);
+ }
} else {
- IMediaSample_SetTime(sample, rtStart >= 0 ? &rtStart : NULL, NULL);
+ IMediaSample_SetTime(sample, NULL, NULL);
IMediaSample_SetMediaTime(sample, NULL, NULL);
}
- } else {
- IMediaSample_SetTime(sample, NULL, NULL);
- IMediaSample_SetMediaTime(sample, NULL, NULL);
- }
- IMediaSample_SetDiscontinuity(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DISCONT));
- IMediaSample_SetPreroll(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_LIVE));
- IMediaSample_SetSyncPoint(sample, !GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DELTA_UNIT));
+ IMediaSample_SetDiscontinuity(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DISCONT));
+ IMediaSample_SetPreroll(sample, GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_LIVE));
+ IMediaSample_SetSyncPoint(sample, !GST_BUFFER_FLAG_IS_SET(buf, GST_BUFFER_FLAG_DELTA_UNIT));
- if (!pin->pin.pin.peer)
- hr = VFW_E_NOT_CONNECTED;
- else
- hr = IMemInputPin_Receive(pin->pin.pMemInputPin, sample);
+ if (!pin->pin.pin.peer)
+ hr = VFW_E_NOT_CONNECTED;
+ else
+ hr = IMemInputPin_Receive(pin->pin.pMemInputPin, sample);
- TRACE("sending sample returned: %08x\n", hr);
+ TRACE("sending sample returned: %08x\n", hr);
- gst_buffer_unref(buf);
- IMediaSample_Release(sample);
+ IMediaSample_Release(sample);
- if (hr == VFW_E_NOT_CONNECTED)
- return GST_FLOW_NOT_LINKED;
+ if (hr == VFW_E_NOT_CONNECTED)
+ {
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ return GST_FLOW_NOT_LINKED;
+ }
- if (FAILED(hr))
- return GST_FLOW_FLUSHING;
+ if (FAILED(hr))
+ {
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
+ return GST_FLOW_FLUSHING;
+ }
+
+ position += advance;
+ }
+
+ gst_buffer_unmap(buf, &info);
+ gst_buffer_unref(buf);
return GST_FLOW_OK;
}
@@ -2104,6 +2136,8 @@ static HRESULT WINAPI GSTOutPin_DecideBufferSize(struct strmbase_source *iface,
{
WAVEFORMATEX *format = (WAVEFORMATEX *)pin->pin.pin.mt.pbFormat;
buffer_size = format->nAvgBytesPerSec;
+
+ pin->bytes_per_second = format->nAvgBytesPerSec;
}
props->cBuffers = max(props->cBuffers, 1);
--
2.25.1
Dec. 24, 2020
Re: [PATCH] ucrtbase: Do not prefix MSVCRT_ to the exported function name of _lrot*.
by Piotr Caban
Signed-off-by: Piotr Caban <piotr(a)codeweavers.com>
> On 24 Dec 2020, at 18:44, Zebediah Figura <z.figura12(a)gmail.com> wrote:
>
> Fixes: e8936e79c20f09156afe8ecac0fe9cde87905a71
> Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
> ---
> dlls/ucrtbase/ucrtbase.spec | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
> index 8b884366fa0..e593f5d745c 100644
> --- a/dlls/ucrtbase/ucrtbase.spec
> +++ b/dlls/ucrtbase/ucrtbase.spec
> @@ -568,8 +568,8 @@
> @ cdecl _logb(double)
> @ cdecl -arch=!i386 _logbf(float)
> @ cdecl -arch=i386 _longjmpex(ptr long) MSVCRT_longjmp
> -@ cdecl MSVCRT__lrotl(long long) MSVCRT__lrotl
> -@ cdecl MSVCRT__lrotr(long long) MSVCRT__lrotr
> +@ cdecl _lrotl(long long) MSVCRT__lrotl
> +@ cdecl _lrotr(long long) MSVCRT__lrotr
> @ cdecl _lsearch(ptr ptr ptr long ptr)
> @ stub _lsearch_s
> @ cdecl _lseek(long long long)
> --
> 2.29.2
>
>
Dec. 24, 2020
[PATCH] ucrtbase: Do not prefix MSVCRT_ to the exported function name of _lrot*.
by Zebediah Figura
Fixes: e8936e79c20f09156afe8ecac0fe9cde87905a71
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
dlls/ucrtbase/ucrtbase.spec | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index 8b884366fa0..e593f5d745c 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -568,8 +568,8 @@
@ cdecl _logb(double)
@ cdecl -arch=!i386 _logbf(float)
@ cdecl -arch=i386 _longjmpex(ptr long) MSVCRT_longjmp
-@ cdecl MSVCRT__lrotl(long long) MSVCRT__lrotl
-@ cdecl MSVCRT__lrotr(long long) MSVCRT__lrotr
+@ cdecl _lrotl(long long) MSVCRT__lrotl
+@ cdecl _lrotr(long long) MSVCRT__lrotr
@ cdecl _lsearch(ptr ptr ptr long ptr)
@ stub _lsearch_s
@ cdecl _lseek(long long long)
--
2.29.2
Dec. 24, 2020
Re: [PATCH v2] comctl32/tests: add test for getting listview data during sorting.
by Nikolay Sivov
As you can see from test runs, results are inconsistent. So I'm not sure
we should be doing anything with it, unless tests do not demonstrate the
issue you're seeing.
Dec. 24, 2020
Dec. 24, 2020
Re: [PATCH] d3dx9: Avoid closing invalid handles.
by Matteo Bruni
On Wed, Dec 23, 2020 at 2:30 PM Akihiro Sagawa <sagawa.aki(a)gmail.com> wrote:
>
> On Tue, 22 Dec 2020 21:34:34 +0100, Matteo Bruni wrote:
> > On Mon, Dec 21, 2020 at 2:44 PM Akihiro Sagawa <sagawa.aki(a)gmail.com> wrote:
> > >
> > > Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50373
> > > Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com>
> > > ---
> > > dlls/d3dx9_36/util.c | 6 ++++--
> > > 1 file changed, 4 insertions(+), 2 deletions(-)
> > >
> >
> > Do you know why it fails to map the file in the first place? Maybe it
> > simply doesn't exist?
> Yes, the file simply doesn't exist.
> It fails to load the specific .bmp file by D3DXCreateTextureFromFile and
> trys to load non-existent .dds/.png files next.
Okay, good to know.
> > FWIW I'd like to eventually replace map_view_of_file() entirely with
> > plain file loading, i.e. ReadFile and such. That's something for after
> > the code freeze though.
> Just curiously, why is plain file loading better?
> Could it be that page boundaries?
Using plain heap memory would avoid requiring page-size alignment and
granularity for the allocated memory, which is marginal but nice to
have on 32-bit in particular. But the main reason is that applications
might have the file already (or, still) open, perhaps because they
just created it, and IIRC you can't really use a more lax share mode
in CreateFile() if you want to call CreateFileMapping() onto it.
I feel like there was a somewhat recent bug along those lines (perhaps
to one of the other d3dx libs) but, of course, now I can't find it...
Dec. 23, 2020
Re: [PATCH 1/3] shell32/tests: Remove no longer used parameter.
by Dmitry Timoshkov
Marvin <testbot(a)winehq.org> wrote:
> While running your changed tests, I think I found new failures.
> Being a bot and all I'm not very good at pattern recognition, so I might be
> wrong, but could you please double-check?
>
> Full results can be found at:
> https://testbot.winehq.org/JobDetails.pl?Key=83660
>
> Your paranoid android.
These are existing failures, here's a clean run of the merged patches:
https://testbot.winehq.org/JobDetails.pl?Key=83659
--
Dmitry.
Dec. 23, 2020
Re: [PATCH 1/3] shell32/tests: Remove no longer used parameter.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83660
Your paranoid android.
=== w7u_el (32 bit report) ===
shell32:
autocomplete.c:554: Test failed: Expected 5 expansions, got 4
autocomplete.c:556: Test failed: Expected 6 resets, got 5
autocomplete.c:561: Test failed: Expected 6 expansions, got 5
autocomplete.c:563: Test failed: Expected 7 resets, got 6
=== w8 (32 bit report) ===
shell32:
autocomplete.c:513: Test failed: Expected 1 expansion, got 0
autocomplete.c:514: Test failed: Expected L"test\\", got L""
autocomplete.c:515: Test failed: Expected 1 reset, got 0
autocomplete.c:520: Test failed: Expected 2 expansions, got 1
autocomplete.c:522: Test failed: Expected 2 resets, got 1
autocomplete.c:531: Test failed: Expected 2 expansions, got 1
autocomplete.c:532: Test failed: Expected 2 resets, got 1
autocomplete.c:535: Test failed: Expected 3 expansions, got 2
autocomplete.c:537: Test failed: Expected 3 resets, got 2
autocomplete.c:542: Test failed: Expected 4 expansions, got 3
autocomplete.c:544: Test failed: Expected 4 resets, got 3
autocomplete.c:548: Test failed: Expected 4 expansions, got 3
autocomplete.c:549: Test failed: Expected 5 resets, got 4
autocomplete.c:554: Test failed: Expected 5 expansions, got 4
autocomplete.c:556: Test failed: Expected 6 resets, got 5
autocomplete.c:561: Test failed: Expected 6 expansions, got 5
autocomplete.c:563: Test failed: Expected 7 resets, got 6
=== w10pro64 (32 bit report) ===
shell32:
autocomplete.c:773: Test failed: Expected L"auto complete", got L"au"
autocomplete.c:774: Test failed: Expected 2 resets, got 1
autocomplete.c:779: Test failed: AutoComplete DropDown should be visible
autocomplete.c:784: Test failed: AutoComplete DropDown should have been hidden
autocomplete.c:513: Test failed: Expected 1 expansion, got 0
autocomplete.c:514: Test failed: Expected L"test\\", got L""
autocomplete.c:515: Test failed: Expected 1 reset, got 0
autocomplete.c:520: Test failed: Expected 2 expansions, got 1
autocomplete.c:522: Test failed: Expected 2 resets, got 1
autocomplete.c:531: Test failed: Expected 2 expansions, got 1
autocomplete.c:532: Test failed: Expected 2 resets, got 1
autocomplete.c:535: Test failed: Expected 3 expansions, got 2
autocomplete.c:537: Test failed: Expected 3 resets, got 2
autocomplete.c:542: Test failed: Expected 4 expansions, got 3
autocomplete.c:544: Test failed: Expected 4 resets, got 3
autocomplete.c:548: Test failed: Expected 4 expansions, got 3
autocomplete.c:549: Test failed: Expected 5 resets, got 4
autocomplete.c:554: Test failed: Expected 5 expansions, got 4
autocomplete.c:556: Test failed: Expected 6 resets, got 5
autocomplete.c:561: Test failed: Expected 6 expansions, got 5
autocomplete.c:563: Test failed: Expected 7 resets, got 6
autocomplete.c:637: Test failed: Expected L"www.ac", got L"www.a"
autocomplete.c:638: Test failed: AutoComplete DropDown not visible
autocomplete.c:638: Test failed: AutoComplete DropDown not visible
autocomplete.c:638: Test failed: Expected L"https://www.ac", got (null)
autocomplete.c:638: Test failed: AutoComplete DropDown not visible
autocomplete.c:638: Test failed: Expected L"http://www.add", got (null)
autocomplete.c:638: Test failed: AutoComplete DropDown not visible
autocomplete.c:638: Test failed: Expected L"www.ax", got (null)
autocomplete.c:638: Test failed: AutoComplete DropDown not visible
autocomplete.c:675: Test failed: AutoComplete DropDown not visible
autocomplete.c:675: Test failed: AutoComplete DropDown not visible
autocomplete.c:675: Test failed: Expected L"http://a0", got (null)
autocomplete.c:675: Test failed: AutoComplete DropDown not visible
autocomplete.c:675: Test failed: Expected L"http://abc.aa.com", got (null)
autocomplete.c:675: Test failed: AutoComplete DropDown not visible
=== w10pro64 (64 bit report) ===
shell32:
autocomplete.c:520: Test failed: Expected 2 expansions, got 1
autocomplete.c:521: Test failed: Expected L"test\\foo\\bar\\", got L"test\\"
autocomplete.c:531: Test failed: Expected 2 expansions, got 1
autocomplete.c:532: Test failed: Expected 2 resets, got 1
autocomplete.c:535: Test failed: Expected 3 expansions, got 2
autocomplete.c:537: Test failed: Expected 3 resets, got 2
autocomplete.c:542: Test failed: Expected 4 expansions, got 3
autocomplete.c:544: Test failed: Expected 4 resets, got 3
autocomplete.c:548: Test failed: Expected 4 expansions, got 3
autocomplete.c:549: Test failed: Expected 5 resets, got 4
autocomplete.c:554: Test failed: Expected 5 expansions, got 4
autocomplete.c:556: Test failed: Expected 6 resets, got 5
autocomplete.c:561: Test failed: Expected 6 expansions, got 5
autocomplete.c:563: Test failed: Expected 7 resets, got 6
autocomplete.c:667: Test failed: Expected L"http://a0", got L"http://a"
autocomplete.c:668: Test failed: AutoComplete DropDown not visible
autocomplete.c:668: Test failed: AutoComplete DropDown not visible
autocomplete.c:668: Test failed: Expected L"http://a0", got (null)
autocomplete.c:668: Test failed: AutoComplete DropDown not visible
autocomplete.c:668: Test failed: Expected L"http://abc.aa.com", got (null)
autocomplete.c:668: Test failed: AutoComplete DropDown not visible
=== w10pro64_he (64 bit report) ===
shell32:
autocomplete.c:554: Test failed: Expected 5 expansions, got 4
autocomplete.c:556: Test failed: Expected 6 resets, got 5
autocomplete.c:561: Test failed: Expected 6 expansions, got 4
autocomplete.c:563: Test failed: Expected 7 resets, got 5
=== w1064v1809 (32 bit report) ===
shell32:
shlfolder.c:4830: Test failed: MKDIR: expected notification type 8, got: 40000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 8)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
=== w1064 (32 bit report) ===
shell32:
shlfolder.c:4830: Test failed: CREATE: expected notification type 2, got: 4000000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4838: Test failed: Expected PIDL to be NULL
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 2)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
=== w1064v1809 (64 bit report) ===
shell32:
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
=== w1064 (64 bit report) ===
shell32:
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
shlfolder.c:4830: Test failed: RMDIR: expected notification type 10, got: 4000000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4838: Test failed: Expected PIDL to be NULL
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 10)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4830: Test failed: RMDIR: expected notification type 10, got: 40000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 10)
shlfolder.c:4830: Test failed: CREATE: expected notification type 2, got: 40000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
=== w1064_2qxl (64 bit report) ===
shell32:
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4830: Test failed: RMDIR: expected notification type 10, got: 40000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 10)
=== w10pro64_ar (64 bit report) ===
shell32:
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
=== w10pro64_he (64 bit report) ===
shell32:
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4830: Test failed: RMDIR: expected notification type 10, got: 40000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 10)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
=== w10pro64_ja (64 bit report) ===
shell32:
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 40000)
=== w10pro64_zh_CN (64 bit report) ===
shell32:
shlfolder.c:4830: Test failed: CREATE: expected notification type 2, got: 40000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 2)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 4000000)
shlfolder.c:4830: Test failed: RMDIR: expected notification type 10, got: 40000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 10)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
shlfolder.c:4830: Test failed: RMDIR: expected notification type 10, got: 40000
shlfolder.c:4837: Test failed: GetDisplayNameOf failed: 0x80070057
shlfolder.c:4847: Test failed: Didn't expect a WM_USER_NOTIFY message (event: 3)
Dec. 23, 2020
[PATCH 3/3] shell32: IPersistFile::Save(NULL) should use previously stored file name.
by Dmitry Timoshkov
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/shell32/shelllink.c | 14 ++++++++++----
dlls/shell32/tests/shelllink.c | 10 ++++++++++
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index 5b044d4be1..23c5935a7b 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -367,7 +367,10 @@ static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFile
TRACE("(%p)->(%s)\n",This,debugstr_w(pszFileName));
if (!pszFileName)
- return E_FAIL;
+ {
+ pszFileName = This->filepath;
+ fRemember = FALSE;
+ }
r = SHCreateStreamOnFileW( pszFileName, STGM_READWRITE | STGM_CREATE | STGM_SHARE_EXCLUSIVE, &stm );
if( SUCCEEDED( r ) )
@@ -379,9 +382,12 @@ static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFile
{
StartLinkProcessor( pszFileName );
- /* update file path */
- heap_free(This->filepath);
- This->filepath = strdupW(pszFileName);
+ if (fRemember)
+ {
+ /* update file path */
+ heap_free(This->filepath);
+ This->filepath = strdupW(pszFileName);
+ }
This->bDirty = FALSE;
}
diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c
index 20c48814f1..21e9107fa6 100644
--- a/dlls/shell32/tests/shelllink.c
+++ b/dlls/shell32/tests/shelllink.c
@@ -467,6 +467,16 @@ void create_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
lok(!wcscmp(path, str), "Expected %s, got %s\n", wine_dbgstr_w(path), wine_dbgstr_w(str));
CoTaskMemFree(str);
+ r = IPersistFile_Save(pf, NULL, TRUE);
+ lok(r == S_OK, "save failed (0x%08x)\n", r);
+
+ /* test GetCurFile after ::Save */
+ r = IPersistFile_GetCurFile(pf, &str);
+ lok(r == S_OK, "got 0x%08x\n", r);
+ lok(str != NULL, "Didn't expect NULL\n");
+ lok(!wcscmp(path, str), "Expected %s, got %s\n", wine_dbgstr_w(path), wine_dbgstr_w(str));
+ CoTaskMemFree(str);
+
IPersistFile_Release(pf);
}
--
2.29.2
Dec. 23, 2020
[PATCH 2/3] shell32/tests: Remove workarounds for shell32 < 5.0.
by Dmitry Timoshkov
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/shell32/tests/shelllink.c | 39 +++++++---------------------------
1 file changed, 8 insertions(+), 31 deletions(-)
diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c
index 4f650d801d..20c48814f1 100644
--- a/dlls/shell32/tests/shelllink.c
+++ b/dlls/shell32/tests/shelllink.c
@@ -454,9 +454,7 @@ void create_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
/* test GetCurFile before ::Save */
str = (LPWSTR)0xdeadbeef;
r = IPersistFile_GetCurFile(pf, &str);
- lok(r == S_FALSE ||
- broken(r == S_OK), /* shell32 < 5.0 */
- "got 0x%08x\n", r);
+ lok(r == S_FALSE, "got 0x%08x\n", r);
lok(str == NULL, "got %p\n", str);
r = IPersistFile_Save(pf, path, TRUE);
@@ -465,16 +463,9 @@ void create_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
/* test GetCurFile after ::Save */
r = IPersistFile_GetCurFile(pf, &str);
lok(r == S_OK, "got 0x%08x\n", r);
- lok(str != NULL ||
- broken(str == NULL), /* shell32 < 5.0 */
- "Didn't expect NULL\n");
- if (str)
- {
- lok(!wcscmp(path, str), "Expected %s, got %s\n", wine_dbgstr_w(path), wine_dbgstr_w(str));
- CoTaskMemFree(str);
- }
- else
- win_skip("GetCurFile fails on shell32 < 5.0\n");
+ lok(str != NULL, "Didn't expect NULL\n");
+ lok(!wcscmp(path, str), "Expected %s, got %s\n", wine_dbgstr_w(path), wine_dbgstr_w(str));
+ CoTaskMemFree(str);
IPersistFile_Release(pf);
}
@@ -507,9 +498,7 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc, int todo)
/* test GetCurFile before ::Load */
str = (LPWSTR)0xdeadbeef;
r = IPersistFile_GetCurFile(pf, &str);
- lok(r == S_FALSE ||
- broken(r == S_OK), /* shell32 < 5.0 */
- "got 0x%08x\n", r);
+ lok(r == S_FALSE, "got 0x%08x\n", r);
lok(str == NULL, "got %p\n", str);
r = IPersistFile_Load(pf, path, STGM_READ);
@@ -518,23 +507,11 @@ static void check_lnk_(int line, const WCHAR* path, lnk_desc_t* desc, int todo)
/* test GetCurFile after ::Save */
r = IPersistFile_GetCurFile(pf, &str);
lok(r == S_OK, "got 0x%08x\n", r);
- lok(str != NULL ||
- broken(str == NULL), /* shell32 < 5.0 */
- "Didn't expect NULL\n");
- if (str != NULL)
- {
- lok(!wcscmp(path, str), "Expected %s, got %s\n", wine_dbgstr_w(path), wine_dbgstr_w(str));
- CoTaskMemFree(str);
- }
- else
- win_skip("GetCurFile fails on shell32 < 5.0\n");
+ lok(str != NULL, "Didn't expect NULL\n");
+ lok(!wcscmp(path, str), "Expected %s, got %s\n", wine_dbgstr_w(path), wine_dbgstr_w(str));
+ CoTaskMemFree(str);
IPersistFile_Release(pf);
- if (r != S_OK)
- {
- IShellLinkA_Release(sl);
- return;
- }
if (desc->description)
{
--
2.29.2
Dec. 23, 2020
[PATCH 1/3] shell32/tests: Remove no longer used parameter.
by Dmitry Timoshkov
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/shell32/tests/shell32_test.h | 4 ++--
dlls/shell32/tests/shelllink.c | 23 +++++++++++------------
dlls/shell32/tests/shlexec.c | 4 ++--
3 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/dlls/shell32/tests/shell32_test.h b/dlls/shell32/tests/shell32_test.h
index 42a74fb2d5..89d08e70c0 100644
--- a/dlls/shell32/tests/shell32_test.h
+++ b/dlls/shell32/tests/shell32_test.h
@@ -33,5 +33,5 @@ typedef struct
WORD hotkey;
} lnk_desc_t;
-#define create_lnk(a,b,c) create_lnk_(__LINE__, (a), (b), (c))
-void create_lnk_(int,const WCHAR*,lnk_desc_t*,int);
+#define create_lnk(a,b) create_lnk_(__LINE__, (a), (b))
+void create_lnk_(int,const WCHAR*,lnk_desc_t*);
diff --git a/dlls/shell32/tests/shelllink.c b/dlls/shell32/tests/shelllink.c
index e4f176237f..4f650d801d 100644
--- a/dlls/shell32/tests/shelllink.c
+++ b/dlls/shell32/tests/shelllink.c
@@ -386,7 +386,7 @@ static void test_get_set(void)
#define lok ok_(__FILE__, line)
#define check_lnk(a,b,c) check_lnk_(__LINE__, (a), (b), (c))
-void create_lnk_(int line, const WCHAR* path, lnk_desc_t* desc, int save_fails)
+void create_lnk_(int line, const WCHAR* path, lnk_desc_t* desc)
{
HRESULT r;
IShellLinkA *sl;
@@ -460,8 +460,7 @@ void create_lnk_(int line, const WCHAR* path, lnk_desc_t* desc, int save_fails)
lok(str == NULL, "got %p\n", str);
r = IPersistFile_Save(pf, path, TRUE);
- todo_wine_if (save_fails)
- lok(r == S_OK, "save failed (0x%08x)\n", r);
+ lok(r == S_OK, "save failed (0x%08x)\n", r);
/* test GetCurFile after ::Save */
r = IPersistFile_GetCurFile(pf, &str);
@@ -628,7 +627,7 @@ static void test_load_save(void)
/* Save an empty .lnk file */
memset(&desc, 0, sizeof(desc));
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
/* It should come back as a bunch of empty strings */
desc.description="";
@@ -648,7 +647,7 @@ static void test_load_save(void)
desc.icon="c:\\nonexistent\\icon\\file";
desc.icon_id=1234;
desc.hotkey=0;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
check_lnk(lnkfile, &desc, 0x0);
r=GetModuleFileNameA(NULL, mypath, sizeof(mypath));
@@ -672,7 +671,7 @@ static void test_load_save(void)
desc.icon=mypath;
desc.icon_id=0;
desc.hotkey=0x1234;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
check_lnk(lnkfile, &desc, 0x0);
/* Test omitting .exe from an absolute path */
@@ -689,7 +688,7 @@ static void test_load_save(void)
desc.icon=mypath;
desc.icon_id=0;
desc.hotkey=0x1234;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
strcat(realpath, ".exe");
check_lnk(lnkfile, &desc, 0x4);
@@ -703,7 +702,7 @@ static void test_load_save(void)
desc.icon=mypath;
desc.icon_id=0;
desc.hotkey=0x1234;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
/* Check that link is created to proper location */
SearchPathA( NULL, desc.path, NULL, MAX_PATH, realpath, NULL);
desc.path=realpath;
@@ -719,7 +718,7 @@ static void test_load_save(void)
desc.icon=mypath;
desc.icon_id=0;
desc.hotkey=0x1234;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
/* Check that link is created to proper location */
SearchPathA( NULL, "rundll32", NULL, MAX_PATH, realpath, NULL);
desc.path=realpath;
@@ -750,7 +749,7 @@ static void test_load_save(void)
desc.icon=mypath;
desc.icon_id=0;
desc.hotkey=0x1234;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
check_lnk(lnkfile, &desc, 0x0);
r = GetShortPathNameA(mydir, mypath, sizeof(mypath));
@@ -770,7 +769,7 @@ static void test_load_save(void)
desc.icon=mypath;
desc.icon_id=0;
desc.hotkey=0x1234;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
desc.path=realpath;
check_lnk(lnkfile, &desc, 0x0);
@@ -800,7 +799,7 @@ static void test_load_save(void)
desc.icon=mypath;
desc.icon_id=0;
desc.hotkey=0x1234;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
desc.path = realpath;
check_lnk(lnkfile, &desc, 0x4);
diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c
index 8ee662321d..2481fb6faa 100644
--- a/dlls/shell32/tests/shlexec.c
+++ b/dlls/shell32/tests/shlexec.c
@@ -2742,7 +2742,7 @@ static void init_test(void)
desc.icon=NULL;
desc.icon_id=0;
desc.hotkey=0;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
sprintf(filename, "%s\\test_shortcut_exe.lnk", tmpdir);
MultiByteToWideChar(CP_ACP, 0, filename, -1, lnkfile, ARRAY_SIZE(lnkfile));
@@ -2756,7 +2756,7 @@ static void init_test(void)
desc.icon=NULL;
desc.icon_id=0;
desc.hotkey=0;
- create_lnk(lnkfile, &desc, 0);
+ create_lnk(lnkfile, &desc);
/* Create a basic association suitable for most tests */
if (!create_test_association(".shlexec"))
--
2.29.2
Dec. 23, 2020
Re: [PATCH] d3dx9: Avoid closing invalid handles.
by Akihiro Sagawa
On Tue, 22 Dec 2020 21:34:34 +0100, Matteo Bruni wrote:
> On Mon, Dec 21, 2020 at 2:44 PM Akihiro Sagawa <sagawa.aki(a)gmail.com> wrote:
> >
> > Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50373
> > Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com>
> > ---
> > dlls/d3dx9_36/util.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
>
> Do you know why it fails to map the file in the first place? Maybe it
> simply doesn't exist?
Yes, the file simply doesn't exist.
It fails to load the specific .bmp file by D3DXCreateTextureFromFile and
trys to load non-existent .dds/.png files next.
> FWIW I'd like to eventually replace map_view_of_file() entirely with
> plain file loading, i.e. ReadFile and such. That's something for after
> the code freeze though.
Just curiously, why is plain file loading better?
Could it be that page boundaries?
Dec. 23, 2020
Re: Looking for TestBot help
by Francois Gouget
On Mon, 21 Dec 2020, Francois Gouget wrote:
[...]
> [...]
> > I wonder if it would be better if we do video capture instead? If we
> > don't plan on keeping the video forever, I think a 2 mins video
> > shouldn't be too large. A few megabytes I think, depending on the
> > video format.
>
> Video would obviously be nice but the VMs typically don't have access
> to a graphics card to offload the video compression.
Another point that the video must be able to deal with resolution
changes.
--
Francois Gouget <fgouget(a)free.fr> http://fgouget.free.fr/
Indifference will certainly be the downfall of mankind, but who cares?
Dec. 23, 2020
[PATCH] ntdll: Preserve syscall frame when calling async IO system APC.
by Paul Gofman
The frame can currently be reset from ws2_32.dll async IO callbacks
which are still in the user part and are calling 'syscall' functions.
If the user APC is processed after that during the same call to
server_select(), the call_user_apc_dispatcher() faults.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49782
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com>
---
dlls/ntdll/unix/server.c | 16 ++++++++++++++++
dlls/ntdll/unix/signal_arm.c | 9 +++++++++
dlls/ntdll/unix/signal_arm64.c | 10 ++++++++++
dlls/ntdll/unix/signal_i386.c | 10 ++++++++++
dlls/ntdll/unix/signal_x86_64.c | 9 +++++++++
dlls/ntdll/unix/unix_private.h | 3 +++
6 files changed, 57 insertions(+)
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 87dd4b10b83..a9608abfb73 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -389,8 +389,24 @@ static void invoke_system_apc( const apc_call_t *call, apc_result_t *result )
{
IO_STATUS_BLOCK *iosb = wine_server_get_ptr( call->async_io.sb );
NTSTATUS (**user)(void *, IO_STATUS_BLOCK *, NTSTATUS) = wine_server_get_ptr( call->async_io.user );
+ void *saved_frame = get_syscall_frame();
+ void *frame;
+
result->type = call->type;
result->async_io.status = (*user)( user, iosb, call->async_io.status );
+
+ if ((frame = get_syscall_frame()) != saved_frame)
+ {
+ /* The frame can be altered by syscalls from ws2_32 async callbacks
+ * which are currently in the user part. */
+ static unsigned int once;
+
+ if (!once++)
+ FIXME( "syscall frame changed in APC function, frame %p, saved_frame %p.\n", frame, saved_frame );
+
+ set_syscall_frame( saved_frame );
+ }
+
if (result->async_io.status != STATUS_PENDING)
result->async_io.total = iosb->Information;
break;
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c
index e8971d22dbd..487c8501cc7 100644
--- a/dlls/ntdll/unix/signal_arm.c
+++ b/dlls/ntdll/unix/signal_arm.c
@@ -203,6 +203,15 @@ static inline struct arm_thread_data *arm_thread_data(void)
return (struct arm_thread_data *)ntdll_get_thread_data()->cpu_data;
}
+void *get_syscall_frame(void)
+{
+ return arm_thread_data()->syscall_frame;
+}
+
+void set_syscall_frame(void *frame)
+{
+ arm_thread_data()->syscall_frame = frame;
+}
/***********************************************************************
* unwind_builtin_dll
diff --git a/dlls/ntdll/unix/signal_arm64.c b/dlls/ntdll/unix/signal_arm64.c
index 3beef729dca..95042de45e1 100644
--- a/dlls/ntdll/unix/signal_arm64.c
+++ b/dlls/ntdll/unix/signal_arm64.c
@@ -157,6 +157,16 @@ static inline struct arm64_thread_data *arm64_thread_data(void)
return (struct arm64_thread_data *)ntdll_get_thread_data()->cpu_data;
}
+void *get_syscall_frame(void)
+{
+ return arm64_thread_data()->syscall_frame;
+}
+
+void set_syscall_frame(void *frame)
+{
+ arm64_thread_data()->syscall_frame = frame;
+}
+
extern void raise_func_trampoline( EXCEPTION_RECORD *rec, CONTEXT *context, void *dispatcher );
/***********************************************************************
diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c
index c8690b51f2f..ff9d8a12c14 100644
--- a/dlls/ntdll/unix/signal_i386.c
+++ b/dlls/ntdll/unix/signal_i386.c
@@ -495,6 +495,16 @@ static inline struct x86_thread_data *x86_thread_data(void)
return (struct x86_thread_data *)ntdll_get_thread_data()->cpu_data;
}
+void *get_syscall_frame(void)
+{
+ return x86_thread_data()->syscall_frame;
+}
+
+void set_syscall_frame(void *frame)
+{
+ x86_thread_data()->syscall_frame = frame;
+}
+
static inline WORD get_cs(void) { WORD res; __asm__( "movw %%cs,%0" : "=r" (res) ); return res; }
static inline WORD get_ds(void) { WORD res; __asm__( "movw %%ds,%0" : "=r" (res) ); return res; }
static inline WORD get_fs(void) { WORD res; __asm__( "movw %%fs,%0" : "=r" (res) ); return res; }
diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c
index 837cd9ed654..1fd26d5bd76 100644
--- a/dlls/ntdll/unix/signal_x86_64.c
+++ b/dlls/ntdll/unix/signal_x86_64.c
@@ -306,6 +306,15 @@ static inline struct amd64_thread_data *amd64_thread_data(void)
return (struct amd64_thread_data *)ntdll_get_thread_data()->cpu_data;
}
+void *get_syscall_frame(void)
+{
+ return amd64_thread_data()->syscall_frame;
+}
+
+void set_syscall_frame(void *frame)
+{
+ amd64_thread_data()->syscall_frame = frame;
+}
/***********************************************************************
* Definitions for Dwarf unwind tables
diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h
index 23731f0fdc6..f8f50d0ab27 100644
--- a/dlls/ntdll/unix/unix_private.h
+++ b/dlls/ntdll/unix/unix_private.h
@@ -247,6 +247,9 @@ extern void WINAPI DECLSPEC_NORETURN call_user_exception_dispatcher( EXCEPTION_R
NTSTATUS (WINAPI *dispatcher)(EXCEPTION_RECORD*,CONTEXT*) ) DECLSPEC_HIDDEN;
extern void WINAPI DECLSPEC_NORETURN call_raise_user_exception_dispatcher( NTSTATUS (WINAPI *dispatcher)(void) ) DECLSPEC_HIDDEN;
+extern void *get_syscall_frame(void) DECLSPEC_HIDDEN;
+extern void set_syscall_frame(void *frame) DECLSPEC_HIDDEN;
+
#define TICKSPERSEC 10000000
#define SECS_1601_TO_1970 ((369 * 365 + 89) * (ULONGLONG)86400)
--
2.29.2
Dec. 23, 2020
[PATCH] msado15: Set row_set point to NULL on close
by Alistair Leslie-Hughes
Stops a crash when Close then Release is called on a Recordset.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
---
dlls/msado15/recordset.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/msado15/recordset.c b/dlls/msado15/recordset.c
index 17200d73790..e915922fdc4 100644
--- a/dlls/msado15/recordset.c
+++ b/dlls/msado15/recordset.c
@@ -760,6 +760,7 @@ static void close_recordset( struct recordset *recordset )
ULONG row, col, col_count;
if ( recordset->row_set ) IRowset_Release( recordset->row_set );
+ recordset->row_set = NULL;
if (!recordset->fields) return;
col_count = get_column_count( recordset );
--
2.29.2
Dec. 23, 2020
[PATCH] msado15/tests: Add test for interface ADOConnectionConstruction15
by Alistair Leslie-Hughes
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
---
dlls/msado15/tests/msado15.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c
index cafb73d64e4..8b08e8af193 100644
--- a/dlls/msado15/tests/msado15.c
+++ b/dlls/msado15/tests/msado15.c
@@ -1024,6 +1024,7 @@ static void test_Connection(void)
IRunnableObject *runtime;
ISupportErrorInfo *errorinfo;
IConnectionPointContainer *pointcontainer;
+ ADOConnectionConstruction15 *construct;
LONG state, timeout;
BSTR str, str2, str3;
ConnectModeEnum mode;
@@ -1044,6 +1045,11 @@ static void test_Connection(void)
ok(hr == S_OK, "Failed to get IConnectionPointContainer interface %08x\n", hr);
IConnectionPointContainer_Release(pointcontainer);
+ hr = _Connection_QueryInterface(connection, &IID_ADOConnectionConstruction15, (void**)&construct);
+ todo_wine ok(hr == S_OK, "Failed to get ADOConnectionConstruction15 interface %08x\n", hr);
+ if (hr == S_OK)
+ ADOConnectionConstruction15_Release(construct);
+
if (0) /* Crashes on windows */
{
hr = _Connection_get_State(connection, NULL);
--
2.29.2
Dec. 23, 2020
Re: [PATCH v2] comctl32/tests: add test for getting listview data during sorting.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83655
Your paranoid android.
=== w2008s64 (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w7u_2qxl (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w7u_adm (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w7u_el (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w8 (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w8adm (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w864 (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w1064v1507 (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w1064v1809 (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w1064 (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w10pro64 (32 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== wvistau64 (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w2008s64 (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w864 (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w1064v1507 (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w1064v1809 (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w1064 (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w1064_2qxl (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w10pro64 (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w10pro64_ar (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w10pro64_he (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w10pro64_ja (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
=== w10pro64_zh_CN (64 bit report) ===
comctl32:
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got 1
listview.c:3035: Test failed: Expected 0, got -1
Dec. 23, 2020
Dec. 23, 2020
Dec. 23, 2020
Re: [PATCH] d3dx9: Avoid closing invalid handles.
by Matteo Bruni
On Mon, Dec 21, 2020 at 2:44 PM Akihiro Sagawa <sagawa.aki(a)gmail.com> wrote:
>
>
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50373
> Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com>
> ---
> dlls/d3dx9_36/util.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
Do you know why it fails to map the file in the first place? Maybe it
simply doesn't exist?
FWIW I'd like to eventually replace map_view_of_file() entirely with
plain file loading, i.e. ReadFile and such. That's something for after
the code freeze though.
Dec. 22, 2020
Re: [PATCH v2] kernelbase: Ignore SORT_DIGITSASNUMBERS in CompareStringEx()
by Alexandre Julliard
John Zourlios <john.kinigos(a)gmail.com> writes:
> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50362
>
> Signed-off-by: John Zourlios <john.kinigos(a)gmail.com>
>
> ---
> dlls/kernelbase/locale.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
This breaks the tests:
tools/runtest -q -P wine -T . -M kernel32.dll -p dlls/kernel32/tests/kernel32_test.exe locale && touch dlls/kernel32/tests/locale.ok
locale.c:1880: Test failed: unexpected error code -559038737
locale.c:1882: Test failed: CompareStringA must fail with invalid flag
make: *** [Makefile:67005: dlls/kernel32/tests/locale.ok] Error 2
--
Alexandre Julliard
julliard(a)winehq.org
Dec. 22, 2020
Re: [PATCH] d3dx9: Avoid closing invalid handles.
by Matteo Bruni
Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com>
Dec. 22, 2020
Re: [PATCH] qcap: Avoid unused variable warning if v4l is absent.
by Zebediah Figura (she/her)
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
Dec. 22, 2020
Re: [PATCH] programs/ping: add IcmpCloseHandle(icmp_file) and fix a memory leak.
by Alexandre Julliard
"Jiangyi Chen" <cjy520lcy(a)163.com> writes:
> @@ -218,6 +218,12 @@ int __cdecl main(int argc, char** argv)
> min, max, avg);
> }
>
> + if(icmp_file != INVALID_HANDLE_VALUE)
> + {
> + IcmpCloseHandle(icmp_file);
> + icmp_file = INVALID_HANDLE_VALUE;
> + }
> + if(send_data) heap_free(send_data);
There's no reason to bother closing handles or freeing data when the
process is exiting anyway.
--
Alexandre Julliard
julliard(a)winehq.org
Dec. 22, 2020
[PATCH] shell32: Return S_OK from IShellLink::SetFlags() stub.
by Dmitry Timoshkov
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/shell32/shelllink.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index 5b044d4be1..46d9bc994f 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -2297,7 +2297,7 @@ static HRESULT WINAPI
ShellLink_SetFlags( IShellLinkDataList* iface, DWORD dwFlags )
{
FIXME("(%p)->(%u): stub\n", iface, dwFlags);
- return E_NOTIMPL;
+ return S_OK;
}
static const IShellLinkDataListVtbl dlvt =
--
2.29.2
Dec. 22, 2020
[PATCH] qcap: Avoid unused variable warning if v4l is absent.
by Huw Davies
Signed-off-by: Huw Davies <huw(a)codeweavers.com>
---
dlls/qcap/v4l.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/dlls/qcap/v4l.c b/dlls/qcap/v4l.c
index da09b2b26d6..ccc06194b99 100644
--- a/dlls/qcap/v4l.c
+++ b/dlls/qcap/v4l.c
@@ -57,10 +57,9 @@
#include "qcap_private.h"
#include "winternl.h"
-WINE_DEFAULT_DEBUG_CHANNEL(qcap);
-
#ifdef HAVE_LINUX_VIDEODEV2_H
+WINE_DEFAULT_DEBUG_CHANNEL(qcap);
WINE_DECLARE_DEBUG_CHANNEL(winediag);
static typeof(open) *video_open = open;
--
2.23.0
Dec. 22, 2020
[PATCH] msi: Also set "MsiRunningElevated" installer property.
by Dmitry Timoshkov
This property is supposed to be set starting from Windows Installer 4.0 targeting
Windows Vista.
This patch fixes the installer that checks this property in addition to VersionNT
and ALLUSERS.
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/msi/package.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/dlls/msi/package.c b/dlls/msi/package.c
index 2483d99e2b..25e22f040a 100644
--- a/dlls/msi/package.c
+++ b/dlls/msi/package.c
@@ -737,6 +737,7 @@ static VOID set_installer_properties(MSIPACKAGE *package)
/* in a wine environment the user is always admin and privileged */
msi_set_property( package->db, L"AdminUser", L"1", -1 );
msi_set_property( package->db, L"Privileged", L"1", -1 );
+ msi_set_property( package->db, L"MsiRunningElevated", L"1", -1 );
/* set the os things */
OSVersion.dwOSVersionInfoSize = sizeof(OSVersion);
@@ -963,6 +964,8 @@ void msi_adjust_privilege_properties( MSIPACKAGE *package )
msi_set_property( package->db, L"ALLUSERS", L"1", -1 );
}
msi_set_property( package->db, L"AdminUser", L"1", -1 );
+ msi_set_property( package->db, L"Privileged", L"1", -1 );
+ msi_set_property( package->db, L"MsiRunningElevated", L"1", -1 );
}
MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *db )
--
2.29.2
Dec. 22, 2020
Dec. 22, 2020
[PATCH] dwrite: Add a notice regarding HarfBuzz.
by Nikolay Sivov
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
dlls/dwrite/shape.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/dlls/dwrite/shape.c b/dlls/dwrite/shape.c
index 82eb5308da6..be8a69c27c4 100644
--- a/dlls/dwrite/shape.c
+++ b/dlls/dwrite/shape.c
@@ -17,6 +17,11 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ *
+ * Shaping features processing, default features, and lookups handling logic are
+ * derived from HarfBuzz implementation. Consult project documentation for the full
+ * list of its authors.
*/
#define COBJMACROS
--
2.29.2
Dec. 22, 2020
[PATCH 2/2] wbemprox: Flesh out a bit SystemRestore::Enable() implementation.
by Dmitry Timoshkov
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/wbemprox/sysrestore.c | 48 +++++++++++++++++++++++++++++++++++--
dlls/wbemprox/tests/query.c | 2 +-
2 files changed, 47 insertions(+), 3 deletions(-)
diff --git a/dlls/wbemprox/sysrestore.c b/dlls/wbemprox/sysrestore.c
index b840d220b5..d59077381f 100644
--- a/dlls/wbemprox/sysrestore.c
+++ b/dlls/wbemprox/sysrestore.c
@@ -45,8 +45,52 @@ HRESULT disable_restore( IWbemClassObject *obj, IWbemClassObject *in, IWbemClass
HRESULT enable_restore( IWbemClassObject *obj, IWbemClassObject *in, IWbemClassObject **out )
{
- FIXME("stub\n");
- return S_OK;
+ VARIANT drive, retval;
+ IWbemClassObject *sig, *out_params = NULL;
+ HRESULT hr;
+
+ TRACE("%p, %p\n", in, out);
+
+ hr = IWbemClassObject_Get( in, L"Drive", 0, &drive, NULL, NULL );
+ if (hr != S_OK) return hr;
+
+ hr = create_signature( L"SystemRestore", L"Enable", PARAM_OUT, &sig );
+ if (hr != S_OK)
+ {
+ VariantClear( &drive );
+ return hr;
+ }
+
+ if (out)
+ {
+ hr = IWbemClassObject_SpawnInstance( sig, 0, &out_params );
+ if (hr != S_OK)
+ {
+ VariantClear( &drive );
+ IWbemClassObject_Release( sig );
+ return hr;
+ }
+ }
+
+ FIXME("%s: stub\n", wine_dbgstr_variant(&drive));
+
+ VariantClear( &drive );
+ IWbemClassObject_Release( sig );
+
+ if (out_params)
+ {
+ set_variant( VT_UI4, ERROR_SUCCESS, NULL, &retval );
+ hr = IWbemClassObject_Put( out_params, L"ReturnValue", 0, &retval, CIM_UINT32 );
+ }
+
+ if (hr == S_OK && out)
+ {
+ *out = out_params;
+ IWbemClassObject_AddRef( out_params );
+ }
+ if (out_params) IWbemClassObject_Release( out_params );
+
+ return hr;
}
HRESULT get_last_restore_status( IWbemClassObject *obj, IWbemClassObject *in, IWbemClassObject **out )
diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c
index 1c7a615dd4..67c0b218ce 100644
--- a/dlls/wbemprox/tests/query.c
+++ b/dlls/wbemprox/tests/query.c
@@ -1805,7 +1805,7 @@ static void test_SystemRestore( IWbemServices *services )
out = NULL;
hr = IWbemServices_ExecMethod( services, class, method, 0, NULL, in, &out, NULL );
ok( hr == S_OK || hr == WBEM_E_ACCESS_DENIED, "failed to execute method %08x\n", hr );
- if (hr == S_OK && out)
+ if (hr == S_OK)
{
VariantInit( &var );
hr = IWbemClassObject_Get( out, L"ReturnValue", 0, &var, NULL, NULL );
--
2.29.2
Dec. 22, 2020
[PATCH 1/2] wbemprox: Add class SystemRestore stub implementation.
by Dmitry Timoshkov
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50033
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru>
---
dlls/wbemprox/Makefile.in | 1 +
dlls/wbemprox/builtin.c | 38 ++++++++++++++++++++
dlls/wbemprox/sysrestore.c | 62 ++++++++++++++++++++++++++++++++
dlls/wbemprox/tests/query.c | 7 ++--
dlls/wbemprox/wbemprox_private.h | 5 +++
5 files changed, 111 insertions(+), 2 deletions(-)
create mode 100644 dlls/wbemprox/sysrestore.c
diff --git a/dlls/wbemprox/Makefile.in b/dlls/wbemprox/Makefile.in
index a26c833878..ed2710f885 100644
--- a/dlls/wbemprox/Makefile.in
+++ b/dlls/wbemprox/Makefile.in
@@ -14,6 +14,7 @@ C_SRCS = \
security.c \
service.c \
services.c \
+ sysrestore.c \
table.c \
wbemlocator.c
diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index 9bd58ca77e..1924598bbe 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -406,6 +406,20 @@ static const struct column col_systemsecurity[] =
{ L"GetSD", CIM_FLAG_ARRAY|COL_FLAG_METHOD },
{ L"SetSD", CIM_FLAG_ARRAY|COL_FLAG_METHOD },
};
+static const struct column col_sysrestore[] =
+{
+ { L"CreationTime", CIM_STRING },
+ { L"Description", CIM_STRING },
+ { L"EventType", CIM_UINT32 },
+ { L"RestorePointType", CIM_UINT32 },
+ { L"SequenceNumber", CIM_UINT32 },
+ /* methods */
+ { L"CreateRestorePoint", CIM_FLAG_ARRAY|COL_FLAG_METHOD },
+ { L"Disable", CIM_FLAG_ARRAY|COL_FLAG_METHOD },
+ { L"Enable", CIM_FLAG_ARRAY|COL_FLAG_METHOD },
+ { L"GetLastRestoreStatus", CIM_FLAG_ARRAY|COL_FLAG_METHOD },
+ { L"Restore", CIM_FLAG_ARRAY|COL_FLAG_METHOD },
+};
static const struct column col_videocontroller[] =
{
{ L"AdapterCompatibility", CIM_STRING },
@@ -783,6 +797,19 @@ struct record_stdregprov
class_method *enumvalues;
class_method *getstringvalue;
};
+struct record_sysrestore
+{
+ const WCHAR *creation_time;
+ const WCHAR *description;
+ UINT32 event_type;
+ UINT32 restore_point_type;
+ UINT32 seuence_number;
+ class_method *create_restore_point;
+ class_method *disable_restore;
+ class_method *enable_restore;
+ class_method *get_last_restore_status;
+ class_method *restore;
+};
struct record_systemsecurity
{
class_method *getsd;
@@ -865,6 +892,10 @@ static const struct record_param data_param[] =
{ L"StdRegProv", L"GetStringValue", 1, L"sValueName", CIM_STRING },
{ L"StdRegProv", L"GetStringValue", -1, L"ReturnValue", CIM_UINT32 },
{ L"StdRegProv", L"GetStringValue", -1, L"sValue", CIM_STRING },
+ { L"SystemRestore", L"Disable", 1, L"Drive", CIM_STRING },
+ { L"SystemRestore", L"Disable", -1, L"ReturnValue", CIM_UINT32 },
+ { L"SystemRestore", L"Enable", 1, L"Drive", CIM_STRING },
+ { L"SystemRestore", L"Enable", -1, L"ReturnValue", CIM_UINT32 },
{ L"Win32_Process", L"GetOwner", -1, L"ReturnValue", CIM_UINT32 },
{ L"Win32_Process", L"GetOwner", -1, L"User", CIM_STRING },
{ L"Win32_Process", L"GetOwner", -1, L"Domain", CIM_STRING },
@@ -895,6 +926,12 @@ static const struct record_stdregprov data_stdregprov[] =
{
{ reg_create_key, reg_enum_key, reg_enum_values, reg_get_stringvalue }
};
+
+static const struct record_sysrestore data_sysrestore[] =
+{
+ { NULL, NULL, 0, 0, 0, create_restore_point, disable_restore, enable_restore, get_last_restore_status, restore }
+};
+
static UINT16 systemenclosure_chassistypes[] =
{
1,
@@ -3981,6 +4018,7 @@ static struct table builtin_classes[] =
{ L"CIM_LogicalDisk", C(col_logicaldisk), 0, 0, NULL, fill_logicaldisk },
{ L"CIM_Processor", C(col_processor), 0, 0, NULL, fill_processor },
{ L"StdRegProv", C(col_stdregprov), D(data_stdregprov) },
+ { L"SystemRestore", C(col_sysrestore), D(data_sysrestore) },
{ L"Win32_BIOS", C(col_bios), 0, 0, NULL, fill_bios },
{ L"Win32_BaseBoard", C(col_baseboard), 0, 0, NULL, fill_baseboard },
{ L"Win32_CDROMDrive", C(col_cdromdrive), 0, 0, NULL, fill_cdromdrive },
diff --git a/dlls/wbemprox/sysrestore.c b/dlls/wbemprox/sysrestore.c
new file mode 100644
index 0000000000..b840d220b5
--- /dev/null
+++ b/dlls/wbemprox/sysrestore.c
@@ -0,0 +1,62 @@
+/*
+ * SystemRestore implementation
+ *
+ * Copyright 2020 Dmitry Timoshkov
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#define COBJMACROS
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
+#include "wbemprox_private.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
+HRESULT create_restore_point( IWbemClassObject *obj, IWbemClassObject *in, IWbemClassObject **out )
+{
+ FIXME("stub\n");
+ return S_OK;
+}
+
+HRESULT disable_restore( IWbemClassObject *obj, IWbemClassObject *in, IWbemClassObject **out )
+{
+ FIXME("stub\n");
+ return S_OK;
+}
+
+HRESULT enable_restore( IWbemClassObject *obj, IWbemClassObject *in, IWbemClassObject **out )
+{
+ FIXME("stub\n");
+ return S_OK;
+}
+
+HRESULT get_last_restore_status( IWbemClassObject *obj, IWbemClassObject *in, IWbemClassObject **out )
+{
+ FIXME("stub\n");
+ return E_NOTIMPL;
+}
+
+HRESULT restore( IWbemClassObject *obj, IWbemClassObject *in, IWbemClassObject **out )
+{
+ FIXME("stub\n");
+ return S_OK;
+}
diff --git a/dlls/wbemprox/tests/query.c b/dlls/wbemprox/tests/query.c
index 37b6fb4e8d..1c7a615dd4 100644
--- a/dlls/wbemprox/tests/query.c
+++ b/dlls/wbemprox/tests/query.c
@@ -1772,16 +1772,19 @@ static void test_SystemRestore( IWbemServices *services )
hr = IWbemServices_GetObject( services, class, 0, NULL, &service, NULL );
if (hr != S_OK)
{
- skip( "SystemRestore not available\n" );
+ win_skip( "SystemRestore not available\n" );
SysFreeString( class );
return;
}
check_property( service, L"CreationTime", VT_NULL, CIM_STRING );
check_property( service, L"Description", VT_NULL, CIM_STRING );
+ if (0) /* FIXME */
+ {
check_property( service, L"EventType", VT_NULL, CIM_UINT32 );
check_property( service, L"RestorePointType", VT_NULL, CIM_UINT32 );
check_property( service, L"SequenceNumber", VT_NULL, CIM_UINT32 );
+ }
method = SysAllocString( L"Enable" );
sig_in = NULL;
@@ -1802,7 +1805,7 @@ static void test_SystemRestore( IWbemServices *services )
out = NULL;
hr = IWbemServices_ExecMethod( services, class, method, 0, NULL, in, &out, NULL );
ok( hr == S_OK || hr == WBEM_E_ACCESS_DENIED, "failed to execute method %08x\n", hr );
- if (hr == S_OK)
+ if (hr == S_OK && out)
{
VariantInit( &var );
hr = IWbemClassObject_Get( out, L"ReturnValue", 0, &var, NULL, NULL );
diff --git a/dlls/wbemprox/wbemprox_private.h b/dlls/wbemprox/wbemprox_private.h
index 3064925764..ff9a7f6ff8 100644
--- a/dlls/wbemprox/wbemprox_private.h
+++ b/dlls/wbemprox/wbemprox_private.h
@@ -253,6 +253,11 @@ HRESULT service_start_service(IWbemClassObject *, IWbemClassObject *, IWbemClass
HRESULT service_stop_service(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
HRESULT security_get_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
HRESULT security_set_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
+HRESULT create_restore_point(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
+HRESULT disable_restore(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
+HRESULT enable_restore(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
+HRESULT get_last_restore_status(IWbemClassObject *, IWbemClassObject *in, IWbemClassObject **) DECLSPEC_HIDDEN;
+HRESULT restore(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
static inline WCHAR *heap_strdupW( const WCHAR *src )
{
--
2.29.2
Dec. 22, 2020
Re: [PATCH] comctl32/tests: add test for getting listview data during sorting.
by Nikolay Sivov
The patch can't work due to infinite loops, but with that fixed it gives
me failures on Windows, and no failures on Wine. So I'm not sure what
it's supposed to demonstrate.
Dec. 22, 2020
Re: [PATCH] comctl32/tests: add test for getting listview data during sorting.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=83637
Your paranoid android.
=== w2008s64 (32 bit report) ===
comctl32:
listview: Timeout
=== w7u_2qxl (32 bit report) ===
comctl32:
listview: Timeout
=== w7u_adm (32 bit report) ===
comctl32:
listview: Timeout
=== w7u_el (32 bit report) ===
comctl32:
listview: Timeout
=== w8 (testbot log) ===
The task timed out
=== w8adm (testbot log) ===
The task timed out
=== w864 (32 bit report) ===
comctl32:
listview: Timeout
=== w1064v1507 (32 bit report) ===
comctl32:
listview: Timeout
=== w1064v1809 (32 bit report) ===
comctl32:
listview: Timeout
=== w1064 (32 bit report) ===
comctl32:
listview: Timeout
=== w10pro64 (32 bit report) ===
comctl32:
listview: Timeout
=== wvistau64 (64 bit report) ===
comctl32:
listview: Timeout
=== w2008s64 (64 bit report) ===
comctl32:
listview: Timeout
=== w864 (64 bit report) ===
comctl32:
listview: Timeout
=== w1064v1507 (64 bit report) ===
comctl32:
listview: Timeout
=== w1064v1809 (64 bit report) ===
comctl32:
listview: Timeout
=== w1064 (64 bit report) ===
comctl32:
listview: Timeout
=== w1064_2qxl (64 bit report) ===
comctl32:
listview: Timeout
=== w10pro64 (64 bit report) ===
comctl32:
listview: Timeout
=== w10pro64_ar (64 bit report) ===
comctl32:
listview: Timeout
=== w10pro64_he (64 bit report) ===
comctl32:
listview: Timeout
=== w10pro64_ja (64 bit report) ===
comctl32:
listview: Timeout
=== w10pro64_zh_CN (64 bit report) ===
comctl32:
listview: Timeout
Dec. 22, 2020
Dec. 22, 2020
[PATCH vkd3d v4 2/4] vkd3d-shader: Implement basic support for #if and #endif.
by Zebediah Figura
Signed-off-by: Zebediah Figura <zfigura(a)codeweavers.com>
---
v4: Tweak preproc_parse_integer() a bit.
include/private/vkd3d_memory.h | 11 +++
libs/vkd3d-shader/preproc.h | 17 ++++
libs/vkd3d-shader/preproc.l | 106 +++++++++++++++++++++--
libs/vkd3d-shader/preproc.y | 102 +++++++++++++++++++++-
libs/vkd3d-shader/vkd3d_shader_main.c | 24 +++++
libs/vkd3d-shader/vkd3d_shader_private.h | 6 ++
tests/hlsl_d3d12.c | 2 +-
7 files changed, 258 insertions(+), 10 deletions(-)
diff --git a/include/private/vkd3d_memory.h b/include/private/vkd3d_memory.h
index df93abf5..bd56d30a 100644
--- a/include/private/vkd3d_memory.h
+++ b/include/private/vkd3d_memory.h
@@ -22,6 +22,7 @@
#include <assert.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <string.h>
#include "vkd3d_debug.h"
@@ -54,6 +55,16 @@ static inline void vkd3d_free(void *ptr)
free(ptr);
}
+static inline char *vkd3d_strdup(const char *string)
+{
+ size_t len = strlen(string) + 1;
+ char *ptr;
+
+ if ((ptr = vkd3d_malloc(len)))
+ memcpy(ptr, string, len);
+ return ptr;
+}
+
bool vkd3d_array_reserve(void **elements, size_t *capacity,
size_t element_count, size_t element_size) DECLSPEC_HIDDEN;
diff --git a/libs/vkd3d-shader/preproc.h b/libs/vkd3d-shader/preproc.h
index bd9dfdd3..0f494fcd 100644
--- a/libs/vkd3d-shader/preproc.h
+++ b/libs/vkd3d-shader/preproc.h
@@ -23,6 +23,12 @@
#include "vkd3d_shader_private.h"
+struct preproc_if_state
+{
+ /* Are we currently in a "true" block? */
+ bool current_true;
+};
+
struct preproc_ctx
{
void *scanner;
@@ -31,7 +37,18 @@ struct preproc_ctx
struct vkd3d_string_buffer buffer;
struct vkd3d_shader_location location;
+ struct preproc_if_state *if_stack;
+ size_t if_count, if_stack_size;
+
+ int current_directive;
+
+ bool last_was_newline;
+ bool last_was_eof;
+
bool error;
};
+void preproc_warning(struct preproc_ctx *ctx, const struct vkd3d_shader_location *loc,
+ enum vkd3d_shader_error error, const char *format, ...) VKD3D_PRINTF_FUNC(4, 5) DECLSPEC_HIDDEN;
+
#endif
diff --git a/libs/vkd3d-shader/preproc.l b/libs/vkd3d-shader/preproc.l
index b406af09..c60970cd 100644
--- a/libs/vkd3d-shader/preproc.l
+++ b/libs/vkd3d-shader/preproc.l
@@ -50,6 +50,7 @@ static void update_location(struct preproc_ctx *ctx);
%s C_COMMENT
%s CXX_COMMENT
+NEWLINE \r?\n
WS [ \t]
IDENTIFIER [A-Za-z_][A-Za-z0-9_]*
@@ -57,10 +58,10 @@ IDENTIFIER [A-Za-z_][A-Za-z0-9_]*
<INITIAL>"//" {yy_push_state(CXX_COMMENT, yyscanner);}
<INITIAL>"/*" {yy_push_state(C_COMMENT, yyscanner);}
-<CXX_COMMENT>\\\r?\n {}
+<CXX_COMMENT>\\{NEWLINE} {}
<CXX_COMMENT>\n {
yy_pop_state(yyscanner);
- return T_TEXT;
+ return T_NEWLINE;
}
<C_COMMENT>"*/" {yy_pop_state(yyscanner);}
<C_COMMENT,CXX_COMMENT><<EOF>> {yy_pop_state(yyscanner);}
@@ -68,13 +69,15 @@ IDENTIFIER [A-Za-z_][A-Za-z0-9_]*
<INITIAL>{IDENTIFIER} {return T_TEXT;}
+ /* We have no use for floats, but shouldn't parse them as integers. */
+
<INITIAL>[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[hHfF]? {return T_TEXT;}
<INITIAL>[0-9]+\.([eE][+-]?[0-9]+)?[hHfF]? {return T_TEXT;}
<INITIAL>[0-9]+([eE][+-]?[0-9]+)?[hHfF] {return T_TEXT;}
<INITIAL>[0-9]+[eE][+-]?[0-9]+ {return T_TEXT;}
-<INITIAL>0[xX][0-9a-fA-f]+[ul]{0,2} {return T_TEXT;}
-<INITIAL>0[0-7]*[ul]{0,2} {return T_TEXT;}
-<INITIAL>[1-9][0-9]*[ul]{0,2} {return T_TEXT;}
+<INITIAL>0[xX][0-9a-fA-f]+[ul]{0,2} {return T_INTEGER;}
+<INITIAL>0[0-7]*[ul]{0,2} {return T_INTEGER;}
+<INITIAL>[1-9][0-9]*[ul]{0,2} {return T_INTEGER;}
<INITIAL>"&&" {return T_TEXT;}
<INITIAL>"||" {return T_TEXT;}
@@ -87,6 +90,29 @@ IDENTIFIER [A-Za-z_][A-Za-z0-9_]*
/* C strings (including escaped quotes). */
<INITIAL>\"([^"\\]|\\.)*\" {return T_TEXT;}
+<INITIAL>#{WS}*{IDENTIFIER} {
+ struct preproc_ctx *ctx = yyget_extra(yyscanner);
+ const char *p;
+
+ if (!ctx->last_was_newline)
+ return T_TEXT;
+
+ for (p = yytext + 1; strchr(" \t", *p); ++p)
+ ;
+
+ if (!strcmp(p, "endif"))
+ return T_ENDIF;
+ if (!strcmp(p, "if"))
+ return T_IF;
+
+ preproc_warning(ctx, yyget_lloc(yyscanner), VKD3D_SHADER_WARNING_PP_UNKNOWN_DIRECTIVE,
+ "Ignoring unknown directive \"%s\".", yytext);
+ return T_TEXT;
+ }
+
+<INITIAL>\\{NEWLINE} {}
+<INITIAL>{NEWLINE} {return T_NEWLINE;}
+
<INITIAL>{WS}+ {}
<INITIAL>. {return T_TEXT;}
@@ -113,6 +139,27 @@ static void update_location(struct preproc_ctx *ctx)
}
}
+static bool preproc_is_writing(struct preproc_ctx *ctx)
+{
+ if (!ctx->if_count)
+ return true;
+ return ctx->if_stack[ctx->if_count - 1].current_true;
+}
+
+static int return_token(int token, YYSTYPE *lval, const char *text)
+{
+ switch (token)
+ {
+ case T_INTEGER:
+ case T_TEXT:
+ if (!(lval->string = vkd3d_strdup(text)))
+ return 0;
+ break;
+ }
+
+ return token;
+}
+
int yylex(YYSTYPE *lval, YYLTYPE *lloc, yyscan_t scanner)
{
struct preproc_ctx *ctx = yyget_extra(scanner);
@@ -122,11 +169,44 @@ int yylex(YYSTYPE *lval, YYLTYPE *lloc, yyscan_t scanner)
const char *text;
int token;
- if (!(token = preproc_lexer_lex(lval, lloc, scanner)))
+ if (ctx->last_was_eof)
return 0;
- text = yyget_text(scanner);
- TRACE("Parsing token %d, line %d, string %s.\n", token, lloc->line, debugstr_a(text));
+ if (!(token = preproc_lexer_lex(lval, lloc, scanner)))
+ {
+ ctx->last_was_eof = true;
+ token = T_NEWLINE;
+ text = "\n";
+ }
+ else
+ {
+ text = yyget_text(scanner);
+ }
+
+ if (ctx->last_was_newline)
+ {
+ switch (token)
+ {
+ case T_ENDIF:
+ case T_IF:
+ ctx->current_directive = token;
+ break;
+
+ default:
+ ctx->current_directive = 0;
+ }
+ }
+
+ ctx->last_was_newline = (token == T_NEWLINE);
+
+ TRACE("Parsing token %d, line %d, in directive %d, string %s.\n",
+ token, lloc->line, ctx->current_directive, debugstr_a(text));
+
+ if (!ctx->current_directive && !preproc_is_writing(ctx))
+ continue;
+
+ if (ctx->current_directive)
+ return return_token(token, lval, text);
vkd3d_string_buffer_printf(&ctx->buffer, "%s ", text);
}
@@ -147,12 +227,22 @@ int preproc_lexer_parse(const struct vkd3d_shader_compile_info *compile_info,
yylex_init_extra(&ctx, &ctx.scanner);
top_buffer = yy_scan_bytes(compile_info->source.code, compile_info->source.size, ctx.scanner);
+ ctx.last_was_newline = true;
preproc_yyparse(ctx.scanner, &ctx);
yy_delete_buffer(top_buffer, ctx.scanner);
yylex_destroy(ctx.scanner);
+ if (ctx.if_count)
+ {
+ const struct vkd3d_shader_location loc = {.source_name = ctx.location.source_name};
+
+ preproc_warning(&ctx, &loc, VKD3D_SHADER_WARNING_PP_UNTERMINATED_IF, "Unterminated #if block.");
+ }
+
+ vkd3d_free(ctx.if_stack);
+
if (ctx.error)
{
WARN("Failed to preprocess.\n");
diff --git a/libs/vkd3d-shader/preproc.y b/libs/vkd3d-shader/preproc.y
index 16b84ea9..3dc7e7cb 100644
--- a/libs/vkd3d-shader/preproc.y
+++ b/libs/vkd3d-shader/preproc.y
@@ -51,11 +51,71 @@ static void preproc_error(struct preproc_ctx *ctx, const struct vkd3d_shader_loc
ctx->error = true;
}
+void preproc_warning(struct preproc_ctx *ctx, const struct vkd3d_shader_location *loc,
+ enum vkd3d_shader_error error, const char *format, ...)
+{
+ va_list args;
+
+ va_start(args, format);
+ vkd3d_shader_vwarning(ctx->message_context, loc, error, format, args);
+ va_end(args);
+}
+
static void yyerror(const YYLTYPE *loc, void *scanner, struct preproc_ctx *ctx, const char *string)
{
preproc_error(ctx, loc, VKD3D_SHADER_ERROR_PP_INVALID_SYNTAX, "%s", string);
}
+static bool preproc_was_writing(struct preproc_ctx *ctx)
+{
+ if (ctx->if_count < 2)
+ return true;
+ return ctx->if_stack[ctx->if_count - 2].current_true;
+}
+
+static bool preproc_push_if(struct preproc_ctx *ctx, bool condition)
+{
+ struct preproc_if_state *state;
+
+ if (!vkd3d_array_reserve((void **)&ctx->if_stack, &ctx->if_stack_size, ctx->if_count + 1, sizeof(*ctx->if_stack)))
+ return false;
+ state = &ctx->if_stack[ctx->if_count++];
+ state->current_true = condition && preproc_was_writing(ctx);
+ return true;
+}
+
+static int char_to_int(char c)
+{
+ if ('0' <= c && c <= '9')
+ return c - '0';
+ if ('A' <= c && c <= 'F')
+ return c - 'A' + 10;
+ if ('a' <= c && c <= 'f')
+ return c - 'a' + 10;
+ return -1;
+}
+
+static uint32_t preproc_parse_integer(const char *s)
+{
+ uint32_t base = 10, ret = 0;
+ int digit;
+
+ if (*s == '0')
+ {
+ base = 8;
+ ++s;
+ if (*s == 'x' || *s == 'X')
+ {
+ base = 16;
+ ++s;
+ }
+ }
+
+ while ((digit = char_to_int(*s++)) >= 0)
+ ret = ret * base + (uint32_t)digit;
+ return ret;
+}
+
}
%define api.prefix {preproc_yy}
@@ -67,9 +127,49 @@ static void yyerror(const YYLTYPE *loc, void *scanner, struct preproc_ctx *ctx,
%parse-param {void *scanner}
%parse-param {struct preproc_ctx *ctx}
-%token T_TEXT
+%union
+{
+ char *string;
+ uint32_t integer;
+}
+
+%token <string> T_INTEGER
+%token <string> T_TEXT
+
+%token T_NEWLINE
+
+%token T_ENDIF "#endif"
+%token T_IF "#if"
+
+%type <integer> expr
%%
shader_text
: %empty
+ | shader_text directive
+ {
+ vkd3d_string_buffer_printf(&ctx->buffer, "\n");
+ }
+
+directive
+ : T_IF expr T_NEWLINE
+ {
+ if (!preproc_push_if(ctx, !!$2))
+ YYABORT;
+ }
+ | T_ENDIF T_NEWLINE
+ {
+ if (ctx->if_count)
+ --ctx->if_count;
+ else
+ preproc_warning(ctx, &@$, VKD3D_SHADER_WARNING_PP_INVALID_DIRECTIVE,
+ "Ignoring #endif without prior #if.");
+ }
+
+expr
+ : T_INTEGER
+ {
+ $$ = preproc_parse_integer($1);
+ vkd3d_free($1);
+ }
diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c
index 173ff170..df3b1a57 100644
--- a/libs/vkd3d-shader/vkd3d_shader_main.c
+++ b/libs/vkd3d-shader/vkd3d_shader_main.c
@@ -144,6 +144,30 @@ bool vkd3d_shader_message_context_copy_messages(struct vkd3d_shader_message_cont
return true;
}
+void vkd3d_shader_vwarning(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
+ enum vkd3d_shader_error error, const char *format, va_list args)
+{
+ if (context->log_level < VKD3D_SHADER_LOG_WARNING)
+ return;
+
+ if (location)
+ {
+ const char *source_name = location->source_name ? location->source_name : "<anonymous>";
+
+ if (location->line)
+ vkd3d_string_buffer_printf(&context->messages, "%s:%u:%u: W%04u: ",
+ source_name, location->line, location->column, error);
+ else
+ vkd3d_string_buffer_printf(&context->messages, "%s: W%04u: ", source_name, error);
+ }
+ else
+ {
+ vkd3d_string_buffer_printf(&context->messages, "W%04u: ", error);
+ }
+ vkd3d_string_buffer_vprintf(&context->messages, format, args);
+ vkd3d_string_buffer_printf(&context->messages, "\n");
+}
+
void vkd3d_shader_verror(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
enum vkd3d_shader_error error, const char *format, va_list args)
{
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
index 882a8060..b89d20e2 100644
--- a/libs/vkd3d-shader/vkd3d_shader_private.h
+++ b/libs/vkd3d-shader/vkd3d_shader_private.h
@@ -81,6 +81,10 @@ enum vkd3d_shader_error
VKD3D_SHADER_ERROR_RS_MIXED_DESCRIPTOR_RANGE_TYPES = 3004,
VKD3D_SHADER_ERROR_PP_INVALID_SYNTAX = 4000,
+
+ VKD3D_SHADER_WARNING_PP_INVALID_DIRECTIVE = 4301,
+ VKD3D_SHADER_WARNING_PP_UNKNOWN_DIRECTIVE = 4303,
+ VKD3D_SHADER_WARNING_PP_UNTERMINATED_IF = 4305,
};
enum VKD3D_SHADER_INSTRUCTION_HANDLER
@@ -871,6 +875,8 @@ void vkd3d_shader_error(struct vkd3d_shader_message_context *context, const stru
enum vkd3d_shader_error error, const char *format, ...) VKD3D_PRINTF_FUNC(4, 5) DECLSPEC_HIDDEN;
void vkd3d_shader_verror(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
enum vkd3d_shader_error error, const char *format, va_list args) DECLSPEC_HIDDEN;
+void vkd3d_shader_vwarning(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
+ enum vkd3d_shader_error error, const char *format, va_list args) DECLSPEC_HIDDEN;
int shader_extract_from_dxbc(const void *dxbc, size_t dxbc_length,
struct vkd3d_shader_message_context *message_context, const char *source_name,
diff --git a/tests/hlsl_d3d12.c b/tests/hlsl_d3d12.c
index 61324fa9..77a7ea1a 100644
--- a/tests/hlsl_d3d12.c
+++ b/tests/hlsl_d3d12.c
@@ -414,7 +414,7 @@ static void test_preprocess(void)
hr = D3DPreprocess(test_include_top, strlen(test_include_top), NULL, NULL, &test_include_fail, &blob, &errors);
todo ok(hr == E_FAIL, "Got hr %#x.\n", hr);
todo ok(blob == (ID3D10Blob *)0xdeadbeef, "Expected no compiled shader blob.\n");
- todo ok(!!errors, "Expected non-NULL error blob.\n");
+ ok(!!errors, "Expected non-NULL error blob.\n");
if (errors)
{
if (vkd3d_test_state.debug_level)
--
2.29.2
Dec. 21, 2020
Re: [PATCH vkd3d v3 2/4] vkd3d-shader: Implement basic support for #if and #endif.
by Zebediah Figura (she/her)
On 12/21/20 3:11 AM, Matteo Bruni wrote:
> Signed-off-by: Matteo Bruni <mbruni(a)codeweavers.com>
> ---
> Apparently I never got the email so I'm adding a couple of comments
> right here...
>
> preproc_was_writing() manages to trigger my review alarms every
> time. The function is definitely correct though, and clearly so after
> patch 4/4. So nothing to do but ignore the alarm.
Yeah, I know :-/
I'm not sure there's a better option though, besides crawling the whole
stack in preproc_is_writing(). Granted, that may not be awful for
performance (who's going to stack that many #ifs?)
>
> +static uint32_t preproc_parse_integer(const char *s)
> +{
> + uint32_t base = 10, ret = 0;
> + int digit;
> +
> + if (s[0] == '0')
> + {
> + base = 8;
>
> I'd "++s;" here
>
> + if (s[1] == 'x' || s[1] == 'X')
> + {
> + base = 16;
> + s += 2;
>
> And then replace this one with another "++s;" (fixing up the if
> condition above to now check *s).
>
> + }
> + }
> +
> + while ((digit = char_to_int(*s++)) >= 0)
> + ret = ret * base + (uint32_t)digit;
> + return ret;
> +}
>
> AFAICS this should still work. It's all just a nitpick, it doesn't
> really matter.
>
Sounds reasonable; I'll adjust that.
Dec. 21, 2020
[PATCH] conhost: Fix copy-paste typos in selection coordinates.
by Jacek Caban
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50052
Signed-off-by: Jacek Caban <jacek(a)codeweavers.com>
---
programs/conhost/window.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Dec. 21, 2020
[PATCH] amstream/tests: Define NONAMELESSUNION.
by Zebediah Figura
Old versions of gcc allow nameless unions, but can't parse them in designated initializers.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50378
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
---
dlls/amstream/tests/amstream.c | 255 +++++++++++++++++----------------
1 file changed, 128 insertions(+), 127 deletions(-)
diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c
index 279b040339c..648d5ee93c3 100644
--- a/dlls/amstream/tests/amstream.c
+++ b/dlls/amstream/tests/amstream.c
@@ -19,6 +19,7 @@
*/
#define COBJMACROS
+#define NONAMELESSUNION
#include "wine/test.h"
#include "dshow.h"
@@ -79,7 +80,7 @@ static const VIDEOINFO rgb565_video_info =
.bmiHeader.biPlanes = 1,
.bmiHeader.biBitCount = 16,
.bmiHeader.biCompression = BI_BITFIELDS,
- .dwBitMasks = {0xf800, 0x07e0, 0x001f},
+ .u.dwBitMasks = {0xf800, 0x07e0, 0x001f},
};
static const VIDEOINFO rgb24_video_info =
@@ -158,7 +159,7 @@ static const DDSURFACEDESC rgb8_format =
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXED8,
- .ddpfPixelFormat.dwRGBBitCount = 8,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 8,
};
static const DDSURFACEDESC rgb555_format =
@@ -167,10 +168,10 @@ static const DDSURFACEDESC rgb555_format =
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB,
- .ddpfPixelFormat.dwRGBBitCount = 16,
- .ddpfPixelFormat.dwRBitMask = 0x7c00,
- .ddpfPixelFormat.dwGBitMask = 0x03e0,
- .ddpfPixelFormat.dwBBitMask = 0x001f,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 16,
+ .ddpfPixelFormat.u2.dwRBitMask = 0x7c00,
+ .ddpfPixelFormat.u3.dwGBitMask = 0x03e0,
+ .ddpfPixelFormat.u4.dwBBitMask = 0x001f,
};
static const DDSURFACEDESC rgb565_format =
@@ -179,10 +180,10 @@ static const DDSURFACEDESC rgb565_format =
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB,
- .ddpfPixelFormat.dwRGBBitCount = 16,
- .ddpfPixelFormat.dwRBitMask = 0xf800,
- .ddpfPixelFormat.dwGBitMask = 0x07e0,
- .ddpfPixelFormat.dwBBitMask = 0x001f,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 16,
+ .ddpfPixelFormat.u2.dwRBitMask = 0xf800,
+ .ddpfPixelFormat.u3.dwGBitMask = 0x07e0,
+ .ddpfPixelFormat.u4.dwBBitMask = 0x001f,
};
static const DDSURFACEDESC rgb24_format =
@@ -191,10 +192,10 @@ static const DDSURFACEDESC rgb24_format =
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB,
- .ddpfPixelFormat.dwRGBBitCount = 24,
- .ddpfPixelFormat.dwRBitMask = 0xff0000,
- .ddpfPixelFormat.dwGBitMask = 0x00ff00,
- .ddpfPixelFormat.dwBBitMask = 0x0000ff,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 24,
+ .ddpfPixelFormat.u2.dwRBitMask = 0xff0000,
+ .ddpfPixelFormat.u3.dwGBitMask = 0x00ff00,
+ .ddpfPixelFormat.u4.dwBBitMask = 0x0000ff,
};
static const DDSURFACEDESC rgb32_format =
@@ -203,10 +204,10 @@ static const DDSURFACEDESC rgb32_format =
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB,
- .ddpfPixelFormat.dwRGBBitCount = 32,
- .ddpfPixelFormat.dwRBitMask = 0xff0000,
- .ddpfPixelFormat.dwGBitMask = 0x00ff00,
- .ddpfPixelFormat.dwBBitMask = 0x0000ff,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 32,
+ .ddpfPixelFormat.u2.dwRBitMask = 0xff0000,
+ .ddpfPixelFormat.u3.dwGBitMask = 0x00ff00,
+ .ddpfPixelFormat.u4.dwBBitMask = 0x0000ff,
};
static const DDSURFACEDESC argb32_format =
@@ -215,11 +216,11 @@ static const DDSURFACEDESC argb32_format =
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS,
- .ddpfPixelFormat.dwRGBBitCount = 32,
- .ddpfPixelFormat.dwRBitMask = 0xff0000,
- .ddpfPixelFormat.dwGBitMask = 0x00ff00,
- .ddpfPixelFormat.dwBBitMask = 0x0000ff,
- .ddpfPixelFormat.dwRGBAlphaBitMask = 0xff000000,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 32,
+ .ddpfPixelFormat.u2.dwRBitMask = 0xff0000,
+ .ddpfPixelFormat.u3.dwGBitMask = 0x00ff00,
+ .ddpfPixelFormat.u4.dwBBitMask = 0x0000ff,
+ .ddpfPixelFormat.u5.dwRGBAlphaBitMask = 0xff000000,
};
static const DDSURFACEDESC yuy2_format =
@@ -229,7 +230,7 @@ static const DDSURFACEDESC yuy2_format =
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_FOURCC,
.ddpfPixelFormat.dwFourCC = MAKEFOURCC('Y', 'U', 'Y', '2'),
- .ddpfPixelFormat.dwYUVBitCount = 16,
+ .ddpfPixelFormat.u1.dwYUVBitCount = 16,
};
static const DDSURFACEDESC yv12_format =
@@ -239,7 +240,7 @@ static const DDSURFACEDESC yv12_format =
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_FOURCC,
.ddpfPixelFormat.dwFourCC = MAKEFOURCC('Y', 'V', '1', '2'),
- .ddpfPixelFormat.dwYUVBitCount = 12,
+ .ddpfPixelFormat.u1.dwYUVBitCount = 12,
};
static const WCHAR primary_video_sink_id[] = L"I{A35FF56A-9FDA-11D0-8FDF-00C04FD9189D}";
@@ -3799,9 +3800,9 @@ static void test_ddrawstream_receive_connection(void)
ok(hr == VFW_E_TYPE_NOT_ACCEPTED, "Got hr %#x.\n", hr);
format = yuy2_format;
- format.ddpfPixelFormat.dwRBitMask = 0xf800;
- format.ddpfPixelFormat.dwGBitMask = 0x07e0;
- format.ddpfPixelFormat.dwBBitMask = 0x001f;
+ format.ddpfPixelFormat.u2.dwRBitMask = 0xf800;
+ format.ddpfPixelFormat.u3.dwGBitMask = 0x07e0;
+ format.ddpfPixelFormat.u4.dwBBitMask = 0x001f;
hr = IDirectDrawMediaStream_SetFormat(ddraw_stream, &format, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -5116,7 +5117,7 @@ static void test_ddrawstream_set_format(void)
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXED1,
- .ddpfPixelFormat.dwRGBBitCount = 1,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 1,
};
static const DDSURFACEDESC rgb2_format =
{
@@ -5124,7 +5125,7 @@ static void test_ddrawstream_set_format(void)
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXED2,
- .ddpfPixelFormat.dwRGBBitCount = 2,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 2,
};
static const DDSURFACEDESC rgb4_format =
{
@@ -5132,7 +5133,7 @@ static void test_ddrawstream_set_format(void)
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXED4,
- .ddpfPixelFormat.dwRGBBitCount = 4,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 4,
};
static const DDSURFACEDESC rgb4to8_format =
{
@@ -5140,7 +5141,7 @@ static void test_ddrawstream_set_format(void)
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXEDTO8,
- .ddpfPixelFormat.dwRGBBitCount = 4,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 4,
};
static const DDSURFACEDESC rgb332_format =
{
@@ -5148,10 +5149,10 @@ static void test_ddrawstream_set_format(void)
.dwFlags = DDSD_PIXELFORMAT,
.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT),
.ddpfPixelFormat.dwFlags = DDPF_RGB,
- .ddpfPixelFormat.dwRGBBitCount = 8,
- .ddpfPixelFormat.dwRBitMask = 0xe0,
- .ddpfPixelFormat.dwGBitMask = 0x1c,
- .ddpfPixelFormat.dwBBitMask = 0x03,
+ .ddpfPixelFormat.u1.dwRGBBitCount = 8,
+ .ddpfPixelFormat.u2.dwRBitMask = 0xe0,
+ .ddpfPixelFormat.u3.dwGBitMask = 0x1c,
+ .ddpfPixelFormat.u4.dwBBitMask = 0x03,
};
IDirectDrawMediaStream *ddraw_stream;
@@ -5231,19 +5232,19 @@ static void test_ddrawstream_set_format(void)
check_ddrawstream_set_format(ddraw_stream, &format, NULL, DDERR_INVALIDSURFACETYPE);
format = rgb565_format;
- format.ddpfPixelFormat.dwRBitMask = 0x001f;
- format.ddpfPixelFormat.dwGBitMask = 0x07e0;
- format.ddpfPixelFormat.dwBBitMask = 0xf800;
+ format.ddpfPixelFormat.u2.dwRBitMask = 0x001f;
+ format.ddpfPixelFormat.u3.dwGBitMask = 0x07e0;
+ format.ddpfPixelFormat.u4.dwBBitMask = 0xf800;
check_ddrawstream_set_format(ddraw_stream, &format, NULL, DDERR_INVALIDSURFACETYPE);
format = rgb32_format;
- format.ddpfPixelFormat.dwRBitMask = 0x00ff00;
- format.ddpfPixelFormat.dwGBitMask = 0x0000ff;
- format.ddpfPixelFormat.dwBBitMask = 0xff0000;
+ format.ddpfPixelFormat.u2.dwRBitMask = 0x00ff00;
+ format.ddpfPixelFormat.u3.dwGBitMask = 0x0000ff;
+ format.ddpfPixelFormat.u4.dwBBitMask = 0xff0000;
check_ddrawstream_set_format(ddraw_stream, &format, NULL, DDERR_INVALIDSURFACETYPE);
format = yuy2_format;
- format.ddpfPixelFormat.dwYUVBitCount = 0;
+ format.ddpfPixelFormat.u1.dwYUVBitCount = 0;
check_ddrawstream_set_format(ddraw_stream, &format, NULL, E_INVALIDARG);
format = rgb32_format;
@@ -5289,10 +5290,10 @@ static void test_ddrawstream_set_format(void)
"Got subtype %s.\n", wine_dbgstr_guid(&source.source.pin.mt.subtype));
hr = IDirectDrawMediaStream_GetFormat(ddraw_stream, ¤t_format, NULL, &desired_format, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(current_format.ddpfPixelFormat.dwRGBBitCount == 8,
- "Got rgb bit count %u.\n", current_format.ddpfPixelFormat.dwRGBBitCount);
- ok(desired_format.ddpfPixelFormat.dwRGBBitCount == 8,
- "Got rgb bit count %u.\n", desired_format.ddpfPixelFormat.dwRGBBitCount);
+ ok(current_format.ddpfPixelFormat.u1.dwRGBBitCount == 8,
+ "Got rgb bit count %u.\n", current_format.ddpfPixelFormat.u1.dwRGBBitCount);
+ ok(desired_format.ddpfPixelFormat.u1.dwRGBBitCount == 8,
+ "Got rgb bit count %u.\n", desired_format.ddpfPixelFormat.u1.dwRGBBitCount);
format = rgb555_format;
format.dwFlags = 0;
@@ -5312,10 +5313,10 @@ static void test_ddrawstream_set_format(void)
"Got subtype %s.\n", wine_dbgstr_guid(&source.source.pin.mt.subtype));
hr = IDirectDrawMediaStream_GetFormat(ddraw_stream, ¤t_format, NULL, &desired_format, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(current_format.ddpfPixelFormat.dwRGBBitCount == 16,
- "Got rgb bit count %u.\n", current_format.ddpfPixelFormat.dwRGBBitCount);
- ok(desired_format.ddpfPixelFormat.dwRGBBitCount == 16,
- "Got rgb bit count %u.\n", desired_format.ddpfPixelFormat.dwRGBBitCount);
+ ok(current_format.ddpfPixelFormat.u1.dwRGBBitCount == 16,
+ "Got rgb bit count %u.\n", current_format.ddpfPixelFormat.u1.dwRGBBitCount);
+ ok(desired_format.ddpfPixelFormat.u1.dwRGBBitCount == 16,
+ "Got rgb bit count %u.\n", desired_format.ddpfPixelFormat.u1.dwRGBBitCount);
video_info = rgb555_video_info;
video_info.bmiHeader.biWidth = 222;
@@ -7189,7 +7190,7 @@ static void test_ddrawstream_create_sample(void)
ok(desc.dwWidth == 100, "Expected width 100, got %d.\n", desc.dwWidth);
ok(desc.dwHeight == 100, "Expected height 100, got %d.\n", desc.dwHeight);
ok(desc.ddpfPixelFormat.dwFlags == DDPF_RGB, "Expected format flags DDPF_RGB, got %#x.\n", desc.ddpfPixelFormat.dwFlags);
- ok(desc.ddpfPixelFormat.dwRGBBitCount, "Expected non-zero RGB bit count.\n");
+ ok(desc.ddpfPixelFormat.u1.dwRGBBitCount, "Expected non-zero RGB bit count.\n");
IDirectDrawSurface_Release(surface);
IDirectDrawStreamSample_Release(sample);
EXPECT_REF(stream, 3);
@@ -7233,11 +7234,11 @@ static void test_ddrawstream_create_sample(void)
desc.dwHeight = 400;
desc.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
desc.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_ALPHAPIXELS;
- desc.ddpfPixelFormat.dwRGBBitCount = 32;
- desc.ddpfPixelFormat.dwRBitMask = 0xff0000;
- desc.ddpfPixelFormat.dwGBitMask = 0x00ff00;
- desc.ddpfPixelFormat.dwBBitMask = 0x0000ff;
- desc.ddpfPixelFormat.dwRGBAlphaBitMask = 0xff000000;
+ desc.ddpfPixelFormat.u1.dwRGBBitCount = 32;
+ desc.ddpfPixelFormat.u2.dwRBitMask = 0xff0000;
+ desc.ddpfPixelFormat.u3.dwGBitMask = 0x00ff00;
+ desc.ddpfPixelFormat.u4.dwBBitMask = 0x0000ff;
+ desc.ddpfPixelFormat.u5.dwRGBAlphaBitMask = 0xff000000;
desc.ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY | DDSCAPS_OFFSCREENPLAIN;
hr = IDirectDraw_CreateSurface(ddraw, &desc, &surface, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7278,7 +7279,7 @@ static void test_ddrawstream_create_sample(void)
desc.dwHeight = 400;
desc.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
desc.ddpfPixelFormat.dwFlags = DDPF_RGB | DDPF_PALETTEINDEXED4;
- desc.ddpfPixelFormat.dwRGBBitCount = 4;
+ desc.ddpfPixelFormat.u1.dwRGBBitCount = 4;
desc.ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY | DDSCAPS_OFFSCREENPLAIN;
hr = IDirectDraw_CreateSurface(ddraw, &desc, &surface, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7304,10 +7305,10 @@ static void test_ddrawstream_create_sample(void)
ok(desc.dwWidth == 100, "Got width %u.\n", desc.dwWidth);
ok(desc.dwHeight == 100, "Got height %u.\n", desc.dwHeight);
ok(desc.ddpfPixelFormat.dwFlags == DDPF_RGB, "Got flags %#x.\n", desc.ddpfPixelFormat.dwFlags);
- ok(desc.ddpfPixelFormat.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.dwRGBBitCount);
- ok(desc.ddpfPixelFormat.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.dwRBitMask);
- ok(desc.ddpfPixelFormat.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.dwGBitMask);
- ok(desc.ddpfPixelFormat.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.dwBBitMask);
+ ok(desc.ddpfPixelFormat.u1.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.u1.dwRGBBitCount);
+ ok(desc.ddpfPixelFormat.u2.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.u2.dwRBitMask);
+ ok(desc.ddpfPixelFormat.u3.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.u3.dwGBitMask);
+ ok(desc.ddpfPixelFormat.u4.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.u4.dwBBitMask);
format1 = rgb8_format;
format1.dwFlags |= DDSD_WIDTH;
@@ -7333,30 +7334,30 @@ static void test_ddrawstream_create_sample(void)
ok(desc.dwWidth == 333, "Got width %u.\n", desc.dwWidth);
ok(desc.dwHeight == 444, "Got height %u.\n", desc.dwHeight);
ok(desc.ddpfPixelFormat.dwFlags == DDPF_RGB, "Got flags %#x.\n", desc.ddpfPixelFormat.dwFlags);
- ok(desc.ddpfPixelFormat.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.dwRGBBitCount);
- ok(desc.ddpfPixelFormat.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.dwRBitMask);
- ok(desc.ddpfPixelFormat.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.dwGBitMask);
- ok(desc.ddpfPixelFormat.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.dwBBitMask);
+ ok(desc.ddpfPixelFormat.u1.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.u1.dwRGBBitCount);
+ ok(desc.ddpfPixelFormat.u2.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.u2.dwRBitMask);
+ ok(desc.ddpfPixelFormat.u3.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.u3.dwGBitMask);
+ ok(desc.ddpfPixelFormat.u4.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.u4.dwBBitMask);
get_ddrawstream_create_sample_desc(&rgb565_format, NULL, NULL, &desc);
ok(desc.dwWidth == 100, "Got width %u.\n", desc.dwWidth);
ok(desc.dwHeight == 100, "Got height %u.\n", desc.dwHeight);
ok(desc.ddpfPixelFormat.dwFlags == DDPF_RGB, "Got flags %#x.\n", desc.ddpfPixelFormat.dwFlags);
- ok(desc.ddpfPixelFormat.dwRGBBitCount == 16, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.dwRGBBitCount);
- ok(desc.ddpfPixelFormat.dwRBitMask == 0xf800, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.dwRBitMask);
- ok(desc.ddpfPixelFormat.dwGBitMask == 0x07e0, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.dwGBitMask);
- ok(desc.ddpfPixelFormat.dwBBitMask == 0x001f, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.dwBBitMask);
+ ok(desc.ddpfPixelFormat.u1.dwRGBBitCount == 16, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.u1.dwRGBBitCount);
+ ok(desc.ddpfPixelFormat.u2.dwRBitMask == 0xf800, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.u2.dwRBitMask);
+ ok(desc.ddpfPixelFormat.u3.dwGBitMask == 0x07e0, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.u3.dwGBitMask);
+ ok(desc.ddpfPixelFormat.u4.dwBBitMask == 0x001f, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.u4.dwBBitMask);
get_ddrawstream_create_sample_desc(&argb32_format, NULL, NULL, &desc);
ok(desc.dwWidth == 100, "Got width %u.\n", desc.dwWidth);
ok(desc.dwHeight == 100, "Got height %u.\n", desc.dwHeight);
ok(desc.ddpfPixelFormat.dwFlags == (DDPF_RGB | DDPF_ALPHAPIXELS), "Got flags %#x.\n", desc.ddpfPixelFormat.dwFlags);
- ok(desc.ddpfPixelFormat.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.dwRGBBitCount);
- ok(desc.ddpfPixelFormat.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.dwRBitMask);
- ok(desc.ddpfPixelFormat.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.dwGBitMask);
- ok(desc.ddpfPixelFormat.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.dwBBitMask);
- ok(desc.ddpfPixelFormat.dwRGBAlphaBitMask == 0xff000000,
- "Got alpha bit mask %#x.\n", desc.ddpfPixelFormat.dwBBitMask);
+ ok(desc.ddpfPixelFormat.u1.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.u1.dwRGBBitCount);
+ ok(desc.ddpfPixelFormat.u2.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.u2.dwRBitMask);
+ ok(desc.ddpfPixelFormat.u3.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.u3.dwGBitMask);
+ ok(desc.ddpfPixelFormat.u4.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.u4.dwBBitMask);
+ ok(desc.ddpfPixelFormat.u5.dwRGBAlphaBitMask == 0xff000000,
+ "Got alpha bit mask %#x.\n", desc.ddpfPixelFormat.u4.dwBBitMask);
format1 = rgb32_format;
format1.dwFlags |= DDSD_CAPS;
@@ -7368,10 +7369,10 @@ static void test_ddrawstream_create_sample(void)
ok(desc.dwWidth == 100, "Got width %u.\n", desc.dwWidth);
ok(desc.dwHeight == 100, "Got height %u.\n", desc.dwHeight);
ok(desc.ddpfPixelFormat.dwFlags == DDPF_RGB, "Got flags %#x.\n", desc.ddpfPixelFormat.dwFlags);
- ok(desc.ddpfPixelFormat.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.dwRGBBitCount);
- ok(desc.ddpfPixelFormat.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.dwRBitMask);
- ok(desc.ddpfPixelFormat.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.dwGBitMask);
- ok(desc.ddpfPixelFormat.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.dwBBitMask);
+ ok(desc.ddpfPixelFormat.u1.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.u1.dwRGBBitCount);
+ ok(desc.ddpfPixelFormat.u2.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.u2.dwRBitMask);
+ ok(desc.ddpfPixelFormat.u3.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.u3.dwGBitMask);
+ ok(desc.ddpfPixelFormat.u4.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.u4.dwBBitMask);
format1 = rgb32_format;
format1.dwFlags |= DDSD_CKSRCBLT;
@@ -7382,10 +7383,10 @@ static void test_ddrawstream_create_sample(void)
ok(desc.dwWidth == 100, "Got width %u.\n", desc.dwWidth);
ok(desc.dwHeight == 100, "Got height %u.\n", desc.dwHeight);
ok(desc.ddpfPixelFormat.dwFlags == DDPF_RGB, "Got flags %#x.\n", desc.ddpfPixelFormat.dwFlags);
- ok(desc.ddpfPixelFormat.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.dwRGBBitCount);
- ok(desc.ddpfPixelFormat.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.dwRBitMask);
- ok(desc.ddpfPixelFormat.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.dwGBitMask);
- ok(desc.ddpfPixelFormat.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.dwBBitMask);
+ ok(desc.ddpfPixelFormat.u1.dwRGBBitCount == 32, "Got rgb bit count %u.\n", desc.ddpfPixelFormat.u1.dwRGBBitCount);
+ ok(desc.ddpfPixelFormat.u2.dwRBitMask == 0xff0000, "Got r bit mask %#x.\n", desc.ddpfPixelFormat.u2.dwRBitMask);
+ ok(desc.ddpfPixelFormat.u3.dwGBitMask == 0x00ff00, "Got g bit mask %#x.\n", desc.ddpfPixelFormat.u3.dwGBitMask);
+ ok(desc.ddpfPixelFormat.u4.dwBBitMask == 0x0000ff, "Got b bit mask %#x.\n", desc.ddpfPixelFormat.u4.dwBBitMask);
ok(desc.ddckCKSrcBlt.dwColorSpaceLowValue == 0, "Got color key low value %#x.\n",
desc.ddckCKSrcBlt.dwColorSpaceLowValue);
ok(desc.ddckCKSrcBlt.dwColorSpaceHighValue == 0, "Got color key high value %#x.\n",
@@ -7557,7 +7558,7 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
for (i = 0; i < 5; ++i)
- memcpy((BYTE *)desc.lpSurface + i * desc.lPitch, initial_data, 12);
+ memcpy((BYTE *)desc.lpSurface + i * desc.u1.lPitch, initial_data, 12);
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7574,11 +7575,11 @@ static void test_ddrawstreamsample_update(void)
ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.u1.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.u1.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7605,7 +7606,7 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
for (i = 0; i < 5; ++i)
- memcpy((BYTE *)desc.lpSurface + i * desc.lPitch, initial_data, 12);
+ memcpy((BYTE *)desc.lpSurface + i * desc.u1.lPitch, initial_data, 12);
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7622,11 +7623,11 @@ static void test_ddrawstreamsample_update(void)
ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.u1.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.u1.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7658,7 +7659,7 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
for (i = 0; i < 5; ++i)
- memcpy((BYTE *)desc.lpSurface + i * desc.lPitch, initial_data, 12);
+ memcpy((BYTE *)desc.lpSurface + i * desc.u1.lPitch, initial_data, 12);
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7674,11 +7675,11 @@ static void test_ddrawstreamsample_update(void)
ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.u1.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.u1.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7707,7 +7708,7 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
for (i = 0; i < 5; ++i)
- memcpy((BYTE *)desc.lpSurface + i * desc.lPitch, initial_data, 12);
+ memcpy((BYTE *)desc.lpSurface + i * desc.u1.lPitch, initial_data, 12);
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7723,11 +7724,11 @@ static void test_ddrawstreamsample_update(void)
ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.u1.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.u1.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7743,7 +7744,7 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
for (i = 0; i < 5; ++i)
- memcpy((BYTE *)desc.lpSurface + i * desc.lPitch, initial_data, 12);
+ memcpy((BYTE *)desc.lpSurface + i * desc.u1.lPitch, initial_data, 12);
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7755,18 +7756,18 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.u1.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.u1.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
for (i = 0; i < 5; ++i)
- memcpy((BYTE *)desc.lpSurface + i * desc.lPitch, initial_data, 12);
+ memcpy((BYTE *)desc.lpSurface + i * desc.u1.lPitch, initial_data, 12);
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7778,11 +7779,11 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.u1.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.u1.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7811,7 +7812,7 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
for (i = 0; i < 5; ++i)
- memcpy((BYTE *)desc.lpSurface + i * desc.lPitch, initial_data, 12);
+ memcpy((BYTE *)desc.lpSurface + i * desc.u1.lPitch, initial_data, 12);
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7837,7 +7838,7 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
for (i = 0; i < 5; ++i)
- ok(memcmp((BYTE *)desc.lpSurface + i * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + i * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
@@ -7848,11 +7849,11 @@ static void test_ddrawstreamsample_update(void)
hr = IDirectDrawSurface_Lock(surface, NULL, &desc, 0, NULL);
ok(hr == S_OK, "Got hr %#x.\n", hr);
- ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
- ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 0 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 1 * desc.u1.lPitch, &test_data[12], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 2 * desc.u1.lPitch, &test_data[0], 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 3 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
+ ok(memcmp((BYTE *)desc.lpSurface + 4 * desc.u1.lPitch, initial_data, 12) == 0, "Sample data didn't match.\n");
hr = IDirectDrawSurface_Unlock(surface, desc.lpSurface);
ok(hr == S_OK, "Got hr %#x.\n", hr);
--
2.29.2
Dec. 21, 2020
Re: [PATCH 2/2] include: Add IAMCameraControl definition in axextend.idl.
by Zebediah Figura (she/her)
Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com>
Dec. 21, 2020
Re: Looking for TestBot help
by Francois Gouget
On Mon, 21 Dec 2020, Zhiyi Zhang wrote:
[...]
> > * Write or find a Windows tool to automatically take a screenshot every
> > few seconds and deduplicate identical screenshots. The requirements
> > are:
> I can help out with this one. I had been debugging some screenshot problems on
> Wine and already have a few code snippets to do screenshots and save them.
That's great.
> For this tool, I'm thinking doing it generally the following way:
> 1. Capture the whole virtual screen and save it in a png in memory.
> 2. Compare the png in 1, if it's not equal to the previous screenshot,
> save it to disk in a folder.
Yes, that sounds good.
[...]
> I wonder if it would be better if we do video capture instead? If we
> don't plan on keeping the video forever, I think a 2 mins video
> shouldn't be too large. A few megabytes I think, depending on the
> video format.
Video would obviously be nice but the VMs typically don't have access to
a graphics card to offload the video compression. So I worry that the
CPU usage would be too high and/or interfere with the tests. Also
compression would have to happen in real time because we don't want the
VM to be stuck compressing the video for 5 minutes after the test is
done.
That pretty much means MJPEG [1] but then you either get large files or
bad quality. Maybe it could work if we put a frontend detecting
duplicate frames but then I don't know how we could preserve the frame
interval in the MJPEG file [2].
Disk usage could also be an issue though a video encoder should allow us
to solve that by lowering the bitrate, assuming we can still get a
reasonable quality. Bandwidth usage may be more of an issue, both in
terms of billing, and in terms of transfer time (from the VM hosts to
the offsite TestBot server).
But maybe I'm overestimating the challenges of video encoding.
Currently my plan would be to do tests and then set the screenshot
interval between 1 and 10 seconds based on the results.
[1] Some internet forums suggest huffyuv or lagarith but neither
provides interframe compression which I think would be very
beneficial in our case (even if it's very basic like doing a simple
diff). The other issue as soon as one strays away from the
'mainstream encoders' is browser support.
[2] It seems like variable rate 'mjpeg' should be possible with a
'modern container' like mkv and mp4 (the latter being probably more
compatible with browsers).
--
Francois Gouget <fgouget(a)free.fr> http://fgouget.free.fr/
Any sufficiently advanced bug is indistinguishable from a feature.
-- from some indian guy
Dec. 21, 2020
Dec. 21, 2020
Re: Looking for TestBot help
by Francois Gouget
On Sun, 20 Dec 2020, Zebediah Figura (she/her) wrote:
>
> On 12/17/20 3:28 AM, Francois Gouget wrote:
> >
> > In these freezing times I'm looking for volunteers to help with three
> > TestBot related tasks:
> >
> > * Modify WineTest to detect which tests can be run by running
> > 'xxx_test --list' and automatically detecting and dismissing the
> > "Missing dll" / "Missing entrypoint" dialogs.
>
> Are we sure we want to do it this way? It seems potentially quite fragile...
I think it would be more robust than what we're doing now which is
trying to predict whether the linker will find all the dependencies the
test needs, taking into account manifests, recursive dll dependencies,
etc.
I expect it would also be less code and less duplication.
--
Francois Gouget <fgouget(a)free.fr> http://fgouget.free.fr/
All generalizations are false, including this one.
-- Mark Twain
Dec. 21, 2020
[PATCH] d3dx9: Avoid closing invalid handles.
by Akihiro Sagawa
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50373
Signed-off-by: Akihiro Sagawa <sagawa.aki(a)gmail.com>
---
dlls/d3dx9_36/util.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Dec. 21, 2020