diff src/editfns.c @ 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 e038c1a8307c
children aa16e7d76321
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);
 }