Changeset 10274


Ignore:
Timestamp:
10/29/05 18:29:35 (16 years ago)
Author:
piso
Message:

READ-LINE

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/Primitives.java

    r10214 r10274  
    33 *
    44 * Copyright (C) 2002-2005 Peter Graves
    5  * $Id: Primitives.java,v 1.843 2005-10-24 21:12:06 piso Exp $
     5 * $Id: Primitives.java,v 1.844 2005-10-29 18:29:35 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    40874087        public LispObject execute(LispObject arg) throws ConditionThrowable
    40884088        {
    4089             return inSynonymOf(arg).readLine(true, NIL);
    4090         }
    4091         public LispObject execute(LispObject first, LispObject second)
    4092             throws ConditionThrowable
    4093         {
    4094             return inSynonymOf(first).readLine(second != NIL, NIL);
     4089            if (arg == T)
     4090                arg = Symbol.TERMINAL_IO.symbolValue();
     4091            else if (arg == NIL)
     4092                arg = Symbol.STANDARD_INPUT.symbolValue();
     4093            final Stream stream;
     4094            try {
     4095                stream = (Stream) arg;
     4096            }
     4097            catch (ClassCastException e) {
     4098                return signalTypeError(arg, Symbol.STREAM);
     4099            }
     4100            return stream.readLine(true, NIL);
     4101        }
     4102        public LispObject execute(LispObject first, LispObject second)
     4103            throws ConditionThrowable
     4104        {
     4105            if (first == T)
     4106                first = Symbol.TERMINAL_IO.symbolValue();
     4107            else if (first == NIL)
     4108                first = Symbol.STANDARD_INPUT.symbolValue();
     4109            final Stream stream;
     4110            try {
     4111                stream = (Stream) first;
     4112            }
     4113            catch (ClassCastException e) {
     4114                return signalTypeError(first, Symbol.STREAM);
     4115            }
     4116            return stream.readLine(second != NIL, NIL);
    40954117        }
    40964118        public LispObject execute(LispObject first, LispObject second,
     
    40984120            throws ConditionThrowable
    40994121        {
    4100             return inSynonymOf(first).readLine(second != NIL, third);
     4122            if (first == T)
     4123                first = Symbol.TERMINAL_IO.symbolValue();
     4124            else if (first == NIL)
     4125                first = Symbol.STANDARD_INPUT.symbolValue();
     4126            final Stream stream;
     4127            try {
     4128                stream = (Stream) first;
     4129            }
     4130            catch (ClassCastException e) {
     4131                return signalTypeError(first, Symbol.STREAM);
     4132            }
     4133            return stream.readLine(second != NIL, third);
    41014134        }
    41024135        public LispObject execute(LispObject first, LispObject second,
     
    41054138        {
    41064139            // recursive-p is ignored
    4107             return inSynonymOf(first).readLine(second != NIL, third);
     4140            if (first == T)
     4141                first = Symbol.TERMINAL_IO.symbolValue();
     4142            else if (first == NIL)
     4143                first = Symbol.STANDARD_INPUT.symbolValue();
     4144            final Stream stream;
     4145            try {
     4146                stream = (Stream) first;
     4147            }
     4148            catch (ClassCastException e) {
     4149                return signalTypeError(first, Symbol.STREAM);
     4150            }
     4151            return stream.readLine(second != NIL, third);
    41084152        }
    41094153    };
     
    41674211    };
    41684212
    4169     // ### read
    4170     // &optional input-stream eof-error-p eof-value recursive-p => object
     4213    // ### read &optional input-stream eof-error-p eof-value recursive-p => object
    41714214    private static final Primitive READ =
    41724215        new Primitive(Symbol.READ,
Note: See TracChangeset for help on using the changeset viewer.