blob: 24307103c6948cd089662812e3ab2bf2422cfec1 [file] [log] [blame]
#! /bin/sed -nf
# Script to add @group...@end group tags to sed.texi.in
# so that comments are not separated from the instructions
# that they refer to.
# Step 1: search for the conventional "@c start----" comment
1a\
@c Do not edit this file!! It is automatically generated from sed-in.texi.
p
/^@c start-*$/! b
# Step 2: loop until we find a @ command
:a
n
p
/^@/! ba
# Step 3: process everything until a "@end" command
# Step 3.1: Print the blank lines before the group. If we reach the "@end",
# we go back to step 1.
:b
n
/^@end/ {
p
b
}
/^[ ]*$/ {
p
bb
}
# Step 3.2: Add to hold space every line until an empty one or "@end"
h
:c
n
/^@end example/! {
/^[ ]*$/! {
H
bc
}
}
# Step 3.3: Working in hold space, add @group...@end group if there are
# at least two lines. Then print the lines we processed and
# switch back to pattern space.
x
/\n/ {
s/.*/@group\
&\
@end group/
}
p
# Step 3.4: Switch back to pattern space, print the first blank line
# and possibly go back to step 3.1
x
p
/^@end/ !bb