Function: ibut:delete
ibut:delete is a byte-compiled function defined in hbut.el.
Signature
(ibut:delete &optional BUT-SYM)
Documentation
Delete Hyperbole implicit button based on optional BUT-SYM.
If it is a named button, delete all occurrences in the buffer; otherwise, delete only if there is an occurrence at point.
Default is the symbol 'hbut:current. Return symbol for button deleted or nil.
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hbut.el
(defun ibut:delete (&optional but-sym)
"Delete Hyperbole implicit button based on optional BUT-SYM.
If it is a named button, delete all occurrences in the buffer; otherwise, delete
only if there is an occurrence at point.
Default is the symbol \\='hbut:current. Return symbol for button deleted or nil."
(unless but-sym
(setq but-sym 'hbut:current))
(when (ibut:is-p but-sym)
(let ((name (hattr:get but-sym 'name))
(loc (hattr:get but-sym 'loc))
(lbl-start (hattr:get but-sym 'lbl-start))
(lbl-end (hattr:get but-sym 'lbl-end)))
(when (and lbl-start lbl-end)
(with-current-buffer (if (bufferp loc) loc (find-file-noselect loc))
(barf-if-buffer-read-only)
(save-excursion
(if name
(ibut:map
(lambda (_name start _end)
(goto-char (+ start 2))
(when (ibut:set-name-and-label-key-p)
(ibut:delete-occurrence
(hattr:get but-sym 'name-start)
(hattr:get but-sym 'lbl-end))))
(ibut:name-instances-regexp (ibut:label-to-key name))
t)
(ibut:delete-occurrence lbl-start lbl-end)))
;; Also delete in-memory version of the ibut
(hattr:clear but-sym))
but-sym))))