wine
16 years agomsi: Handle components installed as source in MsiQueryComponentState.
James Hawkins [Thu, 21 Aug 2008 07:16:03 +0000 (02:16 -0500)] 
msi: Handle components installed as source in MsiQueryComponentState.

16 years agomsi: Downgrade an ERR to a TRACE.
James Hawkins [Thu, 21 Aug 2008 07:15:31 +0000 (02:15 -0500)] 
msi: Downgrade an ERR to a TRACE.

16 years agomsi: If the filename is empty or NULL, remove the directory.
James Hawkins [Thu, 21 Aug 2008 07:14:59 +0000 (02:14 -0500)] 
msi: If the filename is empty or NULL, remove the directory.

16 years agomsi: Handle processing a component that is installed to source.
James Hawkins [Thu, 21 Aug 2008 07:14:26 +0000 (02:14 -0500)] 
msi: Handle processing a component that is installed to source.

16 years agowinhttp: #include <netinet/in.h> for sockaddr_in.
Gerald Pfeifer [Wed, 20 Aug 2008 18:34:43 +0000 (20:34 +0200)] 
winhttp: #include <netinet/in.h> for sockaddr_in.

16 years agonotepad: Update simplified Chinese resource.
Hongbo Ni [Thu, 21 Aug 2008 06:20:36 +0000 (16:20 +1000)] 
notepad: Update simplified Chinese resource.

16 years agogdi32: Replace DC transform by font scaling for bitmap fonts.
Dmitry Timoshkov [Thu, 21 Aug 2008 06:02:15 +0000 (15:02 +0900)] 
gdi32: Replace DC transform by font scaling for bitmap fonts.

16 years agogdi32: Avoid loading a bitmap if a glyph transformation is being requested.
Dmitry Timoshkov [Thu, 21 Aug 2008 06:01:05 +0000 (15:01 +0900)] 
gdi32: Avoid loading a bitmap if a glyph transformation is being requested.

16 years agomstask/tests: Conformance test for (Set|Get)Trigger.
Roy Shea [Thu, 21 Aug 2008 01:29:03 +0000 (18:29 -0700)] 
mstask/tests: Conformance test for (Set|Get)Trigger.

16 years agomstask: TaskTrigger stub with AddRef, QueryInterface, and Release.
Roy Shea [Thu, 21 Aug 2008 01:28:30 +0000 (18:28 -0700)] 
mstask: TaskTrigger stub with AddRef, QueryInterface, and Release.

16 years agomstask/tests: Basic conformance test for (Set|Get)AccountInformation.
Roy Shea [Thu, 21 Aug 2008 00:46:43 +0000 (17:46 -0700)] 
mstask/tests: Basic conformance test for (Set|Get)AccountInformation.

16 years agomstask/tests: Conformance test for (Set|Get)MaxRunTime.
Roy Shea [Thu, 21 Aug 2008 00:46:05 +0000 (17:46 -0700)] 
mstask/tests: Conformance test for (Set|Get)MaxRunTime.

16 years agomstask/tests: Conformance test for (Set|Get)Comment.
Roy Shea [Thu, 21 Aug 2008 00:45:03 +0000 (17:45 -0700)] 
mstask/tests: Conformance test for (Set|Get)Comment.

16 years agomstask/tests: Conformance test for (Set|Get)Parameters.
Roy Shea [Thu, 21 Aug 2008 00:44:30 +0000 (17:44 -0700)] 
mstask/tests: Conformance test for (Set|Get)Parameters.

16 years agomountmgr: Include the terminating NULL in mount ids.
H. Verbeet [Wed, 20 Aug 2008 20:46:10 +0000 (22:46 +0200)] 
mountmgr: Include the terminating NULL in mount ids.

Some "protection" schemes expect these to be at least 2 bytes long.

16 years agowined3d: Don't allocate This->draw_buffers in the error path for Init3D().
H. Verbeet [Wed, 20 Aug 2008 20:45:11 +0000 (22:45 +0200)] 
wined3d: Don't allocate This->draw_buffers in the error path for Init3D().

16 years agowined3d: Don't free backends if they're not created yet.
H. Verbeet [Wed, 20 Aug 2008 20:45:02 +0000 (22:45 +0200)] 
wined3d: Don't free backends if they're not created yet.

