[Git][cmucl/cmucl][issue-140-stream-element-type-two-way-stream] 4 commits: Fix #150: add aliases cp949 euckr

Raymond Toy (@rtoy) gitlab at common-lisp.net
Wed Nov 2 18:57:53 UTC 2022



Raymond Toy pushed to branch issue-140-stream-element-type-two-way-stream at cmucl / cmucl


Commits:
402c0c01 by Raymond Toy at 2022-11-02T01:00:20+00:00
Fix #150: add aliases cp949 euckr

- - - - -
d825aa54 by Raymond Toy at 2022-11-02T01:00:20+00:00
Merge branch 'issue-150-add-aliases-cp949-euckr' into 'master'

Fix #150: add aliases cp949 euckr

Closes #150

See merge request cmucl/cmucl!106
- - - - -
23f6f8ef by Raymond Toy at 2022-11-02T11:52:39-07:00
Return :default for external format of a two-way-stream

Per discussion on the merge request, we'll return :default for a
`two-way-stream`.  For unsupported streams, signal an error.

Rename the tests to have more meaningful names.

- - - - -
4d69dda7 by Raymond Toy at 2022-11-02T11:57:23-07:00
Merge branch 'master' into issue-140-stream-element-type-two-way-stream

- - - - -


3 changed files:

- src/code/stream.lisp
- src/pcl/simple-streams/external-formats/aliases
- tests/issues.lisp


Changes:

=====================================
src/code/stream.lisp
=====================================
@@ -290,8 +290,7 @@
   (stream-dispatch stream
     ;; simple-stream
     (stream::%stream-external-format stream)
-    ;; lisp-stream
-    ;; The stream is a file stream; signal an error if it's not.
+    ;; lisp-stream.  For unsupported streams, signal a type error.
     (etypecase stream
       #+unicode
       (fd-stream (fd-stream-external-format stream))
@@ -299,18 +298,14 @@
        ;; See http://www.lispworks.com/documentation/HyperSpec/Body/t_broadc.htm
        :default)
       (synonym-stream
-       ;; What should happen if (synonym-stream-symbol stream) is unbound?
+       ;; Not defined by CLHS.  What should happen if
+       ;; (synonym-stream-symbol stream) is unbound?
        (stream-external-format
 	(symbol-value (synonym-stream-symbol stream))))
       (two-way-stream
-       ;; Not defined by CLHS, but useful to return the common format
-       ;; of the input and output streams when they're the same;
-       ;; otherwise return :default.
-       (let ((in-format (stream-external-format (two-way-stream-input-stream stream)))
-	     (out-format (stream-external-format (two-way-stream-output-stream stream))))
-	 (if (eql in-format out-format)
-	     in-format
-	     :default))))
+       ;; Not defined by CLHS, but use default for backward
+       ;; compatibility.
+       :default))
     ;; fundamental-stream
     :default))
 


=====================================
src/pcl/simple-streams/external-formats/aliases
=====================================
@@ -223,6 +223,8 @@ windows-cp1252	cp1252
 windows-latin1	cp1252
 ms-ansi		cp1252
 
+euckr		euc-kr
+cp949		euc-kr
 ;; These are not yet implemented
 ;;iso-2022-jp	iso2022-jp
 ;;iso2022jp	iso2022-jp


=====================================
tests/issues.lisp
=====================================
@@ -749,7 +749,7 @@
 
 ;; Test two-way-stream where both streams have the same external
 ;; format.
-(define-test issue.140.1
+(define-test issue.140.two-way-stream-same
     (:tag :issues)
   (with-open-file (in (merge-pathnames "issues.lisp" cmucl-test-runner::*load-path*)
 		      :direction :input
@@ -759,11 +759,11 @@
 			 :external-format :utf-8
 			 :if-exists :supersede)
       (let ((two-way-stream (make-two-way-stream in out)))
-	(assert-equal :utf-8 (stream-external-format two-way-stream))))))
+	(assert-equal :default (stream-external-format two-way-stream))))))
 
 ;; Test two-way-stream where the two streams have the different
 ;; external formats.
-(define-test issue.140.2
+(define-test issue.140.two-way-stream-diff
     (:tag :issues)
   (with-open-file (in (merge-pathnames "issues.lisp" cmucl-test-runner::*load-path*)
 		      :direction :input
@@ -776,7 +776,7 @@
 	(assert-equal :default (stream-external-format two-way-stream))))))
 
 ;; Test synonym-stream returns the format of the underlying stream.
-(define-test issue.140.3
+(define-test issue.140.synonym-stream
     (:tag :issues)
   (with-open-file (s (merge-pathnames "issues.lisp" cmucl-test-runner::*load-path*)
 		     :direction :input
@@ -784,3 +784,10 @@
     (let ((syn (make-synonym-stream '*syn-stream*)))
       (setf syn s)
       (assert-equal :iso8859-1 (stream-external-format syn)))))
+
+(define-test issue.150
+    (:tag :issues)
+  (let ((ext:*gc-verbose* nil)
+	(*compile-print* nil))
+    (assert-true (stream::find-external-format :euckr))
+    (assert-true (stream::find-external-format :cp949))))



View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/4e75e96f5b82f1dfcca6f14354c5f364b6252c31...4d69dda728c54cba0ab7c9c084b8df8169771af0

-- 
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/4e75e96f5b82f1dfcca6f14354c5f364b6252c31...4d69dda728c54cba0ab7c9c084b8df8169771af0
You're receiving this email because of your account on gitlab.common-lisp.net.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cmucl-cvs/attachments/20221102/49a016e3/attachment-0001.html>


More information about the cmucl-cvs mailing list