Kirill K. Smirnov : winhelp: Remember last added page.

Alexandre Julliard julliard at winehq.org
Tue Dec 18 07:34:43 CST 2007


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

Author: Kirill K. Smirnov <lich at math.spbu.ru>
Date:   Mon Dec 17 20:46:50 2007 +0300

winhelp: Remember last added page.

---

 programs/winhelp/hlpfile.c |   14 ++++++--------
 programs/winhelp/hlpfile.h |    1 +
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/programs/winhelp/hlpfile.c b/programs/winhelp/hlpfile.c
index 3a9717a..49e652c 100644
--- a/programs/winhelp/hlpfile.c
+++ b/programs/winhelp/hlpfile.c
@@ -443,15 +443,14 @@ static BOOL HLPFILE_AddPage(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigned off
 
     if (hlpfile->first_page)
     {
-        HLPFILE_PAGE  *p;
-
-        for (p = hlpfile->first_page; p->next; p = p->next);
-        page->prev = p;
-        p->next    = page;
+        hlpfile->last_page->next = page;
+        page->prev = hlpfile->last_page;
+        hlpfile->last_page = page;
     }
     else
     {
         hlpfile->first_page = page;
+        hlpfile->last_page = page;
         page->prev = NULL;
     }
 
@@ -889,9 +888,8 @@ static BOOL HLPFILE_AddParagraph(HLPFILE *hlpfile, BYTE *buf, BYTE *end, unsigne
     unsigned short     bits;
     unsigned           nc, ncol = 1;
 
-    if (!hlpfile->first_page) {WINE_WARN("no page\n"); return FALSE;};
-
-    for (page = hlpfile->first_page; page->next; page = page->next) /* Nothing */;
+    if (!hlpfile->last_page) {WINE_WARN("no page\n"); return FALSE;};
+    page = hlpfile->last_page;
     for (paragraphptr = &page->first_paragraph; *paragraphptr;
          paragraphptr = &(*paragraphptr)->next) /* Nothing */;
 
diff --git a/programs/winhelp/hlpfile.h b/programs/winhelp/hlpfile.h
index 7e6e6e5..3632902 100644
--- a/programs/winhelp/hlpfile.h
+++ b/programs/winhelp/hlpfile.h
@@ -122,6 +122,7 @@ typedef struct tagHlpFileFile
     LPSTR                       lpszTitle;
     LPSTR                       lpszCopyright;
     HLPFILE_PAGE*               first_page;
+    HLPFILE_PAGE*               last_page;
     HLPFILE_MACRO*              first_macro;
     BYTE*                       Context;
     BYTE*                       kwbtree;




More information about the wine-cvs mailing list