Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
1a6a03e4
Commit
1a6a03e4
authored
Jan 14, 2011
by
Kenichi Handa
Browse files
Fix setting of buffer-file-coding-system of RMAIL buffer.
parent
07ee9351
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
4 deletions
+41
-4
lisp/ChangeLog
lisp/ChangeLog
+11
-0
lisp/mail/rmailmm.el
lisp/mail/rmailmm.el
+30
-4
No files found.
lisp/ChangeLog
View file @
1a6a03e4
2011-01-14 Kenichi Handa <handa@m17n.org>
* mail/rmailmm.el (rmail-mime-insert-header): Set
rmail-mime-coding-system to a cons whose car is the last coding
system used to decode the header.
(rmail-mime-find-header-encoding): New function.
(rmail-mime-insert-decoded-text): Override
rmail-mime-coding-system if it is a cons.
(rmail-show-mime): If only a header part was decoded, find the
coding system while ignoring mm-charset-override-alist.
2011-01-12 Kenichi Handa <handa@m17n.org>
* mail/rmailmm.el (rmail-mime-next-item)
...
...
lisp/mail/rmailmm.el
View file @
1a6a03e4
...
...
@@ -460,12 +460,27 @@ See `rmail-mime-entity' for the detail."
(
rmail-copy-headers
(
point
)
(
aref
header
1
)))))
(
rfc2047-decode-region
pos
(
point
))
(
if
(
and
last-coding-system-used
(
not
rmail-mime-coding-system
))
(
setq
rmail-mime-coding-system
last-coding-system-used
))
(
setq
rmail-mime-coding-system
(
cons
last-coding-system-used
nil
)
))
(
goto-char
(
point-min
))
(
rmail-highlight-headers
)
(
goto-char
(
point-max
))
(
insert
"\n"
))))
(
defun
rmail-mime-find-header-encoding
(
header
)
"Retun the last coding system used to decode HEADER.
HEADER is a header component of a MIME-entity object (see
`rmail-mime-entity')."
(
with-temp-buffer
(
let
((
last-coding-system-used
nil
))
(
with-current-buffer
rmail-mime-mbox-buffer
(
let
((
rmail-buffer
rmail-mime-mbox-buffer
)
(
rmail-view-buffer
rmail-mime-view-buffer
))
(
save-excursion
(
goto-char
(
aref
header
0
))
(
rmail-copy-headers
(
point
)
(
aref
header
1
)))))
(
rfc2047-decode-region
(
point-min
)
(
point-max
))
last-coding-system-used
)))
(
defun
rmail-mime-text-handler
(
content-type
content-disposition
content-transfer-encoding
)
...
...
@@ -498,7 +513,7 @@ See `rmail-mime-entity' for the detail."
((
string=
transfer-encoding
"quoted-printable"
)
(
quoted-printable-decode-region
pos
(
point
))))))
(
decode-coding-region
pos
(
point
)
coding-system
)
(
or
rmail-mime-coding-system
(
if
(
or
(
not
rmail-mime-coding-system
)
(
consp
rmail-mime-coding-system
))
(
setq
rmail-mime-coding-system
coding-system
))
(
or
(
bolp
)
(
insert
"\n"
))))
...
...
@@ -1274,8 +1289,19 @@ attachments as specfied by `rmail-mime-attachment-dirs-alist'."
(
with-current-buffer
rmail-mime-view-buffer
(
erase-buffer
)
(
rmail-mime-insert
entity
)
(
if
rmail-mime-coding-system
(
set-buffer-file-coding-system
rmail-mime-coding-system
t
t
)))
(
if
(
consp
rmail-mime-coding-system
)
;; Decoding is done by rfc2047-decode-region only for a
;; header. But, as the used coding system may have been
;; overriden by mm-charset-override-alist, we can't
;; trust (car rmail-mime-coding-system). So, here we
;; try the decoding again with mm-charset-override-alist
;; bound to nil.
(
let
((
mm-charset-override-alist
nil
))
(
setq
rmail-mime-coding-system
(
rmail-mime-find-header-encoding
(
rmail-mime-entity-header
entity
)))))
(
set-buffer-file-coding-system
(
coding-system-base
rmail-mime-coding-system
)
t
t
))
;; Decoding failed. ENTITY is an error message. Insert the
;; original message body as is, and show warning.
(
let
((
region
(
with-current-buffer
rmail-mime-mbox-buffer
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment