1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-07 15:00:34 -08:00

* lisp/emacs-lisp/bindat.el (bindat-spec): New macro.

It's basically an alias for `quote`, but it offers the advantage of
providing Edebug support and opens the possibility of compiling
the bindat spec to ELisp code.

* doc/lispref/processes.texi (Bindat Spec): Document `bindat-spec`.
(Bindat Functions): Tweak a few things to adjust to the state of the code.

* test/lisp/emacs-lisp/bindat-tests.el: Use it.

* test/lisp/emacs-lisp/edebug-tests.el (edebug-tests--read): New function.
(edebug-tests--&rest-behavior): New test.
This commit is contained in:
Stefan Monnier 2021-02-15 21:25:15 -05:00
parent 2106b12fa7
commit 83d9fbe3bb
5 changed files with 91 additions and 24 deletions

View file

@ -24,13 +24,15 @@
(require 'cl-lib)
(defvar header-bindat-spec
'((dest-ip ip)
(bindat-spec
(dest-ip ip)
(src-ip ip)
(dest-port u16)
(src-port u16)))
(defvar data-bindat-spec
'((type u8)
(bindat-spec
(type u8)
(opcode u8)
(length u16r) ;; little endian order
(id strz 8)
@ -38,7 +40,8 @@
(align 4)))
(defvar packet-bindat-spec
'((header struct header-bindat-spec)
(bindat-spec
(header struct header-bindat-spec)
(items u8)
(fill 3)
(item repeat (items)