Function: c-unfind-coalesced-tokens

c-unfind-coalesced-tokens is a byte-compiled function defined in cc-mode.el.gz.

Signature

(c-unfind-coalesced-tokens BEG END)

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-mode.el.gz
(defun c-unfind-coalesced-tokens (beg end)
  ;; If removing the region (beg end) would coalesce an identifier ending at
  ;; beg with an identifier (fragment) beginning at end, or an identifier
  ;; fragment ending at beg with an identifier beginning at end, remove the
  ;; pertinent identifier(s) from `c-found-types'.
  (save-excursion
    (when (< beg end)
      (goto-char beg)
      (let ((lim (c-determine-limit 1000))
	    (lim+ (c-determine-+ve-limit 1000 end)))
      (when
	  (and (not (bobp))
	       (progn (c-backward-syntactic-ws lim) (eq (point) beg))
	       (/= (skip-chars-backward c-symbol-chars (1- (point))) 0)
	       (progn (goto-char beg) (c-forward-syntactic-ws lim+)
		      (<= (point) end))
	       (> (point) beg)
	       (goto-char end)
	       (looking-at c-symbol-char-key))
	(goto-char beg)
	(c-simple-skip-symbol-backward)
	(c-unfind-type (buffer-substring-no-properties (point) beg)))

      (goto-char end)
      (when
	  (and (not (eobp))
	       (progn (c-forward-syntactic-ws lim+) (eq (point) end))
	       (looking-at c-symbol-char-key)
	       (progn (c-backward-syntactic-ws lim) (>= (point) beg))
	       (< (point) end)
	       (/= (skip-chars-backward c-symbol-chars (1- (point))) 0))
	(goto-char (1+ end))
	(c-end-of-current-token)
	(c-unfind-type (buffer-substring-no-properties end (point))))))))