1#! /bin/sed -nf 2# Script to add @group...@end group tags to sed.texi.in 3# so that comments are not separated from the instructions 4# that they refer to. 5 6# Step 1: search for the conventional "@c start----" comment 71a\ 8@c Do not edit this file!! It is automatically generated from sed-in.texi. 9p 10/^@c start-*$/! b 11 12# Step 2: loop until we find a @ command 13:a 14n 15p 16/^@/! ba 17 18# Step 3: process everything until a "@end" command 19 20# Step 3.1: Print the blank lines before the group. If we reach the "@end", 21# we go back to step 1. 22:b 23n 24/^@end/ { 25 p 26 b 27} 28/^[ ]*$/ { 29 p 30 bb 31} 32 33# Step 3.2: Add to hold space every line until an empty one or "@end" 34h 35:c 36n 37/^@end example/! { 38 /^[ ]*$/! { 39 H 40 bc 41 } 42} 43 44# Step 3.3: Working in hold space, add @group...@end group if there are 45# at least two lines. Then print the lines we processed and 46# switch back to pattern space. 47x 48/\n/ { 49 s/.*/@group\ 50&\ 51@end group/ 52} 53p 54 55# Step 3.4: Switch back to pattern space, print the first blank line 56# and possibly go back to step 3.1 57x 58p 59/^@end/ !bb 60