* update-game-score.c: Include <limits.h>

(get_user_id): Do not assume uid fits in 'int'.  Simplify.
This commit is contained in:
Paul Eggert 2011-08-28 16:59:14 -07:00
parent 644a0faa36
commit 0c6d656d26
2 changed files with 8 additions and 10 deletions

View file

@ -30,6 +30,9 @@
in 'int'. Instead, put the possibly-long file name into the
output of pfatal_with_name.
* update-game-score.c: Include <limits.h>
(get_user_id): Do not assume uid fits in 'int'. Simplify.
2011-07-28 Paul Eggert <eggert@cs.ucla.edu>
Assume freestanding C89 headers, string.h, stdlib.h.

View file

@ -35,6 +35,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <unistd.h>
#include <errno.h>
#include <limits.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
@ -128,19 +129,13 @@ lose_syserr (const char *msg)
static char *
get_user_id (void)
{
char *name;
struct passwd *buf = getpwuid (getuid ());
if (!buf)
{
int count = 1;
int uid = (int) getuid ();
int tuid = uid;
while (tuid /= 10)
count++;
name = malloc (count+1);
if (!name)
return NULL;
sprintf (name, "%d", uid);
long uid = getuid ();
char *name = malloc (sizeof uid * CHAR_BIT / 3 + 1);
if (name)
sprintf (name, "%ld", uid);
return name;
}
return buf->pw_name;