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
1 [submodule "gint"] 1 [submodule "gint"]
2 path = gint 2 path = gint
3 url = git://git.gnu.org.ua/gint.git 3 url = git://git.gnu.org.ua/gint.git
4 [submodule "doc/imprimatur"]
5 path = doc/imprimatur
6 url = git://git.gnu.org.ua/imprimatur.git
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
15 ## You should have received a copy of the GNU General Public License 15 ## You should have received a copy of the GNU General Public License
16 ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. 16 ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
17 17
18 ACLOCAL_AMFLAGS = -I m4 -I am -I gint 18 ACLOCAL_AMFLAGS = -I m4 -I am -I gint -I doc/imprimatur
19 19
20 if MU_COND_PYTHON 20 if MU_COND_PYTHON
21 PYTHON_DIR = python 21 PYTHON_DIR = python
......
...@@ -100,5 +100,5 @@ done ...@@ -100,5 +100,5 @@ done
100 wget -P m4 http://git.savannah.gnu.org/cgit/radius.git/plain/scripts/radius.m4 100 wget -P m4 http://git.savannah.gnu.org/cgit/radius.git/plain/scripts/radius.m4
101 101
102 # Create included listings for texinfo docs. 102 # Create included listings for texinfo docs.
103 make -C doc/texinfo -f maint.mk 103 #make -C doc/texinfo -f maint.mk
104 104
......
...@@ -1316,23 +1316,7 @@ dnl get sysconfdir expanded. ...@@ -1316,23 +1316,7 @@ dnl get sysconfdir expanded.
1316 CPPFLAGS="$CPPFLAGS -DSYSCONFDIR=\\\"\$(sysconfdir)\\\"" 1316 CPPFLAGS="$CPPFLAGS -DSYSCONFDIR=\\\"\$(sysconfdir)\\\""
1317 1317
1318 # Doc hints. 1318 # Doc hints.
1319 # Select a rendition level: 1319 IMPRIMATUR_INIT([doc/imprimatur])
1320 # DISTRIB for stable releases (at most one dot in the version number)
1321 # and maintenance releases (two dots, patchlevel < 50)
1322 # PROOF for alpha releases.
1323 # PUBLISH can only be required manually when running make in doc/
1324 AC_SUBST(RENDITION)
1325 case `echo $VERSION|sed 's/[[^.]]//g'` in
1326 ""|".") RENDITION=DISTRIB;;
1327 "..") if test `echo $VERSION | sed 's/.*\.//'` -lt 50; then
1328 RENDITION=DISTRIB
1329 else
1330 AC_DEFINE_UNQUOTED([MU_ALPHA_RELEASE], 1,
1331 [Define if this is an alpha release])
1332 RENDITION=PROOF
1333 fi;;
1334 *) RENDITION=PROOF;;
1335 esac
1336 1320
1337 AC_CONFIG_COMMANDS([status],[ 1321 AC_CONFIG_COMMANDS([status],[
1338 cat <<EOF 1322 cat <<EOF
......
...@@ -15,5 +15,5 @@ ...@@ -15,5 +15,5 @@
15 ## You should have received a copy of the GNU General Public License 15 ## You should have received a copy of the GNU General Public License
16 ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. 16 ## along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
17 17
18 SUBDIRS = texinfo man 18 SUBDIRS = imprimatur texinfo man
19 EXTRA_DIST = ChangeLog.CVS rfc/README 19 EXTRA_DIST = ChangeLog.CVS rfc/README
......
imprimatur @ f32ef198
1 Subproject commit f32ef1983968e755cd580b06e369476d7e7f88b6
...@@ -19,6 +19,10 @@ mailutils.tmp ...@@ -19,6 +19,10 @@ mailutils.tmp
19 mailutils.toc 19 mailutils.toc
20 mailutils.tp 20 mailutils.tp
21 mailutils.vr 21 mailutils.vr
22 mailutils.fl
23 mailutils.kw
24 mailutils.pdf
25 mailutils.pr
22 mdate-sh 26 mdate-sh
23 muint.info* 27 muint.info*
24 stamp-1 28 stamp-1
......
...@@ -17,174 +17,53 @@ ...@@ -17,174 +17,53 @@
17 17
18 info_TEXINFOS = mailutils.texi 18 info_TEXINFOS = mailutils.texi
19 19
20 INCFILES = \
21 addr.inc\
22 http.inc\
23 mailcap.inc\
24 numaddr.inc\
25 sfrom.inc\
26 url-parse.inc
27
28 RENDITION_TEXI=rendition.texi macros.texi
29
30 mailutils_TEXINFOS = \ 20 mailutils_TEXINFOS = \
31 address.texi\
32 attribute.texi\
33 auth.texi\
34 body.texi\
35 c-api.texi\
36 encoding.texi\
37 envelope.texi\
38 fdl.texi\ 21 fdl.texi\
39 folder.texi\
40 framework.texi\
41 getdate.texi\ 22 getdate.texi\
42 headers.texi\ 23 macros.texi\
43 imap4.texi\
44 iterator.texi\
45 libmu_scm.texi\
46 libmu_auth.texi\
47 libmu_sieve.texi\
48 locker.texi\
49 mailbox.texi\
50 mailcap.texi\
51 maildir.texi\
52 mailer.texi\
53 mbox.texi\
54 message.texi\
55 mh.texi\
56 mu-mh.texi\ 24 mu-mh.texi\
57 mu_address.texi\
58 mu_body.texi\
59 mu_logger.texi\
60 mu_mailbox.texi\
61 mu_message.texi\
62 mu_mime.texi\
63 mu_scm.texi\
64 nntp.texi\
65 parse822.texi\
66 pop3.texi\
67 programs.texi\ 25 programs.texi\
68 sendmail.texi\
69 sieve.texi\ 26 sieve.texi\
70 smtp.texi\
71 stream.texi\
72 usage.texi\ 27 usage.texi\
73 url.texi\ 28 version.texi
74 $(RENDITION_TEXI)\
75 $(INCFILES)
76 29
77 DISTCLEANFILES=*.pgs *.kys *.vrs
78 clean-local: 30 clean-local:
79 rm -rf manual 31 rm -rf manual
80 32
81 # The rendering level is one of PUBLISH, DISTRIB or PROOF. 33 AM_MAKEINFOFLAGS = @IMPRIMATUR_MAKEINFOFLAGS@
82 # Just call `make RENDITION=PROOF [target]' if you want PROOF rendition. 34 # Imprimatur setup
83 35 imprimatur_INPUT=$(info_TEXINFOS) $(mailutils_TEXINFOS)
84 MAKEINFOFLAGS=-D$(RENDITION) 36 include ../imprimatur/imprimatur.mk
85 GENDOCS=gendocs.sh 37 #CHECK_DOCS=$(top_srcdir)/@IMPRIMATUR_MODULE_DIR@/check-docs.sh
86 TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E
87
88 # Make sure you set TEXINPUTS.
89 # TEXINPUTS=/usr/share/texmf/pdftex/plain/misc/ is ok for most distributions
90
91 TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$$TEXINPUTS
92
93 manual:
94 TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
95 MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \
96 TEXI2DVI="$(TEXI2DVI) -t @finalout" \
97 $(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual'
98 38
99 39 # Checking
100 EXTRA_DIST=gendocs_template mastermenu.el untabify.el 40 all-check-docs: imprimatur-basic-checks
101 41
102 master-menu: 42 check-docs:
103 emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS) 43 @$(MAKE) -k all-check-docs
104 44
105 untabify: 45 #
106 emacs -batch -l untabify.el $(info_TEXINFOS) $(mailutils_TEXINFOS)
107 46
108 fix-sentence-spacing: 47 master-menu: imprimatur-master-menu
109 for file in $(info_TEXINFOS) $(mailutils_TEXINFOS); \ 48 untabify: imprimatur-untabify
110 do \ 49 final: imprimatur-final
111 if grep -q '\. [@A-Z]' $$file; then \
112 mv $$file $${file}~; \
113 sed -r 's/\. ([@A-Z])/. \1/g' $${file}~ > $$file; \
114 fi; \
115 done
116 50
117 final: untabify fix-sentence-spacing master-menu 51 # Web manual
52 #EXTRA_DIST = \
53 # gendocs_template
118 54
119 55 GENDOCS=gendocs.sh
120 # Checks 56 TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E
121 check-tabs:
122 @if test -n "`cat $(info_TEXINFOS) $(mailutils_TEXINFOS) |\
123 tr -d -c '\t'`"; then \
124 echo >&2 "Sources contain tabs; run make untabify"; \
125 false; \
126 fi
127
128 check-sentence-spacing:
129 @if grep -q '\. [@A-Z]' $(info_TEXINFOS) $(mailutils_TEXINFOS); then \
130 echo >&2 "Sources contain double-space sentence separators"; \
131 echo >&2 "Run make fix-sentence-spacing to fix"; \
132 fi
133
134 check-format: check-tabs check-sentence-spacing
135
136 check-refs:
137 @for file in $(info_TEXINFOS) $(mailutils_TEXINFOS); \
138 do \
139 sed -e = $$file | \
140 sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\)}.*/'$$file':\1: \2/gp}'; \
141 done > $@-t; \
142 if [ -s $@-t ]; then \
143 echo >&2 "Unresolved cross-references:"; \
144 cat $@-t >&2;\
145 rm $@-t; \
146 else \
147 rm -f $@-t; \
148 fi
149
150 check-fixmes:
151 @for file in $(info_TEXINFOS) $(mailutils_TEXINFOS); \
152 do \
153 sed -e = $$file | \
154 sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/'$$file':\1: \2/gp}'; \
155 done > $@-t; \
156 if [ -s $@-t ]; then \
157 echo >&2 "Unresolved FIXMEs:"; \
158 cat $@-t >&2; \
159 rm $@-t; \
160 false; \
161 else \
162 rm -f $@-t; \
163 fi
164
165 check-writeme:
166 @grep -Hn @WRITEME $(info_TEXINFOS) $(mailutils_TEXINFOS) > $@-t; \
167 if [ -s $@-t ]; then \
168 echo "Empty nodes:"; \
169 cat $@-t; \
170 rm $@-t; \
171 false;\
172 else \
173 rm $@-t; \
174 fi
175 57
176 check-unrevised: 58 .PHONY: manual
177 @grep -Hn @UNREVISED $(info_TEXINFOS) $(mailutils_TEXINFOS) > $@-t; \ 59 manual:
178 if [ -s $@-t ]; then \ 60 TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
179 echo >&2 "Unrevised nodes:"; \ 61 MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS) $(AM_MAKEINFOFLAGS)" \
180 cat $@-t >&2; \ 62 TEXI2DVI="$(TEXI2DVI)" \
181 rm $@-t; \ 63 TEXI2HTML="texi2html $(AM_MAKEINFOFLAGS)" \
182 false;\ 64 $(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual'
183 else \
184 rm $@-t; \
185 fi
186 65
187 all-check-docs: check-format check-writeme check-unrevised check-refs check-fixmes 66 manual.tar.bz2: manual
67 tar cfj manual.tar.bz2 manual
188 68
189 check-docs: 69 man-tar: manual.tar.bz2
190 $(MAKE) -k all-check-docs
......
...@@ -16,7 +16,7 @@ For the information about the current state of Mailutils MH ...@@ -16,7 +16,7 @@ For the information about the current state of Mailutils MH
16 implementation please refer to file @file{mh/TODO} in the Mailutils 16 implementation please refer to file @file{mh/TODO} in the Mailutils
17 distribution directory. 17 distribution directory.
18 18
19 [FIXME] 19 @FIXME{This is perhaps not so important now.}
20 20
21 @menu 21 @menu
22 * Diffs:: Major differences between Mailutils MH and other MH 22 * Diffs:: Major differences between Mailutils MH and other MH
...@@ -27,7 +27,7 @@ distribution directory. ...@@ -27,7 +27,7 @@ distribution directory.
27 @subsection Major differences between Mailutils MH and other MH implementations 27 @subsection Major differences between Mailutils MH and other MH implementations
28 28
29 @enumerate 1 29 @enumerate 1
30 @item All programs use usual GNU long options. The support for MH single-dash 30 @item All programs use usual GNU long options. The support for MH single-dash
31 options is provided for backward compatibility; 31 options is provided for backward compatibility;
32 32
33 @item UUCP addresses are not supported; 33 @item UUCP addresses are not supported;
...@@ -55,16 +55,16 @@ Diffs}); ...@@ -55,16 +55,16 @@ Diffs});
55 @anchor{decode function} 55 @anchor{decode function}
56 @deftypefn {MH Format} string decode (string @var{str}) 56 @deftypefn {MH Format} string decode (string @var{str})
57 57
58 Decodes the input string @var{str} as per RFC 2047. Useful in printing 58 Decodes the input string @var{str} as per RFC 2047. Useful in printing
59 @samp{From:}, @samp{To:} and @samp{Subject:} headers. 59 @samp{From:}, @samp{To:} and @samp{Subject:} headers.
60 60
61 Notice that, unlike the similar NMH function, @code{decode} checks the value 61 Notice that, unlike the similar NMH function, @code{decode} checks the value
62 of the global profile variable @code{Charset} (@pxref{Charset variable}) 62 of the global profile variable @code{Charset} (@pxref{Charset variable})
63 to determine the charset to output the result in. If this variable is 63 to determine the charset to output the result in. If this variable is
64 not set, @code{decode} returns its argument without any change. If 64 not set, @code{decode} returns its argument without any change. If
65 this variable is set to @code{auto}, @code{decode} tries to determine 65 this variable is set to @code{auto}, @code{decode} tries to determine
66 the charset name from the setting of @env{LC_ALL} environment 66 the charset name from the setting of @env{LC_ALL} environment
67 variable. Otherwise, the value of @code{Charset} is taken to be the 67 variable. Otherwise, the value of @code{Charset} is taken to be the
68 name of the character set. 68 name of the character set.
69 @end deftypefn 69 @end deftypefn
70 70
...@@ -75,7 +75,7 @@ Returns package name (string @samp{mailutils}). ...@@ -75,7 +75,7 @@ Returns package name (string @samp{mailutils}).
75 75
76 @deftypefn {MH Format} string package_string () 76 @deftypefn {MH Format} string package_string ()
77 77
78 Returns full package string (e.g. @samp{GNU Mailutils 2.1}) 78 Returns full package string (e.g. @samp{GNU Mailutils 2.1})
79 @end deftypefn 79 @end deftypefn
80 80
81 @deftypefn {MH Format} string version () 81 @deftypefn {MH Format} string version ()
...@@ -86,7 +86,7 @@ Returns mailutils version. ...@@ -86,7 +86,7 @@ Returns mailutils version.
86 @deftypefn {MH Format} string unre (string @var{str}) 86 @deftypefn {MH Format} string unre (string @var{str})
87 87
88 The function removes any leading whitespace and eventual @samp{Re:} prefix 88 The function removes any leading whitespace and eventual @samp{Re:} prefix
89 from its argument. Useful for creating subjects in reply messages: 89 from its argument. Useful for creating subjects in reply messages:
90 90
91 @smallexample 91 @smallexample
92 %<@{subject@}Subject: Re: %(unre@{subject@})\\n%> 92 %<@{subject@}Subject: Re: %(unre@{subject@})\\n%>
...@@ -96,7 +96,7 @@ from its argument. Useful for creating subjects in reply messages: ...@@ -96,7 +96,7 @@ from its argument. Useful for creating subjects in reply messages:
96 @anchor{reply_regex function} 96 @anchor{reply_regex function}
97 @deftypefn {MH Format} void reply_regex (string @var{r}) 97 @deftypefn {MH Format} void reply_regex (string @var{r})
98 98
99 Sets the regular expression used to recognize reply messages. The 99 Sets the regular expression used to recognize reply messages. The
100 argument @var{r} should be a POSIX extended regular expression. 100 argument @var{r} should be a POSIX extended regular expression.
101 Matching is case insensitive. 101 Matching is case insensitive.
102 102
...@@ -109,7 +109,7 @@ For example, the following invocation ...@@ -109,7 +109,7 @@ For example, the following invocation
109 @noindent 109 @noindent
110 corresponds to English @samp{Re}, Polish @samp{Odp}, Norwegian @samp{Aw} or 110 corresponds to English @samp{Re}, Polish @samp{Odp}, Norwegian @samp{Aw} or
111 German @samp{Ang}, optionally followed by a number in brackets, followed 111 German @samp{Ang}, optionally followed by a number in brackets, followed
112 by colon and any amount of whitespace. Notice proper quoting of the 112 by colon and any amount of whitespace. Notice proper quoting of the
113 regex metacharacters. 113 regex metacharacters.
114 114
115 See also @code{Reply-Regex} (@pxref{Reply-Regex variable}) and 115 See also @code{Reply-Regex} (@pxref{Reply-Regex variable}) and
...@@ -123,12 +123,12 @@ See also @code{Reply-Regex} (@pxref{Reply-Regex variable}) and ...@@ -123,12 +123,12 @@ See also @code{Reply-Regex} (@pxref{Reply-Regex variable}) and
123 If @var{str} is not given, the value of @samp{Subject:} header is taken. 123 If @var{str} is not given, the value of @samp{Subject:} header is taken.
124 124
125 The function returns true if its argument matches the ``reply subject'' 125 The function returns true if its argument matches the ``reply subject''
126 regular expression. This expression is set via the global profile variable 126 regular expression. This expression is set via the global profile variable
127 @code{Reply-Regex} (@pxref{Reply-Regex variable}) or via the format 127 @code{Reply-Regex} (@pxref{Reply-Regex variable}) or via the format
128 function @code{reply_regex}. 128 function @code{reply_regex}.
129 129
130 This function is useful for creating @samp{Subject:} headers in reply 130 This function is useful for creating @samp{Subject:} headers in reply
131 messages. For example, consider the following construction: 131 messages. For example, consider the following construction:
132 132
133 @smallexample 133 @smallexample
134 @group 134 @group
...@@ -139,7 +139,7 @@ messages. For example, consider the following construction: ...@@ -139,7 +139,7 @@ messages. For example, consider the following construction:
139 @end smallexample 139 @end smallexample
140 140
141 If the @samp{Subject:} header already contained reply prefix, this construct 141 If the @samp{Subject:} header already contained reply prefix, this construct
142 leaves it unchanged. Otherwise it prepends to it the value of 142 leaves it unchanged. Otherwise it prepends to it the value of
143 @code{Reply-Prefix} profile variable, or, if it is unset, the string 143 @code{Reply-Prefix} profile variable, or, if it is unset, the string
144 @samp{Re:}. 144 @samp{Re:}.
145 145
...@@ -151,7 +151,7 @@ This expression is used in default @file{replcomps} and ...@@ -151,7 +151,7 @@ This expression is used in default @file{replcomps} and
151 151
152 This function returns true if the given element is present in the 152 This function returns true if the given element is present in the
153 recipient mask (as modified by @option{--cc} or @option{--nocc} options) and 153 recipient mask (as modified by @option{--cc} or @option{--nocc} options) and
154 false otherwise. It is used in default formats for @command{repl} and 154 false otherwise. It is used in default formats for @command{repl} and
155 @command{comp}, e.g.: 155 @command{comp}, e.g.:
156 156
157 @smallexample 157 @smallexample
...@@ -201,8 +201,8 @@ output. ...@@ -201,8 +201,8 @@ output.
201 @anchor{Reply-Regex variable} 201 @anchor{Reply-Regex variable}
202 @deftypevar {MH Variable} string Reply-Regex 202 @deftypevar {MH Variable} string Reply-Regex
203 203
204 Keeps the regular expression used to recognize reply messages. The 204 Keeps the regular expression used to recognize reply messages. The
205 argument should be a POSIX extended regular expression. Matching 205 argument should be a POSIX extended regular expression. Matching
206 is case insensitive. 206 is case insensitive.
207 207
208 For more information, please see @xref{reply_regex function}. 208 For more information, please see @xref{reply_regex function}.
...@@ -225,21 +225,21 @@ RAND @command{anno} displays the prompt anyway. ...@@ -225,21 +225,21 @@ RAND @command{anno} displays the prompt anyway.
225 @item burst 225 @item burst
226 226
227 The utility is able to burst both RFC 934 digest messages and MIME 227 The utility is able to burst both RFC 934 digest messages and MIME
228 multipart messages. It provides two additional command line options: 228 multipart messages. It provides two additional command line options:
229 @option{--recurse} and @option{--length}. 229 @option{--recurse} and @option{--length}.
230 230
231 The @option{--recurse} option instructs the utility to recursively 231 The @option{--recurse} option instructs the utility to recursively
232 expand the digest. 232 expand the digest.
233 233
234 The @option{--length} option can be used to set the minimal encapsulation 234 The @option{--length} option can be used to set the minimal encapsulation
235 boundary length for RFC 934 digests. Default length is 1, 235 boundary length for RFC 934 digests. Default length is 1,
236 i.e. encountering one dash immediately following a newline triggers 236 i.e. encountering one dash immediately following a newline triggers
237 digest decoding. It is OK for messages that follow RFC 934 237 digest decoding. It is OK for messages that follow RFC 934
238 specification. However, many user agents do not precisely follow it, 238 specification. However, many user agents do not precisely follow it,
239 in particular, they often do not escape lines starting with a dash by 239 in particular, they often do not escape lines starting with a dash by
240 @samp{- } sequence. @command{Mailman} is one of such agents. To cope 240 @samp{- } sequence. @command{Mailman} is one of such agents. To cope
241 with such digests you can set encapsulation boundary length to a higher 241 with such digests you can set encapsulation boundary length to a higher
242 value. For example, @command{bounce --length=8} has been found to be 242 value. For example, @command{bounce --length=8} has been found to be
243 sufficient for most Mailman-generated digests. 243 sufficient for most Mailman-generated digests.
244 244
245 @item comp 245 @item comp
...@@ -248,7 +248,7 @@ Understands @option{--build} option. ...@@ -248,7 +248,7 @@ Understands @option{--build} option.
248 248
249 @item fmtdump 249 @item fmtdump
250 250
251 This command is not provided. Use @option{fmtcheck} instead. 251 This command is not provided. Use @option{fmtcheck} instead.
252 252
253 @item mhl 253 @item mhl
254 254
...@@ -280,8 +280,8 @@ The following format variables are silently ignored: @samp{center}, ...@@ -280,8 +280,8 @@ The following format variables are silently ignored: @samp{center},
280 @itemize @bullet 280 @itemize @bullet
281 281
282 @item New option 282 @item New option
283 New option @option{--compose} forces @command{mhn} editing mode. This 283 New option @option{--compose} forces @command{mhn} editing mode. This
284 is also the default mode. This differs from the standard 284 is also the default mode. This differs from the standard
285 @command{mhn}, which switches to the editing mode only if no other 285 @command{mhn}, which switches to the editing mode only if no other
286 options were given and the input file name coincides with the value of 286 options were given and the input file name coincides with the value of
287 @env{mhdraft} environment variable. 287 @env{mhdraft} environment variable.
...@@ -289,22 +289,22 @@ options were given and the input file name coincides with the value of ...@@ -289,22 +289,22 @@ options were given and the input file name coincides with the value of
289 @item Show mode (@option{--show}) 289 @item Show mode (@option{--show})
290 If an appropriate mhn-show-type[/subtype] was not found, GNU @command{mhn} 290 If an appropriate mhn-show-type[/subtype] was not found, GNU @command{mhn}
291 prints the decoded message content using @code{moreproc} 291 prints the decoded message content using @code{moreproc}
292 variable. Standard @command{mhn} in this case used to print @samp{don't 292 variable. Standard @command{mhn} in this case used to print @samp{don't
293 know how to display content} diagnostic. 293 know how to display content} diagnostic.
294 294
295 The default behaviour is to pipe the content to the standard input 295 The default behaviour is to pipe the content to the standard input
296 of the mhn-show-type[/subtype] command. This is altered to using a 296 of the mhn-show-type[/subtype] command. This is altered to using a
297 temporary file if the command contains @code{%f} or @code{%F} escapes. 297 temporary file if the command contains @code{%f} or @code{%F} escapes.
298 298
299 @item Store mode (@option{--store}) 299 @item Store mode (@option{--store})
300 If the @code{Content-Disposition} header contains @samp{filename=}, 300 If the @code{Content-Disposition} header contains @samp{filename=},
301 and @command{mhn} is invoked with @option{--auto} switch, it 301 and @command{mhn} is invoked with @option{--auto} switch, it
302 transforms the file name into the absolute notation and uses it only 302 transforms the file name into the absolute notation and uses it only
303 if it lies below the current mhn-storage directory. Standard 303 if it lies below the current mhn-storage directory. Standard
304 @command{mhn} only requires that the file name do not begin with @samp{/}. 304 @command{mhn} only requires that the file name do not begin with @samp{/}.
305 305
306 Before saving a message part, GNU @command{mhn} checks if the file already 306 Before saving a message part, GNU @command{mhn} checks if the file already
307 exists. If so, it asks whether the user wishes to rewrite it. This 307 exists. If so, it asks whether the user wishes to rewrite it. This
308 behaviour is disabled when @option{--quiet} option was given. 308 behaviour is disabled when @option{--quiet} option was given.
309 @end itemize 309 @end itemize
310 310
...@@ -319,7 +319,7 @@ recognized only if at least one of the following conditions is met: ...@@ -319,7 +319,7 @@ recognized only if at least one of the following conditions is met:
319 319
320 @itemize @bullet 320 @itemize @bullet
321 @item The word @var{component} contains at least one capital letter. 321 @item The word @var{component} contains at least one capital letter.
322 E.g. @option{--User-Agent Mailutils}. 322 E.g. @option{--User-Agent Mailutils}.
323 323
324 @item The word @var{component} ends with a colon, as in 324 @item The word @var{component} ends with a colon, as in
325 @option{user-agent: Mailutils}. 325 @option{user-agent: Mailutils}.
...@@ -334,7 +334,7 @@ pick --component @var{field} --pattern @var{string} ...@@ -334,7 +334,7 @@ pick --component @var{field} --pattern @var{string}
334 @end smallexample 334 @end smallexample
335 335
336 New command line option @option{--cflags} allows to control the type of 336 New command line option @option{--cflags} allows to control the type of
337 regular expressions used. The option must occur right before 337 regular expressions used. The option must occur right before
338 @option{--pattern} or @option{--component} option (or one of its 338 @option{--pattern} or @option{--component} option (or one of its
339 aliases, like @option{--cc}, @option{--from}, etc.) 339 aliases, like @option{--cc}, @option{--from}, etc.)
340 340
...@@ -401,11 +401,11 @@ will add it automatically. ...@@ -401,11 +401,11 @@ will add it automatically.
401 @item 401 @item
402 Linking messages between folders goes against the logic of Mailutils, 402 Linking messages between folders goes against the logic of Mailutils,
403 so @command{refile} never makes links even if called with 403 so @command{refile} never makes links even if called with
404 @option{--link} option. The latter is actually a synonym for @option{--copy}, 404 @option{--link} option. The latter is actually a synonym for @option{--copy},
405 which preserves the original message. 405 which preserves the original message.
406 406
407 @item 407 @item
408 The @option{--preserve} option is not implemented. It is retained for backward 408 The @option{--preserve} option is not implemented. It is retained for backward
409 compatibility only. 409 compatibility only.
410 410
411 @item 411 @item
...@@ -414,7 +414,7 @@ Message specs and folder names may be interspersed. ...@@ -414,7 +414,7 @@ Message specs and folder names may be interspersed.
414 414
415 @item repl 415 @item repl
416 416
417 Understands @option{--use} option. Disposition shell provides 417 Understands @option{--use} option. Disposition shell provides
418 @code{use} command. 418 @code{use} command.
419 419
420 @item rmm 420 @item rmm
...@@ -423,7 +423,7 @@ Understands @option{--use} option. Disposition shell provides ...@@ -423,7 +423,7 @@ Understands @option{--use} option. Disposition shell provides
423 @item 423 @item
424 Different behaviour if one of the messages in the list does not exist: 424 Different behaviour if one of the messages in the list does not exist:
425 425
426 Mailutils @command{rmm} does not delete any messages. Standard 426 Mailutils @command{rmm} does not delete any messages. Standard
427 @command{rmm} in this case deletes all messages preceding the 427 @command{rmm} in this case deletes all messages preceding the
428 non-existent one. 428 non-existent one.
429 429
...@@ -445,7 +445,7 @@ Any number of @option{--datefield}, @option{--textfield} and ...@@ -445,7 +445,7 @@ Any number of @option{--datefield}, @option{--textfield} and
445 @option{--numfield} options may be given, thus allowing to build sort 445 @option{--numfield} options may be given, thus allowing to build sort
446 criteria of arbitrary complexity. 446 criteria of arbitrary complexity.
447 447
448 The order of @option{--.*field} options sets the ordering priority. This 448 The order of @option{--.*field} options sets the ordering priority. This
449 differs from the behaviour of the standard @command{sortm}, which 449 differs from the behaviour of the standard @command{sortm}, which
450 always orders datefield-major, textfield-minor. 450 always orders datefield-major, textfield-minor.
451 451
...@@ -459,7 +459,7 @@ List the ordered messages using a format string given by ...@@ -459,7 +459,7 @@ List the ordered messages using a format string given by
459 459
460 @item --dry-run 460 @item --dry-run
461 Do not actually sort messages, rather print what would have been 461 Do not actually sort messages, rather print what would have been
462 done. This is useful for debugging purposes. 462 done. This is useful for debugging purposes.
463 @end table 463 @end table
464 464
465 @end table 465 @end table
......
This diff could not be displayed because it is too large.
...@@ -3,15 +3,13 @@ ...@@ -3,15 +3,13 @@
3 @c 2008, 2010, 2011 Free Software Foundation, Inc. 3 @c 2008, 2010, 2011 Free Software Foundation, Inc.
4 @c See file mailutils.texi for copying conditions. 4 @c See file mailutils.texi for copying conditions.
5 @comment ******************************************************************* 5 @comment *******************************************************************
6 @node Usage Vars
7 @appendix Configuring Help Summary
8 6
9 Running @command{@var{prog} --help} displays the short usage summary 7 Running @command{@var{prog} --help} displays the short usage summary
10 for @var{prog} utility (@pxref{Common Options}). This summary is 8 for @var{prog} utility (@pxref{Common Options}). This summary is
11 organized by @dfn{groups} of semantically close options. The options 9 organized by @dfn{groups} of semantically close options. The options
12 within each group are printed in the following order: a short option, 10 within each group are printed in the following order: a short option,
13 eventually followed by a list of corresponding long option names, 11 eventually followed by a list of corresponding long option names,
14 followed by a short description of the option. For example, here is an 12 followed by a short description of the option. For example, here is an
15 excerpt from the actual @kbd{sieve --help} output: 13 excerpt from the actual @kbd{sieve --help} output:
16 14
17 @verbatim 15 @verbatim
...@@ -22,12 +20,12 @@ excerpt from the actual @kbd{sieve --help} output: ...@@ -22,12 +20,12 @@ excerpt from the actual @kbd{sieve --help} output:
22 20
23 @vrindex ARGP_HELP_FMT, environment variable 21 @vrindex ARGP_HELP_FMT, environment variable
24 The exact visual representation of the help output is configurable via 22 The exact visual representation of the help output is configurable via
25 @env{ARGP_HELP_FMT} environment variable. The value of this variable 23 @env{ARGP_HELP_FMT} environment variable. The value of this variable
26 is a comma-separated list of @dfn{format variable} assignments. There 24 is a comma-separated list of @dfn{format variable} assignments. There
27 are two kinds of format variables. An @dfn{offset variable} keeps the 25 are two kinds of format variables. An @dfn{offset variable} keeps the
28 offset of some part of help output text from the leftmost column on 26 offset of some part of help output text from the leftmost column on
29 the screen. A @dfn{boolean} variable is a flag that toggles some 27 the screen. A @dfn{boolean} variable is a flag that toggles some
30 output feature on or off. Depending on the type of the corresponding 28 output feature on or off. Depending on the type of the corresponding
31 variable, there are two kinds of assignments: 29 variable, there are two kinds of assignments:
32 30
33 @table @asis 31 @table @asis
...@@ -45,8 +43,8 @@ numeric value to be assigned to the variable. ...@@ -45,8 +43,8 @@ numeric value to be assigned to the variable.
45 43
46 @item Boolean assignment 44 @item Boolean assignment
47 45
48 To assign @code{true} value to a variable, simply put this variable name. To 46 To assign @code{true} value to a variable, simply put this variable name. To
49 assign @code{false} value, prefix the variable name with @samp{no-}. For 47 assign @code{false} value, prefix the variable name with @samp{no-}. For
50 example: 48 example:
51 49
52 @smallexample 50 @smallexample
...@@ -78,7 +76,7 @@ argument is only shown with the long one, for example: ...@@ -78,7 +76,7 @@ argument is only shown with the long one, for example:
78 76
79 @noindent 77 @noindent
80 and a message indicating that the argument is applicable to both 78 and a message indicating that the argument is applicable to both
81 forms is printed below the options. This message can be disabled 79 forms is printed below the options. This message can be disabled
82 using @code{dup-args-note} (see below). 80 using @code{dup-args-note} (see below).
83 81
84 The default is false. 82 The default is false.
...@@ -93,12 +91,12 @@ Mandatory or optional arguments to long options are also mandatory or ...@@ -93,12 +91,12 @@ Mandatory or optional arguments to long options are also mandatory or
93 optional for any corresponding short options. 91 optional for any corresponding short options.
94 @end quotation 92 @end quotation
95 93
96 Setting @code{no-dup-args-note} inhibits this message. Normally, only 94 Setting @code{no-dup-args-note} inhibits this message. Normally, only
97 one of variables @code{dup-args} or @code{dup-args-note} should be set. 95 one of variables @code{dup-args} or @code{dup-args-note} should be set.
98 @end deftypevr 96 @end deftypevr
99 97
100 @deftypevr {Help Output} offset short-opt-col 98 @deftypevr {Help Output} offset short-opt-col
101 Column in which short options start. Default is 2. 99 Column in which short options start. Default is 2.
102 100
103 @smallexample 101 @smallexample
104 @group 102 @group
...@@ -111,7 +109,7 @@ $ @kbd{ARGP_HELP_FMT=short-opt-col=6 sieve --help|grep ARCHIVE} ...@@ -111,7 +109,7 @@ $ @kbd{ARGP_HELP_FMT=short-opt-col=6 sieve --help|grep ARCHIVE}
111 @end deftypevr 109 @end deftypevr
112 110
113 @deftypevr {Help Output} offset long-opt-col 111 @deftypevr {Help Output} offset long-opt-col
114 Column in which long options start. Default is 6. For example: 112 Column in which long options start. Default is 6. For example:
115 113
116 @smallexample 114 @smallexample
117 @group 115 @group
...@@ -124,9 +122,9 @@ $ @kbd{ARGP_HELP_FMT=long-opt-col=16 sieve --help|grep ADDRESS} ...@@ -124,9 +122,9 @@ $ @kbd{ARGP_HELP_FMT=long-opt-col=16 sieve --help|grep ADDRESS}
124 @end deftypevr 122 @end deftypevr
125 123
126 @deftypevr {Help Output} offset doc-opt-col 124 @deftypevr {Help Output} offset doc-opt-col
127 Column in which @dfn{doc options} start. A doc option isn't actually 125 Column in which @dfn{doc options} start. A doc option isn't actually
128 an option, but rather an arbitrary piece of documentation that is 126 an option, but rather an arbitrary piece of documentation that is
129 displayed in much the same manner as the options. For example, in 127 displayed in much the same manner as the options. For example, in
130 the output of @command{folder --help}: 128 the output of @command{folder --help}:
131 129
132 @verbatim 130 @verbatim
...@@ -138,7 +136,7 @@ GNU MH folder ...@@ -138,7 +136,7 @@ GNU MH folder
138 @end verbatim 136 @end verbatim
139 137
140 @noindent 138 @noindent
141 the string @samp{Actions are:} is a doc option. Thus, if you set 139 the string @samp{Actions are:} is a doc option. Thus, if you set
142 @kbd{ARGP_HELP_FMT=doc-opt-col=6} the above part of the help output 140 @kbd{ARGP_HELP_FMT=doc-opt-col=6} the above part of the help output
143 will look as follows: 141 will look as follows:
144 142
...@@ -152,7 +150,7 @@ GNU MH folder ...@@ -152,7 +150,7 @@ GNU MH folder
152 @end deftypevr 150 @end deftypevr
153 151
154 @deftypevr {Help Output} offset opt-doc-col 152 @deftypevr {Help Output} offset opt-doc-col
155 Column in which option description starts. Default is 29. 153 Column in which option description starts. Default is 29.
156 154
157 @smallexample 155 @smallexample
158 @group 156 @group
...@@ -172,8 +170,8 @@ Notice, that the description starts on a separate line if ...@@ -172,8 +170,8 @@ Notice, that the description starts on a separate line if
172 @end deftypevr 170 @end deftypevr
173 171
174 @deftypevr {Help Output} offset header-col 172 @deftypevr {Help Output} offset header-col
175 Column in which @dfn{group headers} are printed. A group header is a 173 Column in which @dfn{group headers} are printed. A group header is a
176 descriptive text preceding an option group. For example, in the 174 descriptive text preceding an option group. For example, in the
177 following text: 175 following text:
178 176
179 @verbatim 177 @verbatim
...@@ -188,10 +186,10 @@ The default value is 1. ...@@ -188,10 +186,10 @@ The default value is 1.
188 @end deftypevr 186 @end deftypevr
189 187
190 @deftypevr {Help Output} offset usage-indent 188 @deftypevr {Help Output} offset usage-indent
191 Indentation of wrapped usage lines. Affects @option{--usage} 189 Indentation of wrapped usage lines. Affects @option{--usage}
192 output. Default is 12. 190 output. Default is 12.
193 @end deftypevr 191 @end deftypevr
194 192
195 @deftypevr {Help Output} offset rmargin 193 @deftypevr {Help Output} offset rmargin
196 Right margin of the text output. Used for wrapping. 194 Right margin of the text output. Used for wrapping.
197 @end deftypevr 195 @end deftypevr
......
...@@ -100,7 +100,7 @@ P [1-9][0-9]* ...@@ -100,7 +100,7 @@ P [1-9][0-9]*
100 yylval.string = _mu_line_finish (); 100 yylval.string = _mu_line_finish ();
101 return MU_TOK_IDENT; } 101 return MU_TOK_IDENT; }
102 /* Strings */ 102 /* Strings */
103 [a-zA-Z0-9_\./:\*=-]+ { _mu_line_begin (); 103 [a-zA-Z0-9_\./:\*=@-]+ { _mu_line_begin ();
104 _mu_line_add (yytext, yyleng); 104 _mu_line_add (yytext, yyleng);
105 yylval.string = _mu_line_finish (); 105 yylval.string = _mu_line_finish ();
106 return MU_TOK_STRING; } 106 return MU_TOK_STRING; }
......
...@@ -133,6 +133,8 @@ read_bulletin_db (size_t *pnum) ...@@ -133,6 +133,8 @@ read_bulletin_db (size_t *pnum)
133 return rc; 133 return rc;
134 } 134 }
135 135
136 mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
137
136 rc = mu_dbm_safety_check (db); 138 rc = mu_dbm_safety_check (db);
137 if (rc) 139 if (rc)
138 { 140 {
...@@ -225,6 +227,8 @@ write_bulletin_db (size_t num) ...@@ -225,6 +227,8 @@ write_bulletin_db (size_t num)
225 return rc; 227 return rc;
226 } 228 }
227 229
230 mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
231
228 rc = mu_dbm_safety_check (db); 232 rc = mu_dbm_safety_check (db);
229 if (rc && rc != ENOENT) 233 if (rc && rc != ENOENT)
230 { 234 {
......
...@@ -32,8 +32,10 @@ open_stat_db (int mode) ...@@ -32,8 +32,10 @@ open_stat_db (int mode)
32 return NULL; 32 return NULL;
33 } 33 }
34 34
35 mu_dbm_safety_set_flags (db, DEFAULT_GROUP_DB_SAFETY);
36
35 rc = mu_dbm_safety_check (db); 37 rc = mu_dbm_safety_check (db);
36 if (rc) 38 if (rc && rc != ENOENT)
37 { 39 {
38 mu_diag_output (MU_DIAG_ERROR, 40 mu_diag_output (MU_DIAG_ERROR,
39 _("statistics db fails safety check: %s"), 41 _("statistics db fails safety check: %s"),
......
...@@ -201,6 +201,17 @@ extern char *apop_database_name; ...@@ -201,6 +201,17 @@ extern char *apop_database_name;
201 extern int apop_database_safety; 201 extern int apop_database_safety;
202 extern int apop_database_safety_set; 202 extern int apop_database_safety_set;
203 203
204 /* Safety checks for group-rw database files, such as stat and bulletin
205 databases */
206
207 #define DEFAULT_GROUP_DB_SAFETY \
208 (MU_FILE_SAFETY_WORLD_WRITABLE| \
209 MU_FILE_SAFETY_WORLD_READABLE| \
210 MU_FILE_SAFETY_LINKED_WRDIR| \
211 MU_FILE_SAFETY_DIR_IWGRP| \
212 MU_FILE_SAFETY_DIR_IWOTH)
213
214
204 extern pop3d_command_handler_t pop3d_find_command (const char *name); 215 extern pop3d_command_handler_t pop3d_find_command (const char *name);
205 216
206 extern int pop3d_stat (char *); 217 extern int pop3d_stat (char *);
......