From: wmorgan Date: Mon, 9 Jul 2007 00:20:14 +0000 (+0000) Subject: labelmanager bugfix (deletion) and now only saves if modified X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=c0d67ca3447a10fbad9977da1b76592f150ab1c2;p=sup labelmanager bugfix (deletion) and now only saves if modified git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@489 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- diff --git a/lib/sup/label.rb b/lib/sup/label.rb index 5d3dc4a..755ed3f 100644 --- a/lib/sup/label.rb +++ b/lib/sup/label.rb @@ -22,6 +22,7 @@ class LabelManager [] end @labels = {} + @modified = false labels.each { |t| @labels[t] = true } self.class.i_am_the_instance self @@ -40,9 +41,21 @@ class LabelManager string.downcase.intern end - def << t; @labels[t] = true unless @labels.member?(t) || RESERVED_LABELS.member?(t); end - def delete t; @labels.delete t; end + def << t + unless @labels.member?(t) || RESERVED_LABELS.member?(t) + @labels[t] = true + @modified = true + end + end + + def delete t + if @labels.delete t + @modified = true + end + end + def save + return unless @modified File.open(@fn, "w") { |f| f.puts @labels.keys } end end diff --git a/lib/sup/modes/label-list-mode.rb b/lib/sup/modes/label-list-mode.rb index cd7f9f5..22de97f 100644 --- a/lib/sup/modes/label-list-mode.rb +++ b/lib/sup/modes/label-list-mode.rb @@ -44,7 +44,7 @@ protected counts.map do |label, string, total, unread| if total == 0 && !LabelManager::RESERVED_LABELS.include?(label) Redwood::log "no hits for label #{label}, deleting" - LabelManager.delete t + LabelManager.delete label next end