Kirill K. Smirnov : winhlp32: Fix offsets handling for old 3.0 files.

Alexandre Julliard julliard at winehq.org
Tue Aug 19 08:46:59 CDT 2008


Module: wine
Branch: master
Commit: 4c387a9567870173ea3b5c6540fe2d0b8f63fafa
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4c387a9567870173ea3b5c6540fe2d0b8f63fafa

Author: Kirill K. Smirnov <lich at math.spbu.ru>
Date:   Wed Aug  6 19:48:03 2008 +0400

winhlp32: Fix offsets handling for old 3.0 files.

---

 programs/winhlp32/hlpfile.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/programs/winhlp32/hlpfile.c b/programs/winhlp32/hlpfile.c
index c941bbd..e54d3bf 100644
--- a/programs/winhlp32/hlpfile.c
+++ b/programs/winhlp32/hlpfile.c
@@ -283,7 +283,7 @@ static BOOL HLPFILE_DoReadHlpFile(HLPFILE *hlpfile, LPCSTR lpszPath)
     OFSTRUCT    ofs;
     BYTE*       buf;
     DWORD       ref = 0x0C;
-    unsigned    index, old_index, offset, len, offs;
+    unsigned    index, old_index, offset, len, offs, topicoffset;
 
     hFile = OpenFile(lpszPath, &ofs, OF_READ);
     if (hFile == HFILE_ERROR) return FALSE;
@@ -339,7 +339,11 @@ static BOOL HLPFILE_DoReadHlpFile(HLPFILE *hlpfile, LPCSTR lpszPath)
         switch (buf[0x14])
 	{
 	case 0x02:
-            if (!HLPFILE_AddPage(hlpfile, buf, end, ref, index * 0x8000L + offs)) return FALSE;
+            if (hlpfile->version <= 16)
+                topicoffset = ref + index * 12;
+            else
+                topicoffset = index * 0x8000 + offs;
+            if (!HLPFILE_AddPage(hlpfile, buf, end, ref, topicoffset)) return FALSE;
             break;
 
 	case 0x01:




More information about the wine-cvs mailing list