Ticket #334: ticket-334.diff

File ticket-334.diff, 1.3 KB (added by Mark Evenson, 10 years ago)

Establish debugger for '--eval' arguments.

  • src/org/armedbear/lisp/Interpreter.java

    # HG changeset patch
    # Parent eb51aefaa91063badc5f2397b960119bceb7c3b3
    (incomplete)
    
    At least throw intelligble errors in SHARPSIGN_DOT macros passed
    through '--eval'.
    
    http://abcl.org/trac/ticket/334
    
    
    diff -r eb51aefaa910 -r 7d7b35230115 src/org/armedbear/lisp/Interpreter.java
    a b  
    595595            initializeJLisp();
    596596        StringInputStream stream = new StringInputStream(s);
    597597        final LispThread thread = LispThread.currentThread();
    598         LispObject obj = stream.read(false, EOF, false, thread,
    599                                      Stream.currentReadtable);
     598  LispObject obj = null;
     599
     600  final SpecialBindingsMark mark0 = thread.markSpecialBindings();
     601        thread.bindSpecial(Symbol.DEBUGGER_HOOK, _DEBUGGER_HOOK_FUNCTION);
     602  try {  // catch possible errors from use of SHARPSIGN_DOT macros in --eval stanzas
     603    obj = stream.read(false, EOF, false, thread,
     604          Stream.currentReadtable);
     605  } finally {
     606    thread.resetSpecialBindings(mark0);
     607  }
    600608        if (obj == EOF)
    601609            return error(new EndOfFile(stream));
     610
    602611        final SpecialBindingsMark mark = thread.markSpecialBindings();
    603612        thread.bindSpecial(Symbol.DEBUGGER_HOOK, _DEBUGGER_HOOK_FUNCTION);
    604613        try {