summaryrefslogtreecommitdiffstats
path: root/scripts/FIXME_list.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:40:15 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:40:15 +0000
commit399644e47874bff147afb19c89228901ac39340e (patch)
tree1c4c0b733f4c16b5783b41bebb19194a9ef62ad1 /scripts/FIXME_list.sh
parentInitial commit. (diff)
downloadmanpages-upstream/6.05.01.tar.xz
manpages-upstream/6.05.01.zip
Adding upstream version 6.05.01.upstream/6.05.01
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'scripts/FIXME_list.sh')
-rwxr-xr-xscripts/FIXME_list.sh113
1 files changed, 113 insertions, 0 deletions
diff --git a/scripts/FIXME_list.sh b/scripts/FIXME_list.sh
new file mode 100755
index 0000000..59ba3c0
--- /dev/null
+++ b/scripts/FIXME_list.sh
@@ -0,0 +1,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