diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index 0a324a642fe..9a396f57ef0 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -3000,7 +3000,7 @@ causes it to evaluate @code{help-form} and display the result. It then continues to wait for a valid input character, or keyboard-quit. @end defun -@defun read-multiple-choice prompt choices +@defun read-multiple-choice prompt choices &optional help-string Ask user a multiple choice question. @var{prompt} should be a string that will be displayed as the prompt. @@ -3010,6 +3010,11 @@ entry to be displayed while prompting (if there's room, it might be shortened), and the third, optional entry is a longer explanation that will be displayed in a help buffer if the user requests more help. +If optional argument @var{help-string} is non-@code{nil}, it should be +a string with a more detailed description of all choices. It will be +displayed in a help buffer instead of the default auto-generated +description when the user types @kbd{?}. + The return value is the matching value from @var{choices}. @lisp diff --git a/src/editfns.c b/src/editfns.c index 5c9c34dc352..6ba09cceec4 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -1233,7 +1233,11 @@ return "unknown". If optional argument UID is an integer, return the full name of the user with that uid, or nil if there is no such user. If UID is a string, return the full name of the user with that login -name, or nil if there is no such user. */) +name, or nil if there is no such user. + +If the full name includes commas, remove everything starting with +the first comma, because the \\='gecos\\=' field of the \\='/etc/passwd\\=' file +is in general a comma-separated list. */) (Lisp_Object uid) { struct passwd *pw; @@ -1263,7 +1267,8 @@ name, or nil if there is no such user. */) return Qnil; p = USER_FULL_NAME; - /* Chop off everything after the first comma. */ + /* Chop off everything after the first comma, since 'pw_gecos' is a + comma-separated list. */ q = strchr (p, ','); full = make_string (p, q ? q - p : strlen (p));