Changeset 5134


Ignore:
Timestamp:
12/14/03 17:40:09 (17 years ago)
Author:
piso
Message:

Added support for (setf *print-case* :downcase).

File:
1 edited

Legend:

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

    r5113 r5134  
    33 *
    44 * Copyright (C) 2002-2003 Peter Graves
    5  * $Id: Symbol.java,v 1.99 2003-12-13 00:28:08 piso Exp $
     5 * $Id: Symbol.java,v 1.100 2003-12-14 17:40:09 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    398398    public String toString()
    399399    {
    400         if (pkg == PACKAGE_KEYWORD)
    401             return ":".concat(name);
    402         if (_PRINT_ESCAPE_.symbolValueNoThrow() == NIL)
    403             return name;
     400        LispObject printCase = _PRINT_CASE_.symbolValueNoThrow();
     401        if (pkg == PACKAGE_KEYWORD) {
     402            if (printCase == Keyword.DOWNCASE)
     403                return ":".concat(name.toLowerCase());
     404            else
     405                return ":".concat(name);
     406        }
     407        if (_PRINT_ESCAPE_.symbolValueNoThrow() == NIL) {
     408            if (printCase == Keyword.DOWNCASE)
     409                return name.toLowerCase();
     410            else
     411                return name;
     412        }
    404413        boolean escape = false;
    405414        for (int i = name.length(); i-- > 0;) {
     
    418427            }
    419428        }
    420         final String s = escape ? ("|" + name + "|") : name;
     429        String s = escape ? ("|" + name + "|") : name;
     430        if (!escape) {
     431            if (printCase == Keyword.DOWNCASE)
     432                s = s.toLowerCase();
     433        }
    421434        if (pkg == null || pkg == NIL) {
    422435            if (_PRINT_GENSYM_.symbolValueNoThrow() != NIL)
     
    434447        }
    435448        // Package prefix is necessary.
    436         StringBuffer sb = new StringBuffer(pkg.getName());
     449        String packageName = pkg.getName();
     450        if (printCase == Keyword.DOWNCASE)
     451            packageName = packageName.toLowerCase();
     452        StringBuffer sb = new StringBuffer(packageName);
    437453        if (((Package)pkg).findExternalSymbol(name) != null)
    438454            sb.append(':');
Note: See TracChangeset for help on using the changeset viewer.