From 590e081dea7c064056941bfae28b25ce956585f5 Mon Sep 17 00:00:00 2001 From: Rafael Gieschke Date: Thu, 19 May 2011 13:37:55 +0200 Subject: ident: add NO_GECOS_IN_PWENT for systems without pw_gecos in struct passwd Allow NO_GECOS_IN_PWENT to be defined in the Makefile for platforms that lack the pw_gecos field in their "struct passwd", in which case the uppercased user name is used instead via the standard '&' replacement mechanism. Signed-off-by: Rafael Gieschke Signed-off-by: Junio C Hamano --- ident.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'ident.c') diff --git a/ident.c b/ident.c index 4232084208..770b9e02c8 100644 --- a/ident.c +++ b/ident.c @@ -9,6 +9,12 @@ static char git_default_date[50]; +#ifdef NO_GECOS_IN_PWENT +#define get_gecos(ignored) "&" +#else +#define get_gecos(struct_passwd) ((struct_passwd)->pw_gecos) +#endif + static void copy_gecos(const struct passwd *w, char *name, size_t sz) { char *src, *dst; @@ -20,7 +26,7 @@ static void copy_gecos(const struct passwd *w, char *name, size_t sz) * with commas. Also & stands for capitalized form of the login name. */ - for (len = 0, dst = name, src = w->pw_gecos; len < sz; src++) { + for (len = 0, dst = name, src = get_gecos(w); len < sz; src++) { int ch = *src; if (ch != '&') { *dst++ = ch; -- cgit v1.2.1