require 'zlib'
require 'thread'
require 'fileutils'
+require 'gettext'
require 'curses'
class Object
end
module Redwood
- VERSION = "0.3"
+ VERSION = "0.5"
BASE_DIR = ENV["SUP_BASE"] || File.join(ENV["HOME"], ".sup")
CONFIG_FN = File.join(BASE_DIR, "config.yaml")
YAML_DOMAIN = "masanjin.net"
YAML_DATE = "2006-10-01"
-## determine encoding and character set
-## probably a better way to do this
- $ctype = ENV["LC_CTYPE"] || ENV["LANG"] || "en-US.utf-8"
- $encoding =
- if $ctype =~ /\.(.*)?/
- $1
- else
- "utf-8"
- end
-
## record exceptions thrown in threads nicely
def reporting_thread name
if $opts[:no_threads]
def save_yaml_obj object, fn, safe=false
if safe
safe_fn = "#{File.dirname fn}/safe_#{File.basename fn}"
- mode = File.stat(fn) if File.exists? fn
+ mode = File.stat(fn).mode if File.exists? fn
File.open(safe_fn, "w", mode) { |f| f.puts object.to_yaml }
FileUtils.mv safe_fn, fn
else
else
require 'etc'
require 'socket'
- name = Etc.getpwnam(ENV["USER"]).gecos.split(/,/).first
+ name = Etc.getpwnam(ENV["USER"]).gecos.split(/,/).first rescue nil
+ name ||= ENV["USER"]
email = ENV["USER"] + "@" +
begin
Socket.gethostbyname(Socket.gethostname).first
:ask_for_subject => true,
:confirm_no_attachments => true,
:confirm_top_posting => true,
+ :discard_snippets_from_encrypted_messages => false,
}
begin
FileUtils.mkdir_p Redwood::BASE_DIR
module_function :log
end
+## determine encoding and character set
+ $encoding = Locale.current.charset
+ if $encoding
+ Redwood::log "using character set encoding #{$encoding.inspect}"
+ else
+ Redwood::log "warning: can't find character set by using locale, defaulting to utf-8"
+ $encoding = "utf-8"
+ end
+
## now everything else (which can feel free to call Redwood::log at load time)
require "sup/update"
require "sup/suicide"