Function: c-beginning-of-current-token

c-beginning-of-current-token is a byte-compiled function defined in cc-engine.el.gz.

Signature

(c-beginning-of-current-token &optional BACK-LIMIT)

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-engine.el.gz
(defun c-beginning-of-current-token (&optional back-limit)
  ;; Move to the beginning of the current token.  Do not move if not
  ;; in the middle of one.  BACK-LIMIT may be used to bound the
  ;; backward search; if given it's assumed to be at the boundary
  ;; between two tokens.  Return non-nil if the point is moved, nil
  ;; otherwise.
  ;;
  ;; This function might do hidden buffer changes.
    (let ((start (point)))
      (if (looking-at "\\w\\|\\s_")
	  (skip-syntax-backward "w_" back-limit)
	(when (< (skip-syntax-backward ".()" back-limit) 0)
	  (while (let ((pos (or (and (looking-at c-nonsymbol-token-regexp)
				     (match-end 0))
				;; `c-nonsymbol-token-regexp' should always match
				;; since we've skipped backward over punctuation
				;; or paren syntax, but consume one char in case
				;; it doesn't so that we don't leave point before
				;; some earlier incorrect token.
				(1+ (point)))))
		   (if (<= pos start)
		       (goto-char pos))))))
      (< (point) start)))