diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2015-04-14 11:53:53 +0200 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2015-04-14 16:13:58 +0100 |
commit | a7be4a1caca767baa0ce0946792f3c3e9e150308 (patch) | |
tree | 76804ec000992a20fdf62bf962ef06df6750a0e8 /source/pdf/pdf-crypt.c | |
parent | 1bc74dac2b251764d373c164e2b5235875f27901 (diff) | |
download | mupdf-a7be4a1caca767baa0ce0946792f3c3e9e150308.tar.xz |
Split fz_meta into separate querying functions.
Add fz_has_permission function to fz_document.
Add fz_lookup_metadata function to fz_document.
Remove fz_meta function from fz_document.
Diffstat (limited to 'source/pdf/pdf-crypt.c')
-rw-r--r-- | source/pdf/pdf-crypt.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/source/pdf/pdf-crypt.c b/source/pdf/pdf-crypt.c index 88e485ff..17419581 100644 --- a/source/pdf/pdf-crypt.c +++ b/source/pdf/pdf-crypt.c @@ -9,6 +9,19 @@ enum PDF_CRYPT_UNKNOWN, }; +enum +{ + PDF_PERM_PRINT = 1 << 2, + PDF_PERM_CHANGE = 1 << 3, + PDF_PERM_COPY = 1 << 4, + PDF_PERM_NOTES = 1 << 5, + PDF_PERM_FILL_FORM = 1 << 8, + PDF_PERM_ACCESSIBILITY = 1 << 9, + PDF_PERM_ASSEMBLE = 1 << 10, + PDF_PERM_HIGH_RES_PRINT = 1 << 11, + PDF_DEFAULT_PERM_FLAGS = 0xfffc +}; + typedef struct pdf_crypt_filter_s pdf_crypt_filter; struct pdf_crypt_filter_s @@ -765,11 +778,18 @@ pdf_needs_password(fz_context *ctx, pdf_document *doc) } int -pdf_has_permission(fz_context *ctx, pdf_document *doc, int p) +pdf_has_permission(fz_context *ctx, pdf_document *doc, fz_permission p) { if (!doc->crypt) return 1; - return doc->crypt->p & p; + switch (p) + { + case FZ_PERMISSION_PRINT: return doc->crypt->p & PDF_PERM_PRINT; + case FZ_PERMISSION_COPY: return doc->crypt->p & PDF_PERM_COPY; + case FZ_PERMISSION_EDIT: return doc->crypt->p & PDF_PERM_CHANGE; + case FZ_PERMISSION_ANNOTATE: return doc->crypt->p & PDF_PERM_NOTES; + } + return 1; } unsigned char * |