This would crash if CreateAdditionalSwapChain() failed.

16 years agocrypt32: Initialize the size to zero.
Huw Davies [Wed, 20 Aug 2008 13:32:09 +0000 (14:32 +0100)] 
crypt32: Initialize the size to zero.

16 years agocrypt32: Don't write to pvStructInfo if it's NULL.
Huw Davies [Wed, 20 Aug 2008 10:21:24 +0000 (11:21 +0100)] 
crypt32: Don't write to pvStructInfo if it's NULL.

16 years agocrypt32: Add support for decoding PKCS_SMIME_CAPABILITIES.
Juan Lang [Wed, 20 Aug 2008 19:11:41 +0000 (12:11 -0700)] 
crypt32: Add support for decoding PKCS_SMIME_CAPABILITIES.

16 years agocrypt32: Add support for encoding PKCS_SMIME_CAPABILITIES.
Juan Lang [Wed, 20 Aug 2008 19:11:15 +0000 (12:11 -0700)] 
crypt32: Add support for encoding PKCS_SMIME_CAPABILITIES.

16 years agocrypt32: Add tests for encoding/decoding PKCS_SMIME_CAPABILITIES. With help from...
Juan Lang [Wed, 20 Aug 2008 19:10:57 +0000 (12:10 -0700)] 
crypt32: Add tests for encoding/decoding PKCS_SMIME_CAPABILITIES. With help from Huw Davies.

16 years agocrypt32: Reduce excessive indenting.
Juan Lang [Wed, 20 Aug 2008 19:10:27 +0000 (12:10 -0700)] 
crypt32: Reduce excessive indenting.

16 years agocrypt32: Remove an unneeded helper.
Juan Lang [Wed, 20 Aug 2008 19:07:29 +0000 (12:07 -0700)] 
crypt32: Remove an unneeded helper.

16 years agocrypt32: Handle the detached portion of detached signed messages.
Juan Lang [Wed, 20 Aug 2008 19:07:08 +0000 (12:07 -0700)] 
crypt32: Handle the detached portion of detached signed messages.

16 years agocrypt32: Rewrite CDecodeMsg_Update for better detached data handling.
Juan Lang [Wed, 20 Aug 2008 19:03:37 +0000 (12:03 -0700)] 
crypt32: Rewrite CDecodeMsg_Update for better detached data handling.

16 years agocrypt32: Pass address of blob to store data rather than message to CDecodeMsg_CopyData.
Juan Lang [Wed, 20 Aug 2008 19:03:12 +0000 (12:03 -0700)] 
crypt32: Pass address of blob to store data rather than message to CDecodeMsg_CopyData.

16 years agocrypt32: Support the KeyId type of signer in CMSG_SIGNER_CERT_INFO_PARAM.
Juan Lang [Wed, 20 Aug 2008 19:02:46 +0000 (12:02 -0700)] 
crypt32: Support the KeyId type of signer in CMSG_SIGNER_CERT_INFO_PARAM.

16 years agocrypt32: Support the KeyId type of signer in CMSG_SIGNER_INFO_PARAM.
Juan Lang [Wed, 20 Aug 2008 19:02:25 +0000 (12:02 -0700)] 
crypt32: Support the KeyId type of signer in CMSG_SIGNER_INFO_PARAM.

16 years agocrypt32: Implement CMSG_CMS_SIGNER_INFO_PARAM.
Juan Lang [Wed, 20 Aug 2008 19:02:02 +0000 (12:02 -0700)] 
crypt32: Implement CMSG_CMS_SIGNER_INFO_PARAM.

16 years agocrypt32: Add tests for CMSG_CMS_SIGNER_INFO_PARAM.
Juan Lang [Wed, 20 Aug 2008 19:01:37 +0000 (12:01 -0700)] 
crypt32: Add tests for CMSG_CMS_SIGNER_INFO_PARAM.

16 years agocrypt32: Add more tests for the version of encoded signed CMS messages.
Juan Lang [Wed, 20 Aug 2008 19:01:05 +0000 (12:01 -0700)] 
crypt32: Add more tests for the version of encoded signed CMS messages.

16 years agocrypt32: Test and correct encoding of signed CMS messages.
Juan Lang [Wed, 20 Aug 2008 19:00:35 +0000 (12:00 -0700)] 
crypt32: Test and correct encoding of signed CMS messages.

