From c402e790f3d25a1e91be6985354e8684216a4887 Mon Sep 17 00:00:00 2001 From: giraffedata Date: Tue, 11 Aug 2020 22:00:21 +0000 Subject: Fix bug: doesn't work with input file argument git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@3914 9d0c8265-081b-0410-96cb-a4ca84ce46f8 --- editor/ppmbrighten | 59 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 11 deletions(-) (limited to 'editor') diff --git a/editor/ppmbrighten b/editor/ppmbrighten index 1b84101b..f02bfe65 100755 --- a/editor/ppmbrighten +++ b/editor/ppmbrighten @@ -1,23 +1,60 @@ #! /bin/sh +# This is just for backward compatibility. New applications should use +# 'pambrighten'. + +# We don't try very hard to respond well to invalid syntax, because backward +# compatibility is mostly like existing, working applications. + pambrightenOpts='' normalize='no' +expectValue='no' -for opt in "$@"; do +for word in "$@"; do - case $opt in - -normalize|-normaliz|-normali|-normal|-norma|-norm|-nor|-no|-n) - normalize='yes' - ;; - *) - pambrightenOpts="$pambrightenOpts $opt" - ;; - esac + if test "$expectValue" = 'yes'; then + # This is the value of an option, like "40" in "-saturation 40" + pambrightenOpts="$pambrightenOpts $word" + expectValue='no' + else + # 'word_one_hyphen' is 'word' except if 'word' is a double-hyphen + # option, 'word_one_hyphen' is the single-hyphen version of it. + # E.g. word=--saturation word_one_hyphen=-saturation . + word_one_hyphen=$(echo "$word" | sed s/^--/-/ ) + + case $word_one_hyphen in + -version ) + pambrighten -version; exit $? + ;; + -normalize|-normaliz|-normali|-normal|-norma|-norm|-nor|-no|-n) + normalize='yes' + ;; + -*=*) + pambrightenOpts="$pambrightenOpts $word" + # This is an option with value such as "-saturation=40" + ;; + -*) + pambrightenOpts="$pambrightenOpts $word" + # Starts with hyphen, no equals sign, so the next word is the + # option's value (note that the only valid ppmbrighten flag + # option is -normalized, handled above). + # + # E.g. "-saturation 40" + expectValue='yes' + ;; + *) + # Not an option or option value - only non-option argument + # ppmbrighten has is optional input file name + infile="$word" + ;; + + esac + fi done if test "$normalize" = 'yes'; then - pnmnorm -bsingle -wsingle -keephues | \ + pnmnorm -bsingle -wsingle -keephues $infile | \ pambrighten $pambrightenOpts | ppmtoppm else - pambrighten $pambrightenOpts | ppmtoppm + pambrighten $pambrightenOpts $infile | ppmtoppm fi -- cgit 1.4.1