emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/scanner a09407e 11/17: query tesseract version and use


From: Stefan Monnier
Subject: [elpa] externals/scanner a09407e 11/17: query tesseract version and use new switches conditionally
Date: Mon, 14 Dec 2020 18:34:43 -0500 (EST)

branch: externals/scanner
commit a09407e101996a0c92e7bb4feabacc8605d350aa
Author: Raffael Stocker <r.stocker@mnet-mail.de>
Commit: Raffael Stocker <r.stocker@mnet-mail.de>

    query tesseract version and use new switches conditionally
    
    * scanner.el: (scanner--tesseract-version): new function
              (scanner--tesseract-args): make --dpi switch depend on tesseract 
version
    * scanner-test.el (scanner-test-tesseract-args): add tests for
                                                 tesseract-version dependency
---
 scanner-test.el |  8 ++++++--
 scanner.el      | 11 ++++++++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/scanner-test.el b/scanner-test.el
index 8500af4..a88d67c 100644
--- a/scanner-test.el
+++ b/scanner-test.el
@@ -144,8 +144,12 @@
        (-compare-fn #'string=))
     (should (-is-infix-p '("-l" "eng+deu") (scanner--tesseract-args "infile"
                                                                    "outfile")))
-    (should (-is-infix-p '("--dpi" "300") (scanner--tesseract-args "infile"
-                                                                  "outfile")))
+    (let ((scanner--tesseract-v4 "0"))
+      (should (-is-infix-p '("--dpi" "300") (scanner--tesseract-args "infile"
+                                                                    
"outfile"))))
+    (let ((scanner--tesseract-v4 "1000"))
+      (should-not (-is-infix-p '("--dpi" "300") (scanner--tesseract-args 
"infile"
+                                                                    
"outfile"))))
     (should (-contains-p (scanner--tesseract-args "infile" "outfile") 
"--opt1"))
     (should (-contains-p (scanner--tesseract-args "infile" "outfile") 
"--opt2"))
     (should (-contains-p (scanner--tesseract-args "infile" "outfile") 
"infile"))
diff --git a/scanner.el b/scanner.el
index a36f320..b4cad60 100644
--- a/scanner.el
+++ b/scanner.el
@@ -338,6 +338,12 @@ simply dropped."
                                                   switches)
                                        scanner-scanimage-switches))))
 
+(defconst scanner--tesseract-v4 "4")
+
+(defun scanner--tesseract-version ()
+  "Determine the version of tesseract."
+  (cadr (split-string (car (process-lines scanner-tesseract-program 
"--version")))))
+
 (defun scanner--tesseract-args (input output-base)
   "Construct the argument list for ‘tesseract(1)’.
 INPUT is the input file name, OUTPUT-BASE is the basename for the
@@ -346,7 +352,10 @@ extensions depending on the selected output options, see
 ‘scanner-tesseract-outputs’."
   (-flatten (list input output-base
                                  "-l" (mapconcat #'identity 
scanner-tesseract-languages "+")
-                                 "--dpi" (number-to-string (plist-get 
scanner-resolution :doc))
+                                 (unless (version< (scanner--tesseract-version)
+                                                                       
scanner--tesseract-v4)
+                                       (list "--dpi" (number-to-string
+                                                                  (plist-get 
scanner-resolution :doc))))
                                  scanner-tesseract-switches
                                  "--tessdata-dir"
                                  scanner-tessdata-dir



reply via email to

[Prev in Thread] Current Thread [Next in Thread]