[go: up one dir, main page]

File: ref-ptx1.awk

package info (click to toggle)
srecord 1.39-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 3,624 kB
  • ctags: 1,822
  • sloc: cpp: 18,283; sh: 5,839; makefile: 1,701; awk: 201; vhdl: 15
file content (112 lines) | stat: -rw-r--r-- 3,512 bytes parent folder | download
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#
#       srecord - manipulate eprom load files
#       Copyright (C) 1998, 2006, 2007 Peter Miller
#
#       This program is free software; you can redistribute it and/or modify
#       it under the terms of the GNU General Public License as published by
#       the Free Software Foundation; either version 3 of the License, or
#       (at your option) any later version.
#
#       This program is distributed in the hope that it will be useful,
#       but WITHOUT ANY WARRANTY; without even the implied warranty of
#       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#       GNU General Public License for more details.
#
#       You should have received a copy of the GNU General Public License
#       along with this program. If not, see
#       <http://www.gnu.org/licenses/>.
#
function getc()
{
        getc_tmp = substr(getc_buf, getc_pos, 1)
        if (getc_tmp != "")
                ++getc_pos
        return getc_tmp
}

BEGIN {
        th_name = "none"
        th_section = "none"
        active = 0
}
/^\.TH/ {
        # watch out for the quotes
        getc_buf = $0
        getc_pos = 4
        argc = 0
        for (;;)
        {
                c = getc()
                while (c == " " || c == "\t")
                        c = getc()
                if (c == "")
                        break
                quoted = 0
                arg = ""
                for (;;)
                {
                        if (c == "\"")
                                quoted = !quoted
                        else if (c == "")
                                break
                        else if (!quoted && (c == " " || c == "\t"))
                                break
                        else
                                arg = arg c
                        c = getc()
                }
                argv[++argc] = arg
        }

        # th_name = argv[1]
        # gsub(/\\\*\(n\)/, "SRecord", th_name)
        # th_section = argv[2]
        th_name = FILENAME
        sub(/^.*\//, "", th_name)
        sub(/\.[0-9]$/, "", th_name)
        th_section = FILENAME
        sub(/^.*\./, "", th_section)
        active = 0
        next
}
/^\.SH/ {
        active = ($2 == "NAME")
        next
}
/^['.]\\"/ {
        # ignore comments
        next
}
/^['.]XX/ {
        # ignore indexing
        next
}
/^['.]/ {
        if (active)
        {
                sub(/^.[a-zA-Z][a-zA-Z]*[       ]*/, "")
                print th_name "(" th_section ") " $0
        }
        next
}
{
        if (active)
        {
                gsub(/  /, " ")         # Translate tabs to spaces
                gsub(/__*/, " ")        # Collapse underscores
                gsub(/  +/, " ")        # Collapse spaces
                gsub(/ *, */, ", ")     # Fix comma spacings
                sub(/^ /, "")           # Kill initial spaces
                sub(/ $/, "")           # Kill trailing spaces
                gsub(/\\f\(../, "")     # Kill font changes
                gsub(/\\f./, "")        # Kill font changes
                gsub(/\\s[-+0-9]*/, "") # Kill size changes
                gsub(/\\&/, "")         # Kill \&
                gsub(/\\\((ru|ul)/, "_")        # Translate
                gsub(/\\\((mi|hy|em)/, "-")     # Translate
                gsub(/\\\*\(n\)/, "SRecord")
                gsub(/\\\*\(../, "")    # Kill troff strings
                gsub(/\\/, "")          # Kill all backslashes
                print th_name "(" th_section ") " $0
        }
}