Module Name:    src
Committed By:   rillig
Date:           Sat May 20 01:28:14 UTC 2023

Modified Files:
        src/usr.bin/indent: lexi.c

Log Message:
indent: clean up lexing of word tokens

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.200 -r1.201 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/usr.bin/indent/lexi.c
diff -u src/usr.bin/indent/lexi.c:1.200 src/usr.bin/indent/lexi.c:1.201
--- src/usr.bin/indent/lexi.c:1.200	Sat May 20 00:17:56 2023
+++ src/usr.bin/indent/lexi.c	Sat May 20 01:28:14 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: lexi.c,v 1.200 2023/05/20 00:17:56 rillig Exp $	*/
+/*	$NetBSD: lexi.c,v 1.201 2023/05/20 01:28:14 rillig Exp $	*/
 
 /*-
  * SPDX-License-Identifier: BSD-4-Clause
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: lexi.c,v 1.200 2023/05/20 00:17:56 rillig Exp $");
+__RCSID("$NetBSD: lexi.c,v 1.201 2023/05/20 01:28:14 rillig Exp $");
 
 #include <stdlib.h>
 #include <string.h>
@@ -383,22 +383,21 @@ lexi_alnum(void)
 	token.len--;
 	const struct keyword *kw = bsearch(token.st, keywords,
 	    array_length(keywords), sizeof(keywords[0]), cmp_keyword_by_name);
-	bool is_type = false;
-	if (kw == NULL) {
-		if (is_typename()) {
-			is_type = true;
-			ps.next_unary = true;
-			if (ps.in_enum == in_enum_enum)
-				ps.in_enum = in_enum_type;
+	lexer_symbol lsym = lsym_word;
+	if (kw != NULL) {
+		if (kw->lsym == lsym_type)
+			lsym = lsym_type_in_parentheses;
+		ps.next_unary = true;
+		if (kw->lsym == lsym_tag || kw->lsym == lsym_type)
 			goto found_typename;
-		}
+		return kw->lsym;
+	}
 
-	} else {		/* we have a keyword */
-		is_type = kw->lsym == lsym_type;
+	if (is_typename()) {
+		lsym = lsym_type_in_parentheses;
 		ps.next_unary = true;
-		if (kw->lsym != lsym_tag && kw->lsym != lsym_type)
-			return kw->lsym;
-
+		if (ps.in_enum == in_enum_enum)
+			ps.in_enum = in_enum_type;
 found_typename:
 		if (ps.nparen > 0) {
 			/* inside parentheses: cast, param list, offsetof or
@@ -433,7 +432,7 @@ found_typename:
 		return lsym_type_outside_parentheses;
 	}
 
-	return is_type ? lsym_type_in_parentheses : lsym_word;
+	return lsym;
 }
 
 static bool

Reply via email to