Synch with the semi-1_14 branch.
[elisp/semi.git] / mime-view.el
index 75383b2..68a0bc6 100644 (file)
@@ -918,6 +918,7 @@ MEDIA-TYPE must be (TYPE . SUBTYPE), TYPE or t.  t means default."
   (let (compression-info)
     (cond
      ((and (mime-entity-filename entity)
+          (featurep 'jka-compr)
           (jka-compr-installed-p)
           (setq compression-info (jka-compr-get-compression-info
                                   (mime-entity-filename entity))))
@@ -982,6 +983,7 @@ MEDIA-TYPE must be (TYPE . SUBTYPE), TYPE or t.  t means default."
                        (setq buffer-file-name filename)
                        (set-auto-mode))
                    (setq buffer-file-name nil))))
+           (require 'font-lock)
            (let ((font-lock-verbose nil))
              ;; I find font-lock a bit too verbose.
              (font-lock-fontify-buffer))
@@ -1220,7 +1222,7 @@ MEDIA-TYPE must be (TYPE . SUBTYPE), TYPE or t.  t means default."
   (when (boundp 'widget-keymap)
     (set-keymap-parent (current-local-map) widget-keymap)))
 
-(add-hook 'mime-view-define-keymap-hook 'mime-view-maybe-inherit-widget-keymap)
+(add-hook 'mime-view-mode-hook 'mime-view-maybe-inherit-widget-keymap)
          
 (defun mime-view-define-keymap (&optional default)
   (let ((mime-view-mode-map (if (keymapp default)
@@ -1463,6 +1465,8 @@ button-2  Move to point under the mouse cursor
 ;;;
 
 (defun mime-preview-find-boundary-info (&optional get-mother)
+  "Return boundary information of current part.
+If GET-MOTHER, refer boundary surrounding current part and its branches."
   (let (entity
        p-beg p-end
        entity-node-id len)
@@ -1489,7 +1493,6 @@ button-2  Move to point under the mouse cursor
           (setq p-end (point-max)))
          (get-mother
           (save-excursion
-            (goto-char p-end)
             (catch 'tag
               (let (e i)
                 (while (setq e
@@ -1497,12 +1500,14 @@ button-2        Move to point under the mouse cursor
                               (point) 'mime-view-entity))
                   (goto-char e)
                   (let ((rc (mime-entity-node-id
-                             (get-text-property (1- (point))
+                             (get-text-property (point)
                                                 'mime-view-entity))))
                     (or (and (>= (setq i (- (length rc) len)) 0)
                              (equal entity-node-id (nthcdr i rc)))
                         (throw 'tag nil)))
-                  (setq p-end e)))
+                  (setq p-end (or (next-single-property-change
+                                   (point) 'mime-view-entity)
+                                  (point-max)))))
               (setq p-end (point-max))))))
     (vector p-beg p-end entity)))
 
@@ -1799,7 +1804,7 @@ If LINES is negative, scroll up LINES lines."
                                        (lambda (sym)
                                          (list (symbol-name sym)))
                                        (mime-charset-list))
-                                      #'mime-charset-p t
+                                      nil t
                                       (symbol-name default-charset)))))
        (unless (eq charset default-charset)
          charset))