X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fsource-location.lisp;h=be1abd233a30d001278c63dcce581af4fd9f89ef;hb=3cd426802c5f093d8d07042b9f180e38b8631c0b;hp=7eb411bfe6f8cad09a74bcc8e6487d20d3ad4864;hpb=a160917364f85b38dc0826a5e3dcef87e3c4c62c;p=sbcl.git diff --git a/src/code/source-location.lisp b/src/code/source-location.lisp index 7eb411b..be1abd2 100644 --- a/src/code/source-location.lisp +++ b/src/code/source-location.lisp @@ -16,10 +16,11 @@ ;; Namestring of the source file that the definition was compiled from. ;; This is null if the definition was not compiled from a file. (namestring - (when (and (boundp '*source-info*) - *source-info*) - (make-file-info-namestring *compile-file-pathname* - (sb!c:get-toplevelish-file-info *source-info*))) + (or *source-namestring* + (when (and (boundp '*source-info*) + *source-info*) + (make-file-info-namestring *compile-file-pathname* + (sb!c:get-toplevelish-file-info *source-info*)))) :type (or string null)) ;; Toplevel form index (toplevel-form-number @@ -37,8 +38,9 @@ (let ((src (position "src" dir :test #'string= :from-end t))) (cond - (src (format nil "SYS:~{~:@(~A~);~}~:@(~A~).LISP" - (subseq dir src) (pathname-name untruename))) + ((and src (not (string= (car (last dir)) "output"))) + (format nil "SYS:~{~:@(~A~);~}~:@(~A~).LISP" + (subseq dir src) (pathname-name untruename))) (t (aver (string-equal (car (last dir)) "output")) (aver (string-equal (pathname-name untruename) "stuff-groveled-from-headers")) (aver (string-equal (pathname-type untruename) "lisp"))