Module Name: src Committed By: rillig Date: Sat May 13 13:31:37 UTC 2023
Modified Files: src/tests/usr.bin/indent: lex_number.c src/usr.bin/indent: lexi.c Log Message: indent: fix lexing of numbers that are spread over multiple lines To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/tests/usr.bin/indent/lex_number.c cvs rdiff -u -r1.178 -r1.179 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/lex_number.c diff -u src/tests/usr.bin/indent/lex_number.c:1.1 src/tests/usr.bin/indent/lex_number.c:1.2 --- src/tests/usr.bin/indent/lex_number.c:1.1 Sat May 13 13:24:01 2023 +++ src/tests/usr.bin/indent/lex_number.c Sat May 13 13:31:37 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lex_number.c,v 1.1 2023/05/13 13:24:01 rillig Exp $ */ +/* $NetBSD: lex_number.c,v 1.2 2023/05/13 13:31:37 rillig Exp $ */ /* * Test lexing of numbers. @@ -33,8 +33,6 @@ x\ 78; //indent end -/* FIXME: properly unwrap numbers */ //indent run -di0 -int wrapped = 0 \ -x12345678; +int wrapped = 0x12345678; //indent end Index: src/usr.bin/indent/lexi.c diff -u src/usr.bin/indent/lexi.c:1.178 src/usr.bin/indent/lexi.c:1.179 --- src/usr.bin/indent/lexi.c:1.178 Sat May 13 12:31:02 2023 +++ src/usr.bin/indent/lexi.c Sat May 13 13:31:37 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: lexi.c,v 1.178 2023/05/13 12:31:02 rillig Exp $ */ +/* $NetBSD: lexi.c,v 1.179 2023/05/13 13:31:37 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.178 2023/05/13 12:31:02 rillig Exp $"); +__RCSID("$NetBSD: lexi.c,v 1.179 2023/05/13 13:31:37 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $"); #endif @@ -206,6 +206,12 @@ lex_number(void) { for (unsigned char s = 'A'; s != 'f' && s != 'i' && s != 'u';) { unsigned char ch = (unsigned char)inp_peek(); + if (ch == '\\' && inp_lookahead(1) == '\n') { + inp_skip(); + inp_skip(); + line_no++; + continue; + } if (ch >= array_length(lex_number_row) || lex_number_row[ch] == 0) break;