use the logical path for -C if correct.

This commit is contained in:
christos 2017-02-07 21:16:31 +00:00
parent 5acf460d25
commit fa1ea25f42

View File

@ -1,4 +1,4 @@
/* $NetBSD: main.c,v 1.255 2017/01/31 06:54:23 sjg Exp $ */
/* $NetBSD: main.c,v 1.256 2017/02/07 21:16:31 christos Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@ -69,7 +69,7 @@
*/
#ifndef MAKE_NATIVE
static char rcsid[] = "$NetBSD: main.c,v 1.255 2017/01/31 06:54:23 sjg Exp $";
static char rcsid[] = "$NetBSD: main.c,v 1.256 2017/02/07 21:16:31 christos Exp $";
#else
#include <sys/cdefs.h>
#ifndef lint
@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993\
#if 0
static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94";
#else
__RCSID("$NetBSD: main.c,v 1.255 2017/01/31 06:54:23 sjg Exp $");
__RCSID("$NetBSD: main.c,v 1.256 2017/02/07 21:16:31 christos Exp $");
#endif
#endif /* not lint */
#endif
@ -376,6 +376,7 @@ MainParseArgs(int argc, char **argv)
int arginc;
char *argvalue;
const char *getopt_def;
struct stat sa, sb;
char *optscan;
Boolean inOption, dashDash = FALSE;
char found_path[MAXPATHLEN + 1]; /* for searching for sys.mk */
@ -444,6 +445,11 @@ rearg:
(void)fprintf(stderr, "%s: %s.\n", progname, strerror(errno));
exit(2);
}
if (stat(argvalue, &sa) != -1 &&
stat(curdir, &sb) != -1 &&
sa.st_ino == sb.st_ino &&
sa.st_dev == sb.st_dev)
strlcpy(curdir, argvalue, MAXPATHLEN);
ignorePWD = TRUE;
break;
case 'D':