Function: c-remove-string-fences
c-remove-string-fences is a byte-compiled function defined in
cc-mode.el.gz.
Signature
(c-remove-string-fences &optional HERE)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cc-mode.el.gz
;; Non-nil when, in a before-change function, the deletion of a range of text
;; will change the "stringiness" of the subsequent text. Only used when
;; `c-multiline-string-start-char' is a non-nil value which isn't a character.
(defun c-remove-string-fences (&optional here)
;; The character after HERE (default point) is either a string delimiter or
;; a newline, which is marked with a string fence text property for both
;; syntax-table and c-fl-syn-tab. Remove these properties from that
;; character and its matching newline or string delimiter, if any (there may
;; not be one if there is a missing newline at EOB).
(save-excursion
(if here
(goto-char here)
(setq here (point)))
(cond
((memq (char-after) c-string-delims)
(save-excursion
(save-match-data
(forward-char)
(if (and (c-search-forward-char-property 'syntax-table '(15))
(memq (char-before) '(?\n ?\r)))
(c-clear-syn-tab (1- (point))))))
(c-clear-syn-tab (point)))
((memq (char-after) '(?\n ?\r))
(save-excursion
(save-match-data
(when (and (c-search-backward-char-property 'syntax-table '(15))
(memq (char-after) c-string-delims))
(c-clear-syn-tab (point)))))
(c-clear-syn-tab (point)))
(t (c-benign-error "c-remove-string-fences: Wrong position")))))