Some fixes based on feedback from Hans Petter Langtangen.

build(): Fix the logic here for calculating fallbacks if the dbfile
isn't parseable.

main(): Fix the semantics for -d/--database; this should override any
database value found in the .pynche file.

Update some comments, and author contact info.

Bump to v1.4

Whitespace normalization.
diff --git a/Tools/pynche/Main.py b/Tools/pynche/Main.py
index d7aedde..59d2527 100644
--- a/Tools/pynche/Main.py
+++ b/Tools/pynche/Main.py
@@ -1,20 +1,18 @@
 """Pynche -- The PYthon Natural Color and Hue Editor.
 
-Contact: Barry Warsaw
-Email:   bwarsaw@python.org
+Contact: %(AUTHNAME)s
+Email:   %(AUTHEMAIL)s
 Version: %(__version__)s
 
 Pynche is based largely on a similar color editor I wrote years ago for the
-Sunview window system.  That editor was called ICE: the Interactive Color
+SunView window system.  That editor was called ICE: the Interactive Color
 Editor.  I'd always wanted to port the editor to X but didn't feel like
 hacking X and C code to do it.  Fast forward many years, to where Python +
 Tkinter provides such a nice programming environment, with enough power, that
 I finally buckled down and implemented it.  I changed the name because these
 days, too many other systems have the acronym `ICE'.
 
-This program currently requires Python 1.5 with Tkinter.  It has only been
-tested on Solaris 2.6.  Feedback is greatly appreciated.  Send email to
-bwarsaw@python.org
+This program currently requires Python 2.2 with Tkinter.
 
 Usage: %(PROGRAM)s [-d file] [-i file] [-X] [-v] [-h] [initialcolor]
 
@@ -38,7 +36,7 @@
 
     --version
     -v
-        print the version number
+        print the version number and exit
 
     --help
     -h
@@ -48,7 +46,7 @@
         initial color, as a color name or #RRGGBB format
 """
 
-__version__ = '1.3'
+__version__ = '1.4'
 
 import sys
 import os
@@ -64,6 +62,8 @@
 
 
 PROGRAM = sys.argv[0]
+AUTHNAME = 'Barry Warsaw'
+AUTHEMAIL = 'barry@python.org'
 
 # Default locations of rgb.txt or other textual color database
 RGB_TXT = [
@@ -120,25 +120,26 @@
 
 
 
-def build(master=None, initialcolor=None, initfile=None, ignore=None):
+def build(master=None, initialcolor=None, initfile=None, ignore=None,
+          dbfile=None):
     # create all output widgets
     s = Switchboard(not ignore and initfile)
-
-    # load the color database
-    colordb = None
-    try:
+    # defer to the command line chosen color database, falling back to the one
+    # in the .pynche file.
+    if dbfile is None:
         dbfile = s.optiondb()['DBFILE']
-        colordb = ColorDB.get_colordb(dbfile)
-    except (KeyError, IOError):
-        # scoot through the files listed above to try to find a usable color
-        # database file
-        for f in RGB_TXT:
-            try:
-                colordb = ColorDB.get_colordb(f)
-                if colordb:
-                    break
-            except IOError:
-                pass
+    # find a parseable color database
+    colordb = None
+    files = RGB_TXT[:]
+    while colordb is None:
+        try:
+            colordb = ColorDB.get_colordb(dbfile)
+        except (KeyError, IOError):
+            pass
+        if colordb is None:
+            if not files:
+                break
+            dbfile = files.pop(0)
     if not colordb:
         usage(1, 'No color database file found, see the -d option.')
     s.set_colordb(colordb)
@@ -153,7 +154,7 @@
     s.add_view(TypeinViewer(s, w))
 
     # get the initial color as components and set the color on all views.  if
-    # there was no initial color given on the command line, use the one that's 
+    # there was no initial color given on the command line, use the one that's
     # stored in the option database
     if initialcolor is None:
         optiondb = s.optiondb()
@@ -171,50 +172,52 @@
 
 def run(app, s):
     try:
-	app.start()
+        app.start()
     except KeyboardInterrupt:
-	pass
+        pass
 
 
 
 def main():
     try:
-	opts, args = getopt.getopt(
+        opts, args = getopt.getopt(
             sys.argv[1:],
             'hd:i:Xv',
             ['database=', 'initfile=', 'ignore', 'help', 'version'])
     except getopt.error, msg:
-	usage(1, msg)
+        usage(1, msg)
 
     if len(args) == 0:
         initialcolor = None
     elif len(args) == 1:
         initialcolor = args[0]
     else:
-	usage(1)
+        usage(1)
 
-    ignore = 0
+    ignore = False
+    dbfile = None
     initfile = os.path.expanduser('~/.pynche')
     for opt, arg in opts:
-	if opt in ('-h', '--help'):
-	    usage(0)
+        if opt in ('-h', '--help'):
+            usage(0)
         elif opt in ('-v', '--version'):
-            print '''\
+            print """\
 Pynche -- The PYthon Natural Color and Hue Editor.
-Contact: Barry Warsaw
-Email:   bwarsaw@python.org
-Version: %s''' % __version__
+Contact: %(AUTHNAME)s
+Email:   %(AUTHEMAIL)s
+Version: %(__version__)s""" % globals()
             sys.exit(0)
-	elif opt in ('-d', '--database'):
-	    RGB_TXT.insert(0, arg)
+        elif opt in ('-d', '--database'):
+            dbfile = arg
         elif opt in ('-X', '--ignore'):
-            ignore = 1
+            ignore = True
         elif opt in ('-i', '--initfile'):
             initfile = arg
 
     app, sb = build(initialcolor=initialcolor,
                     initfile=initfile,
-                    ignore=ignore)
+                    ignore=ignore,
+                    dbfile=dbfile)
     run(app, sb)
     sb.save_views()