The 'read-line' function reads a single line from the specified 'source'. The line read is returned as a string value for the result. The 'source' may be a file pointer or a stream. If there is no 'source', *standard-input* is the default. If an end-of-file is encountered in the 'source', then NIL will be returned as the result.
(setq fp (open "f" :direction :output)) ; set up file (print "fe fi" fp) (print 12.34 fp) (close fp) (setq fp (open "f" :direction :input)) ; now read the file (read-line fp) ; returns ""fe fi"" (read-line fp) ; returns "12.34" (read-line fp) ; returns NIL (close fp)
Common Lisp: The XLISP and Common Lisp 'read-line' functions are compatible for simple cases. They both allow for the optional 'source'. However, in Common Lisp, there are additional parameters which occur right after 'source'. So, when porting from Common Lisp to XLISP, remember there are additional arguments in Common Lisp's 'read-line' function.
Common Lisp: Common Lisp specifies that 'read' operations with a 'source' of NIL will come from *standard-input*. XLISP does not read the input from *standard-input* with a 'source' of NIL. Common Lisp also specifies that a 'source' of T will read from *terminal-io* which is not defined in XLISP by default. XLISP does not allow T as a valid argument for 'source'.
See the
read-line
function in the