Module Name:    src
Committed By:   rillig
Date:           Sun Nov 28 14:29:03 UTC 2021

Modified Files:
        src/distrib/sets/lists/tests: mi
        src/tests/usr.bin/indent: Makefile
        src/usr.bin/indent: indent.c indent.h lexi.c
Removed Files:
        src/tests/usr.bin/indent: lsym_string_prefix.c

Log Message:
indent: treat L"string" as a single token

There is never whitespace between the 'L' and the string literal or the
character constant. There might be a backslash-newline between them, but
that case was not handled before either.

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.1168 -r1.1169 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.34 -r1.35 src/tests/usr.bin/indent/Makefile
cvs rdiff -u -r1.1 -r0 src/tests/usr.bin/indent/lsym_string_prefix.c
cvs rdiff -u -r1.238 -r1.239 src/usr.bin/indent/indent.c
cvs rdiff -u -r1.106 -r1.107 src/usr.bin/indent/indent.h
cvs rdiff -u -r1.166 -r1.167 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/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.1168 src/distrib/sets/lists/tests/mi:1.1169
--- src/distrib/sets/lists/tests/mi:1.1168	Thu Nov 18 21:19:18 2021
+++ src/distrib/sets/lists/tests/mi	Sun Nov 28 14:29:03 2021
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1168 2021/11/18 21:19:18 rillig Exp $
+# $NetBSD: mi,v 1.1169 2021/11/28 14:29:03 rillig Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -4823,7 +4823,7 @@
 ./usr/tests/usr.bin/indent/lsym_semicolon.c				tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/indent/lsym_sizeof.c				tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/indent/lsym_storage_class.c				tests-usr.bin-tests	compattestfile,atf
-./usr/tests/usr.bin/indent/lsym_string_prefix.c				tests-usr.bin-tests	compattestfile,atf
+./usr/tests/usr.bin/indent/lsym_string_prefix.c				tests-obsolete		obsolete,atf
 ./usr/tests/usr.bin/indent/lsym_switch.c				tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/indent/lsym_tag.c					tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/indent/lsym_type_in_parentheses.c			tests-usr.bin-tests	compattestfile,atf

Index: src/tests/usr.bin/indent/Makefile
diff -u src/tests/usr.bin/indent/Makefile:1.34 src/tests/usr.bin/indent/Makefile:1.35
--- src/tests/usr.bin/indent/Makefile:1.34	Thu Nov 18 21:19:19 2021
+++ src/tests/usr.bin/indent/Makefile	Sun Nov 28 14:29:03 2021
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.34 2021/11/18 21:19:19 rillig Exp $
+#	$NetBSD: Makefile,v 1.35 2021/11/28 14:29:03 rillig Exp $
 
 .include <bsd.own.mk>
 
@@ -43,7 +43,6 @@ FILES+=		lsym_rparen_or_rbracket.c
 FILES+=		lsym_semicolon.c
 FILES+=		lsym_sizeof.c
 FILES+=		lsym_storage_class.c
-FILES+=		lsym_string_prefix.c
 FILES+=		lsym_switch.c
 FILES+=		lsym_tag.c
 FILES+=		lsym_type_in_parentheses.c

Index: src/usr.bin/indent/indent.c
diff -u src/usr.bin/indent/indent.c:1.238 src/usr.bin/indent/indent.c:1.239
--- src/usr.bin/indent/indent.c:1.238	Sun Nov 28 11:49:10 2021
+++ src/usr.bin/indent/indent.c	Sun Nov 28 14:29:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.c,v 1.238 2021/11/28 11:49:10 rillig Exp $	*/
+/*	$NetBSD: indent.c,v 1.239 2021/11/28 14:29:03 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@ static char sccsid[] = "@(#)indent.c	5.1
 
 #include <sys/cdefs.h>
 #if defined(__NetBSD__)
-__RCSID("$NetBSD: indent.c,v 1.238 2021/11/28 11:49:10 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.239 2021/11/28 14:29:03 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
 #endif
@@ -1120,13 +1120,6 @@ copy_token(void)
 }
 
 static void
-process_string_prefix(void)
-{
-    copy_token();
-    ps.want_blank = false;
-}
-
-static void
 process_period(void)
 {
     if (code.e > code.s && code.e[-1] == ',')
@@ -1440,10 +1433,6 @@ main_loop(void)
 		ps.want_blank = true;
 	    break;
 
-	case lsym_string_prefix:
-	    process_string_prefix();
-	    break;
-
 	case lsym_period:
 	    process_period();
 	    break;

Index: src/usr.bin/indent/indent.h
diff -u src/usr.bin/indent/indent.h:1.106 src/usr.bin/indent/indent.h:1.107
--- src/usr.bin/indent/indent.h:1.106	Sun Nov 28 11:49:10 2021
+++ src/usr.bin/indent/indent.h	Sun Nov 28 14:29:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: indent.h,v 1.106 2021/11/28 11:49:10 rillig Exp $	*/
+/*	$NetBSD: indent.h,v 1.107 2021/11/28 14:29:03 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
@@ -96,7 +96,6 @@ typedef enum lexer_symbol {
     lsym_type_in_parentheses,
     lsym_tag,			/* 'struct', 'union' or 'enum' */
     lsym_case_label,		/* 'case' or 'default' */
-    lsym_string_prefix,		/* 'L' */
     lsym_sizeof,
     lsym_offsetof,
     lsym_word,			/* identifier, constant or string */

Index: src/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.166 src/usr.bin/indent/lexi.c:1.167
--- src/usr.bin/indent/lexi.c:1.166	Sat Nov 27 20:58:16 2021
+++ src/usr.bin/indent/lexi.c	Sun Nov 28 14:29:03 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: lexi.c,v 1.166 2021/11/27 20:58:16 rillig Exp $	*/
+/*	$NetBSD: lexi.c,v 1.167 2021/11/28 14:29: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.166 2021/11/27 20:58:16 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.167 2021/11/28 14:29:03 rillig Exp $");
 #elif defined(__FreeBSD__)
 __FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $");
 #endif
@@ -219,7 +219,6 @@ lsym_name(lexer_symbol sym)
 	"type_in_parentheses",
 	"tag",
 	"case_label",
-	"string_prefix",
 	"sizeof",
 	"offsetof",
 	"word",
@@ -500,15 +499,23 @@ lexi_alnum(void)
 	lex_number();
     } else if (is_identifier_part(inp_peek())) {
 	lex_word();
+
+	if (token.s[0] == 'L' && token.e - token.s == 1 &&
+		(inp_peek() == '"' || inp_peek() == '\'')) {
+	    token_add_char(inp_next());
+	    lex_char_or_string();
+	    ps.next_unary = false;
+
+	    check_size_token(1);
+	    *token.e = '\0';
+
+	    return lsym_word;
+	}
     } else
 	return lsym_eof;	/* just as a placeholder */
 
     *token.e = '\0';
 
-    if (token.s[0] == 'L' && token.s[1] == '\0' &&
-	    (inp_peek() == '"' || inp_peek() == '\''))
-	return lsym_string_prefix;
-
     while (ch_isblank(inp_peek()))
 	inp_skip();
 

Reply via email to