+require "sup/hook"
+
+## we have to initialize this guy first, because other classes must
+## reference it in order to register hooks, and they do that at parse
+## time.
+Redwood::HookManager.new Redwood::HOOK_DIR
+
+## everything we need to get logging working
+require "sup/buffer"
+require "sup/keymap"
+require "sup/mode"
+require "sup/modes/scroll-mode"
+require "sup/modes/text-mode"
+require "sup/modes/log-mode"
+require "sup/logger"
+module Redwood
+ def log s; Logger.log s; end
+ module_function :log
+end
+
+## determine encoding and character set. there MUST be a better way to
+## do this.
+ $encoding = `locale -c LC_CTYPE|head -6|tail -1`.chomp
+ 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)