From c3bcdbe7a71e95e6343d6fcfcce1767ae4337381 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sun, 27 Nov 2022 18:37:37 +0100 Subject: [PATCH] New script admin/check-man-pages * admin/check-man-pages: New file with script used to check man pages for errors. * admin/make-tarball.txt: Document when to use the above script. --- admin/check-man-pages | 47 ++++++++++++++++++++++++++++++++++++++++++ admin/make-tarball.txt | 6 ++++++ 2 files changed, 53 insertions(+) create mode 100755 admin/check-man-pages diff --git a/admin/check-man-pages b/admin/check-man-pages new file mode 100755 index 0000000000..52cc777205 --- /dev/null +++ b/admin/check-man-pages @@ -0,0 +1,47 @@ +#!/bin/bash +### check-man-pages - check man pages for errors + +## Copyright (C) 2022 Free Software Foundation, Inc. + +## This file is part of GNU Emacs. + +## GNU Emacs 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. + +## GNU Emacs 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 GNU Emacs. If not, see . + +### Commentary: + +## Check our man pages for errors using `man'. + +### Code: + +source "${0%/*}/emacs-shell-lib" + +exit_status=0 + +cd "$PD"/../doc/man +for page in *.1; do + log=$(emacs_mktemp) + LC_ALL=C.UTF-8 MANROFFSEQ='' MANWIDTH=80 \ + man --warnings=all,mac -E UTF-8 -l -Tutf8 -Z "$page" >/dev/null 2> "$log" + log_size=$(stat --format=%s "$log") + if [ "$log_size" -ne 0 ]; then + echo "doc/man/$page:" + # Point to the correct file for *compilation* buffers. + cat "$log" \ + | sed 's/troff: man1\/\([^ ]\+\)\.1/troff: doc\/man\/\1.1/' \ + | sed "s//doc\/man\/$page/" + exit_status=1 + fi +done + +exit $exit_status diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt index d881b81612..ff6f8845b5 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt @@ -150,6 +150,12 @@ General steps (for each step, check for possible errors): 4. autoreconf -i -I m4 --force make bootstrap + ./admin/check-man-pages + + The above script checks for any mistakes in the source text of + manual pages. Fix any errors, and then re-run the check-man-pages + script to verify. Then do this: + make -C etc/refcards make -C etc/refcards clean -- 2.35.1