From ee1961cb4216c42b3afb181db3e095f0cbac775b Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 5 May 2014 12:06:44 +0200 Subject: [PATCH] Fix safe_shlex_split when both conditions are true --- qutebrowser/utils/misc.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/qutebrowser/utils/misc.py b/qutebrowser/utils/misc.py index a583a9380..01e8a331e 100644 --- a/qutebrowser/utils/misc.py +++ b/qutebrowser/utils/misc.py @@ -64,20 +64,20 @@ def safe_shlex_split(s): Since shlex raises ValueError in both cases we unfortunately have to parse the exception string... """ - try: - return shlex.split(s) - except ValueError as e: - if str(e) == "No closing quotation": - # e.g. eggs "bacon ham - # -> we fix this as eggs "bacon ham" - s += '"' - elif str(e) == "No escaped character": - # e.g. eggs\ - # -> we fix this as eggs\\ - s += '\\' - else: - raise - return shlex.split(s) + while True: + try: + return shlex.split(s) + except ValueError as e: + if str(e) == "No closing quotation": + # e.g. eggs "bacon ham + # -> we fix this as eggs "bacon ham" + s += '"' + elif str(e) == "No escaped character": + # e.g. eggs\ + # -> we fix this as eggs\\ + s += '\\' + else: + raise def shell_escape(s):