Function: allout-regexp-sans-escapes

allout-regexp-sans-escapes is a byte-compiled function defined in allout.el.gz.

Signature

(allout-regexp-sans-escapes REGEXP &optional SUCCESSIVE-BACKSLASHES)

Documentation

Return a copy of REGEXP with all character escapes stripped out.

Representations of actual backslashes -- \\\\ -- are left as a single backslash.

Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion.

Source Code

;; Defined in /usr/src/emacs/lisp/allout.el.gz
;;;_  : Strings:
;;;_   > allout-regexp-sans-escapes (string)
(defun allout-regexp-sans-escapes (regexp &optional successive-backslashes)
  "Return a copy of REGEXP with all character escapes stripped out.

Representations of actual backslashes -- `\\\\\\\\' -- are left as a
single backslash.

Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion."

  (if (string= regexp "")
      ""
    ;; Set successive-backslashes to number if current char is
    ;; backslash, or else to nil:
    (setq successive-backslashes
	  (if (= (aref regexp 0) ?\\)
	      (if successive-backslashes (1+ successive-backslashes) 1)
	    nil))
    (if (or (not successive-backslashes) (= 2 successive-backslashes))
	;; Include first char:
	(concat (substring regexp 0 1)
		(allout-regexp-sans-escapes (substring regexp 1)))
      ;; Exclude first char, but maintain count:
      (allout-regexp-sans-escapes (substring regexp 1) successive-backslashes))))