Function: vc-hg--slurp-hgignore-1
vc-hg--slurp-hgignore-1 is a byte-compiled function defined in
vc-hg.el.gz.
Signature
(vc-hg--slurp-hgignore-1 HGIGNORE PREFIX)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/vc-hg.el.gz
(defun vc-hg--slurp-hgignore-1 (hgignore prefix)
(let ((default-syntax 'vc-hg--hgignore-add-pcre))
(with-temp-buffer
(let ((attr (file-attributes hgignore)))
(when attr (insert-file-contents hgignore))
(push (list hgignore (file-attribute-modification-time attr) (file-attribute-size attr))
vc-hg--hgignore-filenames))
(while (not (eobp))
;; This list of pattern-file commands isn't complete, but it
;; should cover the common cases. Remember that we fall back
;; to regular hg commands if we see something we don't like.
(save-restriction
(narrow-to-region (point) (line-end-position))
(cond ((looking-at "[ \t]*\\(?:#.*\\)?$"))
((looking-at "syntax:[ \t]*re[ \t]*$")
(setf default-syntax 'vc-hg--hgignore-add-pcre))
((looking-at "syntax:[ \t]*glob[ \t]*$")
(setf default-syntax 'vc-hg--hgignore-add-glob))
((looking-at "path:\\(.+?\\)[ \t]*$")
(vc-hg--hgignore-add-path (match-string 1) prefix))
((looking-at "glob:\\(.+?\\)[ \t]*$")
(vc-hg--hgignore-add-glob (match-string 1) prefix))
((looking-at "re:\\(.+?\\)[ \t]*$")
(vc-hg--hgignore-add-pcre (match-string 1) prefix))
((looking-at "\\(sub\\)?include:\\(.+?\\)[ \t]*$")
(let* ((sub (equal (match-string 1) "sub"))
(arg (match-string 2))
(included-file
(if (string-match "^/" arg) arg
(concat (file-name-directory hgignore) arg))))
(vc-hg--slurp-hgignore-1
included-file
(if sub (file-name-directory included-file) prefix))))
((looking-at "[a-zA-Z0-9_]*:")
(signal 'vc-hg-unsupported-syntax (list (match-string 0))))
((looking-at ".*$")
(funcall default-syntax (match-string 0) prefix))))
(forward-line 1)))))