changeset 70906:6d78b8af6fc8

(bindat-unpack, bindat-pack): Signal error if RAW-DATA is a multibyte string.
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Thu, 25 May 2006 08:51:31 +0000
parents adc0a37fadc1
children 4f3bfa0df084
files lisp/emacs-lisp/bindat.el
diffstat 1 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/bindat.el	Thu May 25 04:52:20 2006 +0000
+++ b/lisp/emacs-lisp/bindat.el	Thu May 25 08:51:31 2006 +0000
@@ -345,8 +345,10 @@
 
 (defun bindat-unpack (spec raw-data &optional pos)
   "Return structured data according to SPEC for binary data in RAW-DATA.
-RAW-DATA is a string or vector.  Optional third arg POS specifies the
-starting offset in RAW-DATA."
+RAW-DATA is a unibyte string or vector.  Optional third arg POS specifies
+the starting offset in RAW-DATA."
+  (when (multibyte-string-p raw-data)
+    (error "String is multibyte"))
   (unless pos (setq pos 0))
   (bindat--unpack-group spec))
 
@@ -581,10 +583,10 @@
 
 (defun bindat-pack (spec struct &optional raw-data pos)
   "Return binary data packed according to SPEC for structured data STRUCT.
-Optional third arg RAW-DATA is a pre-allocated string or vector to pack into.
-Optional fourth arg POS is the starting offset into RAW-DATA.
-Note: The result is a multibyte string; use `string-make-unibyte' on it
-to make it unibyte if necessary."
+Optional third arg RAW-DATA is a pre-allocated unibyte string or vector to
+pack into.  Optional fourth arg POS is the starting offset into RAW-DATA."
+  (when (multibyte-string-p raw-data)
+    (error "Pre-allocated string is multibyte"))
   (let ((no-return raw-data))
     (unless pos (setq pos 0))
     (unless raw-data