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))))