diff --git a/collects/drscheme/private/unit.ss b/collects/drscheme/private/unit.ss index 65fb261631..fdf62a5409 100644 --- a/collects/drscheme/private/unit.ss +++ b/collects/drscheme/private/unit.ss @@ -16,6 +16,7 @@ module browser threading seems wrong. (lib "file.ss") (lib "etc.ss") (lib "list.ss") + (lib "port.ss") (lib "string-constant.ss" "string-constants") (lib "framework.ss" "framework") (lib "name-message.ss" "mrlib") @@ -1918,13 +1919,20 @@ module browser threading seems wrong. (send definitions-text paragraph-start-position 1) 0)]) (send definitions-text split-snip start) - (let ([prt (open-input-text-editor definitions-text start)]) - (port-count-lines! prt) - (send interactions-text evaluate-from-port - prt - #t - (λ () - (send interactions-text clear-undos))))))) + (let ([text-port (open-input-text-editor definitions-text start)]) + (port-count-lines! text-port) + (let* ([line (send definitions-text position-paragraph start)] + [column (- start (send definitions-text paragraph-start-position line))] + [relocated-port (relocate-input-port text-port + (+ line 1) + column + (+ start 1))]) + (port-count-lines! relocated-port) + (send interactions-text evaluate-from-port + relocated-port + #t + (λ () + (send interactions-text clear-undos)))))))) (inherit revert save) (define/private (check-if-save-file-up-to-date) diff --git a/collects/tests/drscheme/repl-test.ss b/collects/tests/drscheme/repl-test.ss index 9d88663ee4..bf218321a2 100644 --- a/collects/tests/drscheme/repl-test.ss +++ b/collects/tests/drscheme/repl-test.ss @@ -266,6 +266,18 @@ There shouldn't be any error (but add in a bug that triggers one to be sure!) #f void void) + + (make-test "#!/bin/sh\nxx" + "reference to undefined identifier: xx" + "reference to undefined identifier: xx" + #t + (cons (make-loc 1 0 10) (make-loc 1 2 12)) + #f + #f + #f + void + void) + #| (make-test (list "#!\n" '("Special" "Insert XML Box") @@ -341,6 +353,7 @@ There shouldn't be any error (but add in a bug that triggers one to be sure!) |# ;; eval tests + (make-test " (eval '(values 1 2))" "1\n2" "1\n2" @@ -1032,6 +1045,6 @@ There shouldn't be any error (but add in a bug that triggers one to be sure!) ;(set-language-level! (list "PLT" "Graphical (MrEd)")) (kill-tests) - (run-test-in-language-level #t) (run-test-in-language-level #f) + (run-test-in-language-level #t) ))