Ran update_copyright.py.
[hooke.git] / hooke / plugin / command_stack.py
index 8a3ecb829c6d8527224a7b779e860356b91303c4..936332c598baeb18838d76baccdbc588a847d2be 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2010 Alberto Gomez-Casado
+# Copyright (C) 2008-2012 Alberto Gomez-Casado <a.gomezcasado@tnw.utwente.nl>
 #                         Massimo Sandal <devicerandom@gmail.com>
 #                         W. Trevor King <wking@drexel.edu>
 #
@@ -81,7 +81,8 @@ class CaptureCommand (CommandStackCommand):
                 return
             assert isinstance(msg, CommandMessage), type(msg)
             cmd = hooke.command_by_name[msg.command]
-            if isinstance(cmd, CommandStackCommand):
+            if (msg.explicit_user_call == False
+                or isinstance(cmd, CommandStackCommand)):
                 if isinstance(cmd, StopCaptureCommand):
                     outqueue = Queue()  # Grab StopCaptureCommand's completion.
                 cmd.run(hooke, inqueue, outqueue, **msg.arguments)
@@ -227,15 +228,16 @@ input command stack.  If the command stack does not have an input file
             help=self.__doc__, plugin=plugin)
 
     def _run(self, hooke, inqueue, outqueue, params):
-        params = self.__setup_params(hooke, params)
+        params = self._setup_params(hooke, params)
         self.plugin.command_stack.save(params['output'])
 
-    def __setup_params(self, hooke, params):
+    def _setup_params(self, hooke, params):
         if params['output'] == None and self.plugin.command_stack.path == None:
             params['output'] = 'default'
         if params['output'] != None:
             params['output'] = os.path.join(
-                self.plugin.config['path'], params['output'])
+                os.path.expanduser(self.plugin.config['path']),
+                params['output'])
         return params
 
 class LoadCommand (CommandStackCommand):
@@ -255,16 +257,17 @@ File name for the input command stack.
             help=self.__doc__, plugin=plugin)
 
     def _run(self, hooke, inqueue, outqueue, params):
-        params = self.__setup_params(hooke, params)
+        params = self._setup_params(hooke, params)
         self.plugin.command_stack.clear()
         self.plugin.command_stack.load(params['input'])
 
-    def __setup_params(self, hooke, params):
+    def _setup_params(self, hooke, params):
         if params['input'] == None and self.plugin.command_stack.path == None:
             params['input'] = 'default'
         if params['input'] != None:
             params['input'] = os.path.join(
-                self.plugin.config['path'], params['input'])
+                os.path.expanduser(self.plugin.config['path']),
+                params['input'])
         return params
 
 
@@ -282,16 +285,14 @@ current stack.
 """.strip()),
                 ],
             help=self.__doc__, plugin=plugin)
-        stack = [a for a in self.arguments if a.name == 'stack'][0]
-        stack.default = False
 
     def _run(self, hooke, inqueue, outqueue, params):
-        params = self.__setup_params(hooke=hooke, params=params)
+        params = self._setup_params(hooke=hooke, params=params)
         if len(params['commands']) == 0:
             return
         params['commands'].execute(hooke=hooke, stack=params['stack'])
 
-    def __setup_params(self, hooke, params):
+    def _setup_params(self, hooke, params):
         if params['commands'] == None:
             params['commands'] = self.plugin.command_stack
         return params