# File lib/rubytorrent/bencoding.rb, line 69 def self.parse_bencoding(c, s) lens = c.chr while ((x = s.getc) != ?:) unless (?0 .. ?9).include? x s.ungetc x raise RubyTorrent::BEncodingError, "invalid bencoded string length #{lens} + #{x}" end lens += x.chr end raise RubyTorrent::BEncodingError, %{invalid length #{lens} in bencoded string} unless lens.length <= 20 len = lens.to_i raise RubyTorrent::BEncodingError, %{invalid length #{lens} in bencoded string} unless len >= 0 (len > 0 ? s.read(len) : "") end