[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [nyx/master] Stacktrace if all panels are disabled



commit 148e213782b57587ab88b8b4eca2e3bceecd8017
Author: Damian Johnson <atagar@xxxxxxxxxxxxxx>
Date:   Sat Sep 16 12:15:56 2017 -0700

    Stacktrace if all panels are disabled
    
    If the nyxrc disables all our panels except the header then we crash with...
    
      Traceback (most recent call last):
        File "/home/ubuntu/nyx/run_nyx", line 14, in <module>
          nyx.main()
        File "/home/ubuntu/nyx/nyx/__init__.py", line 137, in main
          nyx.starter.main()
        File "/home/ubuntu/nyx/stem/util/conf.py", line 289, in wrapped
          return func(*args, config = config, **kwargs)
        File "/home/ubuntu/nyx/nyx/starter.py", line 94, in main
          nyx.curses.start(nyx.draw_loop, acs_support = config.get('acs_support', True), transparent_background = True, cursor = False)
        File "/home/ubuntu/nyx/nyx/curses.py", line 216, in start
          curses.wrapper(_wrapper)
        File "/usr/lib/python2.7/curses/wrapper.py", line 43, in wrapper
          return func(stdscr, *args, **kwds)
        File "/home/ubuntu/nyx/nyx/curses.py", line 214, in _wrapper
          function()
        File "/home/ubuntu/nyx/nyx/__init__.py", line 155, in draw_loop
          interface = nyx_interface()
        File "/home/ubuntu/nyx/nyx/__init__.py", line 217, in nyx_interface
          Interface()  # constructor sets NYX_INTERFACE
        File "/home/ubuntu/nyx/nyx/__init__.py", line 574, in __init__
          visible_panels = self.page_panels()
        File "/home/ubuntu/nyx/nyx/__init__.py", line 638, in page_panels
          return [self._header_panel] + self._page_panels[page_number]
      IndexError: list index out of range
---
 nyx/__init__.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/nyx/__init__.py b/nyx/__init__.py
index 745ce31..c134a53 100644
--- a/nyx/__init__.py
+++ b/nyx/__init__.py
@@ -634,6 +634,9 @@ class Interface(object):
     :returns: **list** of panels on that page
     """
 
+    if not self._page_panels:
+      return [self._header_panel]  # all panels disabled
+
     page_number = self._page if page_number is None else page_number
     return [self._header_panel] + self._page_panels[page_number]
 

_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits