From 53d0a0842220080c5fea19aad5934e9312ee2e39 Mon Sep 17 00:00:00 2001 From: John Whitington Date: Tue, 10 Aug 2021 20:11:20 +0100 Subject: [PATCH] NOT and CPDF_DEBUG --- Changes | 2 ++ cpdf.ml | 61 +++++++++++++++++++++++++++---------------------- cpdfcommand.ml | 7 ++++++ cpdfmanual.pdf | Bin 256026 -> 255987 bytes cpdfmanual.tex | 1 + 5 files changed, 44 insertions(+), 27 deletions(-) diff --git a/Changes b/Changes index e9e89bc..3711fd1 100644 --- a/Changes +++ b/Changes @@ -1,7 +1,9 @@ 2.5 (Upcoming) o Environment variable CPDF_REPRODUCIBLE_DATES for testing +o Environment variable CPDF_DEBUG for -debug o Effectively make stderr unbuffered +o Prepend NOT to a page range to invert it 2.4 (June 2021) diff --git a/cpdf.ml b/cpdf.ml index 2d87686..39f0202 100644 --- a/cpdf.ml +++ b/cpdf.ml @@ -435,38 +435,45 @@ let fixup_negatives endpage = function Pdfgenlex.LexInt (endpage + 1 + ~-(int_of_string (implode (tl (explode s))))) | x -> x -let parse_pagespec_inner endpage pdf spec = +let invert_range endpage r = + option_map (fun p -> if mem p r then None else Some p) (ilist 1 endpage) + +let rec parse_pagespec_inner endpage pdf spec = let spec = space_string spec in if endpage < 1 then raise (Pdf.PDFError "This PDF file has no pages and is therefore malformed") else let numbers = try - match rev (explode spec) with - | ['n'; 'e'; 'v'; 'e'] -> - keep even (ilist 1 endpage) - | ['d'; 'd'; 'o'] -> - keep odd (ilist 1 endpage) - | ['t'; 'i'; 'a'; 'r'; 't'; 'r'; 'o'; 'p'] -> - select_portrait pdf (ilist 1 endpage) - | ['e'; 'p'; 'a'; 'c'; 's'; 'd'; 'n'; 'a'; 'l'] -> - select_landscape pdf (ilist 1 endpage) - | 't'::'i'::'a'::'r'::'t'::'r'::'o'::'p'::more -> - select_portrait - pdf - (mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string (implode (rev more))))) - | 'e'::'p'::'a'::'c'::'s'::'d'::'n'::'a'::'l'::more -> - select_landscape - pdf - (mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string (implode (rev more))))) - | 'd'::'d'::'o'::more -> - keep - odd - (mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string (implode (rev more))))) - | 'n'::'e'::'v'::'e'::more -> - keep - even - (mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string (implode (rev more))))) + match explode spec with + | 'N'::'O'::'T'::r -> + invert_range endpage (parse_pagespec_inner endpage pdf (implode r)) | _ -> - mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string spec)) + match rev (explode spec) with + | ['n'; 'e'; 'v'; 'e'] -> + keep even (ilist 1 endpage) + | ['d'; 'd'; 'o'] -> + keep odd (ilist 1 endpage) + | ['t'; 'i'; 'a'; 'r'; 't'; 'r'; 'o'; 'p'] -> + select_portrait pdf (ilist 1 endpage) + | ['e'; 'p'; 'a'; 'c'; 's'; 'd'; 'n'; 'a'; 'l'] -> + select_landscape pdf (ilist 1 endpage) + | 't'::'i'::'a'::'r'::'t'::'r'::'o'::'p'::more -> + select_portrait + pdf + (mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string (implode (rev more))))) + | 'e'::'p'::'a'::'c'::'s'::'d'::'n'::'a'::'l'::more -> + select_landscape + pdf + (mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string (implode (rev more))))) + | 'd'::'d'::'o'::more -> + keep + odd + (mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string (implode (rev more))))) + | 'n'::'e'::'v'::'e'::more -> + keep + even + (mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string (implode (rev more))))) + | _ -> + mk_numbers pdf endpage (map (fixup_negatives endpage) (Pdfgenlex.lex_string spec)) with e -> raise PageSpecBadSyntax in diff --git a/cpdfcommand.ml b/cpdfcommand.ml index b12785b..a6d6786 100644 --- a/cpdfcommand.ml +++ b/cpdfcommand.ml @@ -4408,6 +4408,12 @@ let gs_malformed_force fi fo = ensure that all memory is cleaned. See clearance of filenames hashtable, for example. *) +let process_env_vars () = + match Sys.getenv_opt "CPDF_DEBUG" with + | Some "true" -> args.debug <- true + | Some "false" -> args.debug <- false + | _ -> () + (* Main function. *) let go_withargv argv = (* Check for the standalone -gs-malformed-force special command line. This @@ -4450,6 +4456,7 @@ let go_withargv argv = (*Printf.printf "AND:%b, %s\n" islast (Array.fold_left (fun x y -> x ^ " " ^ y) "" s); flprint "\n";*) reset_arguments (); + process_env_vars (); parse_argv () s (align_specs specs) anon_fun usage_msg; parse_argv () (Array.of_list ("cpdf"::!control_args)) (align_specs specs) anon_fun usage_msg; let addrange pdf = AlreadyInMemory pdf, args.dashrange, "", "", ref false, None in diff --git a/cpdfmanual.pdf b/cpdfmanual.pdf index 18eed605fb436b7b6ffc80ff82fd56bbae613ceb..43d7f269c717291ca66464af617d30b034b8c4cf 100644 GIT binary patch delta 23311 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 diff --git a/cpdfmanual.tex b/cpdfmanual.tex index 726b1bc..e67a6bd 100644 --- a/cpdfmanual.tex +++ b/cpdfmanual.tex @@ -459,6 +459,7 @@ at least five pages. \item The word \texttt{all} is the same as \texttt{1-end}. \item A range must contain no spaces. \item A tilde (\texttt{\~{}}) defines a page number counting from the end of the document rather than the beginning. Page \texttt{\~{}1} is the last page, \texttt{\~{}2} the penultimate page etc. + \item Prepending \texttt{NOT} to a whole page range inverts it. \end{itemize} \noindent For example: