Clean up cruft on quit.

This commit is contained in:
Paul van Tilburg 2009-07-16 12:02:40 +02:00
parent 654a04f401
commit 2d4227a362
1 changed files with 18 additions and 3 deletions

View File

@ -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