lib/sup.rb in sup-0.12.1 vs lib/sup.rb in sup-0.13.0
- old
+ new
@@ -1,7 +1,13 @@
require 'rubygems'
+
+require 'syck'
require 'yaml'
+if YAML.const_defined? :ENGINE
+ YAML::ENGINE.yamler = 'syck'
+end
+
require 'zlib'
require 'thread'
require 'fileutils'
require 'gettext'
require 'curses'
@@ -36,12 +42,10 @@
end
end
end
module Redwood
- VERSION = "0.12.1"
-
BASE_DIR = ENV["SUP_BASE"] || File.join(ENV["HOME"], ".sup")
CONFIG_FN = File.join(BASE_DIR, "config.yaml")
COLOR_FN = File.join(BASE_DIR, "colors.yaml")
SOURCE_FN = File.join(BASE_DIR, "sources.yaml")
LABEL_FN = File.join(BASE_DIR, "labels.txt")
@@ -218,12 +222,12 @@
Until this is corrected, messages from these sources cannot be viewed,
and new messages will not be detected. Luckily, this is easy to correct!
#{desynced_sources.map do |s|
- "Source: " + s.to_s +
- "\n Error: " + s.error.message.wrap(70).join("\n ") +
+ "Source: " + s.to_s +
+ "\n Error: " + s.error.message.wrap(70).join("\n ") +
"\n Fix: sup-sync --changed #{s.to_s}"
end}
EOM
#' stupid ruby-mode
end
@@ -254,26 +258,51 @@
RUBY_INVOCATION="ruby -Ilib" ruby -Ilib #{$0}
You can also try `gem uninstall sup` and removing all Sup rubygems.
EOS
+#' duh!
abort
end
end
## set up default configuration file
def load_config filename
+ default_config = {
+ :editor => ENV["EDITOR"] || "/usr/bin/vim -f -c 'setlocal spell spelllang=en_us' -c 'set filetype=mail'",
+ :thread_by_subject => false,
+ :edit_signature => false,
+ :ask_for_from => false,
+ :ask_for_to => true,
+ :ask_for_cc => true,
+ :ask_for_bcc => false,
+ :ask_for_subject => true,
+ :account_selector => true,
+ :confirm_no_attachments => true,
+ :confirm_top_posting => true,
+ :jump_to_open_message => true,
+ :discard_snippets_from_encrypted_messages => false,
+ :load_more_threads_when_scrolling => true,
+ :default_attachment_save_dir => "",
+ :sent_source => "sup://sent",
+ :archive_sent => true,
+ :poll_interval => 300,
+ :wrap_width => 0,
+ :slip_rows => 0,
+ :col_jump => 2,
+ :stem_language => "english"
+ }
if File.exists? filename
config = Redwood::load_yaml_obj filename
abort "#{filename} is not a valid configuration file (it's a #{config.class}, not a hash)" unless config.is_a?(Hash)
- config
+ default_config.merge config
else
require 'etc'
require 'socket'
name = Etc.getpwnam(ENV["USER"]).gecos.split(/,/).first rescue nil
name ||= ENV["USER"]
- email = ENV["USER"] + "@" +
+ email = ENV["USER"] + "@" +
begin
Socket.gethostbyname(Socket.gethostname).first
rescue SocketError
Socket.gethostname
end
@@ -287,28 +316,12 @@
:sendmail => "/usr/sbin/sendmail -oem -ti",
:signature => File.join(ENV["HOME"], ".signature"),
:gpgkey => ""
}
},
- :editor => ENV["EDITOR"] || "/usr/bin/vim -f -c 'setlocal spell spelllang=en_us' -c 'set filetype=mail'",
- :thread_by_subject => false,
- :edit_signature => false,
- :ask_for_from => false,
- :ask_for_to => true,
- :ask_for_cc => true,
- :ask_for_bcc => false,
- :ask_for_subject => true,
- :confirm_no_attachments => true,
- :confirm_top_posting => true,
- :jump_to_open_message => true,
- :discard_snippets_from_encrypted_messages => false,
- :default_attachment_save_dir => "",
- :sent_source => "sup://sent",
- :poll_interval => 300,
- :wrap_width => 0,
- :slip_rows => 0
}
+ config.merge! default_config
begin
Redwood::save_yaml_obj config, filename, false, true
rescue StandardError => e
$stderr.puts "warning: #{e.message}"
end
@@ -319,12 +332,14 @@
module_function :save_yaml_obj, :load_yaml_obj, :start, :finish,
:report_broken_sources, :check_library_version_against,
:load_config, :managers
end
+require 'sup/version'
require "sup/util"
require "sup/hook"
+require "sup/time"
## everything we need to get logging working
require "sup/logger"
Redwood::Logger.init.add_sink $stderr
include Redwood::LogsStuff
@@ -367,9 +382,10 @@
require "sup/undo"
require "sup/horizontal-selector"
require "sup/modes/line-cursor-mode"
require "sup/modes/help-mode"
require "sup/modes/edit-message-mode"
+require "sup/modes/edit-message-async-mode"
require "sup/modes/compose-mode"
require "sup/modes/resume-mode"
require "sup/modes/forward-mode"
require "sup/modes/reply-mode"
require "sup/modes/label-list-mode"