[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/4] examples: fix annoying off-by-one errors
From: |
Akim Demaille |
Subject: |
[PATCH 1/4] examples: fix annoying off-by-one errors |
Date: |
Sun, 10 Feb 2019 16:48:51 +0100 |
* examples/extexi: Since we issue #lines only at the beginning of
@example, leave empty line when removing content (such as @comment
lines), otherwise the lines that follow have incorrect source line
location. This leaves ugly empty lines, but they are removed when you
tidy the output for the end user: sequences of \n are mapped to at
most two sucessive \n.
---
examples/extexi | 6 +++++-
examples/local.mk | 8 ++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/examples/extexi b/examples/extexi
index d50b477b..3b7d907d 100755
--- a/examples/extexi
+++ b/examples/extexi
@@ -60,7 +60,11 @@ sub normalize($)
{
local ($_) = @_;
- s/^\@(c |comment|dots|end (ignore|group)|ignore|group).*\n//mg;
+ # If we just remove this lines, then the compiler's tracking of
+ # #lines is broken. Leave lines that that accepted by all our tools
+ # (including flex, hence the leading space), and that will be easy
+ # to remove (see the Make examples-unline recipe).
+ s{^\@(c |comment|dots|end (ignore|group)|ignore|group).*}{ /**/}mg;
s/address@hidden/$ENV{VERSION}/g;
s/^\@(error|result)\{\}//mg;
s/\@(address@hidden)/$1/g;
diff --git a/examples/local.mk b/examples/local.mk
index a35c082f..1cd60457 100644
--- a/examples/local.mk
+++ b/examples/local.mk
@@ -59,12 +59,8 @@ EXTRA_DIST += %D%/extracted.stamp
dist-hook: examples-unline
.PHONY: examples-unline
examples-unline:
- for e in $(extracted); \
- do \
- e=$(distdir)/$$e; \
- sed -e '/#line/d' $$e >$$e.tmp; \
- mv -f $$e.tmp $$e; \
- done
+ cd $(distdir) && \
+ perl -pi -0777 -e 's/#line.*\n//g;s{^ /\*\*/\n}{}mg' $(extracted)
## ---------- ##
--
2.20.1