Christophe Weblog Wiki Code Publications Music
pass an :encoding stanza in the connection information
[swankr.git] / swank.R
diff --git a/swank.R b/swank.R
index ce757b3995574feaacd94ed83dbdd5fbe03ea27b..24393e674d4d4acb54336d10adda46dd9789b788 100644 (file)
--- a/swank.R
+++ b/swank.R
@@ -287,6 +287,7 @@ printToString <- function(val) {
 `swank:connection-info` <- function (slimeConnection, sldbState) {
   list(quote(`:pid`), Sys.getpid(),
        quote(`:package`), list(quote(`:name`), "R", quote(`:prompt`), "R> "),
+       quote(`:encoding`), list(quote(`:coding-systems`), list("utf-8-unix")),
        quote(`:lisp-implementation`), list(quote(`:type`), "R",
                                            quote(`:name`), "R",
                                            quote(`:version`), paste(R.version$major, R.version$minor, sep=".")))
@@ -423,6 +424,9 @@ computeRestartsForEmacs <- function (sldbState) {
 `swank:frame-locals-and-catch-tags` <- function(slimeConnection, sldbState, index) {
   frame <- sldbState$frames[[1+index]]
   objs <- ls(envir=frame)
+  if(identical(frame, globalenv())) {
+    objs <- c()
+  }
   list(lapply(objs, function(name) { list(quote(`:name`), name,
                                           quote(`:id`), 0,
                                           quote(`:value`),