* lisp/emacs-lisp/bindat.el (strz): Include null terminator when
computing packed string length.
* test/lisp/emacs-lisp/bindat-tests.el (strz): Mark tests as passing.
('unpack `(bindat--unpack-strz ,len))
(`(length ,val)
`(cl-incf bindat-idx ,(cond
- ((null len) `(length ,val))
+ ((null len) `(1+ (length ,val)))
((numberp len) len)
- (t `(or ,len (length ,val))))))
+ (t `(or ,len (1+ (length ,val)))))))
(`(pack . ,args)
(macroexp-let2 nil len len
`(if ,len
(let ((spec (bindat-type strz)))
(ert-deftest bindat-test--strz-varlen-len ()
- :expected-result :failed
(should (equal (bindat-length spec "") 1))
(should (equal (bindat-length spec "abc") 4)))
(ert-deftest bindat-test--strz-varlen-pack ()
- :expected-result :failed
(should (equal (bindat-pack spec "") "\0"))
(should (equal (bindat-pack spec "abc") "abc\0")))