=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/tmux.c,v retrieving revision 1.136 retrieving revision 1.137 diff -c -r1.136 -r1.137 *** src/usr.bin/tmux/tmux.c 2015/06/04 20:34:22 1.136 --- src/usr.bin/tmux/tmux.c 2015/07/20 15:50:04 1.137 *************** *** 1,4 **** ! /* $OpenBSD: tmux.c,v 1.136 2015/06/04 20:34:22 jmc Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: tmux.c,v 1.137 2015/07/20 15:50:04 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 198,207 **** fatal("execl failed"); } int main(int argc, char **argv) { - struct passwd *pw; char *s, *path, *label, **var, tmp[PATH_MAX]; char in[256]; const char *home; --- 198,224 ---- fatal("execl failed"); } + const char* + find_home(void) + { + struct passwd *pw; + const char *home; + + home = getenv("HOME"); + if (home == NULL || *home == '\0') { + pw = getpwuid(getuid()); + if (pw != NULL) + home = pw->pw_dir; + else + home = NULL; + } + + return home; + } + int main(int argc, char **argv) { char *s, *path, *label, **var, tmp[PATH_MAX]; char in[256]; const char *home; *************** *** 320,333 **** /* Locate the configuration file. */ if (cfg_file == NULL) { ! home = getenv("HOME"); ! if (home == NULL || *home == '\0') { ! pw = getpwuid(getuid()); ! if (pw != NULL) ! home = pw->pw_dir; ! else ! home = NULL; ! } if (home != NULL) { xasprintf(&cfg_file, "%s/.tmux.conf", home); if (access(cfg_file, R_OK) != 0 && errno == ENOENT) { --- 337,343 ---- /* Locate the configuration file. */ if (cfg_file == NULL) { ! home = find_home(); if (home != NULL) { xasprintf(&cfg_file, "%s/.tmux.conf", home); if (access(cfg_file, R_OK) != 0 && errno == ENOENT) {