From: Richard M. Stallman Date: Sun, 7 Aug 1994 17:23:44 +0000 (+0000) Subject: Doc fixes. X-Git-Tag: emacs-19.34~7377 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=440c10f88247685c80bcc28beca94c197adeb912;p=emacs.git Doc fixes. (c-macro-expansion): Capture and display CPP error messages. --- diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el index 6c615c4d996..daaa0109bb0 100644 --- a/lisp/progmodes/cmacexp.el +++ b/lisp/progmodes/cmacexp.el @@ -3,7 +3,7 @@ ;; Copyright (C) 1992, 1994 Free Software Foundation, Inc. ;; Author: Francesco Potorti` -;; Version: $Id: cmacexp.el,v 1.13 1994/04/21 18:40:14 rms Exp kwzh $ +;; Version: $Id: cmacexp.el,v 1.14 1994/05/03 22:17:03 kwzh Exp rms $ ;; Adapted-By: ESR ;; Keywords: c @@ -96,11 +96,11 @@ (defvar c-macro-preprocessor "/lib/cpp -C" "The preprocessor used by the cmacexp package. -If you change this, be sure to preserve the -C (don't strip comments) +If you change this, be sure to preserve the `-C' (don't strip comments) option, or to set an equivalent one.") (defvar c-macro-cppflags "" - "*Preprocessor flags used by c-macro-expand.") + "*Preprocessor flags used by `c-macro-expand'.") (defconst c-macro-buffer-name "*Macroexpansion*") @@ -239,7 +239,8 @@ Optional arg DISPLAY non-nil means show messages in the echo area." (startlinenum 0) (linenum 0) (startstat ()) - (startmarker "")) + (startmarker "") + (tempname (make-temp-name "/tmp/"))) (unwind-protect (save-excursion (save-restriction @@ -300,10 +301,10 @@ Optional arg DISPLAY non-nil means show messages in the echo area." ;; Call the preprocessor. (if display (message mymsg)) - (call-process-region 1 (point-max) "sh" t t nil "-c" - (concat cppcommand " 2>/dev/null")) + (setq exit-status + (call-process-region 1 (point-max) "sh" t t nil "-c" + (concat cppcommand " 2>" tempname))) (if display (message (concat mymsg "done"))) - ;; Find and delete the mark of the start of the expansion. ;; Look for `# nn "file.c"' lines and delete them. (goto-char (point-min)) @@ -317,6 +318,16 @@ Optional arg DISPLAY non-nil means show messages in the echo area." (forward-line 1) (delete-region beg (point)))) + ;; If CPP got errors, show them at the beginning. + (or (eq exit-status 0) + (progn + (goto-char (point-min)) + (insert (format "Preprocessor terminated with status %s\n" + exit-status)) + (insert-file-contents tempname) + (insert "\n"))) + (delete-file tempname) + ;; Compute the return value, keeping in account the space ;; inserted at the end of the buffer. (buffer-substring 1 (max 1 (- (point-max) 1))))