Mercurial > emacs
changeset 102631:f13c449487ad
(Fuser_login_name): Support float arguments. Doc fix.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Wed, 18 Mar 2009 20:37:06 +0000 |
parents | d9ae831ced99 |
children | 1287a731cd99 |
files | src/editfns.c |
diffstat | 1 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/editfns.c Wed Mar 18 09:14:56 2009 +0000 +++ b/src/editfns.c Wed Mar 18 20:37:06 2009 +0000 @@ -1278,12 +1278,13 @@ Also, if the environment variables LOGNAME or USER are set, that determines the value of this function. -If optional argument UID is an integer, return the login name of the user -with that uid, or nil if there is no such user. */) +If optional argument UID is an integer or a float, return the login name +of the user with that uid, or nil if there is no such user. */) (uid) Lisp_Object uid; { struct passwd *pw; + uid_t id; /* Set up the user name info if we didn't do it before. (That can happen if Emacs is dumpable @@ -1294,9 +1295,9 @@ if (NILP (uid)) return Vuser_login_name; - CHECK_NUMBER (uid); + id = (uid_t)XFLOATINT (uid); BLOCK_INPUT; - pw = (struct passwd *) getpwuid (XINT (uid)); + pw = (struct passwd *) getpwuid (id); UNBLOCK_INPUT; return (pw ? build_string (pw->pw_name) : Qnil); }