Function: delete-completion
delete-completion is a byte-compiled function defined in
completion.el.gz.
Signature
(delete-completion COMPLETION-STRING)
Documentation
Delete the completion from the database.
String must be longer than completion-prefix-min-length.
Source Code
;; Defined in /usr/src/emacs/lisp/completion.el.gz
(defun delete-completion (completion-string)
"Delete the completion from the database.
String must be longer than `completion-prefix-min-length'."
;; Handle pending acceptance
(let ((cmpl--completion-string completion-string))
(if completion-to-accept (accept-completion))
(if (setq cmpl-db-entry (find-exact-completion completion-string))
;; found
(let* ((prefix-entry (find-cmpl-prefix-entry
(substring cmpl-db-downcase-string 0
completion-prefix-min-length)))
(splice-ptr (completion-locate-entry
cmpl-db-entry prefix-entry)))
;; delete symbol reference
(set cmpl-db-symbol nil)
;; remove from prefix list
(cond (splice-ptr
;; not at head
(or (setcdr splice-ptr (cdr (cdr splice-ptr)))
;; fix up tail if necessary
(set-cmpl-prefix-entry-tail prefix-entry splice-ptr)))
(t
;; at head
(or (set-cmpl-prefix-entry-head
prefix-entry (cdr (cmpl-prefix-entry-head prefix-entry)))
;; List is now empty
(set cmpl-db-prefix-symbol nil)))))
(error "Unknown completion `%s'" completion-string))))