diff options
author | Tor Andersson <tor@ghostscript.com> | 2009-07-18 14:59:44 +0200 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2009-07-18 14:59:44 +0200 |
commit | e36b3779b5f409c21602ae7ca34bc2bb989f0a61 (patch) | |
tree | 3a34a37e21ecad16342a577ade6c5229e21df51c /apps/common | |
parent | 1d3a42a1dec236c88b01ab59f59e246eb91445bd (diff) | |
download | mupdf-e36b3779b5f409c21602ae7ca34bc2bb989f0a61.tar.xz |
Load the pagecount after the encryption has been parsed and installed.
Diffstat (limited to 'apps/common')
-rw-r--r-- | apps/common/pdfapp.c | 13 | ||||
-rw-r--r-- | apps/common/pdftool.c | 5 |
2 files changed, 13 insertions, 5 deletions
diff --git a/apps/common/pdfapp.c b/apps/common/pdfapp.c index f4cea83f..69a41055 100644 --- a/apps/common/pdfapp.c +++ b/apps/common/pdfapp.c @@ -159,7 +159,10 @@ void pdfapp_open(pdfapp_t *app, char *filename) * Start at first page */ - app->pagecount = app->xref->pagecount; + error = pdf_getpagecount(app->xref, &app->pagecount); + if (error) + pdfapp_error(app, error); + app->shrinkwrap = 1; if (app->pageno < 1) app->pageno = 1; @@ -255,7 +258,7 @@ static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage) pdfapp_error(app, error); sprintf(buf, "%s - %d/%d", app->doctitle, - app->pageno, app->xref->pagecount); + app->pageno, app->pagecount); wintitle(app, buf); } @@ -441,7 +444,7 @@ void pdfapp_onkey(pdfapp_t *app, int c) break; case 'G': - app->pageno = app->xref->pagecount; + app->pageno = app->pagecount; break; case 'm': @@ -482,8 +485,8 @@ void pdfapp_onkey(pdfapp_t *app, int c) if (app->pageno < 1) app->pageno = 1; - if (app->pageno > app->xref->pagecount) - app->pageno = app->xref->pagecount; + if (app->pageno > app->pagecount) + app->pageno = app->pagecount; if (app->pageno != oldpage) { diff --git a/apps/common/pdftool.c b/apps/common/pdftool.c index a607ba3d..5de9e1b6 100644 --- a/apps/common/pdftool.c +++ b/apps/common/pdftool.c @@ -2,6 +2,7 @@ char *basename = nil; pdf_xref *xref = nil; +int pagecount = 0; static void (*cleanup)(void) = nil; void closexref(void); @@ -67,6 +68,10 @@ void openxref(char *filename, char *password, int dieonbadpass) xref->info = fz_resolveindirect(obj); if (xref->info) fz_keepobj(xref->info); + + error = pdf_getpagecount(xref, &pagecount); + if (error) + die(error); } void closexref(void) |