blob: cdaef7691c11268a1747042e3f6f048f69c294ff (
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
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
113
|
#!/bin/sh
#
# FIXME_list.sh
#
# Display FIXME segments from man-pages source files
#
# (C) Copyright 2007 & 2013, Michael Kerrisk
# 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 2
# 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
# (http://www.gnu.org/licenses/gpl-2.0.html).
#
######################################################################
#
# (C) Copyright 2006 & 2013, Michael Kerrisk
# 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 2
# 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
# (http://www.gnu.org/licenses/gpl-2.0.html).
#
#
show_all="n"
while getopts "a" optname; do
case "$optname" in
a) # "all"
# Even show FIXMEs that aren't generally interesting. (Typically
# these FIXMEs are notes to the maintainer to reverify something
# at a future date.)
show_all="y"
;;
*) echo "Unknown option: $OPTARG"
exit 1
;;
esac
done
shift $(( $OPTIND - 1 ))
if test $# -eq 0; then
echo "Usage: $0 [-a] pathname..." 1>&2
exit 1;
fi
for dir in "$@"; do
for page in $(find "$dir" -type f -name '*.[1-9]' \
-exec grep -l FIXME {} \; | sort)
do
cat "$page" | awk -v SHOW_ALL=$show_all -v PAGE_NAME="$page" \
'
BEGIN {
page_FIXME_cnt = 0;
}
/FIXME/ {
# /.\" FIXME . / ==> do not display this FIXME, unless
# -a command-line option was supplied
if ($0 ~ /^\.\\" FIXME \./ )
FIXME_type = "hidden"
else if ($0 ~ /^\.\\" FIXME *\?/ )
FIXME_type = "question"
else
FIXME_type = "normal";
if (FIXME_type == "normal" || SHOW_ALL == "y") {
if (page_FIXME_cnt == 0) {
print "==========";
print PAGE_NAME;
}
page_FIXME_cnt++;
finished = 0;
do {
print $0;
# Implicit end of FIXME is end-of-file or a line
# that is not a comment
if (getline == 0)
finished = 1;
if (!($0 ~ /^.\\"/))
finished = 1;
# /.\" .$/ ==> Explicit end of FIXME
if ($0 ~ /^.\\" \.$/)
finished = 1;
} while (!finished);
print "";
}
}
'
done | sed -e 's/^\.\\"/ /' | sed -e 's/ *$//' | cat -s
done
|