Commit 7b1c38a4 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

(Fuser_login_name): Support float arguments. Doc fix.

parent 0be8a343
...@@ -1278,12 +1278,13 @@ This is based on the effective uid, not the real uid. ...@@ -1278,12 +1278,13 @@ This is based on the effective uid, not the real uid.
Also, if the environment variables LOGNAME or USER are set, Also, if the environment variables LOGNAME or USER are set,
that determines the value of this function. that determines the value of this function.
If optional argument UID is an integer, return the login name of the user If optional argument UID is an integer or a float, return the login name
with that uid, or nil if there is no such user. */) of the user with that uid, or nil if there is no such user. */)
(uid) (uid)
Lisp_Object uid; Lisp_Object uid;
{ {
struct passwd *pw; struct passwd *pw;
uid_t id;
/* Set up the user name info if we didn't do it before. /* Set up the user name info if we didn't do it before.
(That can happen if Emacs is dumpable (That can happen if Emacs is dumpable
...@@ -1294,9 +1295,9 @@ with that uid, or nil if there is no such user. */) ...@@ -1294,9 +1295,9 @@ with that uid, or nil if there is no such user. */)
if (NILP (uid)) if (NILP (uid))
return Vuser_login_name; return Vuser_login_name;
CHECK_NUMBER (uid); id = (uid_t)XFLOATINT (uid);
BLOCK_INPUT; BLOCK_INPUT;
pw = (struct passwd *) getpwuid (XINT (uid)); pw = (struct passwd *) getpwuid (id);
UNBLOCK_INPUT; UNBLOCK_INPUT;
return (pw ? build_string (pw->pw_name) : Qnil); return (pw ? build_string (pw->pw_name) : Qnil);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment