[2829] in BarnOwl Developers
Re: [PATCH] Check passwd entries to determine home dir
daemon@ATHENA.MIT.EDU (Nelson Elhage)
Sun Dec 19 17:48:10 2010
In-Reply-To: <1292446777-1625-1-git-send-email-davidben@mit.edu>
Date: Sun, 19 Dec 2010 17:48:07 -0500
From: Nelson Elhage <nelhage@nelhage.com>
To: David Benjamin <davidben@mit.edu>
Cc: barnowl-dev@mit.edu
lgtm. I like preferring $HOME, because a user can easily change that
to run with a non-standard homedir.
- Nelson
On Wed, Dec 15, 2010 at 3:59 PM, David Benjamin <davidben@mit.edu> wrote:
> Still manually check the HOME variable because g_get_home_dir prefers
> passwd entries to environment variables. (Should we?)
> ---
> =C2=A0global.c | =C2=A0 10 ++++++++--
> =C2=A01 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/global.c b/global.c
> index 3b3bd78..f67eaa2 100644
> --- a/global.c
> +++ b/global.c
> @@ -13,6 +13,7 @@ static void _owl_global_init_windows(owl_global *g);
> =C2=A0void owl_global_init(owl_global *g) {
> =C2=A0 struct hostent *hent;
> =C2=A0 char *cd;
> + =C2=A0const char *homedir;
>
> =C2=A0 g_type_init();
>
> @@ -76,8 +77,13 @@ void owl_global_init(owl_global *g) {
> =C2=A0 g->nextmsgid=3D0;
>
> =C2=A0 /* Fill in some variables which don't have constant defaults */
> - =C2=A0/* TODO: come back later and check passwd file first */
> - =C2=A0g->homedir=3Dowl_strdup(getenv("HOME"));
> +
> + =C2=A0/* glib's g_get_home_dir prefers passwd entries to $HOME, so we
> + =C2=A0 * explicitly check getenv first. */
> + =C2=A0homedir =3D getenv("HOME");
> + =C2=A0if (!homedir)
> + =C2=A0 =C2=A0homedir =3D g_get_home_dir();
> + =C2=A0g->homedir =3D owl_strdup(homedir);
>
> =C2=A0 g->confdir =3D NULL;
> =C2=A0 g->startupfile =3D NULL;
> --
> 1.7.3.3.399.g06ddf
>
>