Function: c-after-change-include-<>

c-after-change-include-<> is a byte-compiled function defined in cc-mode.el.gz.

Signature

(c-after-change-include-<> BEG END OLD-LEN)

Documentation

Apply category/syntax-table properties to each #include <..>.

In particular, to the < and > characters to mark them as matching parens using these properties. This is done on every such #include <..> with a portion between BEG and END.

This function is used solely as a member of c-before-font-lock-functions where is should appear late, but before c-neutralize-syntax-in-CPP. It should be used only together with c-before-change-include-<>.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-mode.el.gz
(defun c-after-change-include-<> (beg end _old-len)
  "Apply category/syntax-table properties to each #include <..>.
In particular, to the < and > characters to mark them as matching parens
using these properties.  This is done on every such #include <..> with a
portion between BEG and END.

This function is used solely as a member of
`c-before-font-lock-functions' where is should appear late, but before
`c-neutralize-syntax-in-CPP'.  It should be used only together with
`c-before-change-include-<>'."
  (c-save-buffer-state ((search-end (progn (goto-char end)
					   (c-end-of-macro)
					   (point)))
			hash-pos)
    (goto-char beg)
    (c-beginning-of-macro)
    (while (and (< (point) search-end)
		(search-forward-regexp c-cpp-include-key search-end 'bound)
		(setq hash-pos (match-beginning 0)))
      (c-forward-comments (c-point 'eoll))
      (when (and (< (point) search-end)
		 (looking-at "\\(<\\)[^>\n\r]*\\(>\\)")
		 (not (cdr (c-semi-pp-to-literal (match-beginning 0)))))
	(c-mark-<-as-paren (match-beginning 1))
	(when (< hash-pos c-new-BEG) (setq c-new-BEG hash-pos))
	(c-mark->-as-paren (match-beginning 2))
	(when (> (match-end 2) c-new-END) (setq c-new-END (match-end 2)))))))