Function: bindat--unpack-item
bindat--unpack-item is a byte-compiled function defined in
bindat.el.gz.
Signature
(bindat--unpack-item TYPE LEN &optional VECTYPE)
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/bindat.el.gz
(defun bindat--unpack-item (type len &optional vectype)
(if (eq type 'ip)
(setq type 'vec len 4))
(pcase type
((or 'u8 'byte) (bindat--unpack-u8))
((or 'u16 'word 'short) (bindat--unpack-u16))
('u24 (bindat--unpack-u24))
((or 'u32 'dword 'long) (bindat--unpack-u32))
('u16r (bindat--unpack-u16r))
('u24r (bindat--unpack-u24r))
('u32r (bindat--unpack-u32r))
('bits (bindat--unpack-bits len))
('str (bindat--unpack-str len))
('strz (bindat--unpack-strz len))
('vec
(when (> len (length bindat-raw))
(error "Vector length %d is greater than raw data length %d"
len (length bindat-raw)))
(let ((v (make-vector len 0)) (vlen 1))
(if (consp vectype)
(setq vlen (nth 1 vectype)
vectype (nth 2 vectype))
(setq type (or vectype 'u8)
vectype nil))
(dotimes (i len)
(aset v i (bindat--unpack-item type vlen vectype)))
v))
(_ nil)))