diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-10-08 01:21:59 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-10-08 01:21:59 +0300 |
commit | eb8797c9a28f3f4e238bad89b56d331492df7828 (patch) | |
tree | 91d59a8d31d88c3c51899ed7f0a816da5263e581 | |
parent | a31c3374d2c32de00feb7b9d029e6846abd0a76d (diff) | |
download | pies-eb8797c9a28f3f4e238bad89b56d331492df7828.tar.gz pies-eb8797c9a28f3f4e238bad89b56d331492df7828.tar.bz2 |
Use Imprimatur for docs processing.
* .gitmodules: Add imprimatur.
* Makefile.am (ACLOCAL_AMFLAGS,SUBDIRS): Add imprimatur.
* configure.ac: Require gettext 0.18. Call IMPRIMATUR_INIT.
Define ATTRIBUTE_NORETURN, if not defined already.
* doc/Makefile.am: Use imprimatur. Drop files that are
no longer necessary.
* doc/check-docs.sh: Delete.
* doc/fix-sentence-spacing.sed: Delete.
* doc/mastermenu.el: Delete.
* doc/rendition.texi: Delete.
* doc/untabify.el: Delete.
* doc/pies.texi: Use @: where appropriate.
* src/pies.c (main): Use _() instead of N_().
-rw-r--r-- | .gitmodules | 3 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | configure.ac | 25 | ||||
-rw-r--r-- | doc/Makefile.am | 113 | ||||
-rwxr-xr-x | doc/check-docs.sh | 74 | ||||
-rw-r--r-- | doc/fix-sentence-spacing.sed | 4 | ||||
-rw-r--r-- | doc/mastermenu.el | 90 | ||||
-rw-r--r-- | doc/pies.texi | 16 | ||||
-rw-r--r-- | doc/rendition.texi | 94 | ||||
-rw-r--r-- | doc/untabify.el | 13 | ||||
m--------- | imprimatur | 0 | ||||
-rw-r--r-- | src/pies.c | 4 |
12 files changed, 39 insertions, 401 deletions
diff --git a/.gitmodules b/.gitmodules index fea8f96..c20307a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "grecs"] path = grecs url = git://git.gnu.org.ua/grecs.git +[submodule "imprimatur"] + path = imprimatur + url = git://git.gnu.org.ua/imprimatur.git diff --git a/Makefile.am b/Makefile.am index c4893c2..b3c49a2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,9 +14,9 @@ # You should have received a copy of the GNU General Public License # along with GNU Pies. If not, see <http://www.gnu.org/licenses/>. -ACLOCAL_AMFLAGS = -I m4 -I am -I grecs/am +ACLOCAL_AMFLAGS = -I m4 -I am -I grecs/am -I imprimatur -SUBDIRS=gnu grecs lib src doc po +SUBDIRS=gnu grecs lib src imprimatur doc po dist-hook: @PATCHLEV=`echo "$(PACKAGE_VERSION)" | \ diff --git a/configure.ac b/configure.ac index 0d2881c..a8848dd 100644 --- a/configure.ac +++ b/configure.ac @@ -65,7 +65,7 @@ MF_PROCTITLE # Gettext. AM_ICONV AM_GNU_GETTEXT([external], [need-formatstring-macros]) -AM_GNU_GETTEXT_VERSION([0.17]) +AM_GNU_GETTEXT_VERSION([0.18]) AC_ARG_ENABLE([inetd], AC_HELP_STRING([--enable-inetd], @@ -75,22 +75,13 @@ AC_ARG_ENABLE([inetd], no) ;; esac]) -# Doc hints. -# Select a rendition level: -# DISTRIB for stable releases (at most one dot in the version number) -# and maintenance releases (two dots, patchlevel < 50) -# PROOF for alpha releases. -# PUBLISH can only be required manually when running make in doc/ -AC_SUBST(RENDITION) -case `echo $VERSION|sed 's/[[^.]]//g'` in -""|".") RENDITION=DISTRIB;; -"..") if test `echo $VERSION | sed 's/.*\.//'` -lt 50; then - RENDITION=DISTRIB - else - RENDITION=PROOF - fi;; -*) RENDITION=PROOF;; -esac +AH_BOTTOM([ +# ifndef ATTRIBUTE_NORETURN +# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) +# endif +]) + +IMPRIMATUR_INIT AC_CONFIG_FILES([Makefile gnu/Makefile diff --git a/doc/Makefile.am b/doc/Makefile.am index da7d47c..492a6ae 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -19,36 +19,25 @@ pies_TEXINFOS=\ fdl.texi\ inetd.texi\ macros.texi\ - rendition.texi\ usr-acl.texi EXTRA_DIST = \ - check-docs.sh\ - fix-sentence-spacing.sed\ - gendocs_template\ - mastermenu.el\ - untabify.el + gendocs_template clean-local: @rm -rf manual # Checking -check-tabs: - @if test -n "`cat $(info_TEXINFOS) $(pies_TEXINFOS) | tr -d -c '\t'`"; then \ - echo "Sources contain tabs; run make untabify"; \ - false; \ - fi -check-sentence-spacing: - @if cat $(info_TEXINFOS) $(pies_TEXINFOS) | sed 's/i\.e\. //g;s/e\.g\. //g;s/\.\.\. @//g' | grep -q '\. [@A-Z]'; then \ - echo >&2 "Sources contain single-space sentence separators"; \ - echo >&2 "Run make fix-sentence-spacing to fix"; \ - fi +AM_MAKEINFOFLAGS = @IMPRIMATUR_MAKEINFOFLAGS@ +imprimatur_INPUT=$(info_TEXINFOS) $(pies_TEXINFOS) +include ../imprimatur/imprimatur.mk +CHECK_DOCS=$(top_srcdir)/@IMPRIMATUR_MODULE_DIR@/check-docs.sh -check-format: check-tabs check-sentence-spacing +check-format: imprimatur-format imprimatur-check-sentence-spacing check-options: - @check-docs.sh options \ + @$(CHECK_DOCS) options \ '/argp_option options\[\] = /,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ 's/@opindex *\([^@,]*\).*/\1/p' \ $(top_srcdir)/src/pies.c -- \ @@ -56,7 +45,7 @@ check-options: $(info_TEXINFOS) check-config: - @check-docs.sh 'configuration statements' \ + @$(CHECK_DOCS) 'configuration statements' \ '/pies_keywords\[\] *= *{/,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ 's/@deffnx\{0,1\} {Config} *\([^@,]*\).*/\1/p' \ $(top_srcdir)/src/pies.c -- \ @@ -66,7 +55,7 @@ check-config: check-sub-config: @sed -n '/pies_keywords\[\] *= *{/,/^}/{p}' ../src/pies.c|tr '\n{' ' \n'|sed -n '/grecs_type_section/s/"\([^"]*\)".*grecs_type_section,[^,]*,[^,]*,[^,]*,[^,]*, *\(.*\) *}.*/\1 \2/p' | \ while read ident kw; do \ - check-docs.sh "$$ident configuration statements" \ + $(CHECK_DOCS) "$$ident configuration statements" \ "/$$kw"'\[\] *= *{/,/^}/s/[ \t]*{ *"\([^,"]*\)".*/\1/pg' \ "s/@deffnx\{0,1\} {Config: *$${ident}}"' *\([^@,]*\).*/\1/p' \ $(top_srcdir)/src/pies.c $(top_srcdir)/src/acl.c -- \ @@ -74,87 +63,16 @@ check-sub-config: $(info_TEXINFOS); \ done -check-refs: - @for file in $(info_TEXINFOS) $(pies_TEXINFOS); \ - do \ - sed -e = $$file | \ - sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\)}.*/'$$file':\1: \2/gp}'; \ - done > $@-t; \ - if [ -s $@-t ]; then \ - echo "Unresolved cross-references:"; \ - cat $@-t;\ - rm $@-t; \ - else \ - rm -f $@-t; \ - fi - -check-fixmes: - @for file in $(info_TEXINFOS) $(pies_TEXINFOS); \ - do \ - sed -e = $$file | \ - sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/'$$file':\1: \2/gp}'; \ - done > $@-t; \ - if [ -s $@-t ]; then \ - echo "Unresolved FIXMEs:"; \ - cat $@-t; \ - rm $@-t; \ - false; \ - else \ - rm -f $@-t; \ - fi - -check-writeme: - @grep -Hn @WRITEME $(info_TEXINFOS) $(pies_TEXINFOS) > $@-t; \ - if [ -s $@-t ]; then \ - echo "Empty nodes:"; \ - cat $@-t; \ - rm $@-t; \ - false;\ - else \ - rm $@-t; \ - fi - -check-unrevised: - @grep -Hn @UNREVISED $(info_TEXINFOS) $(pies_TEXINFOS) > $@-t; \ - if [ -s $@-t ]; then \ - echo "Unrevised nodes:"; \ - cat $@-t; \ - rm $@-t; \ - false;\ - else \ - rm $@-t; \ - fi - -all-check-docs: check-format check-options \ - check-config check-sub-config \ - check-refs check-fixmes check-writeme check-unrevised +all-check-docs: imprimatur-basic-checks \ + check-options check-config check-sub-config check-docs: @$(MAKE) -k all-check-docs # - -master-menu: - $(AM_V_GEN)emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS) - -untabify: - @emacs -batch -l untabify.el $(info_TEXINFOS) $(pies_TEXINFOS) - -fix-sentence-spacing: - for file in $(info_TEXINFOS) $(wydawca_TEXINFOS); \ - do \ - if grep -q '\. [@A-Z]' $$file; then \ - mv $$file $${file}~; \ - sed -r -f fix-sentence-spacing.sed $${file}~ > $$file; \ - fi; \ - done - -final: untabify fix-sentence-spacing master-menu - -# The rendering level is one of PUBLISH, DISTRIB or PROOF. -# Just call `make RENDITION=PROOF [target]' if you want PROOF rendition. - -MAKEINFOFLAGS=-D$(RENDITION) +master-menu: imprimatur-master-menu +untabify: imprimatur-untabify +final: imprimatur-final GENDOCS=gendocs.sh @@ -166,8 +84,9 @@ TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E manual: rm -rf manual TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \ - MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \ + MAKEINFO="$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS)" \ TEXI2DVI="$(TEXI2DVI) -t @finalout" \ + TEXI2HTML="texi2html $(AM_MAKEINFOFLAGS)" \ $(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual' manual.tar.bz2: manual diff --git a/doc/check-docs.sh b/doc/check-docs.sh deleted file mode 100755 index 709b1d6..0000000 --- a/doc/check-docs.sh +++ /dev/null @@ -1,74 +0,0 @@ -#! /bin/sh -# This file is part of mailfrom filter. -# Copyright (C) 2006, 2007, 2010 Sergey Poznyakoff -# -# 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, 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/>. - -usage() { - cat <<EOT -usage: $0 item code-sed doc-sed sources -- args... -EOT -} - -if [ $# -le 4 ]; then - usage - exit 2 -fi - -item=$1 -shift -codesexp="$1" -shift -docsexp=$1 -shift - -source= -while [ $# -ne 0 ] -do - if [ "$1" = "--" ]; then - shift - break; - fi - source="$source $1" - shift -done - -TEMPDIR=/tmp/mfck.$$ -mkdir $TEMPDIR || exit 1 -trap 'rm -rf $TEMPDIR' 1 2 13 15 - -sed -n "$codesexp" $source | sort | uniq > $TEMPDIR/src -$* | \ - sed -n '/^@macro/,/^@end macro/d;'"$docsexp" \ - | sort | uniq > $TEMPDIR/doc - -join -v1 $TEMPDIR/src $TEMPDIR/doc > $TEMPDIR/src-doc -join -v2 $TEMPDIR/src $TEMPDIR/doc > $TEMPDIR/doc-src -(if [ -s $TEMPDIR/src-doc ]; then - echo "Not documented $item:" - cat $TEMPDIR/src-doc - fi - if [ -s $TEMPDIR/doc-src ]; then - echo "Non-existing $item:" - cat $TEMPDIR/doc-src - fi) > $TEMPDIR/report - -if [ -s $TEMPDIR/report ]; then - cat $TEMPDIR/report - rm -rf $TEMPDIR - exit 1 -else - rm -rf $TEMPDIR - exit 0 -fi diff --git a/doc/fix-sentence-spacing.sed b/doc/fix-sentence-spacing.sed deleted file mode 100644 index 906a670..0000000 --- a/doc/fix-sentence-spacing.sed +++ /dev/null @@ -1,4 +0,0 @@ -s/\. ([@A-Z])/. \1/g -s/e\.g\. /e.g. /g -s/i\.e\. /i.e. /g -s/\.\.\. @\}/... @}/g diff --git a/doc/mastermenu.el b/doc/mastermenu.el deleted file mode 100644 index 3ab3341..0000000 --- a/doc/mastermenu.el +++ /dev/null @@ -1,90 +0,0 @@ -;;; mastermenu.el --- Redefinition of texinfo-master-menu-list - -;; Copyright (C) 2006, 2007 Free Software Foundation, Inc. - -;; Author: Sergey Poznyakoff -;; Maintainer: bug-tar@gnu.org -;; Keywords: maint, tex, docs - -;; This file is part of GNU tar documentation suite - -;; 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, 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/>. - -;;; Commentary: - -;; This file redefines texinfo-master-menu-list so that it takes into -;; account included files. - -;; Known bugs: @menu without previous sectioning command will inherit -;; documentation string from the previous menu. However, since such a -;; menu is illegal in a texinfo file, we can live with it. - -(require 'texinfo) -(require 'texnfo-upd) - -(defun texinfo-master-menu-list-recursive (title) - "Auxiliary function used by `texinfo-master-menu-list'." - (save-excursion - (let (master-menu-list) - (while (re-search-forward "\\(^@menu\\|^@include\\)" nil t) - (cond - ((string= (match-string 0) "@include") - (skip-chars-forward " \t") - (let ((included-name (let ((start (point))) - (end-of-line) - (skip-chars-backward " \t") - (buffer-substring start (point))))) - (end-of-line) - (let ((prev-title (texinfo-copy-menu-title))) - (save-excursion - (set-buffer (find-file-noselect included-name)) - (setq master-menu-list - (append (texinfo-master-menu-list-recursive prev-title) - master-menu-list)))))) - (t - (setq master-menu-list - (cons (list - (texinfo-copy-menu) - (let ((menu-title (texinfo-copy-menu-title))) - (if (string= menu-title "") - title - menu-title))) - master-menu-list))))) - master-menu-list))) - -(defun texinfo-master-menu-list () - "Return a list of menu entries and header lines for the master menu, -recursing into included files. - -Start with the menu for chapters and indices and then find each -following menu and the title of the node preceding that menu. - -The master menu list has this form: - - \(\(\(... \"entry-1-2\" \"entry-1\"\) \"title-1\"\) - \(\(... \"entry-2-2\" \"entry-2-1\"\) \"title-2\"\) - ...\) - -However, there does not need to be a title field." - - (reverse (texinfo-master-menu-list-recursive ""))) - -(defun make-master-menu () - "Create master menu in the first Emacs argument." - (find-file (car command-line-args-left)) - (texinfo-master-menu nil) - (save-buffer)) - - -;;; mastermenu.el ends here diff --git a/doc/pies.texi b/doc/pies.texi index 4a7bfa7..a77e4cf 100644 --- a/doc/pies.texi +++ b/doc/pies.texi @@ -471,7 +471,7 @@ EOT Body of a here-document is interpreted the same way as double-quoted string, unless @var{word} is preceded by a backslash -(e.g. @samp{<<\EOT}) or enclosed in double-quotes, in which case +(e.g.@: @samp{<<\EOT}) or enclosed in double-quotes, in which case the text is read as is, without interpretation of escape sequences. If @var{word} is prefixed with @code{-} (a dash), then all leading @@ -513,7 +513,7 @@ dependents (pmult, auth); In any case where a list is appropriate, a single value is allowed without being a member of a list: it is equivalent to a list with a -single member. This means that, e.g. @samp{dependents auth;} is +single member. This means that, e.g.@: @samp{dependents auth;} is equivalent to @samp{dependents (auth);}. @end table @@ -652,7 +652,7 @@ comma-separated list of flags. Valid flags are: @table @asis @item disable -This component is disabled, i.e. @command{pies} will parse and +This component is disabled, i.e.@: @command{pies} will parse and remember its settings, but will not start it. @item precious @@ -685,7 +685,7 @@ names, instead of IP addresses. @end table @end deffn -@deffn {Config: component} acl @{ ... @} +@deffn {Config: component} acl @{ @dots{} @} Set access control list for this component. @xref{ACL}, for a detailed description of access control lists. @end deffn @@ -1104,7 +1104,7 @@ Sets the socket type. Allowed values for @var{type} are: @samp{stream}, @samp{dgram}, @samp{raw}, @samp{rdm}, @samp{seqpacket}. Default is @samp{stream}. Notice that some socket types may not be implemented by all protocol -families, e.g. @samp{seqpacket} is not implemented for +families, e.g.@: @samp{seqpacket} is not implemented for @samp{inet}. @end deffn @@ -1766,7 +1766,7 @@ must be an integer number in the range from 0 to 32. The address part, The specifier matches if the result of logical @acronym{AND} between the client @acronym{IP} address and @var{netmask} equals to @var{addr}. The network mask must be specified in ``dotted quad'' -form, e.g. @samp{255.255.255.224}. +form, e.g.@: @samp{255.255.255.224}. @item @var{filename} Matches if connection was received from a @acronym{UNIX} socket @@ -1988,7 +1988,7 @@ The statements described in this section affect @command{pies} behavior as a whole. @anchor{syslog} -@deffn {Config} syslog @{ ... @} +@deffn {Config} syslog @{ @dots{} @} This block statement configures logging via syslog. It has two substatements: @end deffn @@ -2015,7 +2015,7 @@ Set global system limits for all pies components. @xref{Resources, limits}, for a detailed description of @var{arg}. @end deffn -@deffn {Config} return-code @{ ... @} +@deffn {Config} return-code @{ @dots{} @} Configure global exit actions. @xref{Exit Actions}, for a detailed description of this statement. @end deffn diff --git a/doc/rendition.texi b/doc/rendition.texi deleted file mode 100644 index 45ac068..0000000 --- a/doc/rendition.texi +++ /dev/null @@ -1,94 +0,0 @@ -@c Let's use the concept of 'renditions' by Fra@,{c}ois Pinard -@c I extended it by adding a FIXME_FOOTNOTE variable, which controls -@c whether FIXME information should be placed in footnotes or -@c inlined. - -@c ====================================================================== -@c This document has three levels of rendition: PUBLISH, DISTRIB or PROOF, -@c as decided by @set symbols. The PUBLISH rendition does not show -@c notes or marks asking for revision. Most users will prefer having more -@c information, even if this information is not fully revised for adequacy, -@c so DISTRIB is the default for distributions. The PROOF rendition -@c show all marks to the point of ugliness, but is nevertheless useful to -@c those working on the manual itself. -@c ====================================================================== - -@c Set this symbol if you wish FIXMEs to appear in footnotes, instead -@c of being inserted into the text. -@c @set PROOF_FOOTNOTED - -@ifclear PUBLISH -@ifclear DISTRIB -@ifclear PROOF -@set DISTRIB -@end ifclear -@end ifclear -@end ifclear - -@ifset PUBLISH -@set RENDITION The book, version -@end ifset - -@ifset DISTRIB -@set RENDITION FTP release, version -@end ifset - -@ifset PROOF -@set RENDITION Proof reading version -@end ifset - -@c Output marks for nodes needing revision, but not in PUBLISH rendition. - -@macro WRITEME -@ifclear PUBLISH -@quotation -@emph{This node is to be written.} -@end quotation -@end ifclear -@end macro - -@macro UNREVISED -@ifclear PUBLISH -@quotation -(@emph{The information in this node may be obsolete or otherwise inaccurate.} -This message will disappear, once this node revised.) -@end quotation -@end ifclear -@end macro - -@c Output various FIXME information only in PROOF rendition. - -@macro FIXME{string} -@ifset PROOF -@ifset PROOF_FOOTNOTED -@footnote{@strong{FIXME:} \string\} -@end ifset -@ifclear PROOF_FOOTNOTED -@cartouche -@strong{<FIXME>} \string\ @strong{</>} -@end cartouche -@end ifclear -@end ifset - -@end macro - -@macro FIXME-ref{string} -@ifset PROOF -@strong{<REF>} \string\ @strong{</>} -@end ifset - -@end macro - -@macro FIXME-pxref{string} -@ifset PROOF -@strong{<PXREF>} \string\ @strong{</>} -@end ifset - -@end macro - -@macro FIXME-xref{string} -@ifset PROOF -@strong{<XREF>} \string\ @strong{</>} -@end ifset - -@end macro diff --git a/doc/untabify.el b/doc/untabify.el deleted file mode 100644 index 77dd5c0..0000000 --- a/doc/untabify.el +++ /dev/null @@ -1,13 +0,0 @@ -;;;; Untabify the sources. -;;;; Usage: emacs -batch -l untabify.el [file ...] - -(defun global-untabify (buflist) - (mapcar - (lambda (bufname) - (set-buffer (find-file bufname)) - (untabify (point-min) (point-max)) - (save-buffer) - (kill-buffer (current-buffer))) - buflist)) - -(global-untabify command-line-args-left) diff --git a/imprimatur b/imprimatur new file mode 160000 +Subproject f32ef1983968e755cd580b06e369476d7e7f88b @@ -2393,8 +2393,8 @@ main (int argc, char **argv) if (argv[0][0] != '/') logmsg (LOG_NOTICE, - N_("not started as an absolute pathname; " - "SIGHUP will not work")); + _("not started as an absolute pathname; " + "SIGHUP will not work")); signal_setup (sig_handler); |