@@ -1557,102 +1557,63 @@ part (if exist) or the first language message part."
15571557 (setq func (lookup-key menu (apply #'vector events)))
15581558 (commandp func)
15591559 (funcall func))))
1560- (defvar mouse-button-2 [mouse-2])
1561- (defvar mouse-button-3 [mouse-3])
15621560
1563- (defun mime-view-define-keymap (&optional default )
1564- (let ((mime-view-mode-map (if (keymapp default )
1565- (copy-keymap default )
1566- (make-sparse-keymap ))))
1567- (define-key mime-view-mode-map
1568- " u" (function mime-preview-move-to-upper))
1569- (define-key mime-view-mode-map
1570- " p" (function mime-preview-move-to-previous))
1571- (define-key mime-view-mode-map
1572- " n" (function mime-preview-move-to-next))
1573- (define-key mime-view-mode-map
1574- " \e\t " (function mime-preview-move-to-previous))
1575- (define-key mime-view-mode-map
1576- " \t " (function mime-preview-move-to-next))
1577- (define-key mime-view-mode-map
1578- " " (function mime-preview-scroll-up-entity))
1579- (define-key mime-view-mode-map
1580- " \M - " (function mime-preview-scroll-down-entity))
1581- (define-key mime-view-mode-map
1582- " \1 77" (function mime-preview-scroll-down-entity))
1583- (define-key mime-view-mode-map
1584- " \C -m" (function mime-preview-next-line-entity))
1585- (define-key mime-view-mode-map
1586- " \C -\M -m" (function mime-preview-previous-line-entity))
1587- (define-key mime-view-mode-map
1588- " v" (function mime-preview-play-current-entity))
1589- (define-key mime-view-mode-map
1590- " e" (function mime-preview-extract-current-entity))
1591- (define-key mime-view-mode-map
1592- " \C -c\C -p" (function mime-preview-print-current-entity))
1593-
1594- (define-key mime-view-mode-map
1595- " \C -c\C -t\C -f" (function mime-preview-toggle-header))
1596- (define-key mime-view-mode-map
1597- " \C -c\C -th" (function mime-preview-toggle-header))
1598- (define-key mime-view-mode-map
1599- " \C -c\C -t\C -c" (function mime-preview-toggle-content))
1600-
1601- (define-key mime-view-mode-map
1602- " \C -c\C -v\C -f" (function mime-preview-show-header))
1603- (define-key mime-view-mode-map
1604- " \C -c\C -vh" (function mime-preview-show-header))
1605- (define-key mime-view-mode-map
1606- " \C -c\C -v\C -c" (function mime-preview-show-content))
1607-
1608- (define-key mime-view-mode-map
1609- " \C -c\C -d\C -f" (function mime-preview-hide-header))
1610- (define-key mime-view-mode-map
1611- " \C -c\C -dh" (function mime-preview-hide-header))
1612- (define-key mime-view-mode-map
1613- " \C -c\C -d\C -c" (function mime-preview-hide-content))
1614-
1615- (define-key mime-view-mode-map
1616- " a" (function mime-preview-follow-current-entity))
1617- (define-key mime-view-mode-map
1618- " q" (function mime-preview-quit))
1619- (define-key mime-view-mode-map
1620- " \C -c\C -x" (function mime-preview-kill-buffer))
1621- ; ; (define-key mime-view-mode-map
1622- ; ; "<" (function beginning-of-buffer))
1623- ; ; (define-key mime-view-mode-map
1624- ; ; ">" (function end-of-buffer))
1625- (define-key mime-view-mode-map
1626- " ?" (function describe-mode))
1627- (define-key mime-view-mode-map
1628- [tab] (function mime-preview-move-to-next))
1629- (define-key mime-view-mode-map
1630- [delete] (function mime-preview-scroll-down-entity))
1631- (define-key mime-view-mode-map
1632- [backspace] (function mime-preview-scroll-down-entity))
1633- (if (functionp default )
1634- (setq mime-view-mode-map
1635- (append mime-view-mode-map (list (cons t default )))))
1636- (if mouse-button-2
1637- (define-key mime-view-mode-map
1638- mouse-button-2 (function mime-button-dispatcher)))
1639- (define-key mime-view-mode-map
1640- mouse-button-3 (function mime-view-popup-menu))
1641- (define-key mime-view-mode-map [menu-bar mime-view]
1642- (cons mime-view-menu-title
1643- (make-sparse-keymap mime-view-menu-title)))
1644- (mapc (function
1645- (lambda (item)
1646- (define-key mime-view-mode-map
1647- (vector 'menu-bar 'mime-view (car item))
1648- (cons (nth 1 item)(nth 2 item)))))
1561+ (defvar mime-view-mode-map
1562+ (let ((keymap (make-sparse-keymap )))
1563+ (mapc (lambda (elt )
1564+ (when elt
1565+ (define-key keymap (car elt) (cdr elt))))
1566+ `((" u" . mime-preview-move-to-upper)
1567+ (" p" . mime-preview-move-to-previous)
1568+ (" n" . mime-preview-move-to-next)
1569+ (" \e\t " . mime-preview-move-to-previous)
1570+ (" \t " . mime-preview-move-to-next)
1571+ (" " . mime-preview-scroll-up-entity)
1572+ (" \M - " . mime-preview-scroll-down-entity)
1573+ (" \1 77" . mime-preview-scroll-down-entity)
1574+ (" \C -m" . mime-preview-next-line-entity)
1575+ (" \C -\M -m" . mime-preview-previous-line-entity)
1576+ (" v" . mime-preview-play-current-entity)
1577+ (" e" . mime-preview-extract-current-entity)
1578+ (" \C -c\C -p" . mime-preview-print-current-entity)
1579+ (" \C -c\C -t\C -f" . mime-preview-toggle-header)
1580+ (" \C -c\C -th" . mime-preview-toggle-header)
1581+ (" \C -c\C -t\C -c" . mime-preview-toggle-content)
1582+ (" \C -c\C -v\C -f" . mime-preview-show-header)
1583+ (" \C -c\C -vh" . mime-preview-show-header)
1584+ (" \C -c\C -v\C -c" . mime-preview-show-content)
1585+ (" \C -c\C -d\C -f" . mime-preview-hide-header)
1586+ (" \C -c\C -dh" . mime-preview-hide-header)
1587+ (" \C -c\C -d\C -c" . mime-preview-hide-content)
1588+ (" a" . mime-preview-follow-current-entity)
1589+ (" q" . mime-preview-quit)
1590+ (" \C -c\C -x" . mime-preview-kill-buffer)
1591+ (" ?" . describe-mode)
1592+ ([tab] . mime-preview-move-to-next)
1593+ ([delete] . mime-preview-scroll-down-entity)
1594+ ([backspace] . mime-preview-scroll-down-entity)
1595+ ([mouse-2] . mime-button-dispatcher)
1596+ ([mouse-3] . mime-view-popup-menu)
1597+ ([menu-bar mime-view] .
1598+ ,(cons mime-view-menu-title
1599+ (make-sparse-keymap mime-view-menu-title)))))
1600+ (mapc (lambda (item )
1601+ (define-key keymap
1602+ (vector 'menu-bar 'mime-view (car item))
1603+ (cons (nth 1 item) (nth 2 item))))
16491604 (reverse mime-view-menu-list))
1605+ keymap))
16501606
1607+ (defun mime-view-define-keymap (&optional default )
1608+ (let ((keymap (copy-keymap mime-view-mode-map)))
1609+ (cond
1610+ ((keymapp default )
1611+ (set-keymap-parent keymap default ))
1612+ ((functionp default )
1613+ (setq keymap
1614+ (append keymap (list (cons t default ))))))
16511615 ; ; (run-hooks 'mime-view-define-keymap-hook)
1652- mime-view-mode-map))
1653-
1654- (defvar mime-view-mode-default-map (mime-view-define-keymap))
1655-
1616+ keymap))
16561617
16571618(defsubst mime-maybe-hide-echo-buffer ()
16581619 " Clear mime-echo buffer and delete window for it."
@@ -1688,7 +1649,7 @@ buffer of MESSAGE. If it is nil, current `major-mode' is used.
16881649
16891650Optional argument KEYMAP is keymap of MIME-View mode. If it is
16901651non-nil, DEFAULT-KEYMAP-OR-FUNCTION is ignored. If it is nil,
1691- `mime-view-mode-default- map' is used."
1652+ `mime-view-mode-map' is used."
16921653 (mime-maybe-hide-echo-buffer)
16931654 (let ((win-conf (current-window-configuration )))
16941655 (or preview-buffer
@@ -1721,7 +1682,7 @@ non-nil, DEFAULT-KEYMAP-OR-FUNCTION is ignored. If it is nil,
17211682 (or keymap
17221683 (if default-keymap-or-function
17231684 (mime-view-define-keymap default-keymap-or-function)
1724- mime-view-mode-default- map)))
1685+ mime-view-mode-map)))
17251686 (let ((point
17261687 (next-single-property-change (point-min ) 'mime-view-entity )))
17271688 (if point
0 commit comments