16 years agocrypt32: Use CMS messages rather than PKCS messages internally.
Juan Lang [Wed, 20 Aug 2008 18:57:21 +0000 (11:57 -0700)] 
crypt32: Use CMS messages rather than PKCS messages internally.

16 years agoconfigure: Generate the makefiles list in configure instead of make_makefiles.
Alexandre Julliard [Wed, 20 Aug 2008 14:02:37 +0000 (16:02 +0200)] 
configure: Generate the makefiles list in configure instead of make_makefiles.

16 years agoconfigure: Require autoconf version 2.59d.
Alexandre Julliard [Wed, 20 Aug 2008 13:22:02 +0000 (15:22 +0200)] 
configure: Require autoconf version 2.59d.

16 years agokernel32: Fix profile cache logic and don't cache new files.
Michael Karcher [Sun, 17 Aug 2008 17:03:24 +0000 (19:03 +0200)] 
kernel32: Fix profile cache logic and don't cache new files.

16 years agontdll: Add sub-second resolution to NtQueryInformationFile.
Michael Karcher [Sun, 17 Aug 2008 17:03:44 +0000 (19:03 +0200)] 
ntdll: Add sub-second resolution to NtQueryInformationFile.

16 years agomsvcirt: Implement some ostream stubs.
Christian Costa [Wed, 20 Aug 2008 08:18:58 +0000 (10:18 +0200)] 
msvcirt: Implement some ostream stubs.

16 years agod3dx8: Implement D3DXBoxBoundProbe.
David Adam [Tue, 19 Aug 2008 18:11:58 +0000 (20:11 +0200)] 
d3dx8: Implement D3DXBoxBoundProbe.

16 years agodinput: Add mouse warp override config option.
Vitaliy Margolen [Tue, 19 Aug 2008 01:18:29 +0000 (19:18 -0600)] 
dinput: Add mouse warp override config option.

16 years agod3drm: Add minimal d3drmobj.h.
Vijay Kiran Kamuju [Thu, 7 Aug 2008 16:21:17 +0000 (12:21 -0400)] 
d3drm: Add minimal d3drmobj.h.

16 years agodinput: The DIK_ keycode is not the same as the scancode.
Aric Stewart [Wed, 6 Aug 2008 13:04:36 +0000 (08:04 -0500)] 
dinput: The DIK_ keycode is not the same as the scancode.

It is mapped with the keyboard mapping to the resulting character so
the key 'A' is DIK_A nomatter what its scancode or vkey would be. This
is relevant to Japanese keymapping where the '@' key is in the '['
location the scancode for both is 0x22 but dinput generates DIK_AT in
japanese and DIK_LBRACKET in us_qwerty.

16 years agoole32: Stop crash under w2k8.
Alistair Leslie-Hughes [Wed, 6 Aug 2008 04:51:03 +0000 (14:51 +1000)] 
ole32: Stop crash under w2k8.

16 years agouser32: Add a test for ToUnicode.
Andre Wisplinghoff [Tue, 5 Aug 2008 12:20:24 +0000 (14:20 +0200)] 
user32: Add a test for ToUnicode.

16 years agodplayx: Tests for checking remote data replication.
Ismael Barros [Tue, 5 Aug 2008 01:56:32 +0000 (03:56 +0200)] 
dplayx: Tests for checking remote data replication.

16 years agodplayx: Tests for GetMessageQueue.
Ismael Barros [Tue, 5 Aug 2008 01:56:40 +0000 (03:56 +0200)] 
dplayx: Tests for GetMessageQueue.

16 years agodplayx: Tests for GetMessageCount.
Ismael Barros [Tue, 5 Aug 2008 01:56:18 +0000 (03:56 +0200)] 
dplayx: Tests for GetMessageCount.

16 years agodplayx: Tests for Receive.
Ismael Barros [Tue, 5 Aug 2008 01:56:42 +0000 (03:56 +0200)] 
dplayx: Tests for Receive.

16 years agodplayx: Tests for Send.
Ismael Barros [Tue, 5 Aug 2008 01:56:24 +0000 (03:56 +0200)] 
dplayx: Tests for Send.

