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