Function: let-alist--deep-dot-search

let-alist--deep-dot-search is a byte-compiled function defined in let-alist.el.gz.

Signature

(let-alist--deep-dot-search DATA)

Documentation

Return alist of symbols inside DATA that start with a ..

Perform a deep search and return an alist where each car is the symbol, and each cdr is the same symbol without the ..

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/let-alist.el.gz
(defun let-alist--deep-dot-search (data)
  "Return alist of symbols inside DATA that start with a `.'.
Perform a deep search and return an alist where each car is the
symbol, and each cdr is the same symbol without the `.'."
  (cond
   ((symbolp data)
    (let ((name (symbol-name data)))
      (when (string-match "\\`\\." name)
        ;; Return the cons cell inside a list, so it can be appended
        ;; with other results in the clause below.
        (list (cons data (intern (replace-match "" nil nil name)))))))
   ((vectorp data)
    (apply #'nconc (mapcar #'let-alist--deep-dot-search data)))
   ((not (consp data)) nil)
   ((eq (car data) 'let-alist)
    ;; For nested ‘let-alist’ forms, ignore symbols appearing in the
    ;; inner body because they don’t refer to the alist currently
    ;; being processed.  See Bug#24641.
    (let-alist--deep-dot-search (cadr data)))
   (t (append (let-alist--deep-dot-search (car data))
              (let-alist--deep-dot-search (cdr data))))))