emacs -Q `read-face-name' has changed the meaning and behavior of its PROMPT arg since Emacs 20, and it is now unconventional, conflicting with standard Emacs treatment of PROMPT args. It should not append ": ". Instead, calling functions should do that themselves as they deem appropriate.
This change was made in Emacs 21, but it is not a good change. It is presumably an attempt to be smart, but it reduces flexibility for calling functions. `read-face-name' should treat its PROMPT arg the same way that other Emacs prompting functions, such as `completing-read', treat their PROMPT args. Furthermore, there are several prompts used in calls to `read-face-name' in library `faces.el' that are non-standard and non-English: all of those that begin with "Make which face". In these cases, the final prompt reads like this: Make which face bold: or Make which face bold (default font-lock-function-name-face): You might say that every prompt is an implicit question: the program is asking the user for input. However, it is really a request, not a question, and the proper mode for most prompts is the imperative, not the interrogative. Usually, therefore, a prompt is expressed imperatively. Confirmation questions (e.g. `y-or-n-p') are a notable exception, where the point is to draw extra attention to a user choice. In any case, whenever a prompt is expressed as an explicit question, for whatever reason, it needs to be followed by a question mark (`?'). Obviously, with the automatic appending of ": " here, it would have been inappropriate to include the question mark also: "Make which face bold?: ". The implementation thus ends up distorting the punctuation to be used. The proper fix, however is not to use a question at all here. Conventional, and better, Emacs prompts for this are imperative: Make face bold: or Make face bold (default font-lock-function-name-face): `read-face-name' has slowly progressed from Emacs 20 (where it didn't even have a doc string), but it is still not up to snuff. Please bring it up to the standard of `completing-read' by correcting this PROMPT bug and fixing the question prompts. There is at least one other function that is non-standard wrt tacking on ": " instead of expecting the PROMPT arg to include it if needed: `bookmark-completing-read'. This problem should be fixed for `bookmark-completing-read' also. It's better to leave ": " to the calling function. In GNU Emacs 22.0.92.1 (i386-mingw-nt5.1.2600) of 2006-12-30 on LENNART-69DE564 X server distributor `Microsoft Corp.', version 5.1.2600 configured using `configure --with-gcc (3.4) --cflags -Ic:/g/include' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: ENU locale-coding-system: cp1252 default-enable-multibyte-characters: t Major mode: Dired by name Minor modes in effect: encoded-kbd-mode: t tooltip-mode: t tool-bar-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t unify-8859-on-encoding-mode: t utf-translate-cjk-mode: t auto-compression-mode: t line-number-mode: t Recent input: <help-echo> <help-echo> <down-mouse-1> <mouse-1> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <menu-bar> <help-menu> <report-emacs-bug> Recent messages: (C:\Emacs-22-2006-12-30\bin\emacs.exe -q --no-site-file --debug-init C:\drews-lisp-20) Loading encoded-kb...done For information about the GNU Project and its goals, type C-h C-p. Loading dired... Loading regexp-opt...done Loading dired...done For information about the GNU Project and its goals, type C-h C-p. Loading emacsbug...done _______________________________________________ emacs-pretest-bug mailing list [email protected] http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug
