From ebef3d864915ece56789706e6ab6d58d95014d54 Mon Sep 17 00:00:00 2001 From: Ward Wouts Date: Tue, 2 Aug 2005 20:34:59 +0000 Subject: [PATCH] rare tekens beter opvangen --- trunk/ripnews/ripnews.rb | 47 +++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/trunk/ripnews/ripnews.rb b/trunk/ripnews/ripnews.rb index cb83e92..474d6ae 100755 --- a/trunk/ripnews/ripnews.rb +++ b/trunk/ripnews/ripnews.rb @@ -82,7 +82,13 @@ Debuglevel = 0 def save_file(dir, name, data) print "savename: #{name}\n" if Debuglevel > 1 + nname = name.gsub(/\//, "-") + nname.gsub!(/>/, "") + nname.gsub!(/ 1 @@ -96,23 +102,16 @@ def save_file(dir, name, data) end print "name: #{newname}\n" if Debuglevel > 1 - case data.class.to_s - when "String" - begin + begin + case data.class.to_s + when "String" if File.move(data, "#{dir}/#{newname}") print " Saving as: '#{newname}'\n" else print "couldn't rename tempfile\n" return false end - rescue Errno::ENOENT - print "Caught Errno::ENOENT (save_file)\n" - print "Error: #{$!}\n" - print "What the *beep* happened?\n" - return false - end - when "Array" - begin + when "Array" if file = File.new("#{dir}/#{newname}", "w", 0644) print " Saving as: '#{newname}'\n" data.collect{|i| file.print "#{i}"} @@ -120,29 +119,23 @@ def save_file(dir, name, data) print "couldn't open file for writeing\n" return false end - rescue Errno::EINVAL - print "Caught Errno::EINVAL (save_file)\n" - print "Error: #{$!}\n" - print "What the *beep* happened?\n" - return false - end - when "Tempfile" - begin + when "Tempfile" if File.move(data.path, "#{dir}/#{newname}") print " Saving as: '#{newname}'\n" else print "couldn't rename tempfile\n" return false end - rescue Errno::ENOENT - print "Caught Errno::ENOENT (save_file)\n" - print "Error: #{$!}\n" - print "What the *beep* happened?\n" + else + print "EEEEPS Can't save data of class: #{data.class.to_s}\n" return false - end - else - print "EEEEPS Can't save data of class: #{data.class.to_s}\n" - return false + end + rescue Errno::ENOENT, Errno::EINVAL + print "Caught #{$!.class} (save_file)\n" + print "Error: #{$!}\n" + print "What the *beep* happened?\n" + print "(if Errno::EINVAL probably evil chars in filename)\n" + return false end return true end