From eb96f3ef06e9bc62a8124aebab321ec060b179aa Mon Sep 17 00:00:00 2001
From: rtoy <rtoy>
Date: Mon, 20 Apr 2009 20:53:47 +0000
Subject: [PATCH] Merge change from unicode-utf16-extfmt-branch that fixes the
 end index issue with WRITE-VECTOR.

---
 code/stream-vector-io.lisp | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/code/stream-vector-io.lisp b/code/stream-vector-io.lisp
index 07ae3985c..3fefa609b 100644
--- a/code/stream-vector-io.lisp
+++ b/code/stream-vector-io.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/stream-vector-io.lisp,v 1.4 2009/04/10 17:21:35 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/stream-vector-io.lisp,v 1.5 2009/04/20 20:53:47 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -159,12 +159,14 @@
 	   (unless (typep vector '(or string simple-numeric-vector))
 	     (error "Wrong vector type ~a for write-vector on stream ~a." (type-of vector)
 		    stream))
-	   (endian-swap-vector vector start end swap-mask)
-	   (unwind-protect
-		(write-sequence vector stream
-				:start (floor start octets-per-element)
-				:end (floor end octets-per-element))
-	     (endian-swap-vector vector start end swap-mask))
+	   (let ((start-idx (floor start octets-per-element))
+		 (end-idx (floor end octets-per-element)))
+	     (endian-swap-vector vector start-idx end-idx swap-mask)
+	     (unwind-protect
+		  (write-sequence vector stream
+				  :start start-idx
+				  :end end-idx)
+	       (endian-swap-vector vector start-idx end-idx swap-mask)))
 	   vector))
     (* next-index octets-per-element)))
 
-- 
GitLab