Patch #102953: Fix bug #125452, where shlex.shlex hangs when it
    encounters a string with an unmatched quote, by adding a check for
    EOF in the 'quotes' state.
diff --git a/Lib/shlex.py b/Lib/shlex.py
index 6d5659e..7bf81e2 100644
--- a/Lib/shlex.py
+++ b/Lib/shlex.py
@@ -123,6 +123,11 @@
                 if nextchar == self.state:
                     self.state = ' '
                     break
+                elif not nextchar:      # end of file
+                    if self.debug >= 2:
+                        print "shlex: I see EOF in quotes state"
+                    # XXX what error should be raised here?
+                    raise ValueError, "No closing quotation"
             elif self.state == 'a':
                 if not nextchar:
                     self.state = None   # end of file