(fd-stream-element-type fd-stream))
(:interactive-p
;; FIXME: sb!unix:unix-isatty is undefined.
- (sb!unix:unix-isatty (fd-stream-fd fd-stream)))
+ (= 1 (the (member 0 1)
+ (sb!unix:unix-isatty (fd-stream-fd fd-stream)))))
(:line-length
80)
(:charpos
:ELEMENT-TYPE - the type of object to read or write, default BASE-CHAR
:IF-EXISTS - one of :ERROR, :NEW-VERSION, :RENAME, :RENAME-AND-DELETE,
:OVERWRITE, :APPEND, :SUPERSEDE or NIL
- :IF-DOES-NOT-EXIST - one of :ERROR, :CREATE or nil
+ :IF-DOES-NOT-EXIST - one of :ERROR, :CREATE or NIL
See the manual for details."
- (unless (eq external-format :default)
- (error "Any external format other than :DEFAULT isn't recognized."))
-
- ;; First, make sure that DIRECTION is valid.
- (ensure-one-of direction
- '(:input :output :io :probe)
- :direction)
-
;; Calculate useful stuff.
(multiple-value-bind (input output mask)
(case direction
(logior (logandc2 mask sb!unix:o_creat)
sb!unix:o_trunc)))
(setf if-exists :supersede))))
-
+
;; Now we can try the actual Unix open(2).
(multiple-value-bind (fd errno)
(if namestring
(stream-reinit)
(setf *terminal-io* (make-synonym-stream '*tty*))
(setf *standard-output* (make-synonym-stream '*stdout*))
- (setf *standard-input*
- (#!-high-security
- ;; FIXME: Why is *STANDARD-INPUT* a TWO-WAY-STREAM? ANSI says
- ;; it's an input stream.
- make-two-way-stream
- #!+high-security
- %make-two-way-stream (make-synonym-stream '*stdin*)
- *standard-output*))
+ (setf *standard-input* (make-synonym-stream '*stdin*))
(setf *error-output* (make-synonym-stream '*stderr*))
(setf *query-io* (make-synonym-stream '*terminal-io*))
(setf *debug-io* *query-io*)