This commit is contained in:
Ward Wouts 2008-02-06 15:41:22 +00:00
parent 2747b95b18
commit beeeefe317

View file

@ -27,17 +27,17 @@ Debuglevel = 0
def uudecode(data, outfile=nil) def uudecode(data, outfile=nil)
case data.class.to_s case data.class.to_s
when "Array" when "Array"
print "Calling _uudecode_array\n" if Debuglevel>0 puts "Calling _uudecode_array" if Debuglevel>0
mode, filename, body = _uudecode_array(data) mode, filename, body = _uudecode_array(data)
when "File", "Tempfile" when "File", "Tempfile"
unless outfile unless outfile
print "uudecode: need outfile\n" puts "uudecode: need outfile"
exit exit
end end
print "Calling _uudecode_file\n" if Debuglevel>0 puts "Calling _uudecode_file" if Debuglevel>0
mode, filename, body = _uudecode_file(data, outfile) mode, filename, body = _uudecode_file(data, outfile)
else else
print "Funny stuff in uudecode. Data of class \"#{data.class.to_s}\"\n" puts "Funny stuff in uudecode. Data of class \"#{data.class.to_s}\""
end end
return mode, filename, body return mode, filename, body
end end
@ -56,30 +56,30 @@ def _uudecode_file(file, outfile)
print "line: #{line}" if Debuglevel > 0 print "line: #{line}" if Debuglevel > 0
if line =~ /^begin(.*)/ if line =~ /^begin(.*)/
m = $1 m = $1
print "beginning matched; rest: #{m}\n" if Debuglevel > 0 puts "beginning matched; rest: #{m}" if Debuglevel > 0
if m =~ /^(\s+(\d+))?(\s+(.*?\S))?\s*\Z/ if m =~ /^(\s+(\d+))?(\s+(.*?\S))?\s*\Z/
mode = $2 mode = $2
filename = $4 filename = $4
print "found beginning\n" if Debuglevel > 0 puts "found beginning" if Debuglevel > 0
else else
print "mode, file set to defaults: #{m}\n" puts "mode, file set to defaults: #{m}"
end end
break break
end end
end end
if file.eof if file.eof
print "Not UUencoded!\n" puts "Not UUencoded!"
return false return false
end end
print "c: #{c} mark: #{mark} lines: #{lines}\n" if Debuglevel > 1 puts "c: #{c} mark: #{mark} lines: #{lines}" if Debuglevel > 1
while (! file.eof) while (! file.eof)
if Debuglevel > 1 if Debuglevel > 1
c = file.pos c = file.pos
if c > mark if c > mark
print "#{percent}%\n" puts "#{percent}%"
print "c: #{c} mark: #{mark} lines: #{lines}\n" if Debuglevel > 1 puts "c: #{c} mark: #{mark} lines: #{lines}" if Debuglevel > 1
percent += 1 percent += 1
mark = (lines/100)*(percent+1) mark = (lines/100)*(percent+1)
end end
@ -93,7 +93,7 @@ def _uudecode_file(file, outfile)
outfile.print line.unpack("u") outfile.print line.unpack("u")
end end
print "No \"end\" found!!!\n" puts "No \"end\" found!!!"
#return mode, file, outfile #return mode, file, outfile
return false return false
end end
@ -115,13 +115,13 @@ def _uudecode_array(data)
while (i < data.length) while (i < data.length)
if data[i] =~ /^begin(.*)/ if data[i] =~ /^begin(.*)/
m = $1 m = $1
print "beginning matched; rest: #{m}\n" if Debuglevel > 0 puts "beginning matched; rest: #{m}" if Debuglevel > 0
if m =~ /^(\s+(\d+))?(\s+(.*?\S))?\s*\Z/ if m =~ /^(\s+(\d+))?(\s+(.*?\S))?\s*\Z/
mode = $2 mode = $2
filename = $4 filename = $4
print "found beginning\n" if Debuglevel > 0 puts "found beginning" if Debuglevel > 0
else else
print "mode, filename set to defaults: #{m}\n" puts "mode, filename set to defaults: #{m}"
end end
break break
end end
@ -129,15 +129,15 @@ def _uudecode_array(data)
end end
unless (i < data.length) unless (i < data.length)
print "Not UUencoded!\n" puts "Not UUencoded!"
return false return false
end end
while (i < data.length) while (i < data.length)
if Debuglevel > 1 if Debuglevel > 1
if c > mark if c > mark
print "#{percent}%\n" puts "#{percent}%"
print "c: #{c} mark: #{mark} lines: #{lines} i: #{i}\n" if Debuglevel > 1 puts "c: #{c} mark: #{mark} lines: #{lines} i: #{i}" if Debuglevel > 1
percent += 1 percent += 1
mark = (lines/100)*(percent+1) mark = (lines/100)*(percent+1)
end end
@ -158,7 +158,7 @@ def _uudecode_array(data)
end end
end end
print "No \"end\" found!!!\n" puts "No \"end\" found!!!"
return false return false
end end