class Gem::Package::TarHeader

def self.oct_or_256based(str)

def self.oct_or_256based(str)
  # \x80 flags a positive 256-based number
  # \ff flags a negative 256-based number
  # In case we have a match, parse it as a signed binary value
  # in big-endian order, except that the high-order bit is ignored.
  return str.unpack1("@4N") if /\A[\x80\xff]/n.match?(str)
  strict_oct(str)
end