Changeset 10119


Ignore:
Timestamp:
10/16/05 02:00:31 (16 years ago)
Author:
piso
Message:
  • Moved Utilites.toUpperCase() and Utilities.toLowerCase() to LispCharacter?.java.
  • CHAR-DOWNCASE, CHAR-UPCASE
File:
1 edited

Legend:

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

    r10118 r10119  
    33 *
    44 * Copyright (C) 2002-2005 Peter Graves
    5  * $Id: LispCharacter.java,v 1.65 2005-10-16 01:13:19 piso Exp $
     5 * $Id: LispCharacter.java,v 1.66 2005-10-16 02:00:31 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    136136            if (value == ((LispCharacter)obj).value)
    137137                return true;
    138             return Utilities.toLowerCase(value) == Utilities.toLowerCase(((LispCharacter)obj).value);
     138            return LispCharacter.toLowerCase(value) == LispCharacter.toLowerCase(((LispCharacter)obj).value);
    139139        }
    140140        return false;
     
    358358                return signalTypeError(arg, Symbol.CHARACTER);
    359359            }
    360             c = Utilities.toLowerCase(c);
    361             if (c < CHAR_MAX)
    362                 return characters[c];
    363             else
    364                 return new LispCharacter(c);
     360            if (c < 128)
     361                return characters[LOWER_CASE_CHARS[c]];
     362            return getInstance(toLowerCase(c));
    365363        }
    366364    };
     
    379377                return signalTypeError(arg, Symbol.CHARACTER);
    380378            }
    381             c = Utilities.toUpperCase(c);
    382             if (c < CHAR_MAX)
    383                 return characters[c];
    384             else
    385                 return new LispCharacter(c);
     379            if (c < 128)
     380                return characters[UPPER_CASE_CHARS[c]];
     381            return getInstance(toUpperCase(c));
    386382        }
    387383    };
     
    610606        }
    611607    };
     608
     609    public static final char toUpperCase(char c)
     610    {
     611        if (c < 128)
     612            return UPPER_CASE_CHARS[c];
     613        return Character.toUpperCase(c);
     614    }
     615
     616    private static final char[] UPPER_CASE_CHARS = new char[128];
     617
     618    static {
     619        for (int i = UPPER_CASE_CHARS.length; i-- > 0;)
     620            UPPER_CASE_CHARS[i] = Character.toUpperCase((char)i);
     621    }
     622
     623    public static final char toLowerCase(char c)
     624    {
     625        if (c < 128)
     626            return LOWER_CASE_CHARS[c];
     627        return Character.toLowerCase(c);
     628    }
     629
     630    private static final char[] LOWER_CASE_CHARS = new char[128];
     631
     632    static {
     633        for (int i = LOWER_CASE_CHARS.length; i-- > 0;)
     634            LOWER_CASE_CHARS[i] = Character.toLowerCase((char)i);
     635    }
    612636}
Note: See TracChangeset for help on using the changeset viewer.