summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-12-09 14:32:21 +0100
committerTor Andersson <tor.andersson@artifex.com>2016-12-12 13:40:40 +0100
commitdbdea58a61dace3c36c586e4858e462674590f66 (patch)
treef0aac41bfdd52e08952be08d2018ecd8bd42275e
parentfd8157ead4e10985e1ad1d996e2452bac4dca784 (diff)
downloadmupdf-dbdea58a61dace3c36c586e4858e462674590f66.tar.xz
Tweak pdf portfolio: automatically use incremental writing.
Windows cannot remove open files, so we can't save non-incrementally to the same file name as the open document. Force incremental saves if the input and output file names are the same. NOTE: We will also create corrupt files if saving a new document incrementally, so take care not to turn on incremental saves if we have created a new blank document.
-rw-r--r--source/tools/pdfportfolio.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source/tools/pdfportfolio.c b/source/tools/pdfportfolio.c
index ff119bf8..87662989 100644
--- a/source/tools/pdfportfolio.c
+++ b/source/tools/pdfportfolio.c
@@ -197,6 +197,7 @@ int pdfportfolio_main(int argc, char **argv)
char *infile;
int exit_code = 0;
int do_save = 0;
+ int has_old_file = 0;
int c;
while ((c = fz_getopt(argc, argv, "p:o:O:")) != -1)
@@ -230,6 +231,7 @@ int pdfportfolio_main(int argc, char **argv)
if (pdf_needs_password(ctx, doc))
if (!pdf_authenticate_password(ctx, doc, password))
fz_throw(ctx, FZ_ERROR_GENERIC, "cannot authenticate password: %s", infile);
+ has_old_file = 1;
}
else
{
@@ -299,6 +301,8 @@ int pdfportfolio_main(int argc, char **argv)
{
pdf_write_options opts;
pdf_parse_write_options(ctx, &opts, outopts);
+ if (has_old_file && infile == outfile)
+ opts.do_incremental = 1;
pdf_save_document(ctx, doc, outfile, &opts);
}