16 years agodplayx: Tests for checking the behaviour of groups in a C/S session.
Ismael Barros [Tue, 5 Aug 2008 01:56:26 +0000 (03:56 +0200)] 
dplayx: Tests for checking the behaviour of groups in a C/S session.

16 years agodplayx: Tests for checking the behaviour of groups in a p2p session.
Ismael Barros [Tue, 5 Aug 2008 01:56:22 +0000 (03:56 +0200)] 
dplayx: Tests for checking the behaviour of groups in a p2p session.

16 years agodplayx: Tests for EnumGroupsInGroup.
Ismael Barros [Tue, 5 Aug 2008 01:56:30 +0000 (03:56 +0200)] 
dplayx: Tests for EnumGroupsInGroup.

16 years agodplayx: Tests for EnumGroups.
Ismael Barros [Tue, 5 Aug 2008 01:56:35 +0000 (03:56 +0200)] 
dplayx: Tests for EnumGroups.

16 years agodplayx: Tests for EnumPlayers.
Ismael Barros [Tue, 5 Aug 2008 01:56:20 +0000 (03:56 +0200)] 
dplayx: Tests for EnumPlayers.

16 years agodplayx: Tests for GroupOwner.
Ismael Barros [Tue, 5 Aug 2008 01:56:28 +0000 (03:56 +0200)] 
dplayx: Tests for GroupOwner.

16 years agodplayx: Tests for CreateGroup.
Ismael Barros [Tue, 5 Aug 2008 01:56:37 +0000 (03:56 +0200)] 
dplayx: Tests for CreateGroup.

16 years agoAdd return statements to avoid gcc warnings.
Gerald Pfeifer [Sun, 10 Aug 2008 22:44:31 +0000 (00:44 +0200)] 
Add return statements to avoid gcc warnings.

16 years agowinhttp: Add some tests for WinHttpAddRequestHeaders.
Hans Leidekker [Wed, 20 Aug 2008 09:37:53 +0000 (11:37 +0200)] 
winhttp: Add some tests for WinHttpAddRequestHeaders.

16 years agowinhttp: Use default values for verb, object and version parameters in WinHttpOpenReq...
Hans Leidekker [Wed, 20 Aug 2008 09:37:17 +0000 (11:37 +0200)] 
winhttp: Use default values for verb, object and version parameters in WinHttpOpenRequest.

16 years agowinhttp: Implement WinHttpQueryHeaders.
Hans Leidekker [Wed, 20 Aug 2008 09:36:23 +0000 (11:36 +0200)] 
winhttp: Implement WinHttpQueryHeaders.

16 years agowinhttp: Implement WinHttpAddRequestHeaders.
Hans Leidekker [Wed, 20 Aug 2008 09:35:39 +0000 (11:35 +0200)] 
winhttp: Implement WinHttpAddRequestHeaders.

16 years agowinhttp: Add a stub implementation for WinHttpSetTimeouts.
Hans Leidekker [Wed, 20 Aug 2008 09:35:15 +0000 (11:35 +0200)] 
winhttp: Add a stub implementation for WinHttpSetTimeouts.

16 years agowinhttp: Deliver status notifications to the application.
Hans Leidekker [Wed, 20 Aug 2008 09:34:34 +0000 (11:34 +0200)] 
winhttp: Deliver status notifications to the application.

16 years agouser32: Test what FindWindow does when window isn't found.
Austin English [Fri, 15 Aug 2008 17:13:13 +0000 (12:13 -0500)] 
user32: Test what FindWindow does when window isn't found.

16 years agouser32: Implement TPM_*ALIGN flags.
Vincent Povirk [Mon, 18 Aug 2008 17:16:48 +0000 (12:16 -0500)] 
user32: Implement TPM_*ALIGN flags.

16 years agomstask/test: Conformance test for CreateTrigger.
Roy Shea [Tue, 19 Aug 2008 22:01:07 +0000 (15:01 -0700)] 
mstask/test: Conformance test for CreateTrigger.

16 years agomstask/test: Conformance test for (Set|Get)ApplicationName.
Roy Shea [Tue, 19 Aug 2008 21:58:53 +0000 (14:58 -0700)] 
mstask/test: Conformance test for (Set|Get)ApplicationName.

16 years agowined3d: Fix the unused arg marker.
Stefan Dösinger [Tue, 5 Aug 2008 19:50:56 +0000 (14:50 -0500)] 
wined3d: Fix the unused arg marker.

