Changeset 15120


Ignore:
Timestamp:
04/23/18 17:58:49 (4 years ago)
Author:
Mark Evenson
Message:

Don't evaluate format control string in ReaderError?
(Javier Olaechea)

To do so we extend the ReaderError? with a new constructor that takes two
extra arguments.

Merges <https://github.com/armedbear/abcl/pull/86>.

Addresses <https://github.com/armedbear/abcl/issues/85>.

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/ReaderError.java

    r15001 r15120  
    5353    }
    5454
     55  public ReaderError(String message, Stream stream, LispObject arg1, LispObject arg2)
     56  {
     57        super(StandardClass.READER_ERROR);
     58        setFormatControl(message);
     59        setFormatArguments(list(arg1, arg2));
     60        setStream(stream);
     61  }
     62
    5563    public ReaderError(LispObject initArgs)
    5664    {
  • trunk/abcl/src/org/armedbear/lisp/Stream.java

    r15114 r15120  
    11911191
    11921192                // Error!
    1193                 if (pkg.findInternalSymbol(symbolName) != null)
    1194                     return error(new ReaderError("The symbol \"" + symbolName +
    1195                                                  "\" is not external in package " +
    1196                                                  packageName + '.',
    1197                                                  this));
    1198                 else
    1199                     return error(new ReaderError("The symbol \"" + symbolName +
    1200                                                  "\" was not found in package " +
    1201                                                  packageName + '.',
    1202                                                  this));
     1193                if (pkg.findInternalSymbol(symbolName) != null) {
     1194                    return error(new ReaderError("The symbol \"~A\" is not external in package ~A.",
     1195                                                 this,
     1196                                                 new SimpleString(symbolName),
     1197                                                 new SimpleString(packageName)));
     1198                } else {
     1199                    return error(new ReaderError("The symbol \"~A\" was not found in package ~A.",
     1200                                                 this,
     1201                                                 new SimpleString(symbolName),
     1202                                                 new SimpleString(packageName)));
     1203                }
    12031204            }
    12041205        } else {                // token.length == 0
Note: See TracChangeset for help on using the changeset viewer.