top: properly handle an improper $HOME environment variable

Since its inception, this top has improperly handled an
empty HOME environment variable.  Under those conditions
a path to the root directory would have been constructed.

That caused no real harm upon startup since the display
defaults would have been employed.  However, except for
root, it would have been impossible to save the rc file.

This commit keeps the promise made in the documentation.
This commit is contained in:
Jim Warner 2012-01-13 16:07:40 -06:00 committed by Craig Small
parent bc6b99e8ff
commit 9573a6fe5b

View File

@ -2148,13 +2148,13 @@ static void configs_read (void) {
RCF_t rcdef = DEF_RCFILE;
#endif
float tmp_delay = DEF_DELAY;
char fbuf[LRGBUFSIZ];
char fbuf[LRGBUFSIZ], *p;
FILE *fp;
int i, x;
char id;
if (!getenv("HOME")) snprintf(Rc_name, sizeof(Rc_name), ".%src", Myname);
else snprintf(Rc_name, sizeof(Rc_name), "%s/.%src", getenv("HOME"), Myname);
p = getenv("HOME");
snprintf(Rc_name, sizeof(Rc_name), "%s/.%src", (p && *p) ? p : ".", Myname);
fp = fopen(SYS_RCFILESPEC, "r");
if (fp) {