* bug fix: FILE-STRING-LENGTH is now external-format sensitive,
returning the number of octets which would be written to the
file-stream. (thanks to Robert J. Macomber)
+ * bug fix: the SB-SIMPLE-STREAMS contrib passes external-format
+ arguments to the internal stream functions. (thanks to David
+ Lichteblau)
* optimization: improved type inference for arithmetic-for
index variables in LOOP
* optimization: faster floating-point SQRT on x86-64
:rename-and-delete :overwrite
:append :supersede nil))
(:if-does-not-exist (member :error :create nil))
- (:external-format (member :default))
+ (:external-format keyword)
(:class (or symbol class))
(:mapped (member t nil))
(:input-handle (or null fixnum stream))
(type (member :input :output :io :probe) direction)
(type (member :error :new-version :rename :rename-and-delete
:overwrite :append :supersede nil) if-exists)
- (type (member :error :create nil) if-does-not-exist)
- (ignore external-format))
+ (type (member :error :create nil) if-does-not-exist))
(let ((filespec (merge-pathnames pathname)))
(multiple-value-bind (fd namestring original delete-original)
(%fd-open filespec direction if-exists if-exists-given
:pathname pathname
:dual-channel-p nil
:input-buffer-p t
- :auto-close t))
+ :auto-close t
+ :external-format external-format))
(:probe
(let ((stream (sb-impl::%make-fd-stream :name namestring :fd fd
:pathname pathname
(deftest string-simple-stream-1
(values (subtypep 'string-simple-stream 'string-stream))
T)
+
+;; don't break fd-stream external-format support:
+
+(deftest external-format-1
+ (progn
+ (with-open-file (s *test-file*
+ :direction :output
+ :if-exists :supersede
+ :element-type '(unsigned-byte 8))
+ (write-byte 195 s)
+ (write-byte 132 s))
+ (with-open-file (s *test-file*
+ :direction :input
+ :external-format :utf-8)
+ (char-code (read-char s))))
+ 196)
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.7.18"
+"0.9.7.19"