[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/scanner 6adbc64 28/56: correct argument handling in all
From: |
Stefan Monnier |
Subject: |
[elpa] externals/scanner 6adbc64 28/56: correct argument handling in all the interactive specs |
Date: |
Fri, 10 Apr 2020 13:56:03 -0400 (EDT) |
branch: externals/scanner
commit 6adbc64dd08d3df9b6fb06453ae5a95d5d10dc19
Author: Raffael Stocker <address@hidden>
Commit: Raffael Stocker <address@hidden>
correct argument handling in all the interactive specs
---
scanner.el | 77 +++++++++++++++++++++++++++++++++++---------------------------
1 file changed, 43 insertions(+), 34 deletions(-)
diff --git a/scanner.el b/scanner.el
index d57f1e1..c40a6f4 100644
--- a/scanner.el
+++ b/scanner.el
@@ -350,57 +350,66 @@ availability of required options."
(user-error "No scanning device was found"))
((eql 1 num-devices)
(setq scanner-device-name (caar scanner--detected-devices)))
- (t (scanner-select-device)))))
+ (t (call-interactively #'scanner-select-device)))))
(scanner--check-device-switches)))
-(defun scanner-select-papersize ()
- "Select the papersize for document scanning."
- (interactive)
- (let ((choices (delq nil (mapcar (lambda (x) (and (keywordp x)
- (substring (symbol-name x) 1)))
- scanner-paper-sizes))))
- (setq scanner-doc-papersize
- (intern (concat ":" (completing-read "Papersize: " choices nil t))))))
-
-(defun scanner-select-languages ()
- "Select languages for optical character recognition."
- (interactive)
- (let ((langs (cdr (process-lines scanner-tesseract-program
- "--list-langs"))))
- (setq scanner-tesseract-languages
- (completing-read-multiple "Languages: " langs nil t))))
+(defun scanner-select-papersize (size)
+ "Select the papersize SIZE for document scanning."
+ (interactive
+ (let ((choices (delq nil (mapcar (lambda (x) (and (keywordp x)
+ (substring (symbol-name x) 1)))
+ scanner-paper-sizes))))
+ (list (intern (concat ":"
+ (completing-read "Papersize: " choices nil t))))))
+ (unless (plist-member scanner-paper-sizes size)
+ (signal 'args-out-of-range `(,size)))
+ (setq scanner-doc-papersize size))
+
+(defun scanner-select-languages (languages)
+ "Select LANGUAGES for optical character recognition."
+ (interactive
+ (let ((langs (cdr (process-lines scanner-tesseract-program
+ "--list-langs"))))
+ (list (completing-read-multiple "Languages: " langs nil t))))
+ (unless (consp languages)
+ (signal 'wrong-type-argument `(consp ,languages)))
+ (setq scanner-tesseract-languages languages))
(defun scanner-set-image-resolution (resolution)
"Set the RESOLUTION for scanning images."
(interactive "NImage scan resolution: ")
+ (unless (numberp resolution)
+ (signal 'wrong-type-argument `(numberp ,resolution)))
(plist-put scanner-resolution :image resolution))
(defun scanner-set-document-resolution (resolution)
"Set the RESOLUTION for scanning documents."
(interactive "NDocument scan resolution: ")
+ (unless (numberp resolution)
+ (signal 'wrong-type-argument `(numberp ,resolution)))
(plist-put scanner-resolution :doc resolution))
-(defun scanner-select-device (&optional detect)
- "Select a scanning device, maybe running auto-detection.
-If DETECT is non-nil or a prefix argument is supplied, force
-auto-detection. Without an argument, auto-detect only if
-no devices have been detected yet.
+(defun scanner-select-device (device)
+ "Select a scanning DEVICE.
+If a prefix argument is supplied, force auto-detection.
+Otherwise, auto-detect only if no devices have been detected
+previously.
The selected device will be used for any future scan until a new
selection is made."
- (interactive "P")
- (let* ((devices (if detect
- (scanner--detect-devices)
- (or scanner--detected-devices
- (scanner--detect-devices))))
- (choices (mapcar (lambda (dev)
- (concat (caddr dev) " (" (car dev) ")"))
- devices)))
- (setq scanner-device-name
- (cadr (split-string
- (completing-read "Select scanning device: " choices nil t)
- "(" t ")")))))
+ (interactive
+ (let* ((devices (if current-prefix-arg
+ (scanner--detect-devices)
+ (or scanner--detected-devices
+ (scanner--detect-devices))))
+ (choices (mapcar (lambda (dev)
+ (concat (caddr dev) " (" (car dev) ")"))
+ devices)))
+ (list (cadr (split-string
+ (completing-read "Select scanning device: " choices nil t)
+ "(" t ")")))))
+ (setq scanner-device-name device))
;;;###autoload
(defun scanner-scan-document (npages filename)
- [elpa] externals/scanner 1e60cd2 03/56: add test and check targets to Makefile, gitignore dep, (continued)
- [elpa] externals/scanner 1e60cd2 03/56: add test and check targets to Makefile, gitignore dep, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 5bc37ff 02/56: add more customizations and validations, arglist functions, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner c952d0d 15/56: rename -options to -switches, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner e5c74e6 11/56: implement multi-page scan modes, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner dbb0ee4 14/56: add commentary, correct docstrings, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 3e0398c 22/56: correct to eval-and-compile (scanner--device-specific-switches), Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 5f06a4a 21/56: implement correct cleanup and error handling (scanner-scan-document), Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 536e998 16/56: move commands were they belong, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 31c8a49 08/56: add document scanning command and test cases, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 2147abd 30/56: add tests for the configuration commands, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 6adbc64 28/56: correct argument handling in all the interactive specs,
Stefan Monnier <=
- [elpa] externals/scanner c63d2f9 31/56: update Readme.org, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 68b5c5f 18/56: update tests, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 15bc51d 25/56: correct the ‘run’ make target, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner bc9b16c 27/56: correct a comment and whitespace, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 930448a 24/56: improve docstrings, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 8219c0e 29/56: add ‘scanner-select-device’ to the menu, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 45a3e1c 34/56: use finer argument tests in language and output selection, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 52bb203 32/56: correct the license notice (GNU Emacs -> This program), Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 6594fcb 17/56: put image scan sentinel back into scanner-scan-image, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner cce46fd 01/56: initial commit, Stefan Monnier, 2020/04/10