X-Git-Url: http://christophe.rhodes.io/gitweb/?p=swankr.git;a=blobdiff_plain;f=swank.R;fp=swank.R;h=757e2430752b00ce87724f82ccfbd0d6dfbb5dbe;hp=99012ec57ec4bc7ed9b6d80010145476d40f108d;hb=cc42bfe8c3d5947b34c3d497260d8411b1f4442b;hpb=2a4f3c6ca11bb324919df918744092d1cb339f2d diff --git a/swank.R b/swank.R index 99012ec..757e243 100644 --- a/swank.R +++ b/swank.R @@ -514,6 +514,17 @@ computeRestartsForEmacs <- function (sldbState) { ifelse(x[3]==1, x[6]+colOffset-1, x[6])))) } transformSrcrefs <- function(s) { + ## horrendous KLUDGE: we need to short-circuit here for "name" + ## objects, rather than having a nice uniform behaviour, because + ## for expressions of the form x[y,] there is an empty "name" + ## which ends up becoming a `missing' object when passed through + ## the switch; why, I do not know, but it is then impossible to + ## return it, because returning it attempts to evaluate it and + ## evaluating it is an error. Fortunately it appears that names + ## don't have srcrefs attached. + if(mode(s) == "name") { + return(s) + } srcrefs <- attr(s, "srcref") attribs <- attributes(s) new <-