Christophe
Weblog
Wiki
Code
Publications
Music
projects
/
swankr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
return stack frames in slime's order (most recent first)
[swankr.git]
/
swank.R
diff --git
a/swank.R
b/swank.R
index 802b0409e49543ff3a7372128d26168aab26f6ed..c6a1ec2f0e0afe13d7e90a3910370bbb3dfe49ef 100644
(file)
--- a/
swank.R
+++ b/
swank.R
@@
-69,7
+69,7
@@
sldbLoop <- function(io, sldbState, id) {
debuggerInfoForEmacs <- function(sldbState, from=0, to=NULL) {
backtraceForEmacs <- function() {
debuggerInfoForEmacs <- function(sldbState, from=0, to=NULL) {
backtraceForEmacs <- function() {
- calls <-
sys.calls(
)
+ calls <-
rev(sys.calls()
)
if(is.null(to)) to <- length(calls)
from <- from+1
calls <- lapply(calls[from:to], { frameNumber <- from-1;
if(is.null(to)) to <- length(calls)
from <- from+1
calls <- lapply(calls[from:to], { frameNumber <- from-1;
@@
-239,7
+239,7
@@
writeSexpToString <- function(obj) {
}
`swank:listener-eval` <- function(io, sldbState, string) {
}
`swank:listener-eval` <- function(io, sldbState, string) {
- val <- eval(parse(text=string))
+ val <- eval(parse(text=string)
, envir = globalenv()
)
f <- fifo("")
sink(f)
print(val)
f <- fifo("")
sink(f)
print(val)
@@
-261,3
+261,9
@@
writeSexpToString <- function(obj) {
`swank:debugger-info-for-emacs` <- function(io, sldbState, from, to) {
debuggerInfoForEmacs(sldbState, from=from, to=to)
}
`swank:debugger-info-for-emacs` <- function(io, sldbState, from, to) {
debuggerInfoForEmacs(sldbState, from=from, to=to)
}
+
+`swank:invoke-nth-restart-for-emacs` <- function(io, sldbState, level, n) {
+ if(sldbState$level == level) {
+ invokeRestart(computeRestarts()[[n+1]])
+ }
+}