Module Name: src Committed By: christos Date: Tue Feb 7 21:16:31 UTC 2017
Modified Files: src/usr.bin/make: main.c Log Message: use the logical path for -C if correct. To generate a diff of this commit: cvs rdiff -u -r1.255 -r1.256 src/usr.bin/make/main.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/make/main.c diff -u src/usr.bin/make/main.c:1.255 src/usr.bin/make/main.c:1.256 --- src/usr.bin/make/main.c:1.255 Tue Jan 31 01:54:23 2017 +++ src/usr.bin/make/main.c Tue Feb 7 16:16:31 2017 @@ -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, 19 #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':