about summary refs log tree commit diff
path: root/editor
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2020-08-11 22:00:21 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2020-08-11 22:00:21 +0000
commitc402e790f3d25a1e91be6985354e8684216a4887 (patch)
tree028b31e6e7ab705ead130c87e0fc656331effab4 /editor
parent709ba1bc8b05aff4e8804dd42ddac696db094cce (diff)
downloadnetpbm-mirror-c402e790f3d25a1e91be6985354e8684216a4887.tar.gz
netpbm-mirror-c402e790f3d25a1e91be6985354e8684216a4887.tar.xz
netpbm-mirror-c402e790f3d25a1e91be6985354e8684216a4887.zip
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
Diffstat (limited to 'editor')
-rwxr-xr-xeditor/ppmbrighten59
1 files changed, 48 insertions, 11 deletions
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