rare tekens beter opvangen
This commit is contained in:
parent
34fcd4fe53
commit
ebef3d8649
1 changed files with 20 additions and 27 deletions
|
|
@ -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!(/</, "")
|
||||
nname.gsub!(/©/, "(c)")
|
||||
nname.gsub!(/®/, "(r)")
|
||||
|
||||
nname.sub!(/\s*$/, "")
|
||||
nname.sub!(/^[\s\.-]*/, "")
|
||||
print "nname: #{nname}\n" if Debuglevel > 1
|
||||
|
|
@ -96,23 +102,16 @@ def save_file(dir, name, data)
|
|||
end
|
||||
print "name: #{newname}\n" if Debuglevel > 1
|
||||
|
||||
begin
|
||||
case data.class.to_s
|
||||
when "String"
|
||||
begin
|
||||
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
|
||||
if file = File.new("#{dir}/#{newname}", "w", 0644)
|
||||
print " Saving as: '#{newname}'\n"
|
||||
data.collect{|i| file.print "#{i}"}
|
||||
|
|
@ -120,30 +119,24 @@ 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
|
||||
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"
|
||||
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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue