Compare commits

...

54 Commits

Author SHA1 Message Date
Erich E. Hoover
52453428f2 Release 1.7.25. 2014-08-24 11:12:20 -06:00
Sebastian Lackner
1c40aa1553 Add missing entry to debian/changelog. 2014-08-23 15:32:45 +02:00
Sebastian Lackner
dad496036d shell32-Default_Path: Fix whitespace errors. 2014-08-23 07:47:26 +02:00
Sebastian Lackner
fe0aa3f54d server-OpenProcess: Update to latest version of the patch. 2014-08-23 07:39:07 +02:00
Sebastian Lackner
26b0797bcb Rewrite part of server-CreateProcess_ACLs in order to fix incorrect error codes and memory leaks. 2014-08-23 06:33:01 +02:00
Sebastian Lackner
bba9e118d9 server-CreateProcess_ACLs: Remove whitespace issues, remove duplicate subject line. 2014-08-23 03:29:30 +02:00
Sebastian Lackner
0bc7ba983c Add some additional changes to debian/changelog. 2014-08-23 03:00:32 +02:00
Sebastian Lackner
a445ccf24f Modify some bug descriptions. 2014-08-23 02:47:55 +02:00
Sebastian Lackner
8680d3ff32 Rename server-Process -> server-OpenProcess to avoid confusion with other patchsets. 2014-08-23 02:31:17 +02:00
Sebastian Lackner
11341b00f6 riched20-IText_Interface: Update patches. 2014-08-23 02:15:02 +02:00
Sebastian Lackner
0f9f7dc428 Add patch to implement KF_FLAG_DEFAULT_PATH for SHGetKnownFolderPath. 2014-08-23 01:40:17 +02:00
Erich E. Hoover
e2f3ff5808 Add broken test check back for GetVolumePathName patches. 2014-08-22 14:51:50 -06:00
Erich E. Hoover
3156ce7409 Fix whitespace warning in GetVolumePathName patch. 2014-08-22 14:14:50 -06:00
Erich E. Hoover
a7f0cf9bc7 Add missing apc argument to async TransmitFile. 2014-08-22 13:34:35 -06:00
Erich E. Hoover
1ccb2f1d1e Update TransmitFile sent bytes to be the actual number sent instead of the attempted bytes. 2014-08-22 13:29:56 -06:00
Erich E. Hoover
19ff1ed17c Update TransmitFile WSAENOTSOCK error check and fix whitespace warnings. 2014-08-22 13:26:51 -06:00
Sebastian Lackner
be50941de6 kernel-Process: Attempt to fix test failures in kernel32/loader.c. 2014-08-22 13:57:51 +02:00
Sebastian Lackner
3029f615d2 Remove patches for SetNamedPipeHandleState implementation (accepted upstream). 2014-08-21 23:08:37 +02:00
Erich E. Hoover
3385c78c50 Removed patch with stub for DwmInvalidateIconicBitmaps (accepted upstream). 2014-08-21 14:48:27 -06:00
Erich E. Hoover
9a0ba52594 Remove extra whitespace from GetSystemTimes patches. 2014-08-21 09:23:49 -06:00
Erich E. Hoover
717300b790 Update the GetSystemTimes tests to get rid of type warnings on 64-bit. 2014-08-21 00:07:25 -06:00
Michael MĂĽller
16b62f6817 Add patch for linker version in PE header. 2014-08-21 06:01:23 +02:00
Sebastian Lackner
2ae83d8d8e kernel32-Named_Pipe: Remove patches 2-4 (accepted upstream). 2014-08-20 22:07:05 +02:00
Michael MĂĽller
5f08af6906 Add patch to move NtProtectVirtualMemory and NtCreateSection to separate pages. 2014-08-20 19:30:14 +02:00
Sebastian Lackner
13f3004ee7 Replace SetNamedPipeHandleState patch with proper implementation. 2014-08-18 23:18:59 +02:00
Erich E. Hoover
183dabb19e Fix the maintainer email address in the control file. 2014-08-18 11:27:16 -06:00
Sebastian Lackner
e93cad00c3 Add patch to fix issues with dragimage in ImageLists. 2014-08-18 00:56:24 +02:00
Sebastian Lackner
6f776b5d61 Remove patch to update gl_drawable for embedded windows (deprecated). 2014-08-18 00:11:47 +02:00
Erich E. Hoover
534422e141 Another attempt to fix the random multithreaded dependency compilation issue with wtypes.h. 2014-08-17 15:26:59 -06:00
Michael MĂĽller
533f33055c Add patch to better group running wine programs in WMs. 2014-08-16 01:22:35 +02:00
Michael MĂĽller
96d0db4493 Add patch for BCryptGetFipsAlgorithmMode. 2014-08-16 00:26:42 +02:00
Michael MĂĽller
d8b9dc9636 Add OpenProcess server patch. 2014-08-14 03:28:26 +02:00
Sebastian Lackner
03b7601b4c Add patch to fix issues with msi/ITERATE_MoveFiles. 2014-08-14 01:43:30 +02:00
Sebastian Lackner
046a795ef1 Updated patches in riched20-IText_Interface. 2014-08-13 03:13:36 +02:00
Sebastian Lackner
69e14bd36b patchupdate.py: Ignore 'git show' errors when tag not present yet (normal when doing a new release). 2014-08-13 02:45:21 +02:00
Sebastian Lackner
933eca8d41 README.md: Fix typo. 2014-08-13 02:26:19 +02:00
Sebastian Lackner
7122276309 README.md: Improve formatting of headlines for fixed bugs. 2014-08-13 02:22:57 +02:00
Sebastian Lackner
786742620a Change formulation in definition files to 'Support for ...' for newly added features. 2014-08-13 02:15:22 +02:00
Sebastian Lackner
731a458cbe patchupdate.py: Instead of showing the current fixes in README.md, also show information about last stable version. 2014-08-13 01:59:01 +02:00
Sebastian Lackner
536e2fe646 patchupdate.py: Move code to read definition file into a separate function. 2014-08-13 00:13:36 +02:00
Sebastian Lackner
e492b4c116 patchupdate.py: Simplify code to query for wine bugs, use short summary in Makefile. 2014-08-12 23:45:39 +02:00
Sebastian Lackner
15815c9994 patchupdate.py: Merge functions to generate README.md and DEVELOPER.md. 2014-08-12 23:11:15 +02:00
Michael MĂĽller
06af5d9963 Add patch for GetFinalPathNameByHandle. 2014-08-12 20:30:54 +02:00
Sebastian Lackner
4c1c303b62 gitapply.sh: Fix patching issues on Gentoo. 2014-08-12 03:34:17 +02:00
Erich E. Hoover
5dc4aa102e Minor update to broken nVidia RandR detection patch. 2014-08-11 17:59:17 -06:00
Erich E. Hoover
4bc20dfb8e Removed patch to return empty D3D hardware flags for RGB device enumeration (accepted upstream). 2014-08-11 16:23:25 -06:00
Sebastian Lackner
43bba1b164 Update patches for riched20-IText_Interface. 2014-08-11 05:04:55 +02:00
Erich E. Hoover
4aa699f6ca Added patch with stub for DwmInvalidateIconicBitmaps. 2014-08-09 16:35:55 -06:00
Erich E. Hoover
45403d8669 Add a dependency on libpcap to the debian control file. 2014-08-09 14:06:35 -06:00
Erich E. Hoover
850aa4fc6b Add explicit include on wtypes.h in the address change patchset (should fix multithreaded compile). 2014-08-09 13:46:05 -06:00
Erich E. Hoover
ea409cf4fa Added patch to better detect broken nVidia RandR 1.2 support. 2014-08-09 13:23:58 -06:00
slackner
d021d173a9 Fix link in LICENSE.md. 2014-08-09 18:13:34 +02:00
Erich E. Hoover
b038fac54d Added Courier Prime (OFLv1.1) as a Courier New replacement. 2014-08-09 09:29:01 -06:00
Erich E. Hoover
87c4528445 Add missing dash in README fix info. 2014-08-09 00:04:18 -06:00
78 changed files with 43456 additions and 1396 deletions