16 years agoddraw: Set the bitdepth on YUV formats.
Stefan Dösinger [Fri, 1 Aug 2008 18:37:56 +0000 (13:37 -0500)] 
ddraw: Set the bitdepth on YUV formats.

16 years agowined3d: Keep track of the last used device.
Stefan Dösinger [Thu, 31 Jul 2008 18:29:50 +0000 (13:29 -0500)] 
wined3d: Keep track of the last used device.

16 years agoddraw: Do not set the rendertarget flag just because of the backbuffer flag.
Stefan Dösinger [Thu, 31 Jul 2008 22:17:27 +0000 (17:17 -0500)] 
ddraw: Do not set the rendertarget flag just because of the backbuffer flag.

There are also overlay backbuffers, which aren't render targets. The
primarysurface and d3ddevice cap flags should be enough here.

16 years agowined3d: Implement YUV emulation with GL_ARB_fragment_program.
Stefan Dösinger [Tue, 19 Aug 2008 16:09:45 +0000 (11:09 -0500)] 
wined3d: Implement YUV emulation with GL_ARB_fragment_program.

16 years agowined3d: Ask the ffp/shader/blit implementation about format support.
Stefan Dösinger [Thu, 7 Aug 2008 19:51:35 +0000 (14:51 -0500)] 
wined3d: Ask the ffp/shader/blit implementation about format support.

If a format is not supported natively by opengl, a shader may be able
to convert it. Up to now, CheckDeviceFormat had magic knowldge which
GL extensions lead to which supported format. This patch adds
functions that allow CheckDeviceFormat to ask the actual
implementation for its capabilities.

16 years agowined3d: Test formats for surface support.
Stefan Dösinger [Thu, 7 Aug 2008 19:36:55 +0000 (14:36 -0500)] 
wined3d: Test formats for surface support.

16 years agowined3d: Start a framework for color conversion shaders in blits.
Stefan Dösinger [Fri, 1 Aug 2008 18:21:10 +0000 (13:21 -0500)] 
wined3d: Start a framework for color conversion shaders in blits.

16 years agowined3d: Support YUV formats with GL_APPLE_ycbcr_422.
Stefan Dösinger [Tue, 19 Aug 2008 15:55:42 +0000 (10:55 -0500)] 
wined3d: Support YUV formats with GL_APPLE_ycbcr_422.

16 years agouninstaller: Remove GUI portion of Wine uninstaller.
Owen Rudge [Tue, 19 Aug 2008 20:12:21 +0000 (21:12 +0100)] 
uninstaller: Remove GUI portion of Wine uninstaller.

16 years agoregedit: Convert clipboard handling to unicode.
Alexander Nicolaysen Sørnes [Sun, 10 Aug 2008 11:52:44 +0000 (13:52 +0200)] 
regedit: Convert clipboard handling to unicode.

16 years agoregedit: Convert printing&help to unicode.
Alexander Nicolaysen Sørnes [Sun, 10 Aug 2008 10:43:06 +0000 (12:43 +0200)] 
regedit: Convert printing&help to unicode.

16 years agoregedit: Convert deletion to unicode.
Alexander Nicolaysen Sørnes [Sat, 9 Aug 2008 00:25:34 +0000 (02:25 +0200)] 
regedit: Convert deletion to unicode.

16 years agomsvcmaker: Fix msvc project file generation under MinGW32.
Hongbo Ni [Wed, 6 Aug 2008 00:20:40 +0000 (10:20 +1000)] 
msvcmaker: Fix msvc project file generation under MinGW32.

When converting a makefile to a msvc .dsp file, if a line is ended with
a back slash, it will be joined with next line. This patch changes the
joining character from '\n' to a space in order to fix the bug of
running MinGW32 on Windows.

16 years agowined3d: Fix BltOverride regression.
Roderick Colenbrander [Tue, 19 Aug 2008 20:21:37 +0000 (20:21 +0000)] 
wined3d: Fix BltOverride regression.

16 years agowinealsa.drv: Fix a typo in an error message.
Detlef Riekenberg [Tue, 19 Aug 2008 21:45:47 +0000 (23:45 +0200)] 
winealsa.drv: Fix a typo in an error message.

