about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--code/fm/fm.rb (renamed from code/fm.rb)48
-rw-r--r--code/fm/keys.rb (renamed from code/keys.rb)0
-rw-r--r--code/fm/types.rb (renamed from code/types.rb)0
3 files changed, 26 insertions, 22 deletions
diff --git a/code/fm.rb b/code/fm/fm.rb
index 77dd327c..81b868ca 100644
--- a/code/fm.rb
+++ b/code/fm/fm.rb
@@ -20,18 +20,18 @@ class Void
 end
 
 module Fm
+	extend self
 	COPY_PRIORITY = -2
 
 	COLUMNS = 4
 	VI = "vi -c 'map h :quit<CR>' -c 'map q :quit<CR>'" <<
 		" -c 'map H :unmap h<CR>:unmap H<CR>' %s"
-
+	
 	def self.initialize(pwd=nil)
 		@bars = []
 		@bars_thread = nil
 		
 		@buffer = ''
-#		@mutex = Mutex.new
 		@pwd = nil
 		@search_string = ''
 		@copy = []
@@ -59,10 +59,6 @@ module Fm
 
 		# Give me some way to redraw screen while waiting for
 		# input from Interface.geti
-		Signal.trap(Scheduler::UPDATE_SIGNAL) do
-			@pwd.refresh
-			draw
-		end
 
 #		for i in 1..20
 #			eval "Signal.trap(#{i}) do
@@ -75,9 +71,17 @@ module Fm
 
 	attr_reader(:dirs, :pwd)
 
-	def self.pwd() @pwd end
+	def pwd() @pwd end
+
+	def refresh()
+		begin
+			@pwd.refresh
+			draw
+		rescue
+		end
+	end
 
-	def self.boot_up(pwd=nil)
+	def boot_up(pwd=nil)
 		pwd ||= @pwd.path || Dir.getwd
 		Scheduler.reset
 
@@ -93,11 +97,11 @@ module Fm
 		Scheduler.run
 	end
 
-	def self.lines
+	def lines
 		Interface::lines - @bars.size
 	end
 
-	def self.dump
+	def dump
 		remember_dir
 		dumped = Marshal.dump(@memory)
 		File.open(@fmrc, 'w') do |f|
@@ -105,12 +109,12 @@ module Fm
 		end
 	end
 
-	def self.on_interrupt
+	def on_interrupt
 		@buffer = ''
 		sleep 0.2
 	end
 
-	def self.main_loop
+	def main_loop
 		bool = false
 		while true
 			if @pwd.size == 0 or @pwd.pos < 0
@@ -146,11 +150,11 @@ module Fm
 		end
 	end
 
-	def self.current_path() @pwd.path end
+	def current_path() @pwd.path end
 
-	def self.reset_title() set_title("fm: #{@pwd.path}") end
+	def reset_title() set_title("fm: #{@pwd.path}") end
 
-	def self.enter_dir_safely(dir)
+	def enter_dir_safely(dir)
 		dir = File.expand_path(dir)
 		if File.exists?(dir) and File.directory?(dir)
 			olddir = @pwd.path
@@ -167,7 +171,7 @@ module Fm
 		end
 	end
 
-	def self.enter_dir(dir)
+	def enter_dir(dir)
 		@pwd.restore if @pwd
 		@marked = []
 		dir = File.expand_path(dir)
@@ -212,8 +216,8 @@ module Fm
 		Dir.chdir(@pwd.path)
 	end
 
-	def self.currentfile() @pwd.files[@pwd.pos] end
-	def self.selection()
+	def currentfile() @pwd.files[@pwd.pos] end
+	def selection()
 		if @marked.empty?
 			[currentfile]
 		else
@@ -221,7 +225,7 @@ module Fm
 		end
 	end
 
-	def self.move_to_trash!(fn)
+	def move_to_trash!(fn)
 		unless File.exists?(@trash)
 			Dir.mkdir(@trash)
 		end
@@ -232,7 +236,7 @@ module Fm
 		return new_path
 	end
 
-	def self.move_to_trash(file)
+	def move_to_trash(file)
 		unless file
 			return
 		end
@@ -261,7 +265,7 @@ module Fm
 		return nil
 	end
 
-	def self.bar_add(bar)
+	def bar_add(bar)
 		if @bars.empty?
 			# This thread updates the statusbars
 			@bars_thread = Thread.new do
@@ -274,7 +278,7 @@ module Fm
 		@bars << bar
 	end
 
-	def self.bar_del(bar)
+	def bar_del(bar)
 		@bars.delete(bar)
 		if @bars.empty?
 			@bars_thread.kill
diff --git a/code/keys.rb b/code/fm/keys.rb
index bca4f4cd..bca4f4cd 100644
--- a/code/keys.rb
+++ b/code/fm/keys.rb
diff --git a/code/types.rb b/code/fm/types.rb
index 2c21c214..2c21c214 100644
--- a/code/types.rb
+++ b/code/fm/types.rb