summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/applications.py27
1 files changed, 17 insertions, 10 deletions
diff --git a/ranger/applications.py b/ranger/applications.py
index 210028c9..53939f30 100644
--- a/ranger/applications.py
+++ b/ranger/applications.py
@@ -164,32 +164,36 @@ class AppContext(object):
 		This function tries to find an action if none is defined.
 		"""
 
-		self.squash_flags()
+		# Try to find an action
+
 		if self.action is None:
 			self.get_action()
 
-		# ---------------------------- determine keywords for Popen()
+		if self.action is None:
+			return False
+
+		# Define some preconditions
+
+		toggle_ui = True
+		pipe_output = False
+
+		self.squash_flags()
 
 		kw = {}
 		kw['stdout'] = sys.stderr
 		kw['stderr'] = sys.stderr
 		kw['args'] = self.action
 
-		if kw['args'] is None:
-			return False
-
 		for word in ('shell', 'stdout', 'stdin', 'stderr'):
 			if getattr(self, word) is not None:
 				kw[word] = getattr(self, word)
 
+		# Evaluate the flags to determine keywords
+		# for Popen() and other variables
+
 		if 's' in self.flags or 'd' in self.flags:
 			kw['stdout'] = kw['stderr'] = kw['stdin'] = devnull
 
-		# --------------------------- run them
-		toggle_ui = True
-		pipe_output = False
-		process = None
-
 		if 'p' in self.flags:
 			kw['stdout'] = PIPE
 			kw['stderr'] = PIPE
@@ -201,10 +205,13 @@ class AppContext(object):
 			toggle_ui = False
 			self.wait = False
 
+		# Finally, run it
+
 		if toggle_ui:
 			self._activate_ui(False)
 
 		try:
+			process = None
 			try:
 				process = Popen(**kw)
 			except: