sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit d11c1030533c79d406b12a0b4b26d33af288ffb3
parent 69b1b6b5b5a6a749e8b5f2aa78275e645bbed043
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Mon, 12 Nov 2007 18:02:00 +0000

chronic refinement patch from marcus williams

git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@693 5c8cc53c-5e98-4d25-b20a-d8db53a31250

Diffstat:
M lib/sup/index.rb | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
@@ -391,16 +391,21 @@ protected
     
     if $have_chronic
       chronic_failure = false
-      result = result.gsub(/\b(before|after):(\((.+?)\)\B|(\S+)\b)/) do
+      result = result.gsub(/\b(before|on|in|after):(\((.+?)\)\B|(\S+)\b)/) do
         break if chronic_failure
         field, datestr = $1, ($3 || $4)
-        realdate = Chronic.parse datestr
+        realdate = Chronic.parse(datestr, :guess => false)
         if realdate
-          Redwood::log "chronic: translated #{field}:#{datestr} to #{realdate}"
-          if field == "after"
-            "date:(>= #{sprintf "%012d", realdate.to_i})"
+          case field
+          when "after"
+            Redwood::log "chronic: translated #{field}:#{datestr} to #{realdate.end}"
+            "date:(>= #{sprintf "%012d", realdate.end.to_i})"
+          when "before"
+            Redwood::log "chronic: translated #{field}:#{datestr} to #{realdate.begin}"
+            "date:(<= #{sprintf "%012d", realdate.begin.to_i})"
           else
-            "date:(<= #{sprintf "%012d", realdate.to_i})"
+            Redwood::log "chronic: translated #{field}:#{datestr} to #{realdate}"
+            "date:(<= #{sprintf "%012d", realdate.end.to_i}) date:(>= #{sprintf "%012d", realdate.begin.to_i})"
           end
         else
           BufferManager.flash "Don't understand date #{datestr.inspect}!"