From 6af0e45d794df870b803afd902e438be838d4bdd Mon Sep 17 00:00:00 2001 From: "Kirill K. Smirnov" Date: Mon, 17 Dec 2007 20:46:50 +0300 Subject: [PATCH] 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 3a9717a78de..49e652c6690 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 7e6e6e5f838..3632902efd7 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;