16 years agod3dxof: Remove unreachable break after return (Smatch).
Michael Stefaniuc [Tue, 19 Aug 2008 19:33:33 +0000 (21:33 +0200)] 
d3dxof: Remove unreachable break after return (Smatch).

16 years agoinclude: Added defines used by TASK_TRIGGER members.
Roy Shea [Tue, 19 Aug 2008 17:55:13 +0000 (10:55 -0700)] 
include: Added defines used by TASK_TRIGGER members.

16 years agoinclude: Add task scheduler specific error codes.
Roy Shea [Tue, 19 Aug 2008 17:54:43 +0000 (10:54 -0700)] 
include: Add task scheduler specific error codes.

16 years agoappwiz.cpl: Add Norwegian Bokmål translation.
Alexander Nicolaysen Sørnes [Sun, 17 Aug 2008 18:09:47 +0000 (20:09 +0200)] 
appwiz.cpl: Add Norwegian Bokmål translation.

16 years agosecur32: Reserved3 / Reserved4 are actually EncryptMessage / DecryptMessage.
H. Verbeet [Tue, 19 Aug 2008 15:50:53 +0000 (17:50 +0200)] 
secur32: Reserved3 / Reserved4 are actually EncryptMessage / DecryptMessage.

16 years agod3d8: Don't store shader_handle's.
H. Verbeet [Tue, 19 Aug 2008 15:50:12 +0000 (17:50 +0200)] 
d3d8: Don't store shader_handle's.

They're not stable across table resizes.

16 years agowined3d: Move creating a texture id from PreLoad to BindTexture.
H. Verbeet [Tue, 19 Aug 2008 15:49:07 +0000 (17:49 +0200)] 
wined3d: Move creating a texture id from PreLoad to BindTexture.

This is consistent with BindTexture in basetexture/texture/etc. and has the
added benefit that it makes LoadLocation work properly.

16 years agocrypt32: Always set *pcbStructInfo.
Juan Lang [Mon, 18 Aug 2008 19:11:15 +0000 (12:11 -0700)] 
crypt32: Always set *pcbStructInfo.

16 years agocrypt32: Allow CMS fields to be set when opening a signed message to encode.
Juan Lang [Fri, 15 Aug 2008 00:34:07 +0000 (17:34 -0700)] 
crypt32: Allow CMS fields to be set when opening a signed message to encode.

16 years agocrypt32: Allow messages to be opened when compiled with CMSG_SIGNED_ENCODE_INFO_HAS_C...
Juan Lang [Fri, 15 Aug 2008 00:21:41 +0000 (17:21 -0700)] 
crypt32: Allow messages to be opened when compiled with CMSG_SIGNED_ENCODE_INFO_HAS_CMS_FIELDS if CMS fields aren't actually used.

16 years agocrypt32: Allow messages to be opened when compiled with CMSG_SIGNER_ENCODE_INFO_HAS_C...
Juan Lang [Fri, 15 Aug 2008 00:19:19 +0000 (17:19 -0700)] 
crypt32: Allow messages to be opened when compiled with CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS if CMS fields aren't actually used.

16 years agocrypt32: Implement decoding CMSG_CMS_SIGNER_INFO.
Juan Lang [Thu, 14 Aug 2008 19:51:37 +0000 (12:51 -0700)] 
crypt32: Implement decoding CMSG_CMS_SIGNER_INFO.

16 years agocrypt32: Implement CMSG_CMS_SIGNER_INFO encoding.
Juan Lang [Thu, 14 Aug 2008 19:50:57 +0000 (12:50 -0700)] 
crypt32: Implement CMSG_CMS_SIGNER_INFO encoding.

16 years agocrypt32: Add tests for encoding/decoding CMSG_CMS_SIGNER_INFO.
Juan Lang [Thu, 14 Aug 2008 19:50:18 +0000 (12:50 -0700)] 
crypt32: Add tests for encoding/decoding CMSG_CMS_SIGNER_INFO.

16 years agowincrypt.h: Add more missing definitions.
Juan Lang [Thu, 14 Aug 2008 15:24:38 +0000 (08:24 -0700)] 
wincrypt.h: Add more missing definitions.

16 years agokernel32: Fix a typo.
Alexander Morozov [Thu, 14 Aug 2008 11:05:40 +0000 (15:05 +0400)] 
kernel32: Fix a typo.