diff options
author | hut <hut@lavabit.com> | 2011-10-07 16:55:33 +0200 |
---|---|---|
committer | hut <hut@lavabit.com> | 2011-10-07 16:55:33 +0200 |
commit | 13549f1e53c7342f040b20a3f3075778b1d3302b (patch) | |
tree | 7f7a333b5785056ea2e33fb52cda96a5da3d2074 | |
parent | 6a3b4bca95d9341ac2a593c5935d463bb9d5e0cf (diff) | |
download | ranger-13549f1e53c7342f040b20a3f3075778b1d3302b.tar.gz |
widgets.browserview: Try to fix crash
When running ranger with two directories and using a command with macros, this crash happens. To reproduce, run this and then type "yp" ranger /usr/bin /var/tmp Traceback was: Ranger version: 1.5.0, executed with python 3.2.2 Locale: en_US.UTF-8 Current file: /usr/lib Traceback (most recent call last): File "/home/common/archive/repos/ranger/ranger/core/main.py", line 103, in main fm.loop() File "/home/common/archive/repos/ranger/ranger/core/fm.py", line 202, in loop ui.handle_input() File "/home/common/archive/repos/ranger/ranger/gui/ui.py", line 210, in handle_input self.handle_key(key) File "/home/common/archive/repos/ranger/ranger/gui/ui.py", line 146, in handle_key self.press(key) File "/home/common/archive/repos/ranger/ranger/gui/ui.py", line 161, in press quantifier=keybuffer.quantifier) File "/home/common/archive/repos/ranger/ranger/core/actions.py", line 111, in execute_console string = self.substitute_macros(string, additional=macros) File "/home/common/archive/repos/ranger/ranger/core/actions.py", line 115, in substitute_macros return _MacroTemplate(string).safe_substitute(self._get_macros(), File "/home/common/archive/repos/ranger/ranger/core/actions.py", line 153, in _get_macros macros[i + 'f'] = shell_quote(tab_dir.pointed_obj.path) AttributeError: 'NoneType' object has no attribute 'path'
-rw-r--r-- | ranger/gui/widgets/browserview.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ranger/gui/widgets/browserview.py b/ranger/gui/widgets/browserview.py index 12e1d9bd..84f77de6 100644 --- a/ranger/gui/widgets/browserview.py +++ b/ranger/gui/widgets/browserview.py @@ -98,6 +98,11 @@ class BrowserView(Widget, DisplayableContainer): self.win.erase() self.need_redraw = True self.need_clear = False + for path in self.fm.tabs.values(): + if path is not None: + directory = self.env.get_directory(path) + directory.load_content_if_outdated() + directory.use() DisplayableContainer.draw(self) if self.settings.draw_borders: self._draw_borders() |