From a11c723d0ebc4152d0878a79df25c2282e70c6c5 Mon Sep 17 00:00:00 2001 From: toonn Date: Thu, 19 Apr 2018 12:52:47 +0200 Subject: Remove the implicit assumption tabs are numbers. Only get_tab_list() implicitly assumed that tab keys are numbers, or at least homogeneous. This assumption has now been removed by using a simple ordering class that orders numbers as expected but anything else lexically. --- ranger/core/actions.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ranger/core/actions.py b/ranger/core/actions.py index a3aad746..3e488159 100644 --- a/ranger/core/actions.py +++ b/ranger/core/actions.py @@ -1237,7 +1237,18 @@ class Actions( # pylint: disable=too-many-instance-attributes,too-many-public-m def get_tab_list(self): assert self.tabs, "There must be at least 1 tab at all times" - return sorted(self.tabs) + + class NaturalOrder(object): # pylint: disable=too-few-public-methods + def __init__(self, obj): + self.obj = obj + + def __lt__(self, other): + try: + return self.obj < other.obj + except TypeError: + return str(self.obj) < str(other.obj) + + return sorted(self.tabs, key=NaturalOrder) # -------------------------- # -- Overview of internals -- cgit 1.4.1-2-gfad0