Function: reftex-index-change-entry

reftex-index-change-entry is a byte-compiled function defined in reftex-index.el.gz.

Signature

(reftex-index-change-entry NEW &optional MESSAGE)

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/reftex-index.el.gz
(defun reftex-index-change-entry (new &optional message)
  ;; Change the full context string of the index entry at point to
  ;; NEW.  This actually edits the buffer where the entry is defined.

  (let* ((data (get-text-property (point) :data))
         old beg end info)
    (unless data (error "Cannot change entry"))
    (reftex-index-view-entry)
    (setq beg (match-beginning 0) end (match-end 0))
    (setq old (nth 2 data))
    (and (equal old new) (error "Entry unchanged"))
    (with-current-buffer (get-file-buffer (nth 3 data))
      (goto-char beg)
      (unless (looking-at (regexp-quote old))
        (error "This should not happen (reftex-index-change-entry)"))
      (delete-region beg end)
      (insert new)
      (goto-char (1- beg))
      (when (and (re-search-forward (reftex-everything-regexp) nil t)
                 (match-end 10)
                 (< (abs (- (match-beginning 10) beg)) (length new))
                 (setq info (reftex-index-info-safe buffer-file-name)))
        (setcdr data (cdr info))))
    (let ((buffer-read-only nil))
      (save-excursion
        (reftex-insert-index (list data) reftex-index-tag t
                             "EDITED")))
    (setq reftex-last-follow-point 1)
    (and message (message "%s" message))))