summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/config/commands.py5
-rw-r--r--ranger/fsobject/directory.py2
-rw-r--r--ranger/gui/widgets/statusbar.py6
3 files changed, 8 insertions, 5 deletions
diff --git a/ranger/config/commands.py b/ranger/config/commands.py
index c267dcf3..290fcb13 100644
--- a/ranger/config/commands.py
+++ b/ranger/config/commands.py
@@ -1257,7 +1257,10 @@ class filter(Command):
     """
 
     def execute(self):
-        self.fm.set_filter(self.rest(1))
+        if self.rest(1):
+            self.fm.set_filter(re.compile(re.escape(self.rest(1))))
+        else:
+            self.fm.set_filter(None)
         self.fm.reload_cwd()
 
     quick = execute
diff --git a/ranger/fsobject/directory.py b/ranger/fsobject/directory.py
index 546fc6d0..3e5e4f84 100644
--- a/ranger/fsobject/directory.py
+++ b/ranger/fsobject/directory.py
@@ -39,7 +39,7 @@ def sort_naturally_icase(path):
 def accept_file(fname, directory, hidden_filter, name_filter):
     if hidden_filter and hidden_filter.search(fname):
         return False
-    if name_filter and name_filter not in fname:
+    if name_filter and not name_filter.search(fname):
         return False
     if directory.temporary_filter and not directory.temporary_filter.search(fname):
         return False
diff --git a/ranger/gui/widgets/statusbar.py b/ranger/gui/widgets/statusbar.py
index d0a92b21..ae54cf42 100644
--- a/ranger/gui/widgets/statusbar.py
+++ b/ranger/gui/widgets/statusbar.py
@@ -243,9 +243,9 @@ class StatusBar(Widget):
         base = 'scroll'
 
         if self.fm.thisdir.filter:
-            right.add(" f=", base, 'filter')
-            right.add(repr(self.fm.thisdir.filter), base, 'filter')
-            right.add(", ", "space")
+            right.add(" f=`", base, 'filter')
+            right.add(self.fm.thisdir.filter.pattern, base, 'filter')
+            right.add("', ", "space")
 
         if target.marked_items:
             if len(target.marked_items) == len(target.files):