summaryrefslogtreecommitdiff
path: root/Build/source/doc/splitinfo.gawk
blob: bc5b3229950e1d780b8dc13a0e0a383f41ae3afa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# $Id$
# Public domain.  Originally written 2014 by Karl Berry.
# Split chapter 2 of plain text output from makeinfo,
# making each section into a separate README file.

BEGIN {
  lastline = "";   # have to read one line ahead
  outfile = "";    # where we are currently outputting
}

{
  if (/^[*]+$/) { # starting new chapter
    # if we're at the index or an appendix, quit.
    if (lastline == "Index" || lastline ~ /^Appendix /) exit (0);
    
    # move on unless starting a chapter we want (not top, intro, etc.)
    if (lastline !~ /^[2-9]/) next;
    
    # ok, we want this chapter.  if we had a file open already, close it.
    if (outfile) close (outfile);
    
    # turn chapter title into filename and start new.
    outfile = tolower (lastline);	# all lowercase
    chapnum = substr (outfile, 0, 1);   # chapter number
    sub ("^. ", "", outfile);		# remove chapnum and following space
    sub (" .*", "", outfile);		# remove next space and everything
    					# after, leaving just the first word.

    # start numbering the README files at 0.
    chapnum = chapnum - 2;
    outfile = "README." chapnum outfile;	# prefix "README.
    #
    print "(This file was generated by makeinfo and splitinfo.gawk.)">outfile;
    print "(Released under the old-style GNU documentation license;" >outfile;
    print " see sources or other output files for full text.)"       >outfile;
    print "" >outfile;
    print lastline >outfile;
    # $0 will be printed as lastline, next time through.

  # splitting output.
  } else if (outfile) {
    print lastline >outfile;
  }
  
  lastline = $0;
}