Jean-Christophe Cardot : winhlp32: Fix some images not shown in certain 16-bit help files.
Module: wine Branch: stable Commit: 87fb704898b007852284a3d3b9559c72af1a3f73 URL: http://source.winehq.org/git/wine.git/?a=commit;h=87fb704898b007852284a3d3b9... Author: Jean-Christophe Cardot <wine(a)cardot.net> Date: Fri Apr 15 12:08:03 2016 +0200 winhlp32: Fix some images not shown in certain 16-bit help files. Subfiles with bitmap images are usually prefixed with '|', but sometimes not. Signed-off-by: Jean-Christophe Cardot <wine(a)cardot.net> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 91f89b4f96674024b3436423ddb188e838d1ca54) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- programs/winhlp32/hlpfile.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/programs/winhlp32/hlpfile.c b/programs/winhlp32/hlpfile.c index ab75b2a..3669d11 100644 --- a/programs/winhlp32/hlpfile.c +++ b/programs/winhlp32/hlpfile.c @@ -507,6 +507,18 @@ static BOOL HLPFILE_FindSubFile(HLPFILE* hlpfile, LPCSTR name, BYTE **subbuf, BY WINE_TRACE("looking for file '%s'\n", name); ptr = HLPFILE_BPTreeSearch(hlpfile->file_buffer + GET_UINT(hlpfile->file_buffer, 4), name, comp_FindSubFile); + if (!ptr) + { /* Subfiles with bitmap images are usually prefixed with '|', but sometimes not. + Unfortunately, there is no consensus among different pieces of unofficial + documentation. So remove leading '|' and try again. */ + CHAR c = *name++; + if (c == '|') + { + WINE_TRACE("not found. try '%s'\n", name); + ptr = HLPFILE_BPTreeSearch(hlpfile->file_buffer + GET_UINT(hlpfile->file_buffer, 4), + name, comp_FindSubFile); + } + } if (!ptr) return FALSE; *subbuf = hlpfile->file_buffer + GET_UINT(ptr, strlen(name)+1); if (*subbuf >= hlpfile->file_buffer + hlpfile->file_buffer_size)
participants (1)
-
Alexandre Julliard