]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/bytecomp.el (byte-compile-root-dir): New var.
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 19 May 2012 18:28:32 +0000 (14:28 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 19 May 2012 18:28:32 +0000 (14:28 -0400)
(byte-compile-warning-prefix, batch-byte-compile-file): Use it.

lisp/ChangeLog
lisp/emacs-lisp/bytecomp.el

index 917780329662b4cde62321e525d2725ec7837bdc..b311fc4fcaaf238e9112af82dde7552a4745cb23 100644 (file)
@@ -1,3 +1,8 @@
+2012-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/bytecomp.el (byte-compile-root-dir): New var.
+       (byte-compile-warning-prefix, batch-byte-compile-file): Use it.
+
 2012-05-19  Jay Belanger  <jay.p.belanger@gmail.com>
 
        * calc/calc.el (calc-ensure-consistent-units): New variable.
index 9cb0a376e36be0e4bbd8bbdf1a70037afe52ceb7..91db288feefd6ae51971587d069785887ada33be 100644 (file)
@@ -1002,12 +1002,14 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'."
 
 (defvar byte-compile-last-warned-form nil)
 (defvar byte-compile-last-logged-file nil)
+(defvar byte-compile-root-dir nil
+  "Directory relative to which file names in error messages are written.")
 
 ;; This is used as warning-prefix for the compiler.
 ;; It is always called with the warnings buffer current.
 (defun byte-compile-warning-prefix (level entry)
   (let* ((inhibit-read-only t)
-        (dir default-directory)
+        (dir (or byte-compile-root-dir default-directory))
         (file (cond ((stringp byte-compile-current-file)
                      (format "%s:" (file-relative-name
                                      byte-compile-current-file dir)))
@@ -4515,29 +4517,30 @@ already up-to-date."
     (kill-emacs (if error 1 0))))
 
 (defun batch-byte-compile-file (file)
-  (if debug-on-error
-      (byte-compile-file file)
-    (condition-case err
-       (byte-compile-file file)
-      (file-error
-       (message (if (cdr err)
-                   ">>Error occurred processing %s: %s (%s)"
-                 ">>Error occurred processing %s: %s")
-               file
-               (get (car err) 'error-message)
-               (prin1-to-string (cdr err)))
-       (let ((destfile (byte-compile-dest-file file)))
-        (if (file-exists-p destfile)
-            (delete-file destfile)))
-       nil)
-      (error
-       (message (if (cdr err)
-                   ">>Error occurred processing %s: %s (%s)"
-                 ">>Error occurred processing %s: %s")
-               file
-               (get (car err) 'error-message)
-               (prin1-to-string (cdr err)))
-       nil))))
+  (let ((byte-compile-root-dir (or byte-compile-root-dir default-directory)))
+    (if debug-on-error
+        (byte-compile-file file)
+      (condition-case err
+          (byte-compile-file file)
+        (file-error
+         (message (if (cdr err)
+                      ">>Error occurred processing %s: %s (%s)"
+                    ">>Error occurred processing %s: %s")
+                  file
+                  (get (car err) 'error-message)
+                  (prin1-to-string (cdr err)))
+         (let ((destfile (byte-compile-dest-file file)))
+           (if (file-exists-p destfile)
+               (delete-file destfile)))
+         nil)
+        (error
+         (message (if (cdr err)
+                      ">>Error occurred processing %s: %s (%s)"
+                    ">>Error occurred processing %s: %s")
+                  file
+                  (get (car err) 'error-message)
+                  (prin1-to-string (cdr err)))
+         nil)))))
 
 (defun byte-compile-refresh-preloaded ()
   "Reload any Lisp file that was changed since Emacs was dumped.