Patch #621891: Add askopenfile{name}s.
diff --git a/Lib/lib-tk/tkFileDialog.py b/Lib/lib-tk/tkFileDialog.py
index 93cb277..569254a 100644
--- a/Lib/lib-tk/tkFileDialog.py
+++ b/Lib/lib-tk/tkFileDialog.py
@@ -29,12 +29,16 @@
 #
 # - title: dialog title
 #
+# - multiple: if true user may select more than one file
+#
 # options for the directory chooser:
 #
 # - initialdir, parent, title: see above
 #
 # - mustexist: if true, user must pick an existing directory
 #
+#
+
 
 from tkCommonDialog import Dialog
 
@@ -98,7 +102,18 @@
 
     return SaveAs(**options).show()
 
-# FIXME: are the following two perhaps a bit too convenient?
+def askopenfilenames(**options):
+    """Ask for multiple filenames to open
+    
+    Returns a list of filenames or empty list if 
+    cancel button selected
+    """
+    options["multiple"]=1
+    files=Open(**options).show()
+    return files.split()
+
+
+# FIXME: are the following  perhaps a bit too convenient?
 
 def askopenfile(mode = "r", **options):
     "Ask for a filename to open, and returned the opened file"
@@ -108,6 +123,23 @@
         return open(filename, mode)
     return None
 
+def askopenfiles(mode = "r", **options):
+    """Ask for multiple filenames and return the open file
+    objects
+    
+    returns a list of open file objects or an empty list if 
+    cancel selected
+    """
+
+    files = askopenfilenames(**options)
+    if files:
+        ofiles=[]
+        for filename in files:
+            ofiles.append(open(filename, mode))
+        files=ofiles
+    return files
+
+
 def asksaveasfile(mode = "w", **options):
     "Ask for a filename to save as, and returned the opened file"
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 90bd02f..d0d1a46 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -348,11 +348,12 @@
 Library
 -------
 
-- Various features of Tk 8.4 are exposed in Tkinter.py.
+- Various features of Tk 8.4 are exposed in Tkinter.py. The multiple
+  option of tkFileDialog is exposed as function askopenfile{,name}s.
 
-- Various configure methods of Tkinter have been stream-lined, so
-  that tag_configure, image_configure, window_configure now return
-  a dictionary when invoked with no argument.
+- Various configure methods of Tkinter have been stream-lined, so that
+  tag_configure, image_configure, window_configure now return a
+  dictionary when invoked with no argument. 
 
 - Importing the readline module now no longer has the side effect of
   calling setlocale(LC_CTYPE, "").  The initial "C" locale, or