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)
|
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
|
||||||
|
|
||||||
case data.class.to_s
|
begin
|
||||||
when "String"
|
case data.class.to_s
|
||||||
begin
|
when "String"
|
||||||
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
|
when "Array"
|
||||||
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)
|
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,29 +119,23 @@ 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
|
when "Tempfile"
|
||||||
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}")
|
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
|
else
|
||||||
print "Caught Errno::ENOENT (save_file)\n"
|
print "EEEEPS Can't save data of class: #{data.class.to_s}\n"
|
||||||
print "Error: #{$!}\n"
|
|
||||||
print "What the *beep* happened?\n"
|
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
else
|
rescue Errno::ENOENT, Errno::EINVAL
|
||||||
print "EEEEPS Can't save data of class: #{data.class.to_s}\n"
|
print "Caught #{$!.class} (save_file)\n"
|
||||||
return false
|
print "Error: #{$!}\n"
|
||||||
|
print "What the *beep* happened?\n"
|
||||||
|
print "(if Errno::EINVAL probably evil chars in filename)\n"
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue