Subject: 25.2; rmail corrupts encoded message if you edit headers

From: Ken Olum <[email-masked]>
Date: Tue, 13 Jun 2017 19:45:54 -0400

If you use rmail edit to change any header in an message with nontrivial
transfer encoding, parts of the header will get encoded, not just the
body.  The problem is that the reencoding system in rmail-cease-edit
uses (point), but the previous call to rmail-edit-update-headers changes
(point), unless no headers are modified.

Even if you don't yourself modify any headers, bug#26918 can cause there
to be a new content-type header, triggering this problem.

I'll send a patch to fix this bug and #26918.

                                        Ken

In GNU Emacs 25.2.1 (x86_64-unknown-linux-gnu, X toolkit, Xaw scroll bars)
 of 2017-06-08 built on cosmos
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description:	Ubuntu 14.04.5 LTS

Configured features:
XPM JPEG TIFF GIF PNG SOUND NOTIFY LIBXML2 FREETYPE XFT ZLIB
TOOLKIT_SCROLL_BARS LUCID X11

Important settings:
  value of $LC_ALL: C
  value of $LANG: en_US.UTF-8
  locale-coding-system: nil

Major mode: Lisp Interaction

Minor modes in effect:
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t

Recent messages:
Loading /home/kdo/emacs-init.el (source)...done
Loading /home/kdo/emacs-init-mail.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug sendmail advice rmailmm message dired
format-spec rfc822 mml mml-sec password-cache epg epg-config gnus-util
mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader mail-parse
rfc2231 rmail rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode
mail-prsvr mail-utils shell pcomplete diff-mode easy-mmode thingatpt
browse-url math derived inf-lisp easymenu comint ansi-color ring
warnings cl-macs cl gv cl-loaddefs pcase cl-lib time-date mule-util
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote inotify dynamic-setting
font-render-setting x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 105422 9891)
 (symbols 48 21581 3)
 (miscs 40 64 121)
 (strings 32 20808 4178)
 (string-bytes 1 588741)
 (vectors 16 14339)
 (vector-slots 8 453622 3906)
 (floats 8 173 8)
 (intervals 56 203 135)
 (buffers 976 18)
 (heap 1024 41469 1008))