Module Name: src Committed By: rillig Date: Sat Nov 27 20:58:16 UTC 2021
Modified Files: src/usr.bin/indent: lexi.c Log Message: indent: illustrate probably_looking_at_definition with examples No functional change. To generate a diff of this commit: cvs rdiff -u -r1.165 -r1.166 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.165 src/usr.bin/indent/lexi.c:1.166 --- src/usr.bin/indent/lexi.c:1.165 Sat Nov 27 20:33:39 2021 +++ src/usr.bin/indent/lexi.c Sat Nov 27 20:58:16 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: lexi.c,v 1.165 2021/11/27 20:33:39 rillig Exp $ */ +/* $NetBSD: lexi.c,v 1.166 2021/11/27 20:58:16 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.165 2021/11/27 20:33:39 rillig Exp $"); +__RCSID("$NetBSD: lexi.c,v 1.166 2021/11/27 20:58:16 rillig Exp $"); #elif defined(__FreeBSD__) __FBSDID("$FreeBSD: head/usr.bin/indent/lexi.c 337862 2018-08-15 18:19:45Z pstef $"); #endif @@ -451,7 +451,7 @@ cmp_keyword_by_name(const void *key, con } /* - * Looking at a line starting with 'function_name(something)', guess whether + * Looking at something like 'function_name(...)' in a line, guess whether * this starts a function definition or a declaration. */ static bool @@ -463,14 +463,20 @@ probably_looking_at_definition(void) paren_level++; if (*p == ')' && --paren_level == 0) { p++; + while (p < e && (ch_isspace(*p) || is_identifier_part(*p))) - p++; - if (p < e && (*p == ';' || *p == ',')) + p++; /* '__dead' or '__unused' */ + + if (p == e) /* func(...) */ + break; + if (*p == ';') /* func(...); */ return false; - if (p < e && *p == '(') - paren_level++; + if (*p == ',') /* double abs(), pi; */ + return false; + if (*p == '(') /* func(...) __attribute__((...)) */ + paren_level++; /* func(...) __printflike(...) */ else - break; + break; /* func(...) { ... */ } }