View File

@@ -32,15 +32,15 @@ before proceeding.
As the first step please grab the latest Wine source:
```bash
wget http://prdownloads.sourceforge.net/wine/wine-1.7.24.tar.bz2
wget https://github.com/compholio/wine-compholio-daily/archive/v1.7.24.tar.gz
wget http://prdownloads.sourceforge.net/wine/wine-1.7.25.tar.bz2
wget https://github.com/compholio/wine-compholio-daily/archive/v1.7.25.tar.gz
```
Extract the archives:
```bash
tar xvjf wine-1*.tar.bz2
cd wine-1*
tar xvzf ../v1.7.24.tar.gz --strip-components 1
tar xvzf ../v1.7.25.tar.gz --strip-components 1
```
And apply the patches:

View File

@@ -42,7 +42,10 @@ any way and are simply installed for end-user convenience.
replacement. This file is licensed under both the APACHE 2 license and
[GPLv3](#gnu-gpl-version-3).
* `0003-fonts-Add-Courier-Prime-as-a-Courier-New-replacement.patch`:
The **Courier Prime** font is used as a Courier New replacement.
This file is licensed under the
[OFLv1.1](#ofl-version-11).
Full license texts
==================
@@ -1300,3 +1303,103 @@ the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
```
OFL, Version 1.1
---------------------
```
Copyright (c) 2013, Quote-Unquote Apps (http://quoteunquoteapps.com),
with Reserved Font Name Courier Prime.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
```

View File

@@ -13,56 +13,61 @@ which are not present in regular wine, and always report such issues to us
Included bugfixes and improvements
----------------------------------
Wine-Compholio contains fixes for the following Wine bugs:
**Bugs fixed in Wine-Compholio 1.7.25 [53]:**
* ATL IOCS data should not be stored in GWLP_USERDATA ([Wine Bug #21767](http://bugs.winehq.org/show_bug.cgi?id=21767 "JLC's Internet TV crashes on startup"))
* Add Dynamic DST exceptions for Israel Standard Time ([Wine Bug #36374](http://bugs.winehq.org/show_bug.cgi?id=36374 "Israel timezone handled incorrectly"))
* Add implementation of WTSEnumerateProcessesW ([Wine Bug #29903](http://bugs.winehq.org/show_bug.cgi?id=29903 "Some Microsoft debuggers fail to enumerate processes due to wtsapi32.WTSEnumerateProcessesW() being a stub (Microsoft Visual Studio 2005, DbgCLR from .NET 2.0 SDK)"))
* Add support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](http://bugs.winehq.org/show_bug.cgi?id=24721 "Explorer++ crashes when choosing to view large icons or extra large icons"))
* Add default ACLs for user shell folders
* Allow special characters in pipe names ([Wine Bug #28995](http://bugs.winehq.org/show_bug.cgi?id=28995 "Unable to use named pipes with \">\" character in the name"))
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](http://bugs.winehq.org/show_bug.cgi?id=30639 "Audio stuttering and performance drops in Star Wolves 3"))
* Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](http://bugs.winehq.org/show_bug.cgi?id=33162 "Acrobat Reader 11 crashes on start (native API application virtualization, NtProtectVirtualMemory removes execute page protection on its own code)"))
* Fix ITERATE_MoveFiles when no source- and destname is specified ([Wine Bug #10085](http://bugs.winehq.org/show_bug.cgi?id=10085 "Adobe Bridge CS2 complains that it can't start due to licensing restrictions (affects photoshop)"))
* Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](http://bugs.winehq.org/show_bug.cgi?id=10767 "lstrcmp and others do not compare punctuation characters correctly"))
* Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](http://bugs.winehq.org/show_bug.cgi?id=16550 "ConnectNamedPort should never return OK in overlapped mode (affects chromium ui_tests.exe)"))
* Fix for programs leaking wndproc slots ([Wine Bug #32451](http://bugs.winehq.org/show_bug.cgi?id=32451 "Multiple GOG.com installer bundles show a broken/unresponsive dialog window during installation (installer process running out of wndproc slots)"))
* Fix issue with invisible dragimages in ImageList ([Wine Bug #36761](http://bugs.winehq.org/show_bug.cgi?id=36761 "Imagelist invisible dragimage"))
* Games For Windows Live 1.x expects a valid linker version in the PE header ([Wine Bug #28768](http://bugs.winehq.org/show_bug.cgi?id=28768 "Multiple GFWL (Games For Windows Live) 1.x games crash on startup (Kane & Lynch: Dead Men)"))
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](http://bugs.winehq.org/show_bug.cgi?id=15980 "Rhapsody 2 crashes on startup (GetSecurityInfo returns NULL DACL for process object)"))
* Implement ITextDocument_fnRange function ([Wine Bug #12458](http://bugs.winehq.org/show_bug.cgi?id=12458 "Multiple apps fail due to RichEdit ITextDocument_fnRange stub (MySQL Workbench, BlitzMaxDemo137)"))
* Implement LoadIconMetric function ([Wine Bug #35375](http://bugs.winehq.org/show_bug.cgi?id=35375 "Multiple applications need Vista+ API COMCTL32.dll.380 a.k.a. 'LoadIconMetric' (Solidworks 2013 systray monitor, Microsoft One/SkyDrive)"))
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](http://bugs.winehq.org/show_bug.cgi?id=13829 "Wine does not have CJK fonts"))
* Implement an Arial replacement font ([Wine Bug #32323](http://bugs.winehq.org/show_bug.cgi?id=32323 "Netflix (Silverlight 4.x) and several .NET Framework 3.x/4.0 WPF apps require either Arial or Verdana to be installed"))
* Lockfree algorithm for filedescriptor cache (improves file access speed)
* Make it possible to change media center / tablet pc status ([Wine Bug #18732](http://bugs.winehq.org/show_bug.cgi?id=18732 "Microsoft Experience Pack for Tablet PC 1 refuses to install"))
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](http://bugs.winehq.org/show_bug.cgi?id=7115 "Need for Speed III installer fails in Win9X mode, reporting \"Could not get 'HardWareKey' value\" (active PnP device keys in 'HKEY_DYN_DATA\\\\Config Manager\\\\Enum' missing)"))
* Old games cannot locate software-only renderer ([Wine Bug #32581](http://bugs.winehq.org/show_bug.cgi?id=32581 "Invalid dwFlags of reference rasterizer's HAL D3DDEVICEDESC"))
* Other Pipelight-specific enhancements
* Prevent window managers from grouping all wine programs together ([Wine Bug #32699](http://bugs.winehq.org/show_bug.cgi?id=32699 "Add StartupWMClass to .desktop files."))
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
* Return an error when trying to open a terminated process ([Wine Bug #37087](http://bugs.winehq.org/show_bug.cgi?id=37087 "Gothic 2 english demo fails with 'Conflict: a hook process was found. Please deactivate all Antivirus and Anti-Trojan programs and debuggers.'"))
* Return correct IMediaSeeking stream positions in quartz ([Wine Bug #23174](http://bugs.winehq.org/show_bug.cgi?id=23174 "Fallout 3: Diologue and Video/sound issues"))
* SO_CONNECT_TIME returns the appropriate time
* Set ldr.EntryPoint for main executable ([Wine Bug #33034](http://bugs.winehq.org/show_bug.cgi?id=33034 "Many GFWL (Games For Windows Live) 1.x/2.x/3.x games crash or exit silently on startup (DiRT 2/3, GTA IV Steam)"))
* Support for AllocateAndGetTcpExTableFromStack ([Wine Bug #34372](http://bugs.winehq.org/show_bug.cgi?id=34372 "Add missing function AllocateAndGetTcpExTableFromStack() to iphlpapi.dll"))
* Support for BCryptGetFipsAlgorithmMode ([Wine Bug #32194](http://bugs.winehq.org/show_bug.cgi?id=32194 "Multiple games and applications need bcrypt.dll.BCryptGetFipsAlgorithmMode (Chess Position Trainer, Terraria, .NET System.Security.Cryptography)"))
* Support for Dynamic DST (daylight saving time) information in registry
* Support for GetFinalPathNameByHandle ([Wine Bug #36073](http://bugs.winehq.org/show_bug.cgi?id=36073 "OneDrive crashes on unimplemented function KERNEL32.dll.GetFinalPathNameByHandleW"))
* Support for GetSystemTimes ([Wine Bug #19813](http://bugs.winehq.org/show_bug.cgi?id=19813 "Voddler needs GetSystemTimes to run"))
* Support for GetVolumePathName
* Support for ITextDocument_fnRange function ([Wine Bug #12458](http://bugs.winehq.org/show_bug.cgi?id=12458 "Multiple apps fail due to RichEdit ITextDocument_fnRange stub (MySQL Workbench, BlitzMaxDemo137)"))
* Support for ITextRange, ITextFont and ITextPara ([Wine Bug #18303](http://bugs.winehq.org/show_bug.cgi?id=18303 "Adobe Acrobat Pro 7: Crashes when selecting the \"edit\" menu while having a file open."))
* Support for Junction Points ([Wine Bug #12401](http://bugs.winehq.org/show_bug.cgi?id=12401 "Support junction points, i.e. DeviceIoCtl(FSCTL_SET_REPARSE_POINT/FSCTL_GET_REPARSE_POINT)"))
* Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath ([Wine Bug #30385](http://bugs.winehq.org/show_bug.cgi?id=30385 "Windows Live Essentials 2011 web installer fails to download packages in background (shell32.SHGetKnownFolderPath missing support for KF_FLAG_DEFAULT_PATH)"))
* Support for LoadIconMetric ([Wine Bug #35375](http://bugs.winehq.org/show_bug.cgi?id=35375 "Multiple applications need Vista+ API COMCTL32.dll.380 a.k.a. 'LoadIconMetric' (Solidworks 2013 systray monitor, Microsoft One/SkyDrive)"))
* Support for NtSetInformationFile class FileDispositionInformation ([Wine Bug #30397](http://bugs.winehq.org/show_bug.cgi?id=30397 "Multiple applications need support for NtSetInformationFile class FileDispositionInformation (Cygwin installer, Stylizer 5.x Visual CSS editor, Spoon Studio 2011 (ex Xenocode) application sandboxing scheme)"))
* Support for PulseAudio backend for audio ([Wine Bug #10495](http://bugs.winehq.org/show_bug.cgi?id=10495 "Wine should support PulseAudio"))
* Support for SHCreateSessionKey ([Wine Bug #35630](http://bugs.winehq.org/show_bug.cgi?id=35630 "SHCreateSessionKey is unimplemented"))
* Support for TOOLTIPS_GetTipText edge cases ([Wine Bug #30648](http://bugs.winehq.org/show_bug.cgi?id=30648 "SEGA Genesis / Mega Drive Classic Collection (Steam) crashes on startup"))
* Support for TransmitFile ([Wine Bug #5048](http://bugs.winehq.org/show_bug.cgi?id=5048 "Multiple applications and games need support for ws2_32 SIO_GET_EXTENSION_FUNCTION_POINTER TransmitFile (WSAID_TRANSMITFILE)"))
* Support for WTSEnumerateProcessesW ([Wine Bug #29903](http://bugs.winehq.org/show_bug.cgi?id=29903 "Some Microsoft debuggers fail to enumerate processes due to wtsapi32.WTSEnumerateProcessesW() being a stub (Microsoft Visual Studio 2005, DbgCLR from .NET 2.0 SDK)"))
* Support for [Get|Set]SystemFileCacheSize ([Wine Bug #35886](http://bugs.winehq.org/show_bug.cgi?id=35886 "Lotus Notes 9 'cacheset.exe' utility needs KERNEL32.dll.SetSystemFileCacheSize"))
* Support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](http://bugs.winehq.org/show_bug.cgi?id=24721 "Explorer++ crashes when choosing to view large icons or extra large icons"))
* Support for inherited file ACLs ([Wine Bug #34406](http://bugs.winehq.org/show_bug.cgi?id=34406 "Finale Notepad 2012 doesn't copy/create user files on program start"))
* Support for interface change notifications ([Wine Bug #32328](http://bugs.winehq.org/show_bug.cgi?id=32328 "Many .NET and Silverlight applications require SIO_ADDRESS_LIST_CHANGE for interface change notifications"))
* Support for process ACLs ([Wine Bug #22006](http://bugs.winehq.org/show_bug.cgi?id=22006 "OpenProcess does not enforce ACL"))
* Support for stored file ACLs ([Wine Bug #31858](http://bugs.winehq.org/show_bug.cgi?id=31858 "Netflix on Firefox fails with Internet Connection Problem when loading bar is at 99%"))
* Support for ws2_32.inet_pton ([Wine Bug #36713](http://bugs.winehq.org/show_bug.cgi?id=36713 "Watch_Dogs requires ws2_32.inet_pton"))
* Use manual relay for RunDLL_CallEntry16 in shell32 ([Wine Bug #23033](http://bugs.winehq.org/show_bug.cgi?id=23033 "Tages Protection v5.x: games report \"DLL not found shell.dll16.dll\" (Runaway 2: The Dream Of The Turtle, ...)"))
* Workaround for TransactNamedPipe not being supported ([Wine Bug #17273](http://bugs.winehq.org/show_bug.cgi?id=17273 "Many apps and games need SetNamedPipeHandleState implementation (support for named pipe message mode)(FireFox+Flash, Win8/NET 4.x SDK/vcrun2012, WiX installers)"))
Besides that the following additional changes are included:
* Add default ACLs for user shell folders
* Add support for Dynamic DST (daylight saving time) information in registry
* Lockfree algorithm for filedescriptor cache (improves file access speed)
* Other Pipelight specific enhancements
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
* SO_CONNECT_TIME returns the appropriate time
* Support for GetVolumePathName
* Workaround for shlwapi URLs with relative paths
* XEMBED support for embedding Wine windows inside Linux applications
* nVidia driver for high-end laptop cards does not list all supported resolutions
How to install Wine-Compholio

24
debian/changelog vendored
View File

@@ -1,3 +1,27 @@
wine-compholio (1.7.25) unstable; urgency=low
* Improve generation of README.md on patch update.
* Updated patches for riched20 IText* Interface.
* Fixed some issues in the patches for TransmitFile.
* Fixed some issues in the patches for CreateProcess ACLs.
* Fixed issue with gitapply.sh script on Gentoo systems.
* Added patch with stub for DwmInvalidateIconicBitmaps.
* Added Courier Prime (OFLv1.1) as a Courier New replacement.
* Added patch to better detect broken nVidia RandR 1.2 support.
* Added patch to set linker version in PE header.
* Added patch to move NtProtectVirtualMemory and NtCreateSection to separate pages.
* Added patch to fix issues with drag image in ImageLists.
* Added patch with stub for BCryptGetFipsAlgorithmMode.
* Added patch to fix issues with OpenProcess on terminated processes.
* Added patch to fix issues with msi/ITERATE_MoveFiles.
* Added patch to avoid grouping all Wine windows together.
* Added patch to implement KF_FLAG_DEFAULT_PATH for SHGetKnownFolderPath.
* Added patch to implement GetFinalPathNameByHandle.
* Removed patch to update gl_drawable for embedded windows (deprecated).
* Removed patch to return empty D3D hardware flags for RGB device enumeration (accepted upstream).
* Removed patch with stub for DwmInvalidateIconicBitmaps (accepted upstream).
* Removed patch for SetNamedPipeHandleState implementation (accepted upstream).
-- Erich E. Hoover <erich.e.hoover@gmail.com> Sun, 24 Aug 2014 11:09:58 -0600
wine-compholio (1.7.24) unstable; urgency=low
* Various further improvements to the patch system.
* Added patch to implement inet_pton.

3
debian/control vendored
View File

@@ -1,7 +1,7 @@
Source: wine-compholio
Section: otherosfs
Priority: optional
Maintainer: Erich E. Hoover <ehoover@mines.edu>
Maintainer: Erich E. Hoover <erich.e.hoover@gmail.com>
XSBC-Original-Maintainer: Scott Ritchie <scottritchie@ubuntu.com>
Build-Depends: autotools-dev,
autoconf,
@@ -39,6 +39,7 @@ Build-Depends: autotools-dev,
libmpg123-dev,
libncurses5-dev | libncurses-dev,
libopenal-dev (>= 1:1.12) | ubuntu-desktop (<< 1.207),
libpcap-dev,
libpng12-dev,
libpulse-dev,
libsane-dev,

View File

@@ -13,12 +13,6 @@ which are not present in regular wine, and always report such issues to us
Included bugfixes and improvements
----------------------------------
Wine-Compholio contains fixes for the following Wine bugs:
{bugs}
Besides that the following additional changes are included:
{fixes}

View File

@@ -129,6 +129,10 @@ for dependency in awk cut dd du grep gzip hexdump patch sha1sum; do
fi
done
# Workaround for new versions of awk, which assume that we want to use unicode
export LANG=C
export LC_ALL=C
# Decode base85 git data, prepend with a gzip header
awk_decode_b85='
BEGIN{

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -15,4 +15,4 @@ Subject: Implement X11DRV_FLUSH_GDI_DISPLAY ExtEscape command.
Revision: 1
Fixes: Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
Fixes: Other Pipelight specific enhancements
Fixes: Other Pipelight-specific enhancements

View File

@@ -0,0 +1,98 @@
From cdadefc52b0cdab8bc768dd6e494de69e75ae379 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 16 Aug 2014 00:18:06 +0200
Subject: bcrypt: Add semi-stub for BCryptGetFipsAlgorithmMode
---
dlls/bcrypt/bcrypt.spec | 2 +-
dlls/bcrypt/bcrypt_main.c | 11 +++++++++++
dlls/bcrypt/tests/bcrypt.c | 22 ++++++++++++++++++++++
3 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/dlls/bcrypt/bcrypt.spec b/dlls/bcrypt/bcrypt.spec
index 3b154f5..83cdbea 100644
--- a/dlls/bcrypt/bcrypt.spec
+++ b/dlls/bcrypt/bcrypt.spec
@@ -27,7 +27,7 @@
@ stdcall BCryptGenRandom(ptr ptr long long)
@ stub BCryptGenerateKeyPair
@ stub BCryptGenerateSymmetricKey
-@ stub BCryptGetFipsAlgorithmMode
+@ stdcall BCryptGetFipsAlgorithmMode(ptr)
@ stub BCryptGetProperty
@ stub BCryptHashData
@ stub BCryptImportKey
diff --git a/dlls/bcrypt/bcrypt_main.c b/dlls/bcrypt/bcrypt_main.c
index 5ccb9f1..b4c6fad 100644
--- a/dlls/bcrypt/bcrypt_main.c
+++ b/dlls/bcrypt/bcrypt_main.c
@@ -97,3 +97,14 @@ NTSTATUS WINAPI BCryptCloseAlgorithmProvider(BCRYPT_ALG_HANDLE algorithm, DWORD
return STATUS_NOT_IMPLEMENTED;
}
+
+NTSTATUS WINAPI BCryptGetFipsAlgorithmMode(BOOLEAN *enabled)
+{
+ FIXME("%p - semi-stub\n", enabled);
+
+ if (!enabled)
+ return STATUS_INVALID_PARAMETER;
+
+ *enabled = FALSE;
+ return STATUS_SUCCESS;
+}
\ No newline at end of file
diff --git a/dlls/bcrypt/tests/bcrypt.c b/dlls/bcrypt/tests/bcrypt.c
index 288e745..6e183e8 100644
--- a/dlls/bcrypt/tests/bcrypt.c
+++ b/dlls/bcrypt/tests/bcrypt.c
@@ -27,6 +27,7 @@
static NTSTATUS (WINAPI *pBCryptGenRandom)(BCRYPT_ALG_HANDLE hAlgorithm, PUCHAR pbBuffer,
ULONG cbBuffer, ULONG dwFlags);
+static NTSTATUS (WINAPI *pBCryptGetFipsAlgorithmMode)(BOOLEAN *enabled);
static BOOL Init(void)
{
@@ -38,6 +39,7 @@ static BOOL Init(void)
}
pBCryptGenRandom = (void *)GetProcAddress(hbcrypt, "BCryptGenRandom");
+ pBCryptGetFipsAlgorithmMode = (void *)GetProcAddress(hbcrypt, "BCryptGetFipsAlgorithmMode");
return TRUE;
}
@@ -78,10 +80,30 @@ static void test_BCryptGenRandom(void)
ok(memcmp(buffer, buffer + 8, 8), "Expected a random number, got 0\n");
}
+static void test_BCryptGetFipsAlgorithmMode(void)
+{
+ NTSTATUS ret;
+ BOOLEAN enabled;
+
+ if (!pBCryptGetFipsAlgorithmMode)
+ {
+ win_skip("BCryptGetFipsAlgorithmMode is not available\n");
+ return;
+ }
+
+ ret = pBCryptGetFipsAlgorithmMode(&enabled);
+ ok(ret == STATUS_SUCCESS, "Expected STATUS_SUCCESS, got 0x%x\n", ret);
+ ok(!enabled, "Expected FIPS mode to be disabled, but it is enabled\n");
+
+ ret = pBCryptGetFipsAlgorithmMode(NULL);
+ ok(ret == STATUS_INVALID_PARAMETER, "Expected STATUS_INVALID_PARAMETER, got 0x%x\n", ret);
+}
+
START_TEST(bcrypt)
{
if (!Init())
return;
test_BCryptGenRandom();
+ test_BCryptGetFipsAlgorithmMode();
}
--
1.9.1

View File

@@ -0,0 +1,4 @@
Author: Michael MĂĽller
Subject: Add semi-stub for BCryptGetFipsAlgorithmMode.
Revision: 1
Fixes: [32194] Support for BCryptGetFipsAlgorithmMode

View File

@@ -0,0 +1,42 @@
From a79d771501ec85da65e27234972807364e1b29db Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Mon, 18 Aug 2014 00:50:41 +0200
Subject: comctl32: Fix issue that dragimage in ImageList only works for first
four elements.
Patch by ocean04 [at] suomi24 [dot] fi, provided at Wine bug #36761.
---
dlls/comctl32/imagelist.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/imagelist.c b/dlls/comctl32/imagelist.c
index 645068d..f15a0a9 100644
--- a/dlls/comctl32/imagelist.c
+++ b/dlls/comctl32/imagelist.c
@@ -599,6 +599,7 @@ ImageList_BeginDrag (HIMAGELIST himlTrack, INT iTrack,
INT dxHotspot, INT dyHotspot)
{
INT cx, cy;
+ POINT ptSrc;
TRACE("(himlTrack=%p iTrack=%d dx=%d dy=%d)\n", himlTrack, iTrack,
dxHotspot, dyHotspot);
@@ -620,12 +621,13 @@ ImageList_BeginDrag (HIMAGELIST himlTrack, INT iTrack,
InternalDrag.dxHotspot = dxHotspot;
InternalDrag.dyHotspot = dyHotspot;
+ imagelist_point_from_index( himlTrack, iTrack, &ptSrc );
/* copy image */
- BitBlt (InternalDrag.himl->hdcImage, 0, 0, cx, cy, himlTrack->hdcImage, iTrack * cx, 0, SRCCOPY);
+ BitBlt (InternalDrag.himl->hdcImage, 0, 0, cx, cy, himlTrack->hdcImage, ptSrc.x, ptSrc.y, SRCCOPY);
/* copy mask */
- BitBlt (InternalDrag.himl->hdcMask, 0, 0, cx, cy, himlTrack->hdcMask, iTrack * cx, 0, SRCCOPY);
+ BitBlt (InternalDrag.himl->hdcMask, 0, 0, cx, cy, himlTrack->hdcMask, ptSrc.x, ptSrc.y, SRCCOPY);
InternalDrag.himl->cCurImage = 1;
--
1.7.9.5

View File

@@ -0,0 +1,4 @@
Author: Sebastian Lackner
Subject: Fix issue that dragimage in ImageList only works for first four elements.
Revision: 1
Fixes: [36761] Fix issue with invisible dragimages in ImageList

View File

@@ -1,4 +1,4 @@
Author: Michael MĂĽller
Subject: Implement LoadIconMetric function.
Revision: 1
Fixes: [35375] Implement LoadIconMetric function
Fixes: [35375] Support for LoadIconMetric

View File

@@ -1,29 +0,0 @@
From a88740c95d8250e95bf215169896c0eb54a7eb6c Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Sun, 16 Feb 2014 14:14:13 -0700
Subject: ddraw/tests: Remove broken tests of D3DTRANSFORM_UNCLIPPED.
---
dlls/ddraw/tests/d3d.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index 209555a..35987cb 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -1256,12 +1256,6 @@ static void Direct3D1Test(void)
out[i].x, out[i].y, out[i].z, out[i].rhw,
cmp[i].x, cmp[i].y, cmp[i].z, cmp[i].rhw);
}
- for(i = 0; i < sizeof(outH); i++) {
- if(((unsigned char *) outH)[i] != 0xcc) {
- ok(FALSE, "Homogeneous output was generated despite UNCLIPPED flag\n");
- break;
- }
- }
SET_VP_DATA(vp_data);
hr = IDirect3DViewport_SetViewport(Viewport, &vp_data);
--
1.7.9.5

View File

@@ -1,69 +0,0 @@
From 512926550611374900b9117f1c8c0da493b5a031 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
Date: Sun, 16 Feb 2014 14:14:42 -0700
Subject: ddraw: Return empty D3D hardware flags for RGB device enumeration.
---
dlls/ddraw/ddraw.c | 2 ++
dlls/ddraw/tests/d3d.c | 12 ++++++++++++
2 files changed, 14 insertions(+)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 011c115..df74122 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -3683,6 +3683,8 @@ static HRESULT WINAPI d3d3_EnumDevices(IDirect3D3 *iface, LPD3DENUMDEVICESCALLBA
| D3DPTEXTURECAPS_NONPOW2CONDITIONAL | D3DPTEXTURECAPS_PERSPECTIVE);
/* RGB, RAMP and MMX devices have a HAL dcmColorModel of 0 */
hal_desc.dcmColorModel = 0;
+ /* RGB, RAMP and MMX devices cannot report HAL hardware flags */
+ hal_desc.dwFlags = 0;
hr = callback((GUID *)&IID_IDirect3DRGBDevice, reference_description,
device_name, &hal_desc, &hel_desc, context);
diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index 35987cb..64bd0b9 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -537,12 +537,18 @@ static HRESULT WINAPI enumDevicesCallback(GUID *Guid, char *DeviceDescription,
ok(hal->dcmColorModel == 0, "RGB Device %u hal caps has colormodel %u\n", ver, hal->dcmColorModel);
ok(hel->dcmColorModel == D3DCOLOR_RGB, "RGB Device %u hel caps has colormodel %u\n", ver, hel->dcmColorModel);
+
+ ok(hal->dwFlags == 0, "RGB Device %u hal caps has hardware flags %x\n", ver, hal->dwFlags);
+ ok(hel->dwFlags != 0, "RGB Device %u hel caps has hardware flags %x\n", ver, hel->dwFlags);
}
else if(IsEqualGUID(&IID_IDirect3DHALDevice, Guid))
{
trace("HAL Device %d\n", ver);
ok(hal->dcmColorModel == D3DCOLOR_RGB, "HAL Device %u hal caps has colormodel %u\n", ver, hel->dcmColorModel);
ok(hel->dcmColorModel == 0, "HAL Device %u hel caps has colormodel %u\n", ver, hel->dcmColorModel);
+
+ ok(hal->dwFlags != 0, "HAL Device %u hal caps has hardware flags %x\n", ver, hal->dwFlags);
+ ok(hel->dwFlags != 0, "HAL Device %u hel caps has hardware flags %x\n", ver, hel->dwFlags);
}
else if(IsEqualGUID(&IID_IDirect3DRefDevice, Guid))
{
@@ -587,6 +593,9 @@ static HRESULT WINAPI enumDevicesCallback(GUID *Guid, char *DeviceDescription,
ok(hal->dcmColorModel == 0, "Ramp Device %u hal caps has colormodel %u\n", ver, hal->dcmColorModel);
ok(hel->dcmColorModel == D3DCOLOR_MONO, "Ramp Device %u hel caps has colormodel %u\n",
ver, hel->dcmColorModel);
+
+ ok(hal->dwFlags == 0, "Ramp Device %u hal caps has hardware flags %x\n", ver, hal->dwFlags);
+ ok(hel->dwFlags != 0, "Ramp Device %u hel caps has hardware flags %x\n", ver, hel->dwFlags);
}
else if(IsEqualGUID(&IID_IDirect3DMMXDevice, Guid))
{
@@ -610,6 +619,9 @@ static HRESULT WINAPI enumDevicesCallback(GUID *Guid, char *DeviceDescription,
ok(hal->dcmColorModel == 0, "MMX Device %u hal caps has colormodel %u\n", ver, hal->dcmColorModel);
ok(hel->dcmColorModel == D3DCOLOR_RGB, "MMX Device %u hel caps has colormodel %u\n", ver, hel->dcmColorModel);
+
+ ok(hal->dwFlags == 0, "MMX Device %u hal caps has hardware flags %x\n", ver, hal->dwFlags);
+ ok(hel->dwFlags != 0, "MMX Device %u hel caps has hardware flags %x\n", ver, hel->dwFlags);
}
else
{
--
1.7.9.5

View File

@@ -1,4 +0,0 @@
Author: Erich E. Hoover
Subject: Return empty D3D hardware flags for HEL device enumeration.
Revision: 1
Fixes: [32581] Old games cannot locate software-only renderer

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,237 @@
From 5301ca38d5f079f106616c2f629464de101bd8aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 12 Aug 2014 20:24:14 +0200
Subject: kernel32: Implement GetFinalPathNameByHandle.
---
dlls/kernel32/file.c | 182 ++++++++++++++++++++++++++++++++++++++++++++
dlls/kernel32/kernel32.spec | 2 +
include/fileapi.h | 8 ++
3 files changed, 192 insertions(+)
diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
index 412659b..eb17abb 100644
--- a/dlls/kernel32/file.c
+++ b/dlls/kernel32/file.c
@@ -2810,3 +2810,185 @@ DWORD WINAPI K32GetDeviceDriverFileNameW(void *image_base, LPWSTR file_name, DWO
return 0;
}
+
+/***********************************************************************
+ * GetFinalPathNameByHandleW (KERNEL32.@)
+ */
+DWORD WINAPI GetFinalPathNameByHandleW(HANDLE file, LPWSTR path, DWORD charcount, DWORD flags)
+{
+ WCHAR buffer[sizeof(OBJECT_NAME_INFORMATION) + MAX_PATH + 1];
+ OBJECT_NAME_INFORMATION *info = (OBJECT_NAME_INFORMATION*)&buffer;
+ WCHAR drive_part[MAX_PATH];
+ DWORD drive_part_len;
+ NTSTATUS status;
+ DWORD result = 0;
+ ULONG dummy;
+ WCHAR *ptr;
+
+ TRACE( "(%p,%p,%d,%x)\n", file, path, charcount, flags );
+
+ /* check for invalid arguments */
+ if (!path)
+ {
+ SetLastError( ERROR_INVALID_PARAMETER );
+ return 0;
+ }
+ else if (file == INVALID_HANDLE_VALUE)
+ {
+ SetLastError( ERROR_INVALID_HANDLE );
+ return 0;
+ }
+ else if (flags & ~(FILE_NAME_OPENED | VOLUME_NAME_GUID | VOLUME_NAME_NONE | VOLUME_NAME_NT))
+ {
+ WARN("Invalid or unsupported flags: %x\n", flags);
+ SetLastError( ERROR_INVALID_PARAMETER );
+ return 0;
+ }
+
+ /* get object name */
+ status = NtQueryObject( file, ObjectNameInformation, &buffer, sizeof(buffer) - sizeof(WCHAR), &dummy );
+ if (status != STATUS_SUCCESS)
+ {
+ SetLastError( RtlNtStatusToDosError( status ) );
+ return 0;
+ }
+ else if (info->Name.Length < 4 * sizeof(WCHAR) || info->Name.Buffer[0] != '\\' ||
+ info->Name.Buffer[1] != '?' || info->Name.Buffer[2] != '?' || info->Name.Buffer[3] != '\\' )
+ {
+ FIXME("Unexpected object name: %s\n", debugstr_wn(info->Name.Buffer, info->Name.Length / sizeof(WCHAR)));
+ SetLastError( ERROR_GEN_FAILURE );
+ return 0;
+ }
+
+ /* add terminating null character, remove "\\??\\" */
+ info->Name.Buffer[info->Name.Length / sizeof(WCHAR)] = 0;
+ info->Name.Length -= 4 * sizeof(WCHAR);
+ info->Name.Buffer += 4;
+
+ /* FILE_NAME_OPENED is not supported yet, and would require Wineserver changes */
+ if (flags & FILE_NAME_OPENED)
+ {
+ FIXME("FILE_NAME_OPENED not supported\n");
+ flags &= ~FILE_NAME_OPENED;
+ }
+
+ /* Get information required for VOLUME_NAME_NONE, VOLUME_NAME_GUID and VOLUME_NAME_DOS */
+ if (flags == VOLUME_NAME_NONE || flags == VOLUME_NAME_GUID || flags == VOLUME_NAME_NT)
+ {
+ if (!GetVolumePathNameW( info->Name.Buffer, drive_part, MAX_PATH ))
+ return 0;
+
+ drive_part_len = strlenW(drive_part);
+ if (!drive_part_len || drive_part_len > strlenW(info->Name.Buffer) ||
+ drive_part[drive_part_len-1] != '\\' ||
+ memcmp( info->Name.Buffer, drive_part, drive_part_len * sizeof(WCHAR) ))
+ {
+ FIXME("Path %s returned by GetVolumePathNameW does not match file path %s\n",
+ debugstr_w(drive_part), debugstr_w(info->Name.Buffer));
+ SetLastError( ERROR_GEN_FAILURE );
+ return 0;
+ }
+ }
+
+ if (flags == VOLUME_NAME_NONE)
+ {
+ ptr = info->Name.Buffer + drive_part_len - 1;
+ result = strlenW(ptr);
+ if (result < charcount)
+ memcpy(path, ptr, (result + 1) * sizeof(WCHAR));
+ else result++;
+ }
+ else if (flags == VOLUME_NAME_GUID)
+ {
+ WCHAR volume_prefix[51];
+
+ /* GetVolumeNameForVolumeMountPointW sets error code on failure */
+ if (!GetVolumeNameForVolumeMountPointW( drive_part, volume_prefix, 50 ))
+ return 0;
+
+ ptr = info->Name.Buffer + drive_part_len;
+ result = strlenW(volume_prefix) + strlenW(ptr);
+ if (result < charcount)
+ {
+ path[0] = 0;
+ strcatW(path, volume_prefix);
+ strcatW(path, ptr);
+ }
+ else result++;
+ }
+ else if (flags == VOLUME_NAME_NT)
+ {
+ WCHAR nt_prefix[MAX_PATH];
+
+ /* QueryDosDeviceW sets error code on failure */
+ drive_part[drive_part_len - 1] = 0;
+ if (!QueryDosDeviceW( drive_part, nt_prefix, MAX_PATH ))
+ return 0;
+
+ ptr = info->Name.Buffer + drive_part_len - 1;
+ result = strlenW(nt_prefix) + strlenW(ptr);
+ if (result < charcount)
+ {
+ path[0] = 0;
+ strcatW(path, nt_prefix);
+ strcatW(path, ptr);
+ }
+ else result++;
+ }
+ else if (flags == VOLUME_NAME_DOS)
+ {
+ static const WCHAR dos_prefix[] = {'\\','\\','?','\\', '\0'};
+
+ result = strlenW(dos_prefix) + strlenW(info->Name.Buffer);
+ if (result < charcount)
+ {
+ path[0] = 0;
+ strcatW(path, dos_prefix);
+ strcatW(path, info->Name.Buffer);
+ }
+ else result++;
+ }
+ else
+ {
+ /* Windows crashes here, but we prefer returning ERROR_INVALID_PARAMETER */
+ WARN("Invalid combination of flags: %x\n", flags);
+ SetLastError( ERROR_INVALID_PARAMETER );
+ }
+
+ return result;
+}
+
+/***********************************************************************
+ * GetFinalPathNameByHandleA (KERNEL32.@)
+ */
+DWORD WINAPI GetFinalPathNameByHandleA(HANDLE file, LPSTR path, DWORD charcount, DWORD flags)
+{
+ WCHAR *str;
+ DWORD result;
+
+ TRACE( "(%p,%p,%d,%x)\n", file, path, charcount, flags );
+
+ if (!path || !charcount)
+ return GetFinalPathNameByHandleW(file, (LPWSTR)path, charcount, flags);
+
+ str = HeapAlloc( GetProcessHeap(), 0, charcount * sizeof(WCHAR) );
+ if (!str)
+ {
+ SetLastError( ERROR_NOT_ENOUGH_MEMORY );
+ return 0;
+ }
+
+ result = GetFinalPathNameByHandleW(file, (LPWSTR)str, charcount, flags);
+ if (result)
+ {
+ if (result < charcount)
+ {
+ result = FILE_name_WtoA( str, result, path, charcount - 1 );
+ path[result] = 0;
+ }
+ else result--; /* Why does Windows do this? */
+ }
+
+ HeapFree( GetProcessHeap(), 0, str );
+ return result;
+}
\ No newline at end of file
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 2de2119..10a5ef3 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -538,6 +538,8 @@
@ stdcall GetFileAttributesW(wstr)
@ stdcall GetFileInformationByHandle(long ptr)
@ stdcall GetFileInformationByHandleEx(long long ptr long)
+@ stdcall GetFinalPathNameByHandleA(long ptr long long)
+@ stdcall GetFinalPathNameByHandleW(long ptr long long)
@ stdcall GetFileSize(long ptr)
@ stdcall GetFileSizeEx(long ptr)
@ stdcall GetFileTime(long ptr ptr ptr)
diff --git a/include/fileapi.h b/include/fileapi.h
index 02bbbd4..0ccf9e9 100644
--- a/include/fileapi.h
+++ b/include/fileapi.h
@@ -34,6 +34,14 @@ typedef struct _CREATEFILE2_EXTENDED_PARAMETERS {
WINBASEAPI HANDLE WINAPI CreateFile2(LPCWSTR,DWORD,DWORD,DWORD,LPCREATEFILE2_EXTENDED_PARAMETERS);
+#define FILE_NAME_NORMALIZED 0x0
+#define FILE_NAME_OPENED 0x8
+
+#define VOLUME_NAME_DOS 0x0
+#define VOLUME_NAME_GUID 0x1
+#define VOLUME_NAME_NT 0x2
+#define VOLUME_NAME_NONE 0x4
+
#ifdef __cplusplus
}
#endif
--
1.8.3.2

Some files were not shown because too many files have changed in this diff Show More