diff options
-rw-r--r-- | apps/common/pdfapp.c | 13 | ||||
-rw-r--r-- | apps/common/pdftool.c | 5 | ||||
-rw-r--r-- | apps/pdfdraw.c | 6 | ||||
-rw-r--r-- | apps/pdfinfo.c | 12 | ||||
-rw-r--r-- | apps/pdftool.h | 2 | ||||
-rw-r--r-- | mupdf/mupdf.h | 1 | ||||
-rw-r--r-- | mupdf/pdf_open.c | 7 | ||||
-rw-r--r-- | mupdf/pdf_repair.c | 4 |
8 files changed, 23 insertions, 27 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) diff --git a/apps/pdfdraw.c b/apps/pdfdraw.c index 14e85781..4cc3bd51 100644 --- a/apps/pdfdraw.c +++ b/apps/pdfdraw.c @@ -326,7 +326,7 @@ static void drawpages(char *pagelist) if (strlen(dash) > 1) epage = atoi(dash + 1); else - epage = xref->pagecount; + epage = pagecount; } if (spage > epage) @@ -334,8 +334,8 @@ static void drawpages(char *pagelist) if (spage < 1) spage = 1; - if (epage > xref->pagecount) - epage = xref->pagecount; + if (epage > pagecount) + epage = pagecount; printf("Drawing pages %d-%d...\n", spage, epage); for (page = spage; page <= epage; page++) diff --git a/apps/pdfinfo.c b/apps/pdfinfo.c index b7fc4b4b..af44d1fa 100644 --- a/apps/pdfinfo.c +++ b/apps/pdfinfo.c @@ -742,7 +742,7 @@ printglobalinfo(void) fz_debugobj(cryptinfo->u.crypt.obj); } - printf("\nPages: %d\n\n", xref->pagecount); + printf("\nPages: %d\n\n", pagecount); } static void @@ -979,7 +979,7 @@ showinfo(char *filename, int show, char *pagelist) if (strlen(dash) > 1) epage = atoi(dash + 1); else - epage = xref->pagecount; + epage = pagecount; } if (spage > epage) @@ -987,10 +987,10 @@ showinfo(char *filename, int show, char *pagelist) if (spage < 1) spage = 1; - if (epage > xref->pagecount) - epage = xref->pagecount; - if (spage > xref->pagecount) - spage = xref->pagecount; + if (epage > pagecount) + epage = pagecount; + if (spage > pagecount) + spage = pagecount; if (allpages) printf("Retrieving info from pages %d-%d...\n", spage, epage); diff --git a/apps/pdftool.h b/apps/pdftool.h index 6eb75770..706383f5 100644 --- a/apps/pdftool.h +++ b/apps/pdftool.h @@ -3,7 +3,7 @@ extern char *basename; extern pdf_xref *xref; -extern int pages; +extern int pagecount; void die(fz_error error); void setcleanup(void (*cleanup)(void)); diff --git a/mupdf/mupdf.h b/mupdf/mupdf.h index 3e7cebda..82e83a3f 100644 --- a/mupdf/mupdf.h +++ b/mupdf/mupdf.h @@ -121,7 +121,6 @@ struct pdf_xref_s struct pdf_store_s *store; struct pdf_outline_s *outlines; - int pagecount; }; struct pdf_xrefentry_s diff --git a/mupdf/pdf_open.c b/mupdf/pdf_open.c index da5f138b..c3e96224 100644 --- a/mupdf/pdf_open.c +++ b/mupdf/pdf_open.c @@ -720,13 +720,6 @@ pdf_loadxref(pdf_xref *xref, char *filename) goto cleanup; } - error = pdf_getpagecount(xref, &xref->pagecount); - if (error) - { - error = fz_rethrow(error, "cannot determine page count"); - goto cleanup; - } - return fz_okay; cleanup: diff --git a/mupdf/pdf_repair.c b/mupdf/pdf_repair.c index 19f71538..56bc59ac 100644 --- a/mupdf/pdf_repair.c +++ b/mupdf/pdf_repair.c @@ -351,10 +351,6 @@ pdf_repairxref(pdf_xref *xref, char *filename) } } - error = pdf_getpagecount(xref, &xref->pagecount); - if (error) - return fz_rethrow(error, "cannot determine page count"); - fz_free(list); return fz_okay; |