sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit e93167f4b73635d28d88226fdbba7ac42373d3df
parent 266e931d6bf995b25e6ab137733c7ca48f484141
Author: William Morgan <wmorgan-sup@masanjin.net>
Date:   Sun, 29 Mar 2009 09:36:54 -0700

bugfix: catch invalid regular expressions in tag-matching

Diffstat:
M lib/sup/modes/thread-index-mode.rb | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/sup/modes/thread-index-mode.rb b/lib/sup/modes/thread-index-mode.rb
@@ -424,9 +424,14 @@ EOS
   end
 
   def tag_matching
-    query = BufferManager.ask :search, "tag threads matching: "
+    query = BufferManager.ask :search, "tag threads matching (regex): "
     return if query.nil? || query.empty?
-    query = /#{query}/i
+    query = begin
+      /#{query}/i
+    rescue RegexpError => e
+      BufferManager.flash "error interpreting '#{query}': #{e.message}"
+      return
+    end
     @mutex.synchronize { @threads.each { |t| @tags.tag t if thread_matches?(t, query) } }
     regen_text
   end