Subject: Re: bug#17146: 24.4.50; File save with incapable coding system precluded by strange error message

From: Eli Zaretskii <[email-masked]>
Date: Mon, 31 Mar 2014 18:16:00 +0300

> From: Nathan Trapuzzano <[email-masked]>
> Date: Sun, 30 Mar 2014 21:52:13 -0400
> 
> On trunk:
> 
> emacs -nw -q file.txt
> M-: (insert "μ\xc1")
> C-x C-s
> 
> This throws a "make-text-button" error "Unknown button type
> `help-xref'".  And it doesn't save.  I believe it should ask which
> coding system I want to use to write to disk.

(The -nw part is not needed to reproduce the problem.)

This is because of this commit:

  ------------------------------------------------------------
  revno: 116839
  fixes bug: http://debbugs.gnu.org/16038
  committer: Leo Liu <[email-masked]>
  branch nick: trunk
  timestamp: Sat 2014-03-22 08:13:46 +0000
  message:
    * help.el (temp-buffer-setup-hook): Remove help-mode-setup.
    (temp-buffer-show-hook): Remove help-mode-finish.

This change is backward-incompatible, but is not in NEWS for some
reason.  Needless to say, the canonical way of fixing the fallout is
not described in NEWS.  Are functions that need Help mode supposed to
let-bind these hooks?  If so, the patch below should fix the problem.
In any case, please document the change and the way to adapt to it in
NEWS.

--- lisp/international/mule-cmds.el~	2014-01-01 10:46:07 +0200
+++ lisp/international/mule-cmds.el	2014-03-31 08:53:35 +0300
@@ -703,6 +703,8 @@
 
   (let ((window-configuration (current-window-configuration))
 	(bufname (buffer-name))
+	(temp-buffer-setup-hook 'help-mode-setup)
+	(temp-buffer-show-hook 'help-mode-finish)
 	coding-system)
     (save-excursion
       ;; If some defaults are unsafe, make sure the offending