Changeset 5304
- Timestamp:
- Oct 6, 2006, 3:39:23 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/level-1/l1-sysio.lisp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/level-1/l1-sysio.lisp
r5293 r5304 159 159 is :UNIX.") 160 160 161 (defstruct external-format 162 (character-encoding :default) 163 (line-termination :default)) 164 165 161 166 (defun normalize-external-format (domain external-format) 162 167 (cond ((listp external-format) 163 168 (unless (plistp external-format) 164 169 (error "External-format ~s is not a property list." external-format)) 165 (let* ((character-encoding (getf external-format :character-encoding :default)) 166 (line-termination (getf external-format :line-termination :default))) 170 (normalize-external-format domain (apply #'make-external-format external-format))) 171 ((typep external-format 'external-format) 172 (let* ((character-encoding (external-format-character-encoding external-format)) 173 (line-termination (external-format-line-termination external-format))) 167 174 (when (or (eq character-encoding :default) 168 175 (eq line-termination :default)) 169 (setq external-format (copy- list external-format))176 (setq external-format (copy-external-format external-format)) 170 177 (if (eq line-termination :default) 171 (setf ( getf external-format :line-termination)178 (setf (external-format-line-termination external-format) 172 179 (setq line-termination *default-line-termination*))) 173 180 (unless (member line-termination *known-line-termination-formats*) 174 181 (error "~S is not a known line-termination format." line-termination)) 175 182 (if (eq character-encoding :default) 176 (setf ( getf external-format :character-encoding)183 (setf (external-format-character-encoding external-format) 177 184 (setq character-encoding 178 185 (default-character-encoding domain)))) … … 844 851 (if char-p 845 852 (normalize-external-format :file external-format) 846 '(:binary :t)))847 (line-termination ( getf real-external-format :line-termination))848 (encoding ( getf real-external-format :character-encoding))853 )) 854 (line-termination (if char-p (external-format-line-termination real-external-format))) 855 (encoding (if char-p (external-format-character-encoding real-external-format))) 849 856 (class-name (select-stream-class class in-p out-p char-p)) 850 857 (class (find-class class-name)) … … 868 875 :device fd 869 876 :encoding encoding 870 :external-format real-external-format877 :external-format (or real-external-format :binary) 871 878 :sharing sharing 872 879 :character-p (or (eq element-type 'character)
Note:
See TracChangeset
for help on using the changeset viewer.
