Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.bin/indent indent: make off-by-one error in main_prepare...
details: https://anonhg.NetBSD.org/src/rev/3e73b528cf1b
branches: trunk
changeset: 988250:3e73b528cf1b
user: rillig <rillig%NetBSD.org@localhost>
date: Tue Oct 05 17:12:20 2021 +0000
description:
indent: make off-by-one error in main_prepare_parsing more visible
No functional change.
diffstat:
tests/usr.bin/indent/ps_ind_level.0 | 4 ++--
usr.bin/indent/indent.c | 14 +++++++-------
2 files changed, 9 insertions(+), 9 deletions(-)
diffs (59 lines):
diff -r 5d39fa76399f -r 3e73b528cf1b tests/usr.bin/indent/ps_ind_level.0
--- a/tests/usr.bin/indent/ps_ind_level.0 Tue Oct 05 17:09:45 2021 +0000
+++ b/tests/usr.bin/indent/ps_ind_level.0 Tue Oct 05 17:12:20 2021 +0000
@@ -1,10 +1,10 @@
-/* $NetBSD: ps_ind_level.0,v 1.1 2021/10/05 17:09:45 rillig Exp $ */
+/* $NetBSD: ps_ind_level.0,v 1.2 2021/10/05 17:12:20 rillig Exp $ */
/* $FreeBSD$ */
/* $ */
/* $ The leading indentation in the first line determines the indentation */
/* $ of the remaining code. In this particular test, the indentation is set */
/* $ to 5 and the tabulator is set to 8, to demonstrate an off-by-one error */
-/* $ in main_prepare_parsing that has been fixed in indent.c 1.106 from */
+/* $ in main_prepare_parsing that has been fixed in indent.c 1.107 from */
/* $ 2021-10-05. */
/* $ */
/* $ The declaration in the below line is indented by 3 tabs, amounting to */
diff -r 5d39fa76399f -r 3e73b528cf1b usr.bin/indent/indent.c
--- a/usr.bin/indent/indent.c Tue Oct 05 17:09:45 2021 +0000
+++ b/usr.bin/indent/indent.c Tue Oct 05 17:12:20 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: indent.c,v 1.105 2021/10/05 16:33:25 rillig Exp $ */
+/* $NetBSD: indent.c,v 1.106 2021/10/05 17:12:20 rillig Exp $ */
/*-
* SPDX-License-Identifier: BSD-4-Clause
@@ -43,7 +43,7 @@
#include <sys/cdefs.h>
#if defined(__NetBSD__)
-__RCSID("$NetBSD: indent.c,v 1.105 2021/10/05 16:33:25 rillig Exp $");
+__RCSID("$NetBSD: indent.c,v 1.106 2021/10/05 17:12:20 rillig Exp $");
#elif defined(__FreeBSD__)
__FBSDID("$FreeBSD: head/usr.bin/indent/indent.c 340138 2018-11-04 19:24:49Z oshogbo $");
#endif
@@ -501,19 +501,19 @@
parse(semicolon);
char *p = buf_ptr;
- int col = 1;
+ int ind = 0;
for (;;) {
if (*p == ' ')
- col++;
+ ind++;
else if (*p == '\t')
- col = opt.tabsize * (1 + (col - 1) / opt.tabsize) + 1;
+ ind = opt.tabsize * (1 + ind / opt.tabsize);
else
break;
p++;
}
- if (col > opt.indent_size)
- ps.ind_level = ps.ind_level_follow = col / opt.indent_size;
+ if (ind >= opt.indent_size)
+ ps.ind_level = ps.ind_level_follow = (ind + 1) / opt.indent_size;
}
static void __attribute__((__noreturn__))
Home |
Main Index |
Thread Index |
Old Index