rare tekens beter opvangen

This commit is contained in:
Ward Wouts 2005-08-02 20:34:59 +00:00
parent 34fcd4fe53
commit ebef3d8649

View file

@ -82,7 +82,13 @@ Debuglevel = 0
def save_file(dir, name, data) def save_file(dir, name, data)
print "savename: #{name}\n" if Debuglevel > 1 print "savename: #{name}\n" if Debuglevel > 1
nname = name.gsub(/\//, "-") nname = name.gsub(/\//, "-")
nname.gsub!(/>/, "")
nname.gsub!(/</, "")
nname.gsub!(/©/, "(c)")
nname.gsub!(/®/, "(r)")
nname.sub!(/\s*$/, "") nname.sub!(/\s*$/, "")
nname.sub!(/^[\s\.-]*/, "") nname.sub!(/^[\s\.-]*/, "")
print "nname: #{nname}\n" if Debuglevel > 1 print "nname: #{nname}\n" if Debuglevel > 1
@ -96,23 +102,16 @@ def save_file(dir, name, data)
end end
print "name: #{newname}\n" if Debuglevel > 1 print "name: #{newname}\n" if Debuglevel > 1
begin
case data.class.to_s case data.class.to_s
when "String" when "String"
begin
if File.move(data, "#{dir}/#{newname}") if File.move(data, "#{dir}/#{newname}")
print " Saving as: '#{newname}'\n" print " Saving as: '#{newname}'\n"
else else
print "couldn't rename tempfile\n" print "couldn't rename tempfile\n"
return false return false
end 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" when "Array"
begin
if file = File.new("#{dir}/#{newname}", "w", 0644) if file = File.new("#{dir}/#{newname}", "w", 0644)
print " Saving as: '#{newname}'\n" print " Saving as: '#{newname}'\n"
data.collect{|i| file.print "#{i}"} data.collect{|i| file.print "#{i}"}
@ -120,30 +119,24 @@ def save_file(dir, name, data)
print "couldn't open file for writeing\n" print "couldn't open file for writeing\n"
return false return false
end 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" when "Tempfile"
begin
if File.move(data.path, "#{dir}/#{newname}") if File.move(data.path, "#{dir}/#{newname}")
print " Saving as: '#{newname}'\n" print " Saving as: '#{newname}'\n"
else else
print "couldn't rename tempfile\n" print "couldn't rename tempfile\n"
return false return false
end end
rescue Errno::ENOENT
print "Caught Errno::ENOENT (save_file)\n"
print "Error: #{$!}\n"
print "What the *beep* happened?\n"
return false
end
else else
print "EEEEPS Can't save data of class: #{data.class.to_s}\n" print "EEEEPS Can't save data of class: #{data.class.to_s}\n"
return false return false
end 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 return true
end end