From aaa852fbe513291144301bb31af50558177f891c Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Wed, 9 Nov 2011 20:43:49 +0100 Subject: [PATCH 01/20] Use old 'syck' module for YAML parsing --- lib/sup.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/sup.rb b/lib/sup.rb index 169b73e71..74d5cde7b 100644 --- a/lib/sup.rb +++ b/lib/sup.rb @@ -1,4 +1,5 @@ require 'rubygems' +require 'syck' require 'yaml' require 'zlib' require 'thread' From 43d271c6d8d8f0811fae6ce51975831be9c8ac4c Mon Sep 17 00:00:00 2001 From: Hamish Downer Date: Sun, 30 Jun 2013 21:51:36 +0100 Subject: [PATCH 02/20] Update README for gitorious --- README.txt | 127 ++--------------------------------------------------- 1 file changed, 3 insertions(+), 124 deletions(-) diff --git a/README.txt b/README.txt index c2f0768ba..a530343bf 100644 --- a/README.txt +++ b/README.txt @@ -1,128 +1,7 @@ sup - by William Morgan - http://sup.rubyforge.org + by William Morgan + http://supmua.org == DESCRIPTION: -Sup is a console-based email client for people with a lot of email. -It supports tagging, very fast full-text search, automatic contact- -list management, and more. If you're the type of person who treats -email as an extension of your long-term memory, Sup is for you. - -Sup makes it easy to: -- Handle massive amounts of email. - -- Mix email from different sources: mbox files and Maildirs. - -- Instantaneously search over your entire email collection. Search over - body text, or use a query language to combine search predicates in any - way. - -- Handle multiple accounts. Replying to email sent to a particular - account will use the correct SMTP server, signature, and from address. - -- Add custom code to customize Sup to whatever particular and bizarre - needs you may have. - -- Organize email with user-defined labels, automatically track recent - contacts, and much more! - -The goal of Sup is to become the email client of choice for nerds -everywhere. - -== FEATURES/PROBLEMS: - -Features: - -- Scalability to massive amounts of email. Immediate startup and - operability, regardless of how much amount of email you have. - -- Immediate full-text search of your entire email archive, using the - Xapian query language. Search over message bodies, labels, from: and - to: fields, or any combination thereof. - -- Thread-centrism. Operations are performed at the thread, not the - message level. Entire threads are manipulated and viewed (with - redundancies removed) at a time. - -- Labels instead of folders. Drop that tired old metaphor and you'll see - how much easier it is to organize email. - -- GMail-style thread management. Archive a thread, and it will disappear - from your inbox until someone replies. Kill a thread, and it will - never come back to your inbox (but will still show up in searches.) - Mark a thread as spam and you'll never again see it unless explicitly - searching for spam. - -- Console based interface. No mouse clicking required! - -- Programmability. It's in Ruby. The code is good. It has an extensive - hook system that makes it easy to extend and customize. - -- Multiple buffer support. Why be limited to viewing one thing at a - time? - -- Tons of other little features, like automatic context-sensitive help, - multi-message operations, MIME attachment viewing, recent contact list - generation, etc. - -Current limitations which will be fixed: - -- Sup doesn't play nicely with other mail clients. If you alter a mail - source (read, move, delete, etc) with another client Sup will punish - you with a lengthy reindexing process. - -- Unix-centrism in MIME attachment handling and in sendmail invocation. - -== SYNOPSYS: - - 0. sup-config - 1. sup - - Note that Sup never changes the contents of any mailboxes; it only - indexes in to them. So it shouldn't ever corrupt your mail. The flip - side is that if you change a mailbox (e.g. delete messages, or, in the - case of mbox files, read an unread message) then Sup will be unable to - load messages from that source and will ask you to run sup-sync - --changed. - -== REQUIREMENTS: - - - xapian-full >= 1.1.3.2 - - ncurses >= 0.9.1 - - rmail >= 0.17 - - highline - - net-ssh - - trollop >= 1.12 - - lockfile - - mime-types - - gettext - - fastthread - -== INSTALL: - -* gem install sup - -== PROBLEMS: - -See FAQ.txt for some common problems and their solutions. - -== LICENSE: - -Copyright (c) 2006--2009 William Morgan. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301, USA. - +Sup has moved to github - https://github.com/sup-heliotrope/sup From 073f8304323dfc8d75c3498d1c14723b6d1ad377 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Sat, 31 Aug 2013 18:08:16 +0200 Subject: [PATCH 03/20] Release 0.14.1 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index cdff2dd00..b8d3f7a96 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "git" + VERSION = "0.14.1" end From a5acc24937320456e244699b8551a9164641f89b Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Mon, 28 Oct 2013 12:11:58 +0100 Subject: [PATCH 04/20] security: shellwords escape attachment file names to prevent remote code injection Merge peristent temp files and fix quotation of shellwords escaped string s|returnded|returned| --- doc/Hooks.txt | 2 +- lib/sup/message_chunks.rb | 59 +++++++++++++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 13 deletions(-) diff --git a/doc/Hooks.txt b/doc/Hooks.txt index a5257a330..e996e9064 100644 --- a/doc/Hooks.txt +++ b/doc/Hooks.txt @@ -54,7 +54,7 @@ mime-decode: unless sibling_types.member? "text/plain" case content_type when "text/html" - `/usr/bin/w3m -dump -T #{content_type} '#{Shellwords.escape filename}'` + `/usr/bin/w3m -dump -T #{content_type} #{Shellwords.escape filename}` end end diff --git a/lib/sup/message_chunks.rb b/lib/sup/message_chunks.rb index f3f807b43..1dd12d967 100644 --- a/lib/sup/message_chunks.rb +++ b/lib/sup/message_chunks.rb @@ -1,5 +1,6 @@ require 'tempfile' require 'rbconfig' +require 'shellwords' ## Here we define all the "chunks" that a message is parsed ## into. Chunks are used by ThreadViewMode to render a message. Chunks @@ -59,6 +60,8 @@ def make_tmpname(prefix_suffix, n) module Redwood module Chunk class Attachment + ## please see note in write_to_disk on important usage + ## of quotes to avoid remote command injection. HookManager.register "mime-decode", < content_type, :filename => lambda { write_to_disk }, :charset => encoded_content.charset, @@ -125,7 +138,13 @@ def initialize content_type, filename, encoded_content, sibling_types @lines = nil if text text = text.transcode(encoded_content.charset || $encoding, text.encoding) - @lines = text.gsub("\r\n", "\n").gsub(/\t/, " ").gsub(/\r/, "").split("\n") + begin + @lines = text.gsub("\r\n", "\n").gsub(/\t/, " ").gsub(/\r/, "").split("\n") + rescue Encoding::CompatibilityError + @lines = text.fix_encoding!.gsub("\r\n", "\n").gsub(/\t/, " ").gsub(/\r/, "").split("\n") + debug "error while decoding message text, falling back to default encoding, expect errors in encoding: #{text.fix_encoding!}" + end + @quotable = true end end @@ -147,11 +166,13 @@ def expandable?; !viewable? end def initial_state; :open end def viewable?; @lines.nil? end def view_default! path + ## please see note in write_to_disk on important usage + ## of quotes to avoid remote command injection. case RbConfig::CONFIG['arch'] when /darwin/ - cmd = "open '#{path}'" + cmd = "open #{path}" else - cmd = "/usr/bin/run-mailcap --action=view '#{@content_type}:#{path}'" + cmd = "/usr/bin/run-mailcap --action=view #{@content_type}:#{path}" end debug "running: #{cmd.inspect}" BufferManager.shell_out(cmd) @@ -159,17 +180,31 @@ def view_default! path end def view! - path = write_to_disk - ret = HookManager.run "mime-view", :content_type => @content_type, - :filename => path - ret || view_default!(path) + ## please see note in write_to_disk on important usage + ## of quotes to avoid remote command injection. + write_to_disk do |file| + + @@view_tempfiles.push file # make sure the tempfile is not garbage collected before sup stops + + ret = HookManager.run "mime-view", :content_type => @content_type, + :filename => file.path + ret || view_default!(file.path) + end end + ## note that the path returned from write_to_disk is + ## Shellwords.escaped and is intended to be used without single + ## or double quotes. the use of either opens sup up for remote + ## code injection in the file name. def write_to_disk - file = Tempfile.new(["sup", @filename.gsub("/", "_") || "sup-attachment"]) - file.print @raw_content - file.close - file.path + begin + file = Tempfile.new(["sup", Shellwords.escape(@filename.gsub("/", "_")) || "sup-attachment"]) + file.print @raw_content + yield file if block_given? + return file.path + ensure + file.close + end end ## used when viewing the attachment as text @@ -229,7 +264,7 @@ def color; :sig_color end class EnclosedMessage attr_reader :lines def initialize from, to, cc, date, subj - @from = from ? "unknown sender" : from.full_adress + @from = from ? "unknown sender" : from.full_address @to = to ? "" : to.map { |p| p.full_address }.join(", ") @cc = cc ? "" : cc.map { |p| p.full_address }.join(", ") if date From 27cdb4d483044b897e0f4fb09d1de028a94b9e11 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Mon, 28 Oct 2013 22:42:50 +0100 Subject: [PATCH 05/20] security: prevent remote command injection in content_type --- lib/sup/message_chunks.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/sup/message_chunks.rb b/lib/sup/message_chunks.rb index 1dd12d967..e091e0b86 100644 --- a/lib/sup/message_chunks.rb +++ b/lib/sup/message_chunks.rb @@ -113,6 +113,11 @@ class Attachment def initialize content_type, filename, encoded_content, sibling_types @content_type = content_type.downcase + if Shellwords.escape(@content_type) != @content_type + warn "content_type #{@content_type} is not safe, changed to application/octet-stream" + @content_type = 'application/octet-stream' + end + @filename = filename @quotable = false # changed to true if we can parse it through the # mime-decode hook, or if it's plain text @@ -129,7 +134,7 @@ def initialize content_type, filename, encoded_content, sibling_types else ## please see note in write_to_disk on important usage ## of quotes to avoid remote command injection. - HookManager.run "mime-decode", :content_type => content_type, + HookManager.run "mime-decode", :content_type => @content_type, :filename => lambda { write_to_disk }, :charset => encoded_content.charset, :sibling_types => sibling_types @@ -195,7 +200,7 @@ def view! ## note that the path returned from write_to_disk is ## Shellwords.escaped and is intended to be used without single ## or double quotes. the use of either opens sup up for remote - ## code injection in the file name. + ## code injection through the file name. def write_to_disk begin file = Tempfile.new(["sup", Shellwords.escape(@filename.gsub("/", "_")) || "sup-attachment"]) From b88e31fc09fdaef84f6e6be8deea182a9690e61b Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Tue, 29 Oct 2013 09:22:48 +0100 Subject: [PATCH 06/20] security: link to wiki page on view-attachments --- doc/FAQ.txt | 6 +++++- doc/Hooks.txt | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/FAQ.txt b/doc/FAQ.txt index be19399c2..16c9a5929 100644 --- a/doc/FAQ.txt +++ b/doc/FAQ.txt @@ -112,4 +112,8 @@ P: When I run Sup remotely and view an HTML attachment, an existing file, which it can't find (since it's on the remote machine). How do I view HTML attachments in this environment? S: Put this in your ~/.mailcap on the machine you run Sup on: - text/html; /usr/bin/firefox -a sup '%s'; description=HTML Text; test=test -n "$DISPLAY"; nametemplate=%s.html + text/html; /usr/bin/firefox -a sup %s; description=HTML Text; test=test -n "$DISPLAY"; nametemplate=%s.html + + Please read + https://github.com/sup-heliotrope/sup/wiki/Viewing-Attachments for + some security concerns on opening attachments. diff --git a/doc/Hooks.txt b/doc/Hooks.txt index e996e9064..6c3397157 100644 --- a/doc/Hooks.txt +++ b/doc/Hooks.txt @@ -48,6 +48,10 @@ before-poll: mime-decode: + ## Please read: + https://github.com/sup-heliotrope/sup/wiki/Viewing-Attachments for + some security concerns on opening attachments. + ## turn text/html attachments into plain text, unless they are part ## of a multipart/alternative pair require 'shellwords' From e1a2076133b36f6d565441f16bfbd2c026ac7752 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Tue, 29 Oct 2013 11:22:16 +0100 Subject: [PATCH 07/20] Merge notes from 0.13.2.1, release notes from 0.14.1.1 Conflicts: lib/sup/version.rb Conflicts: CONTRIBUTORS History.txt ReleaseNotes Conflicts: History.txt ReleaseNotes --- History.txt | 10 ++++++++++ ReleaseNotes | 26 ++++++++++++++++++++++++++ lib/sup/version.rb | 2 +- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/History.txt b/History.txt index 20aab8bf4..1f5417cff 100644 --- a/History.txt +++ b/History.txt @@ -1,3 +1,13 @@ +== 0.14.1.1 / 2013-10-29 + +* SBU1: security release +* Tempfiles for attachments are persistent through the sup process to + ensure that spawned processes have access to them. + +== 0.13.2.1 / 2013-10-29 + +* SBU1: security release + == 0.14.1 / 2013-08-31 * Various bugfixes. diff --git a/ReleaseNotes b/ReleaseNotes index 97d0813e7..b0bf93b22 100644 --- a/ReleaseNotes +++ b/ReleaseNotes @@ -1,3 +1,29 @@ +Release 0.14.1.1: + +See 0.13.2.1. + +Release 0.13.2.1: + +Security advisory (#SBU1) for Sup + +We have been notified of an potential exploit in the somewhat careless +way Sup treats attachment metadata in received e-mails. The issues +should now be fixed and I have released Sup 0.13.2.1 and 0.14.1.1 which +incorporates these fixes. Please upgrade immediately and also ensure +that your mime-decode or mime-view hooks are secure [0], [1]. + +This is specifically related to using quotes (',") around filename or +content_type which is already escaped using Ruby Shellwords.escape - +this means that the string (content_type, filename) is intended to be +used _without_ any further quotes. Please make sure that if you use +.mailcap (non OSX systems), you do not quote the string. + +Credit goes to: joernchen of Phenoelit (http://phenoelit.de) who +discovered and suggested fixes for these issues. + +[0] https://github.com/sup-heliotrope/sup/wiki/Viewing-Attachments +[1] https://github.com/sup-heliotrope/sup/wiki/Secure-usage-of-Sup + Release 0.14.1: Service release to 0.14.0 plus a predefined 'All mail' search. diff --git a/lib/sup/version.rb b/lib/sup/version.rb index b8d3f7a96..cdff2dd00 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.14.1" + VERSION = "git" end From 628df59cde640295fc7fec1e87e0e3e10bba9552 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Tue, 29 Oct 2013 11:50:56 +0100 Subject: [PATCH 08/20] Bump to version 0.14.1.1 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index cdff2dd00..99c29be34 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "git" + VERSION = "0.14.1.1" end From 7911b63604832e89fdc6050c244c6b5f799716b2 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 7 Nov 2013 15:55:05 +0100 Subject: [PATCH 09/20] release 0.15.0 --- CONTRIBUTORS | 29 +++++++++++++++-------------- lib/sup/version.rb | 2 +- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a78e8116e..6060f75c2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -5,7 +5,7 @@ Whyme Lyu Hamish Downer Damien Leone Sascha Silbe -Eric Weikl +Eric Weikl Ismo Puustinen Nicolas Pouillard Michael Stapelberg @@ -17,34 +17,34 @@ Clint Byrum Marcus Williams Lionel Ott Gaudenz Steinlin -Mark Alexander Ingmar Vanhassel +Mark Alexander Edward Z. Yang +Matthieu Rakotojaona Christopher Warrington W. Trevor King Richard Brown Anthony Martinez Marc Hartstein -Matthieu Rakotojaona Israel Herraiz Bo Borgerson Michael Hamann -Jonathan Lassoff William Erik Baxter +Jonathan Lassoff Grant Hollingworth Adeodato Simó Ico Doornekamp Markus Klinik Daniel Schoepe -Jason Petsod James Taylor -Robin Burchell +Jason Petsod Steve Goldman +Robin Burchell Peter Harkins Decklin Foster Cameron Matheson -Alex Vandiver Carl Worth +Alex Vandiver Andrew Pimlott Jeff Balogh Matías Aguirre @@ -52,19 +52,20 @@ Kornilios Kourtis Giorgio Lando Kevin Riggle Benoît PIERRE -Steven Lawrance Alvaro Herrera +Steven Lawrance Jonah ian -Per Andersson Adam Lloyd -Todd Eisenberger Gregor Hoffleit +0xACE <0xACE at the users.noreply.github dot coms> +Per Andersson MichaelRevell +Todd Eisenberger Steven Walter -Stefan Lundström -Horacio Sanson -Jon M. Dugan -akojo Matthias Vallentin +akojo +Jon M. Dugan +Horacio Sanson +Stefan Lundström Kirill Smelkov diff --git a/lib/sup/version.rb b/lib/sup/version.rb index 99c29be34..043a9ea33 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.14.1.1" + VERSION = "0.15.0" end From 5cc075a85334b2ded420286c7139538599578f9d Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Wed, 4 Dec 2013 15:40:36 +0100 Subject: [PATCH 10/20] Release 0.15.1 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index 043a9ea33..5f16b8068 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.15.0" + VERSION = "0.15.1" end From 69ec7c32f708e6bc707213a74350503893ac0cd4 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Fri, 20 Dec 2013 10:26:14 +0100 Subject: [PATCH 11/20] release 0.15.2 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index 5f16b8068..6ea6118c7 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.15.1" + VERSION = "0.15.2" end From 343b3c4fe1c6f3a3f4cb5c3ca928455fbd1ced88 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Mon, 27 Jan 2014 11:44:44 +0100 Subject: [PATCH 12/20] release 0.15.3 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index 6ea6118c7..d084c51c5 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.15.2" + VERSION = "0.15.3" end From 53875d6c05110666f6bf694a8e81b2f12aacd3c8 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 6 Feb 2014 15:02:26 +0100 Subject: [PATCH 13/20] release 0.15.4 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index d084c51c5..b2a340312 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.15.3" + VERSION = "0.15.4" end From 9aa6b930c00b583641439834551dcae3491cebc4 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Fri, 21 Mar 2014 15:52:02 +0100 Subject: [PATCH 14/20] release 0.16.0 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index b2a340312..0b98d93c9 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.15.4" + VERSION = "0.16.0" end From 021db8cd37e1ed595703a109e1029a8e93721324 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Fri, 11 Apr 2014 09:17:01 +0200 Subject: [PATCH 15/20] release 0.17.0 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index 0b98d93c9..1cd484b67 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.16.0" + VERSION = "0.17.0" end From 6b3162ec19be5eacf5e84e8022215340bbf0015e Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Mon, 19 May 2014 12:14:40 +0200 Subject: [PATCH 16/20] release 0.18.0 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index 1cd484b67..e6f808b11 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.17.0" + VERSION = "0.18.0" end From 7cfef04e223cedef20f96f375d648065c31ccff1 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Sat, 5 Jul 2014 12:47:22 +0200 Subject: [PATCH 17/20] release 0.19.0 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index e6f808b11..40f458fcb 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.18.0" + VERSION = "0.19.0" end From 36c79336bbd1c3bb7df1efb80bb6415aa54b6e4e Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Mon, 6 Oct 2014 22:01:48 +0200 Subject: [PATCH 18/20] release 0.20.0 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index 40f458fcb..ea31a3bd1 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.19.0" + VERSION = "0.20.0" end From dc2f80f4ef71bfcb8a518f617555ab0f6c3af285 Mon Sep 17 00:00:00 2001 From: Gaute Hope Date: Thu, 12 Feb 2015 19:59:35 +0100 Subject: [PATCH 19/20] release 0.21.0 --- lib/sup/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/sup/version.rb b/lib/sup/version.rb index ea31a3bd1..898ed5e93 100644 --- a/lib/sup/version.rb +++ b/lib/sup/version.rb @@ -1,3 +1,3 @@ module Redwood - VERSION = "0.20.0" + VERSION = "0.21.0" end From 9ce212e2f9f7b3d56cd089b21ab18a44127fc8f8 Mon Sep 17 00:00:00 2001 From: ty221 Date: Fri, 2 Jan 2015 23:44:11 +0100 Subject: [PATCH 20/20] Fixed issue 28 from eMBee list --- lib/sup/modes/inbox_mode.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/sup/modes/inbox_mode.rb b/lib/sup/modes/inbox_mode.rb index 7638ea883..ae49b6168 100644 --- a/lib/sup/modes/inbox_mode.rb +++ b/lib/sup/modes/inbox_mode.rb @@ -78,7 +78,9 @@ def handle_idle_update sender, idle_since end def status - super + " #{Index.size} messages in index" + starred = Index.num_results_for(:labels => [:starred]) + unread = Index.num_results_for(:labels => [:unread]) + super + " #{Index.size} messages in index (#{starred} starred, #{unread} unread)" end end