From e3cbf1bcbbc5b7181bb69171d108a2710a74a90d Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Mon, 26 Jul 2021 21:27:30 -0400 Subject: [PATCH 1/2] Omit --mode argument when its value is the empty string --- scan | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scan b/scan index bb49042..7798566 100755 --- a/scan +++ b/scan @@ -245,7 +245,10 @@ fi; echo >&2 "Scanning..." #eval strace -f -o /tmp/scan-trace.txt scanadf -d $DEVICE $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $DESKEW $CROP $SOURCE -o scan-%04d -eval scanadf -d \'"$DEVICE"\' $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $DESKEW $CROP $DRIVER_OPTION $SOURCE -o $TMP_DIR/scan-%04d +if test -n "$MODE"; then + mode="--mode $MODE" +fi +eval scanadf -d \'"$DEVICE"\' $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION $MODE $DESKEW $CROP $DRIVER_OPTION $SOURCE -o $TMP_DIR/scan-%04d shopt -s extglob nullglob pdffiles=($TMP_DIR/scan-[0-9]*.pdf) From 9ef32aef3f2001d79c6144c67688d5b9f4fabbbb Mon Sep 17 00:00:00 2001 From: Oleg Pudeyev Date: Tue, 27 Jul 2021 10:47:28 -0400 Subject: [PATCH 2/2] add --mode-hw-default option --- README.md | 4 +++- scan | 21 +++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6d52b78..d627b3e 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,9 @@ OPTIONS -d, --duplex Duplex scanning -m, --mode - Mode e.g. Lineart (default), Halftone, Gray, Color, etc. + Mode e.g. Lineart (default), Halftone, Gray, Color, etc. Use --mode-hw-default to not set any mode + --mode-hw-default + Do not set the mode explicitly, use the hardware default -r, --resolution Resolution e.g 300 (default) -a, --append diff --git a/scan b/scan index 7798566..cb06317 100755 --- a/scan +++ b/scan @@ -10,6 +10,8 @@ USEARRAY=0 APPEND=0 RESOLUTION=300 MODE=Lineart +MODE_CHANGED=0 +MODE_HW_DEFAULT=0 SCRIPT="$DIR/scan_perpage" DUPLEX=0 UNPAPER=0 @@ -45,7 +47,9 @@ while [[ $# > 0 ]]; do -d|--duplex) DUPLEX=1 ;; - -m|--mode) shift; MODE=$1 ;; + -m|--mode) shift; MODE=$1; MODE_CHANGED=1 ;; + + --mode-hw-default) shift; MODE_HW_DEFAULT=1 ;; -r|--resolution) shift; RESOLUTION=$1 ;; @@ -100,7 +104,9 @@ if [[ $HELP == 1 ]]; then echo " -d, --duplex" echo " Duplex scanning" echo " -m, --mode" - echo " Mode e.g. Lineart (default), Halftone, Gray, Color, etc." + echo " Mode e.g. Lineart (default), Halftone, Gray, Color, etc. Use --mode-hw-default to not set any mode" + echo " --mode-hw-default" + echo " Do not set the mode explicitly, use the hardware default" echo " -r, --resolution" echo " Resolution e.g 300 (default)" echo " -a, --append" @@ -148,6 +154,11 @@ if [[ $USEARRAY == 1 && $USEOUTPUT == 1 ]]; then exit 1 fi +if [[ $MODE_CHANGED == 1 && $MODE_HW_DEFAULT == 1 ]]; then + echo >&2 "Use one of --mode or --mode-hardware-default. Aborting." + exit 1 +fi + if [[ $USEOUTPUT == 1 && "$OUTPUT" == "" ]]; then echo >&2 "Output file must be specified. Aborting." exit 1 @@ -245,8 +256,10 @@ fi; echo >&2 "Scanning..." #eval strace -f -o /tmp/scan-trace.txt scanadf -d $DEVICE $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $DESKEW $CROP $SOURCE -o scan-%04d -if test -n "$MODE"; then - mode="--mode $MODE" +if [[ $MODE_HW_DEFAULT == 1 ]]; then + MODE= +else + MODE="--mode $MODE" fi eval scanadf -d \'"$DEVICE"\' $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION $MODE $DESKEW $CROP $DRIVER_OPTION $SOURCE -o $TMP_DIR/scan-%04d