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':

Reply via email to