From 2d4227a362b763609c04c525e4a2612100626a5c Mon Sep 17 00:00:00 2001
From: Paul van Tilburg
Date: Thu, 16 Jul 2009 12:02:40 +0200
Subject: [PATCH] Clean up cruft on quit.
---
rubberin | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/rubberin b/rubberin
index 52dca8a..a9eee54 100755
--- a/rubberin
+++ b/rubberin
@@ -71,7 +71,7 @@ def compile(infile, mode)
ret = system "rubber --inplace #{mode_opt} #{params} #{infile} 2> #{err_file}"
File.open(err_file) { |file| puts file.read }
# Remove the output save file if compile was succesful.
- File.unlink(err_file) if ret
+ clean(infile) if ret
end
# Start the right viewer based on the mode.
@@ -87,6 +87,13 @@ def view(infile, mode)
end
end
+# Clean up cruft related to compilation of the input file.
+def clean(infile)
+ err_file = infile.with_extname('err')
+ File.unlink(err_file) if err_file.exist?
+ system "rubber --clean --inplace #{infile}"
+end
+
# Reload the right viewer based on the mode.
def reload(infile, mode)
case mode
@@ -159,10 +166,18 @@ view(infile, mode) if not viewer_pid
# Handle signals.
["INT", "TERM", "QUIT"].each do |sig|
- Signal.trap(sig) { Process.kill(sig, viewer_pid); exit }
+ Signal.trap(sig) do
+ Process.kill(sig, viewer_pid)
+ clean(infile)
+ exit
+ end
end
# If xdvi exits, this program should exit too.
-Signal.trap("CLD") { puts "#{Program}: viewer exited, so will I!"; exit }
+Signal.trap("CLD") do
+ puts "#{Program}: viewer exited, so will I!"
+ clean(infile)
+ exit
+end
## Main event loop