Module Name: src Committed By: rillig Date: Sat Nov 20 09:43:03 UTC 2021
Modified Files: src/tests/usr.bin/indent: lsym_word.c src/usr.bin/indent: lexi.c Log Message: indent: fix tokenizing of word-like tokens (since 2019-04-04) After a backslash-newline, the first character of the next line is only part of the identifier if it is an identifier character. indent-2000.10.11.14.46.04 | int var \ | +name = 4; indent-2012.11.20.03.02.57 indent-2014.09.04.04.06.07 | int var \ | +name = 4; indent-2019.02.03.03.19.29 indent-2019.04.04.15.27.35 | int var+name = 4; indent-2021.11.19.20.23.17 indent | int var + name = 4; To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/indent/lsym_word.c cvs rdiff -u -r1.148 -r1.149 src/usr.bin/indent/lexi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/usr.bin/indent/lsym_word.c diff -u src/tests/usr.bin/indent/lsym_word.c:1.2 src/tests/usr.bin/indent/lsym_word.c:1.3 --- src/tests/usr.bin/indent/lsym_word.c:1.2 Sat Nov 20 09:27:18 2021 +++ src/tests/usr.bin/indent/lsym_word.c Sat Nov 20 09:43:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lsym_word.c,v 1.2 2021/11/20 09:27:18 rillig Exp $ */ +/* $NetBSD: lsym_word.c,v 1.3 2021/11/20 09:43:03 rillig Exp $ */ /* $FreeBSD$ */ /* @@ -31,5 +31,5 @@ int var\ #indent end #indent run -int var+name = 4; +int var + name = 4; #indent end Index: src/usr.bin/indent/lexi.c diff -u src/usr.bin/indent/lexi.c:1.148 src/usr.bin/indent/lexi.c:1.149 --- src/usr.bin/indent/lexi.c:1.148 Fri Nov 19 20:23:17 2021 +++ src/usr.bin/indent/lexi.c Sat Nov 20 09:43:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lexi.c,v 1.148 2021/11/19 20:23:17 rillig Exp $ */ +/* $NetBSD: lexi.c,v 1.149 2021/11/20 09:43:03 rillig Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -43,7 +43,7 @@ static char sccsid[] = "@(#)lexi.c 8.1 ( #include <sys/cdefs.h> #if defined(__NetBSD__) -__RCSID("$NetBSD: lexi.c,v 1.148 2021/11/19 20:23:17 rillig Exp $"); +__RCSID("$NetBSD: lexi.c,v 1.149 2021/11/20 09:43:03 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $"); #endif @@ -361,16 +361,14 @@ is_identifier_part(char ch) static void lex_word(void) { - while (is_identifier_part(inp_peek()) || inp_peek() == '\\' ) { - if (inp_peek() == '\\') { - if (inp_lookahead(1) == '\n') { - inp_skip(); - inp_skip(); - } else - break; - } - - token_add_char(inp_next()); + for (;;) { + if (is_identifier_part(inp_peek())) + token_add_char(inp_next()); + else if (inp_peek() == '\\' && inp_lookahead(1) == '\n') { + inp_skip(); + inp_skip(); + } else + return; } }