comparison lisp/progmodes/cpp.el @ 11456:0950bf9c8d06

(cpp-parse-open): Delete comments that go past end of line. (cpp-edit-reset): Clean up the four standard buttons. (cpp-parse-buffer): Name was undefined--use cpp-highlight-buffer.
author Richard M. Stallman <rms@gnu.org>
date Sat, 15 Apr 1995 02:04:41 +0000
parents 9728aab0cab3
children 5865f4bc9521
comparison
equal deleted inserted replaced
11455:4235784197f3 11456:0950bf9c8d06
80 ;;;###autoload 80 ;;;###autoload
81 (defun cpp-highlight-buffer (arg) 81 (defun cpp-highlight-buffer (arg)
82 "Highlight C code according to preprocessor conditionals. 82 "Highlight C code according to preprocessor conditionals.
83 This command pops up a buffer which you should edit to specify 83 This command pops up a buffer which you should edit to specify
84 what kind of highlighting to use, and the criteria for highlighting. 84 what kind of highlighting to use, and the criteria for highlighting.
85 A prefix arg supresses display of that buffer." 85 A prefix arg suppresses display of that buffer."
86 (interactive "P") 86 (interactive "P")
87 (setq cpp-parse-symbols nil) 87 (setq cpp-parse-symbols nil)
88 (cpp-parse-reset) 88 (cpp-parse-reset)
89 (if (null cpp-edit-list) 89 (if (null cpp-edit-list)
90 (cpp-edit-load)) 90 (cpp-edit-load))
144 (or arg 144 (or arg
145 (null cpp-parse-symbols) 145 (null cpp-parse-symbols)
146 (cpp-parse-edit))) 146 (cpp-parse-edit)))
147 147
148 (defun cpp-parse-open (branch expr begin end) 148 (defun cpp-parse-open (branch expr begin end)
149 ;; Push information about conditional to stack. 149 "Push information about conditional-beginning onto stack."
150 ;; Discard comments within this line.
150 (while (string-match "\\b[ \t]*/\\*.*\\*/[ \t]*\\b" expr) 151 (while (string-match "\\b[ \t]*/\\*.*\\*/[ \t]*\\b" expr)
151 (setq expr (concat (substring expr 0 (match-beginning 0)) 152 (setq expr (concat (substring expr 0 (match-beginning 0))
152 (substring expr (match-end 0))))) 153 (substring expr (match-end 0)))))
154 ;; If a comment starts on this line and continues past, discard it.
155 (if (string-match "\\b[ \t]*/\\*" expr)
156 (setq expr (substring expr 0 (match-beginning 0))))
157 ;; Delete any C++ comment from the line.
153 (if (string-match "\\b[ \t]*\\(//.*\\)?$" expr) 158 (if (string-match "\\b[ \t]*\\(//.*\\)?$" expr)
154 (setq expr (substring expr 0 (match-beginning 0)))) 159 (setq expr (substring expr 0 (match-beginning 0))))
155 (while (string-match "[ \t]+" expr) 160 (while (string-match "[ \t]+" expr)
156 (setq expr (concat (substring expr 0 (match-beginning 0)) 161 (setq expr (concat (substring expr 0 (match-beginning 0))
157 (substring expr (match-end 0))))) 162 (substring expr (match-end 0)))))
202 ;;;###autoload 207 ;;;###autoload
203 (defun cpp-parse-edit () 208 (defun cpp-parse-edit ()
204 "Edit display information for cpp conditionals." 209 "Edit display information for cpp conditionals."
205 (interactive) 210 (interactive)
206 (or cpp-parse-symbols 211 (or cpp-parse-symbols
207 (cpp-parse-buffer t)) 212 (cpp-highlight-buffer t))
208 (let ((buffer (current-buffer))) 213 (let ((buffer (current-buffer)))
209 (pop-to-buffer "*CPP Edit*") 214 (pop-to-buffer "*CPP Edit*")
210 (cpp-edit-mode) 215 (cpp-edit-mode)
211 (setq cpp-edit-buffer buffer) 216 (setq cpp-edit-buffer buffer)
212 (cpp-edit-reset))) 217 (cpp-edit-reset)))
350 355
351 (defun cpp-edit-apply () 356 (defun cpp-edit-apply ()
352 "Apply edited display information to original buffer." 357 "Apply edited display information to original buffer."
353 (interactive) 358 (interactive)
354 (cpp-edit-home) 359 (cpp-edit-home)
355 (cpp-parse-buffer t)) 360 (cpp-highlight-buffer t))
356 361
357 (defun cpp-edit-reset () 362 (defun cpp-edit-reset ()
358 "Reset display information from original buffer." 363 "Reset display information from original buffer."
359 (interactive) 364 (interactive)
360 (let ((buffer (current-buffer)) 365 (let ((buffer (current-buffer))
367 (set-buffer buffer) 372 (set-buffer buffer)
368 (setq cpp-edit-symbols symbols) 373 (setq cpp-edit-symbols symbols)
369 (erase-buffer) 374 (erase-buffer)
370 (insert "CPP Display Information for `") 375 (insert "CPP Display Information for `")
371 (cpp-make-button (buffer-name cpp-edit-buffer) 'cpp-edit-home) 376 (cpp-make-button (buffer-name cpp-edit-buffer) 'cpp-edit-home)
372 (insert "' ")
373 (cpp-make-button "[H]ome" 'cpp-edit-home)
374 (insert " ")
375 (cpp-make-button "[A]pply" 'cpp-edit-apply)
376 (insert " ")
377 (cpp-make-button "[S]ave" 'cpp-edit-save)
378 (insert " ")
379 (cpp-make-button "[L]oad" 'cpp-edit-load)
380 (insert "\n\nClick mouse-2 on item you want to change or use\n" 377 (insert "\n\nClick mouse-2 on item you want to change or use\n"
381 "keyboard equivalent indicated with brackets like [T]his.\n\n") 378 "or switch to this buffer and type the keyboard equivalents.\n"
379 "Keyboard equivalents are indicated with brackets like [T]his.\n\n")
380 (cpp-make-button "[H]ome (display the C file)" 'cpp-edit-home)
381 (insert " ")
382 (cpp-make-button "[A]pply new settings" 'cpp-edit-apply)
383 (insert "\n")
384 (cpp-make-button "[S]ave settings" 'cpp-edit-save)
385 (insert " ")
386 (cpp-make-button "[L]oad settings" 'cpp-edit-load)
387 (insert "\n\n")
388
382 (insert "[B]ackground: ") 389 (insert "[B]ackground: ")
383 (cpp-make-button (car (rassq cpp-face-type cpp-face-type-list)) 390 (cpp-make-button (car (rassq cpp-face-type cpp-face-type-list))
384 'cpp-edit-background) 391 'cpp-edit-background)
385 (insert "\n[K]nown conditionals: ") 392 (insert "\n[K]nown conditionals: ")
386 (cpp-make-button (cpp-face-name cpp-known-face) 393 (cpp-make-button (cpp-face-name cpp-known-face)