diff options
author | hut <hut@lavabit.com> | 2010-10-01 22:43:53 +0200 |
---|---|---|
committer | hut <hut@lavabit.com> | 2010-10-01 22:43:53 +0200 |
commit | 9b3d4455ad389138c9b63d5153d03c4cfbee0672 (patch) | |
tree | 444e1be04a81581600f3f9769a01660a7be28364 /ranger/fsobject/directory.py | |
parent | 9e7c69a8879e63a0a661127d9d6aa21e0ef594a9 (diff) | |
download | ranger-9b3d4455ad389138c9b63d5153d03c4cfbee0672.tar.gz |
fsobject.fsobject: changed "numerical" sort to "natural" sort
Diffstat (limited to 'ranger/fsobject/directory.py')
-rw-r--r-- | ranger/fsobject/directory.py | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py index ab12734f..ac628ff0 100644 --- a/ranger/fsobject/directory.py +++ b/ranger/fsobject/directory.py @@ -15,7 +15,6 @@ import os.path import stat -import re from stat import S_ISLNK, S_ISDIR from os import stat as os_stat, lstat as os_lstat from os.path import join, isdir, basename @@ -40,17 +39,11 @@ def sort_by_directory(path): """returns 0 if path is a directory, otherwise 1 (for sorting)""" return 1 - path.is_directory -def sort_by_number(path): - try: - return float(re.search(r'\d+', path.basename).group(0)) - except: - return path.basename +def sort_naturally(path): + return path.basename_natural -def sort_by_number_icase(path): - try: - return float(re.search(r'\d+', path.basename).group(0)) - except: - return path.basename_lower +def sort_naturally_icase(path): + return path.basename_natural_lower def accept_file(fname, hidden_filter, name_filter): if hidden_filter: @@ -89,7 +82,7 @@ class Directory(FileSystemObject, Accumulator, SettingsAware): sort_dict = { 'basename': sort_by_basename, - 'numeric': sort_by_number, + 'natural': sort_naturally, 'size': lambda path: -path.size, 'mtime': lambda path: -(path.stat and path.stat.st_mtime or 1), 'type': lambda path: path.mimetype, @@ -310,8 +303,8 @@ class Directory(FileSystemObject, Accumulator, SettingsAware): sort_func = sort_by_basename_icase if self.settings.sort_case_insensitive and \ - sort_func == sort_by_number: - sort_func = sort_by_number_icase + sort_func == sort_naturally: + sort_func = sort_naturally_icase self.files.sort(key = sort_func) |