Commit 3ec5d07e 3ec5d07e67044b614b8beab0e34908b4eec23eab by Sergey Poznyakoff

Update docs + minor changes.

* .gitmodules: Add imprimatur.
* Makefile.am: Likewise.
* configure.ac: Likewise.
* doc/Makefile.am: Likewise.
* bootstrap.conf: Comment out make in doc/texinfo
* doc/texinfo/Makefile.am: Rewrite.
* doc/texinfo/fdl.texi: Minor change.
* doc/texinfo/getdate.texi: Minor change.
* doc/texinfo/mailutils.texi: begin rewrite.
* doc/texinfo/mu-mh.texi: Minor change.
* doc/texinfo/programs.texi: begin rewrite.
* doc/texinfo/sieve.texi: Minor change.
* doc/texinfo/usage.texi: Minor change.

* libmailutils/cfg/lexer.l: Allow for @ in unquoted strings
* pop3d/bulletin.c: Relax safety checks for bulletin.db
* pop3d/logindelay.c: Relax safety checks for stat.sb
* pop3d/pop3d.h (DEFAULT_GROUP_DB_SAFETY): New define.
1 parent 6d9c7d66
[submodule "gint"]
path = gint
url = git://git.gnu.org.ua/gint.git
[submodule "doc/imprimatur"]
path = doc/imprimatur
url = git://git.gnu.org.ua/imprimatur.git
......
......@@ -15,7 +15,7 @@
## You should have received a copy of the GNU General Public License
## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
ACLOCAL_AMFLAGS = -I m4 -I am -I gint
ACLOCAL_AMFLAGS = -I m4 -I am -I gint -I doc/imprimatur
if MU_COND_PYTHON
PYTHON_DIR = python
......
......@@ -100,5 +100,5 @@ done
wget -P m4 http://git.savannah.gnu.org/cgit/radius.git/plain/scripts/radius.m4
# Create included listings for texinfo docs.
make -C doc/texinfo -f maint.mk
#make -C doc/texinfo -f maint.mk
......
......@@ -1316,23 +1316,7 @@ dnl get sysconfdir expanded.
CPPFLAGS="$CPPFLAGS -DSYSCONFDIR=\\\"\$(sysconfdir)\\\""
# 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
AC_DEFINE_UNQUOTED([MU_ALPHA_RELEASE], 1,
[Define if this is an alpha release])
RENDITION=PROOF
fi;;
*) RENDITION=PROOF;;
esac
IMPRIMATUR_INIT([doc/imprimatur])
AC_CONFIG_COMMANDS([status],[
cat <<EOF
......
......@@ -15,5 +15,5 @@
## You should have received a copy of the GNU General Public License
## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
SUBDIRS = texinfo man
SUBDIRS = imprimatur texinfo man
EXTRA_DIST = ChangeLog.CVS rfc/README
......
imprimatur @ f32ef198
Subproject commit f32ef1983968e755cd580b06e369476d7e7f88b6
......@@ -19,6 +19,10 @@ mailutils.tmp
mailutils.toc
mailutils.tp
mailutils.vr
mailutils.fl
mailutils.kw
mailutils.pdf
mailutils.pr
mdate-sh
muint.info*
stamp-1
......
......@@ -17,174 +17,53 @@
info_TEXINFOS = mailutils.texi
INCFILES = \
addr.inc\
http.inc\
mailcap.inc\
numaddr.inc\
sfrom.inc\
url-parse.inc
RENDITION_TEXI=rendition.texi macros.texi
mailutils_TEXINFOS = \
address.texi\
attribute.texi\
auth.texi\
body.texi\
c-api.texi\
encoding.texi\
envelope.texi\
fdl.texi\
folder.texi\
framework.texi\
getdate.texi\
headers.texi\
imap4.texi\
iterator.texi\
libmu_scm.texi\
libmu_auth.texi\
libmu_sieve.texi\
locker.texi\
mailbox.texi\
mailcap.texi\
maildir.texi\
mailer.texi\
mbox.texi\
message.texi\
mh.texi\
macros.texi\
mu-mh.texi\
mu_address.texi\
mu_body.texi\
mu_logger.texi\
mu_mailbox.texi\
mu_message.texi\
mu_mime.texi\
mu_scm.texi\
nntp.texi\
parse822.texi\
pop3.texi\
programs.texi\
sendmail.texi\
sieve.texi\
smtp.texi\
stream.texi\
usage.texi\
url.texi\
$(RENDITION_TEXI)\
$(INCFILES)
version.texi
DISTCLEANFILES=*.pgs *.kys *.vrs
clean-local:
rm -rf manual
# The rendering level is one of PUBLISH, DISTRIB or PROOF.
# Just call `make RENDITION=PROOF [target]' if you want PROOF rendition.
MAKEINFOFLAGS=-D$(RENDITION)
GENDOCS=gendocs.sh
TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E
# Make sure you set TEXINPUTS.
# TEXINPUTS=/usr/share/texmf/pdftex/plain/misc/ is ok for most distributions
TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$$TEXINPUTS
manual:
TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \
TEXI2DVI="$(TEXI2DVI) -t @finalout" \
$(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual'
AM_MAKEINFOFLAGS = @IMPRIMATUR_MAKEINFOFLAGS@
# Imprimatur setup
imprimatur_INPUT=$(info_TEXINFOS) $(mailutils_TEXINFOS)
include ../imprimatur/imprimatur.mk
#CHECK_DOCS=$(top_srcdir)/@IMPRIMATUR_MODULE_DIR@/check-docs.sh
EXTRA_DIST=gendocs_template mastermenu.el untabify.el
# Checking
all-check-docs: imprimatur-basic-checks
master-menu:
emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS)
check-docs:
@$(MAKE) -k all-check-docs
untabify:
emacs -batch -l untabify.el $(info_TEXINFOS) $(mailutils_TEXINFOS)
#
fix-sentence-spacing:
for file in $(info_TEXINFOS) $(mailutils_TEXINFOS); \
do \
if grep -q '\. [@A-Z]' $$file; then \
mv $$file $${file}~; \
sed -r 's/\. ([@A-Z])/. \1/g' $${file}~ > $$file; \
fi; \
done
master-menu: imprimatur-master-menu
untabify: imprimatur-untabify
final: imprimatur-final
final: untabify fix-sentence-spacing master-menu
# Web manual
#EXTRA_DIST = \
# gendocs_template
# Checks
check-tabs:
@if test -n "`cat $(info_TEXINFOS) $(mailutils_TEXINFOS) |\
tr -d -c '\t'`"; then \
echo >&2 "Sources contain tabs; run make untabify"; \
false; \
fi
check-sentence-spacing:
@if grep -q '\. [@A-Z]' $(info_TEXINFOS) $(mailutils_TEXINFOS); then \
echo >&2 "Sources contain double-space sentence separators"; \
echo >&2 "Run make fix-sentence-spacing to fix"; \
fi
check-format: check-tabs check-sentence-spacing
check-refs:
@for file in $(info_TEXINFOS) $(mailutils_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 >&2 "Unresolved cross-references:"; \
cat $@-t >&2;\
rm $@-t; \
else \
rm -f $@-t; \
fi
check-fixmes:
@for file in $(info_TEXINFOS) $(mailutils_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 >&2 "Unresolved FIXMEs:"; \
cat $@-t >&2; \
rm $@-t; \
false; \
else \
rm -f $@-t; \
fi
check-writeme:
@grep -Hn @WRITEME $(info_TEXINFOS) $(mailutils_TEXINFOS) > $@-t; \
if [ -s $@-t ]; then \
echo "Empty nodes:"; \
cat $@-t; \
rm $@-t; \
false;\
else \
rm $@-t; \
fi
GENDOCS=gendocs.sh
TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E
check-unrevised:
@grep -Hn @UNREVISED $(info_TEXINFOS) $(mailutils_TEXINFOS) > $@-t; \
if [ -s $@-t ]; then \
echo >&2 "Unrevised nodes:"; \
cat $@-t >&2; \
rm $@-t; \
false;\
else \
rm $@-t; \
fi
.PHONY: manual
manual:
TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS) $(AM_MAKEINFOFLAGS)" \
TEXI2DVI="$(TEXI2DVI)" \
TEXI2HTML="texi2html $(AM_MAKEINFOFLAGS)" \
$(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual'
all-check-docs: check-format check-writeme check-unrevised check-refs check-fixmes
manual.tar.bz2: manual
tar cfj manual.tar.bz2 manual
check-docs:
$(MAKE) -k all-check-docs
man-tar: manual.tar.bz2
......
......@@ -16,7 +16,7 @@ For the information about the current state of Mailutils MH
implementation please refer to file @file{mh/TODO} in the Mailutils
distribution directory.
[FIXME]
@FIXME{This is perhaps not so important now.}
@menu
* Diffs:: Major differences between Mailutils MH and other MH
......@@ -27,7 +27,7 @@ distribution directory.
@subsection Major differences between Mailutils MH and other MH implementations
@enumerate 1
@item All programs use usual GNU long options. The support for MH single-dash
@item All programs use usual GNU long options. The support for MH single-dash
options is provided for backward compatibility;
@item UUCP addresses are not supported;
......@@ -55,16 +55,16 @@ Diffs});
@anchor{decode function}
@deftypefn {MH Format} string decode (string @var{str})
Decodes the input string @var{str} as per RFC 2047. Useful in printing
Decodes the input string @var{str} as per RFC 2047. Useful in printing
@samp{From:}, @samp{To:} and @samp{Subject:} headers.
Notice that, unlike the similar NMH function, @code{decode} checks the value
of the global profile variable @code{Charset} (@pxref{Charset variable})
to determine the charset to output the result in. If this variable is
not set, @code{decode} returns its argument without any change. If
to determine the charset to output the result in. If this variable is
not set, @code{decode} returns its argument without any change. If
this variable is set to @code{auto}, @code{decode} tries to determine
the charset name from the setting of @env{LC_ALL} environment
variable. Otherwise, the value of @code{Charset} is taken to be the
variable. Otherwise, the value of @code{Charset} is taken to be the
name of the character set.
@end deftypefn
......@@ -75,7 +75,7 @@ Returns package name (string @samp{mailutils}).
@deftypefn {MH Format} string package_string ()
Returns full package string (e.g. @samp{GNU Mailutils 2.1})
Returns full package string (e.g. @samp{GNU Mailutils 2.1})
@end deftypefn
@deftypefn {MH Format} string version ()
......@@ -86,7 +86,7 @@ Returns mailutils version.
@deftypefn {MH Format} string unre (string @var{str})
The function removes any leading whitespace and eventual @samp{Re:} prefix
from its argument. Useful for creating subjects in reply messages:
from its argument. Useful for creating subjects in reply messages:
@smallexample
%<@{subject@}Subject: Re: %(unre@{subject@})\\n%>
......@@ -96,7 +96,7 @@ from its argument. Useful for creating subjects in reply messages:
@anchor{reply_regex function}
@deftypefn {MH Format} void reply_regex (string @var{r})
Sets the regular expression used to recognize reply messages. The
Sets the regular expression used to recognize reply messages. The
argument @var{r} should be a POSIX extended regular expression.
Matching is case insensitive.
......@@ -109,7 +109,7 @@ For example, the following invocation
@noindent
corresponds to English @samp{Re}, Polish @samp{Odp}, Norwegian @samp{Aw} or
German @samp{Ang}, optionally followed by a number in brackets, followed
by colon and any amount of whitespace. Notice proper quoting of the
by colon and any amount of whitespace. Notice proper quoting of the
regex metacharacters.
See also @code{Reply-Regex} (@pxref{Reply-Regex variable}) and
......@@ -123,12 +123,12 @@ See also @code{Reply-Regex} (@pxref{Reply-Regex variable}) and
If @var{str} is not given, the value of @samp{Subject:} header is taken.
The function returns true if its argument matches the ``reply subject''
regular expression. This expression is set via the global profile variable
regular expression. This expression is set via the global profile variable
@code{Reply-Regex} (@pxref{Reply-Regex variable}) or via the format
function @code{reply_regex}.
This function is useful for creating @samp{Subject:} headers in reply
messages. For example, consider the following construction:
messages. For example, consider the following construction:
@smallexample
@group
......@@ -139,7 +139,7 @@ messages. For example, consider the following construction:
@end smallexample
If the @samp{Subject:} header already contained reply prefix, this construct
leaves it unchanged. Otherwise it prepends to it the value of
leaves it unchanged. Otherwise it prepends to it the value of
@code{Reply-Prefix} profile variable, or, if it is unset, the string
@samp{Re:}.
......@@ -151,7 +151,7 @@ This expression is used in default @file{replcomps} and
This function returns true if the given element is present in the
recipient mask (as modified by @option{--cc} or @option{--nocc} options) and
false otherwise. It is used in default formats for @command{repl} and
false otherwise. It is used in default formats for @command{repl} and
@command{comp}, e.g.:
@smallexample
......@@ -201,8 +201,8 @@ output.
@anchor{Reply-Regex variable}
@deftypevar {MH Variable} string Reply-Regex
Keeps the regular expression used to recognize reply messages. The
argument should be a POSIX extended regular expression. Matching
Keeps the regular expression used to recognize reply messages. The
argument should be a POSIX extended regular expression. Matching
is case insensitive.
For more information, please see @xref{reply_regex function}.
......@@ -225,21 +225,21 @@ RAND @command{anno} displays the prompt anyway.
@item burst
The utility is able to burst both RFC 934 digest messages and MIME
multipart messages. It provides two additional command line options:
multipart messages. It provides two additional command line options:
@option{--recurse} and @option{--length}.
The @option{--recurse} option instructs the utility to recursively
expand the digest.
The @option{--length} option can be used to set the minimal encapsulation
boundary length for RFC 934 digests. Default length is 1,
boundary length for RFC 934 digests. Default length is 1,
i.e. encountering one dash immediately following a newline triggers
digest decoding. It is OK for messages that follow RFC 934
specification. However, many user agents do not precisely follow it,
digest decoding. It is OK for messages that follow RFC 934
specification. However, many user agents do not precisely follow it,
in particular, they often do not escape lines starting with a dash by
@samp{- } sequence. @command{Mailman} is one of such agents. To cope
@samp{- } sequence. @command{Mailman} is one of such agents. To cope
with such digests you can set encapsulation boundary length to a higher
value. For example, @command{bounce --length=8} has been found to be
value. For example, @command{bounce --length=8} has been found to be
sufficient for most Mailman-generated digests.
@item comp
......@@ -248,7 +248,7 @@ Understands @option{--build} option.
@item fmtdump
This command is not provided. Use @option{fmtcheck} instead.
This command is not provided. Use @option{fmtcheck} instead.
@item mhl
......@@ -280,8 +280,8 @@ The following format variables are silently ignored: @samp{center},
@itemize @bullet
@item New option
New option @option{--compose} forces @command{mhn} editing mode. This
is also the default mode. This differs from the standard
New option @option{--compose} forces @command{mhn} editing mode. This
is also the default mode. This differs from the standard
@command{mhn}, which switches to the editing mode only if no other
options were given and the input file name coincides with the value of
@env{mhdraft} environment variable.
......@@ -289,22 +289,22 @@ options were given and the input file name coincides with the value of
@item Show mode (@option{--show})
If an appropriate mhn-show-type[/subtype] was not found, GNU @command{mhn}
prints the decoded message content using @code{moreproc}
variable. Standard @command{mhn} in this case used to print @samp{don't
variable. Standard @command{mhn} in this case used to print @samp{don't
know how to display content} diagnostic.
The default behaviour is to pipe the content to the standard input
of the mhn-show-type[/subtype] command. This is altered to using a
of the mhn-show-type[/subtype] command. This is altered to using a
temporary file if the command contains @code{%f} or @code{%F} escapes.
@item Store mode (@option{--store})
If the @code{Content-Disposition} header contains @samp{filename=},
and @command{mhn} is invoked with @option{--auto} switch, it
transforms the file name into the absolute notation and uses it only
if it lies below the current mhn-storage directory. Standard
if it lies below the current mhn-storage directory. Standard
@command{mhn} only requires that the file name do not begin with @samp{/}.
Before saving a message part, GNU @command{mhn} checks if the file already
exists. If so, it asks whether the user wishes to rewrite it. This
exists. If so, it asks whether the user wishes to rewrite it. This
behaviour is disabled when @option{--quiet} option was given.
@end itemize
......@@ -319,7 +319,7 @@ recognized only if at least one of the following conditions is met:
@itemize @bullet
@item The word @var{component} contains at least one capital letter.
E.g. @option{--User-Agent Mailutils}.
E.g. @option{--User-Agent Mailutils}.
@item The word @var{component} ends with a colon, as in
@option{user-agent: Mailutils}.
......@@ -334,7 +334,7 @@ pick --component @var{field} --pattern @var{string}
@end smallexample
New command line option @option{--cflags} allows to control the type of
regular expressions used. The option must occur right before
regular expressions used. The option must occur right before
@option{--pattern} or @option{--component} option (or one of its
aliases, like @option{--cc}, @option{--from}, etc.)
......@@ -401,11 +401,11 @@ will add it automatically.
@item
Linking messages between folders goes against the logic of Mailutils,
so @command{refile} never makes links even if called with
@option{--link} option. The latter is actually a synonym for @option{--copy},
@option{--link} option. The latter is actually a synonym for @option{--copy},
which preserves the original message.
@item
The @option{--preserve} option is not implemented. It is retained for backward
The @option{--preserve} option is not implemented. It is retained for backward
compatibility only.
@item
......@@ -414,7 +414,7 @@ Message specs and folder names may be interspersed.
@item repl
Understands @option{--use} option. Disposition shell provides
Understands @option{--use} option. Disposition shell provides
@code{use} command.
@item rmm
......@@ -423,7 +423,7 @@ Understands @option{--use} option. Disposition shell provides
@item
Different behaviour if one of the messages in the list does not exist:
Mailutils @command{rmm} does not delete any messages. Standard
Mailutils @command{rmm} does not delete any messages. Standard
@command{rmm} in this case deletes all messages preceding the
non-existent one.
......@@ -445,7 +445,7 @@ Any number of @option{--datefield}, @option{--textfield} and
@option{--numfield} options may be given, thus allowing to build sort
criteria of arbitrary complexity.
The order of @option{--.*field} options sets the ordering priority. This
The order of @option{--.*field} options sets the ordering priority. This
differs from the behaviour of the standard @command{sortm}, which
always orders datefield-major, textfield-minor.
......@@ -459,7 +459,7 @@ List the ordered messages using a format string given by
@item --dry-run
Do not actually sort messages, rather print what would have been
done. This is useful for debugging purposes.
done. This is useful for debugging purposes.
@end table
@end table
......
This diff could not be displayed because it is too large.
......@@ -3,15 +3,13 @@
@c 2008, 2010, 2011 Free Software Foundation, Inc.
@c See file mailutils.texi for copying conditions.
@comment *******************************************************************
@node Usage Vars
@appendix Configuring Help Summary
Running @command{@var{prog} --help} displays the short usage summary
for @var{prog} utility (@pxref{Common Options}). This summary is
organized by @dfn{groups} of semantically close options. The options
for @var{prog} utility (@pxref{Common Options}). This summary is
organized by @dfn{groups} of semantically close options. The options
within each group are printed in the following order: a short option,
eventually followed by a list of corresponding long option names,
followed by a short description of the option. For example, here is an
followed by a short description of the option. For example, here is an
excerpt from the actual @kbd{sieve --help} output:
@verbatim
......@@ -22,12 +20,12 @@ excerpt from the actual @kbd{sieve --help} output:
@vrindex ARGP_HELP_FMT, environment variable
The exact visual representation of the help output is configurable via
@env{ARGP_HELP_FMT} environment variable. The value of this variable
is a comma-separated list of @dfn{format variable} assignments. There
are two kinds of format variables. An @dfn{offset variable} keeps the
@env{ARGP_HELP_FMT} environment variable. The value of this variable
is a comma-separated list of @dfn{format variable} assignments. There
are two kinds of format variables. An @dfn{offset variable} keeps the
offset of some part of help output text from the leftmost column on
the screen. A @dfn{boolean} variable is a flag that toggles some
output feature on or off. Depending on the type of the corresponding
the screen. A @dfn{boolean} variable is a flag that toggles some
output feature on or off. Depending on the type of the corresponding
variable, there are two kinds of assignments:
@table @asis
......@@ -45,8 +43,8 @@ numeric value to be assigned to the variable.
@item Boolean assignment
To assign @code{true} value to a variable, simply put this variable name. To
assign @code{false} value, prefix the variable name with @samp{no-}. For
To assign @code{true} value to a variable, simply put this variable name. To
assign @code{false} value, prefix the variable name with @samp{no-}. For
example:
@smallexample
......@@ -78,7 +76,7 @@ argument is only shown with the long one, for example:
@noindent
and a message indicating that the argument is applicable to both
forms is printed below the options. This message can be disabled
forms is printed below the options. This message can be disabled
using @code{dup-args-note} (see below).
The default is false.
......@@ -93,12 +91,12 @@ Mandatory or optional arguments to long options are also mandatory or
optional for any corresponding short options.
@end quotation
Setting @code{no-dup-args-note} inhibits this message. Normally, only
Setting @code{no-dup-args-note} inhibits this message. Normally, only
one of variables @code{dup-args} or @code{dup-args-note} should be set.
@end deftypevr
@deftypevr {Help Output} offset short-opt-col
Column in which short options start. Default is 2.
Column in which short options start. Default is 2.
@smallexample
@group
......@@ -111,7 +109,7 @@ $ @kbd{ARGP_HELP_FMT=short-opt-col=6 sieve --help|grep ARCHIVE}
@end deftypevr
@deftypevr {Help Output} offset long-opt-col
Column in which long options start. Default is 6. For example:
Column in which long options start. Default is 6. For example:
@smallexample
@group
......@@ -124,9 +122,9 @@ $ @kbd{ARGP_HELP_FMT=long-opt-col=16 sieve --help|grep ADDRESS}
@end deftypevr
@deftypevr {Help Output} offset doc-opt-col
Column in which @dfn{doc options} start. A doc option isn't actually
Column in which @dfn{doc options} start. A doc option isn't actually
an option, but rather an arbitrary piece of documentation that is
displayed in much the same manner as the options. For example, in
displayed in much the same manner as the options. For example, in
the output of @command{folder --help}:
@verbatim
......@@ -138,7 +136,7 @@ GNU MH folder
@end verbatim
@noindent
the string @samp{Actions are:} is a doc option. Thus, if you set
the string @samp{Actions are:} is a doc option. Thus, if you set
@kbd{ARGP_HELP_FMT=doc-opt-col=6} the above part of the help output
will look as follows:
......@@ -152,7 +150,7 @@ GNU MH folder
@end deftypevr
@deftypevr {Help Output} offset opt-doc-col
Column in which option description starts. Default is 29.
Column in which option description starts. Default is 29.
@smallexample
@group
......@@ -172,8 +170,8 @@ Notice, that the description starts on a separate line if
@end deftypevr
@deftypevr {Help Output} offset header-col
Column in which @dfn{group headers} are printed. A group header is a
descriptive text preceding an option group. For example, in the
Column in which @dfn{group headers} are printed. A group header is a
descriptive text preceding an option group. For example, in the
following text:
@verbatim
......@@ -188,10 +186,10 @@ The default value is 1.
@end deftypevr
@deftypevr {Help Output} offset usage-indent
Indentation of wrapped usage lines. Affects @option{--usage}
output. Default is 12.
Indentation of wrapped usage lines. Affects @option{--usage}
output. Default is 12.
@end deftypevr
@deftypevr {Help Output} offset rmargin
Right margin of the text output. Used for wrapping.
Right margin of the text output. Used for wrapping.
@end deftypevr
......
......@@ -100,7 +100,7 @@ P [1-9][0-9]*
yylval.string = _mu_line_finish ();
return MU_TOK_IDENT; }
/* Strings */
[a-zA-Z0-9_\./:\*=-]+ { _mu_line_begin ();
[a-zA-Z0-9_\./:\*=@-]+ { _mu_line_begin ();
_mu_line_add (yytext, yyleng);
yylval.string = _mu_line_finish ();
return MU_TOK_STRING; }
......
......@@ -133,6 +133,8 @@ read_bulletin_db (size_t *pnum)
return rc;
}
mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
rc = mu_dbm_safety_check (db);
if (rc)
{
......@@ -225,6 +227,8 @@ write_bulletin_db (size_t num)
return rc;
}
mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
rc = mu_dbm_safety_check (db);
if (rc && rc != ENOENT)
{
......
......@@ -32,8 +32,10 @@ open_stat_db (int mode)
return NULL;
}
mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
rc = mu_dbm_safety_check (db);
if (rc)
if (rc && rc != ENOENT)
{
mu_diag_output (MU_DIAG_ERROR,
_("statistics db fails safety check: %s"),
......
......@@ -201,6 +201,17 @@ extern char *apop_database_name;
extern int apop_database_safety;
extern int apop_database_safety_set;
/* Safety checks for group-rw database files, such as stat and bulletin
databases */
#define DEFAULT_GROUP_DB_SAFETY \
(MU_FILE_SAFETY_WORLD_WRITABLE| \
MU_FILE_SAFETY_WORLD_READABLE| \
MU_FILE_SAFETY_LINKED_WRDIR| \
MU_FILE_SAFETY_DIR_IWGRP| \
MU_FILE_SAFETY_DIR_IWOTH)
extern pop3d_command_handler_t pop3d_find_command (const char *name);
extern int pop3d_stat (char *);
......