Commit 440c10f8 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

Doc fixes.

(c-macro-expansion): Capture and display CPP error messages.
parent da6aae60
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
;; Copyright (C) 1992, 1994 Free Software Foundation, Inc. ;; Copyright (C) 1992, 1994 Free Software Foundation, Inc.
;; Author: Francesco Potorti` <pot@cnuce.cnr.it> ;; Author: Francesco Potorti` <pot@cnuce.cnr.it>
;; 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 ;; Adapted-By: ESR
;; Keywords: c ;; Keywords: c
...@@ -96,11 +96,11 @@ ...@@ -96,11 +96,11 @@
(defvar c-macro-preprocessor "/lib/cpp -C" (defvar c-macro-preprocessor "/lib/cpp -C"
"The preprocessor used by the cmacexp package. "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.") option, or to set an equivalent one.")
(defvar c-macro-cppflags "" (defvar c-macro-cppflags ""
"*Preprocessor flags used by c-macro-expand.") "*Preprocessor flags used by `c-macro-expand'.")
(defconst c-macro-buffer-name "*Macroexpansion*") (defconst c-macro-buffer-name "*Macroexpansion*")
...@@ -239,7 +239,8 @@ Optional arg DISPLAY non-nil means show messages in the echo area." ...@@ -239,7 +239,8 @@ Optional arg DISPLAY non-nil means show messages in the echo area."
(startlinenum 0) (startlinenum 0)
(linenum 0) (linenum 0)
(startstat ()) (startstat ())
(startmarker "")) (startmarker "")
(tempname (make-temp-name "/tmp/")))
(unwind-protect (unwind-protect
(save-excursion (save-excursion
(save-restriction (save-restriction
...@@ -300,10 +301,10 @@ Optional arg DISPLAY non-nil means show messages in the echo area." ...@@ -300,10 +301,10 @@ Optional arg DISPLAY non-nil means show messages in the echo area."
;; Call the preprocessor. ;; Call the preprocessor.
(if display (message mymsg)) (if display (message mymsg))
(call-process-region 1 (point-max) "sh" t t nil "-c" (setq exit-status
(concat cppcommand " 2>/dev/null")) (call-process-region 1 (point-max) "sh" t t nil "-c"
(concat cppcommand " 2>" tempname)))
(if display (message (concat mymsg "done"))) (if display (message (concat mymsg "done")))
;; Find and delete the mark of the start of the expansion. ;; Find and delete the mark of the start of the expansion.
;; Look for `# nn "file.c"' lines and delete them. ;; Look for `# nn "file.c"' lines and delete them.
(goto-char (point-min)) (goto-char (point-min))
...@@ -317,6 +318,16 @@ Optional arg DISPLAY non-nil means show messages in the echo area." ...@@ -317,6 +318,16 @@ Optional arg DISPLAY non-nil means show messages in the echo area."
(forward-line 1) (forward-line 1)
(delete-region beg (point)))) (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 ;; Compute the return value, keeping in account the space
;; inserted at the end of the buffer. ;; inserted at the end of the buffer.
(buffer-substring 1 (max 1 (- (point-max) 1)))) (buffer-substring 1 (max 1 (- (point-max) 1))))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment