Module Name:    src
Committed By:   rillig
Date:           Fri Jan  7 21:40:57 UTC 2022

Modified Files:
        src/usr.bin/make: parse.c

Log Message:
make: condense UnescapeBackslash

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.634 -r1.635 src/usr.bin/make/parse.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/parse.c
diff -u src/usr.bin/make/parse.c:1.634 src/usr.bin/make/parse.c:1.635
--- src/usr.bin/make/parse.c:1.634	Fri Jan  7 21:04:50 2022
+++ src/usr.bin/make/parse.c	Fri Jan  7 21:40:56 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: parse.c,v 1.634 2022/01/07 21:04:50 rillig Exp $	*/
+/*	$NetBSD: parse.c,v 1.635 2022/01/07 21:40:56 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -106,7 +106,7 @@
 #include "pathnames.h"
 
 /*	"@(#)parse.c	8.3 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: parse.c,v 1.634 2022/01/07 21:04:50 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.635 2022/01/07 21:40:56 rillig Exp $");
 
 /*
  * A file being read.
@@ -2362,8 +2362,8 @@ ParseRawLine(IncludedFile *curFile, char
 			line_end = p;
 	}
 
-	*out_line = line;
 	curFile->buf_ptr = p;
+	*out_line = line;
 	*out_line_end = line_end;
 	*out_firstBackslash = firstBackslash;
 	*out_firstComment = firstComment;
@@ -2392,35 +2392,24 @@ UnescapeBackslash(char *line, char *star
 
 		ch = *src++;
 		if (ch == '\0') {
-			/* Delete '\\' at end of buffer */
+			/* Delete '\\' at the end of the buffer. */
 			dst--;
 			break;
 		}
 
-		/* Delete '\\' from before '#' on non-command lines */
-		if (ch == '#' && line[0] != '\t') {
+		/* Delete '\\' from before '#' on non-command lines. */
+		if (ch == '#' && line[0] != '\t')
 			*dst++ = ch;
-			continue;
-		}
-
-		if (ch != '\n') {
-			/* Leave '\\' in buffer for later */
+		else if (ch == '\n') {
+			pp_skip_hspace(&src);
+			*dst++ = ' ';
+		} else {
+			/* Leave '\\' in the buffer for later. */
 			*dst++ = '\\';
-			/*
-			 * Make sure we don't delete an escaped ' ' from the
-			 * line end.
-			 */
-			spaceStart = dst + 1;
 			*dst++ = ch;
-			continue;
+			/* Keep an escaped ' ' at the line end. */
+			spaceStart = dst;
 		}
-
-		/*
-		 * Escaped '\n' -- replace following whitespace with a single
-		 * ' '.
-		 */
-		pp_skip_hspace(&src);
-		*dst++ = ' ';
 	}
 
 	/* Delete any trailing spaces - eg from empty continuations */

Reply via email to