Subject: bug#4817 closed by Glenn Morris <[email-masked]> (Re: bug#4817: unclear value type of select-safe-coding-system-accept-default-p)

From: [email-masked] (Emacs bug Tracking System)
Date: Sat, 31 Oct 2009 19:50:09 +0000

This is an automatic notification regarding your bug report
which was filed against the emacs package:

#4817: unclear value type of select-safe-coding-system-accept-default-p

It has been closed by Glenn Morris <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Glenn Morris <[email-masked]> by
replying to this email.

-- 
4817: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=4817
Emacs Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#4817: unclear value type of select-safe-coding-system-accept-default-p
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Sat, 31 Oct 2009 15:44:36 -0400

Thanks, I tweaked the manual a bit.

Subject: unclear value type of select-safe-coding-system-accept-default-p
From: Norbert Eisinger <[email-masked]>
To: [email-masked]
Date: Wed, 28 Oct 2009 00:04:03 +0100

GNU Emacs Lisp Reference Manual
33.9.4 User-Chosen Coding Systems
Function: select-safe-coding-system from to &optional default-coding-system accept-default-p file

Quotation 1:
> The optional argument accept-default-p, if non-nil, should be a
> function to determine whether a coding system selected without user
> interaction is acceptable. select-safe-coding-system calls this
> function with one argument, the base coding system of the selected
> coding system. If accept-default-p returns nil,
> select-safe-coding-system rejects the silently selected coding system,
> and asks the user to select a coding system from a list of possible
> candidates.

Quotation 2:
> If the variable select-safe-coding-system-accept-default-p is non-nil,
> its value overrides the value of accept-default-p.

I cannot quite decide which of the following two alternatives is the problem:

=========================================================================
Alternative 1:
The value of select-safe-coding-system-accept-default-p can be either nil
or a symbol naming a coding system (e.g., mule-utf-8-unix)

In this case the sentence in quotation 2 might need some rephrasing, such as
"..., its value overrides the value returned by the function that is
the actual argument for accept-default-p"

=========================================================================
Alternative 2:
The value of select-safe-coding-system-accept-default-p can be either nil
or a one-argument function that returns either nil or a symbol naming a
coding system.

If this is what quotation 2 means (and I understood it to mean this),
one of the following entries in the init file would seem to make sense:

(custom-set-variables
 ;; ...
 '(select-safe-coding-system-accept-default-p
    (function (lambda (coding-system)
      (read-coding-system (format "Coding system [%s]: " coding-system)
                          coding-system))))
)

or

(custom-set-variables
 ;; ...
 '(select-safe-coding-system-accept-default-p
    (function (lambda (coding-system) nil)))
)

However, when I cause a situation where this code is evaluated, I get

select-safe-coding-system: Wrong type argument: listp, mule-utf-8-unix
=========================================================================

Norbert Eisinger