emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/progmodes/compile.el,v


From: Eli Zaretskii
Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/compile.el,v
Date: Thu, 09 Oct 2008 13:45:14 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Eli Zaretskii <eliz>    08/10/09 13:45:06

Index: compile.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/progmodes/compile.el,v
retrieving revision 1.477
retrieving revision 1.478
diff -u -b -r1.477 -r1.478
--- compile.el  4 Oct 2008 10:04:59 -0000       1.477
+++ compile.el  9 Oct 2008 13:45:03 -0000       1.478
@@ -1246,6 +1246,7 @@
            (funcall compilation-process-setup-function))
        (compilation-set-window-height outwin)
        ;; Start the compilation.
+       (if (fboundp 'start-process)
        (let ((proc
               (if (eq mode t)
                   ;; comint uses `start-file-process'.
@@ -1277,7 +1278,38 @@
              ;; The process may have exited already.
              (error nil)))
          (setq compilation-in-progress
-               (cons proc compilation-in-progress))))
+                   (cons proc compilation-in-progress)))
+         ;; No asynchronous processes available.
+         (message "Executing `%s'..." command)
+         ;; Fake modeline display as if `start-process' were run.
+         (setq mode-line-process
+               (list (propertize ":run" 'face 'compilation-warning)))
+         (force-mode-line-update)
+         (sit-for 0)                   ; Force redisplay
+         (save-excursion
+           ;; Insert the output at the end, after the initial text,
+           ;; regardless of where the user sees point.
+           (goto-char (point-max))
+           (let* ((buffer-read-only nil) ; call-process needs to modify outbuf
+                  (status (call-process shell-file-name nil outbuf nil "-c"
+                                        command)))
+             (cond ((numberp status)
+                    (compilation-handle-exit
+                     'exit status
+                     (if (zerop status)
+                         "finished\n"
+                       (format "exited abnormally with code %d\n" status))))
+                   ((stringp status)
+                    (compilation-handle-exit 'signal status
+                                             (concat status "\n")))
+                   (t
+                    (compilation-handle-exit 'bizarre status status)))))
+         ;; Without async subprocesses, the buffer is not yet
+         ;; fontified, so fontify it now.
+         (let ((font-lock-verbose nil)) ; shut up font-lock messages
+           (font-lock-fontify-buffer))
+         (set-buffer-modified-p nil)
+         (message "Executing `%s'...done" command)))
       ;; Now finally cd to where the shell started make/grep/...
       (setq default-directory thisdir)
       ;; The following form selected outwin ever since revision 1.183,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]