Function: menu-bar-update-yank-menu
menu-bar-update-yank-menu is a byte-compiled function defined in
menu-bar.el.gz.
Signature
(menu-bar-update-yank-menu STRING OLD)
Source Code
;; Defined in /usr/src/emacs/lisp/menu-bar.el.gz
(defun menu-bar-update-yank-menu (string old)
(let ((front (car (cdr yank-menu)))
(menu-string (if (<= (length string) yank-menu-length)
string
(concat
(substring string 0 (/ yank-menu-length 2))
"..."
(substring string (- (/ yank-menu-length 2)))))))
;; Don't let the menu string be all dashes
;; because that has a special meaning in a menu.
(if (string-match "\\`-+\\'" menu-string)
(setq menu-string (concat menu-string " ")))
;; If we're supposed to be extending an existing string, and that
;; string really is at the front of the menu, then update it in place.
(if (and old (or (eq old (car front))
(string= old (car front))))
(progn
(setcar front string)
(setcar (cdr front) menu-string))
(setcdr yank-menu
(cons
(cons string (cons menu-string 'menu-bar-select-yank))
(cdr yank-menu)))))
(let ((max-items (min yank-menu-max-items kill-ring-max)))
(if (> (length (cdr yank-menu)) max-items)
(setcdr (nthcdr max-items yank-menu) nil))))