Function: c-clear-char-property

c-clear-char-property is a macro defined in cc-defs.el.gz.

Signature

(c-clear-char-property POS PROPERTY)

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-defs.el.gz
(cc-bytecomp-defun c-clear-char-property-fun) ; Make it known below.

(defmacro c-clear-char-property (pos property)
  ;; Remove the given property on the character at POS if it's been put
  ;; there by `c-put-char-property'.  PROPERTY is assumed to be
  ;; constant.
  ;;
  ;; This macro does a hidden buffer change.
  (declare (debug t))
  (setq property (eval property))
  (cond (c-use-extents
	 ;; XEmacs.
	 `(let ((ext (extent-at ,pos nil ',property)))
	    (if ext (delete-extent ext))))
	((cc-bytecomp-boundp 'text-property-default-nonsticky)
	 ;; In Emacs 21 we got the `rear-nonsticky' property covered
	 ;; by `text-property-default-nonsticky'.
	 `(let ((pos ,pos))
	    ,@(when (and (fboundp 'syntax-ppss)
			 (eq `,property 'syntax-table))
		    `((setq c-syntax-table-hwm (min c-syntax-table-hwm pos))))
	    (remove-text-properties pos (1+ pos)
				    '(,property nil))))
	(t
	 ;; Emacs < 21.
	 `(c-clear-char-property-fun ,pos ',property))))