Function: c-with-string-fences

c-with-string-fences is a macro defined in cc-defs.el.gz.

Signature

(c-with-string-fences &rest FORMS)

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/cc-defs.el.gz
;; Non-nil when we have set string fences with `c-restore-string-fences'.
(defmacro c-with-string-fences (&rest forms)
  ;; Restore the string fences, evaluate FORMS, then remove them again.  It
  ;; should only be used at the top level of "boundary" functions in CC Mode,
  ;; i.e. those called from outside CC Mode which directly or indirectly need
  ;; unbalanced string markers to have their string-fence syntax-table text
  ;; properties.  This includes all calls to `c-parse-state'.  This macro will
  ;; be invoked recursively; however the `c-string-fences-set-flag' mechanism
  ;; should ensure consistency, when this happens.
  (declare (debug t))
  `(unwind-protect
       (progn
	 (unless c-string-fences-set-flag
	   (c-restore-string-fences))
	 (let ((c-string-fences-set-flag t))
	   ,@forms))
     (unless c-string-fences-set-flag
       (c-clear-string-fences))))