class CFPropertyList::Binary

def read_binary_date(fname,fd,length)

read a binary date value
def read_binary_date(fname,fd,length)
  raise CFFormatError.new("Date greater than 8 bytes: #{length}") if length > 3
  nbytes = 1 << length
  buff = fd.read(nbytes)
  CFDate.new(
    case length
    when 0 then # 1 byte CFDate is an error
      raise CFFormatError.new("#{length+1} byte CFDate, error")
    when 1 then # 2 byte CFDate is an error
      raise CFFormatError.new("#{length+1} byte CFDate, error")
    when 2 then
      buff.reverse.unpack("f")[0]
    when 3 then
      buff.reverse.unpack("d")[0]
    end,
    CFDate::TIMESTAMP_APPLE
  )
end