Changeset 10118


Ignore:
Timestamp:
10/16/05 01:13:19 (16 years ago)
Author:
piso
Message:

CHAR-DOWNCASE, CHAR-UPCASE

File:
1 edited

Legend:

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

    r9847 r10118  
    33 *
    44 * Copyright (C) 2002-2005 Peter Graves
    5  * $Id: LispCharacter.java,v 1.64 2005-08-13 00:21:19 piso Exp $
     5 * $Id: LispCharacter.java,v 1.65 2005-10-16 01:13:19 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    351351        public LispObject execute(LispObject arg) throws ConditionThrowable
    352352        {
    353             return getInstance(Utilities.toLowerCase(getValue(arg)));
     353            char c;
     354            try {
     355                c = ((LispCharacter)arg).value;
     356            }
     357            catch (ClassCastException e) {
     358                return signalTypeError(arg, Symbol.CHARACTER);
     359            }
     360            c = Utilities.toLowerCase(c);
     361            if (c < CHAR_MAX)
     362                return characters[c];
     363            else
     364                return new LispCharacter(c);
    354365        }
    355366    };
     
    361372        public LispObject execute(LispObject arg) throws ConditionThrowable
    362373        {
    363             return getInstance(Utilities.toUpperCase(getValue(arg)));
     374            char c;
     375            try {
     376                c = ((LispCharacter)arg).value;
     377            }
     378            catch (ClassCastException e) {
     379                return signalTypeError(arg, Symbol.CHARACTER);
     380            }
     381            c = Utilities.toUpperCase(c);
     382            if (c < CHAR_MAX)
     383                return characters[c];
     384            else
     385                return new LispCharacter(c);
    364386        }
    365387    };
Note: See TracChangeset for help on using the changeset viewer.