Begin rewriting the docs.
* configure.ac: Configure doc hints. * config/mailutils-config.c (main): Use mu_fprint_conf_option. * mailbox/version.c (mu_conf_option): Change type. (mu_fprint_conf_option): New function. (mu_fprint_options): Use mu_fprint_conf_option. (mu_print_options): Fix signature (mu_check_option): Change return type. * testsuite/lib/mailutils.exp (mu_version): Reflect changes in the output produced by --show-config-options. * include/mailutils/version.h (struct mu_conf_option): New data type. (mu_check_option): Change return type. (mu_fprint_conf_option): New prototype. * libargp/common.c (mu_common_argp): Rename --rcfile-* options to --config-*. Retain old names for a while. * doc/texinfo/Makefile.am (RENDITION_TEXI): New variable. (check-format, check-refs, check-fixmes, check-unrevised) (all-check-docs, check-docs): New rules. * doc/texinfo/rendition.texi: New file. * doc/texinfo/macros.texi: New file. * doc/texinfo/mailutils.texi: Start rewriting * doc/texinfo/programs.texi: Likewise. * doc/texinfo/c-api.texi: Reformat. * doc/texinfo/fdl.texi: Likewise. * doc/texinfo/libmuauth.texi: Likewise. * doc/texinfo/libsieve.texi: Likewise. * doc/texinfo/mu-mh.texi: Likewise. * doc/texinfo/sieve.texi: Likewise. * doc/texinfo/gendocs_template: Rewrite.
Showing
19 changed files
with
372 additions
and
152 deletions
1 | 2008-09-21 Sergey Poznyakoff <gray@gnu.org.ua> | ||
2 | |||
3 | * configure.ac: Configure doc hints. | ||
4 | * config/mailutils-config.c (main): Use mu_fprint_conf_option. | ||
5 | * mailbox/version.c (mu_conf_option): Change type. | ||
6 | (mu_fprint_conf_option): New function. | ||
7 | (mu_fprint_options): Use mu_fprint_conf_option. | ||
8 | (mu_print_options): Fix signature | ||
9 | (mu_check_option): Change return type. | ||
10 | * testsuite/lib/mailutils.exp (mu_version): Reflect changes in the | ||
11 | output produced by --show-config-options. | ||
12 | |||
13 | * include/mailutils/version.h (struct mu_conf_option): New data | ||
14 | type. | ||
15 | (mu_check_option): Change return type. | ||
16 | (mu_fprint_conf_option): New prototype. | ||
17 | * libargp/common.c (mu_common_argp): Rename --rcfile-* options | ||
18 | to --config-*. Retain old names for a while. | ||
19 | |||
20 | * doc/texinfo/Makefile.am (RENDITION_TEXI): New variable. | ||
21 | (check-format, check-refs, check-fixmes, check-unrevised) | ||
22 | (all-check-docs, check-docs): New rules. | ||
23 | * doc/texinfo/rendition.texi: New file. | ||
24 | * doc/texinfo/macros.texi: New file. | ||
25 | * doc/texinfo/mailutils.texi: Start rewriting | ||
26 | * doc/texinfo/programs.texi: Likewise. | ||
27 | |||
28 | * doc/texinfo/c-api.texi: Reformat. | ||
29 | * doc/texinfo/fdl.texi: Likewise. | ||
30 | * doc/texinfo/libmuauth.texi: Likewise. | ||
31 | * doc/texinfo/libsieve.texi: Likewise. | ||
32 | * doc/texinfo/mu-mh.texi: Likewise. | ||
33 | * doc/texinfo/sieve.texi: Likewise. | ||
34 | |||
35 | * doc/texinfo/gendocs_template: Rewrite. | ||
36 | |||
1 | 2008-08-24 Sergey Poznyakoff <gray@gnu.org.ua> | 37 | 2008-08-24 Sergey Poznyakoff <gray@gnu.org.ua> |
2 | 38 | ||
3 | Fix testsuite to avoid spawning /bin/cp. | 39 | Fix testsuite to avoid spawning /bin/cp. | ... | ... |
... | @@ -276,11 +276,11 @@ main (int argc, char **argv) | ... | @@ -276,11 +276,11 @@ main (int argc, char **argv) |
276 | 276 | ||
277 | for (i = 0; i < argc; i++) | 277 | for (i = 0; i < argc; i++) |
278 | { | 278 | { |
279 | const char *val = mu_check_option (argv[i]); | 279 | const struct mu_conf_option *opt = mu_check_option (argv[i]); |
280 | if (val) | 280 | if (opt) |
281 | { | 281 | { |
282 | found++; | 282 | found++; |
283 | printf ("%s\n", val); | 283 | mu_fprint_conf_option (stdout, opt); |
284 | } | 284 | } |
285 | } | 285 | } |
286 | return found == argc ? 0 : 1; | 286 | return found == argc ? 0 : 1; | ... | ... |
... | @@ -1103,6 +1103,24 @@ dnl get sysconfdir expanded. | ... | @@ -1103,6 +1103,24 @@ dnl get sysconfdir expanded. |
1103 | 1103 | ||
1104 | CPPFLAGS="$CPPFLAGS -DSYSCONFDIR=\\\"\$(sysconfdir)\\\"" | 1104 | CPPFLAGS="$CPPFLAGS -DSYSCONFDIR=\\\"\$(sysconfdir)\\\"" |
1105 | 1105 | ||
1106 | # Doc hints. | ||
1107 | # Select a rendition level: | ||
1108 | # DISTRIB for stable releases (at most one dot in the version number) | ||
1109 | # and maintenance releases (two dots, patchlevel < 50) | ||
1110 | # PROOF for alpha releases. | ||
1111 | # PUBLISH can only be required manually when running make in doc/ | ||
1112 | AC_SUBST(RENDITION) | ||
1113 | case `echo $VERSION|sed 's/[[^.]]//g'` in | ||
1114 | ""|".") RENDITION=DISTRIB;; | ||
1115 | "..") if test `echo $VERSION | sed 's/.*\.//'` -lt 50; then | ||
1116 | RENDITION=DISTRIB | ||
1117 | else | ||
1118 | RENDITION=PROOF | ||
1119 | fi;; | ||
1120 | *) RENDITION=PROOF;; | ||
1121 | esac | ||
1122 | |||
1123 | |||
1106 | AC_CONFIG_COMMANDS([status],[ | 1124 | AC_CONFIG_COMMANDS([status],[ |
1107 | cat <<EOF | 1125 | cat <<EOF |
1108 | 1126 | ... | ... |
... | @@ -28,6 +28,8 @@ INCFILES = \ | ... | @@ -28,6 +28,8 @@ INCFILES = \ |
28 | sfrom.inc\ | 28 | sfrom.inc\ |
29 | url-parse.inc | 29 | url-parse.inc |
30 | 30 | ||
31 | RENDITION_TEXI=rendition.texi macros.texi | ||
32 | |||
31 | mailutils_TEXINFOS = \ | 33 | mailutils_TEXINFOS = \ |
32 | address.texi\ | 34 | address.texi\ |
33 | attribute.texi\ | 35 | attribute.texi\ |
... | @@ -70,12 +72,9 @@ mailutils_TEXINFOS = \ | ... | @@ -70,12 +72,9 @@ mailutils_TEXINFOS = \ |
70 | smtp.texi\ | 72 | smtp.texi\ |
71 | stream.texi\ | 73 | stream.texi\ |
72 | url.texi\ | 74 | url.texi\ |
75 | $(RENDITION_TEXI)\ | ||
73 | $(INCFILES) | 76 | $(INCFILES) |
74 | 77 | ||
75 | muint_TEXINFOS = \ | ||
76 | muint.texi\ | ||
77 | mom.texi | ||
78 | |||
79 | ## Fake configure into including srcdir to VPATH: | 78 | ## Fake configure into including srcdir to VPATH: |
80 | s=${srcdir}:${top_srcdir}/examples/ | 79 | s=${srcdir}:${top_srcdir}/examples/ |
81 | VPATH = $(s) | 80 | VPATH = $(s) |
... | @@ -89,9 +88,12 @@ MAINTAINERCLEANFILES=$(INCFILES) | ... | @@ -89,9 +88,12 @@ MAINTAINERCLEANFILES=$(INCFILES) |
89 | clean-local: | 88 | clean-local: |
90 | rm -rf manual | 89 | rm -rf manual |
91 | 90 | ||
91 | # The rendering level is one of PUBLISH, DISTRIB or PROOF. | ||
92 | # Just call `make RENDITION=PROOF [target]' if you want PROOF rendition. | ||
93 | |||
94 | MAKEINFOFLAGS=-D$(RENDITION) | ||
92 | GENDOCS=gendocs.sh | 95 | GENDOCS=gendocs.sh |
93 | TEXI2DVI=texi2dvi | 96 | TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E |
94 | MAKEINFOFLAGS= | ||
95 | 97 | ||
96 | # Make sure you set TEXINPUTS. | 98 | # Make sure you set TEXINPUTS. |
97 | # TEXINPUTS=/usr/share/texmf/pdftex/plain/misc/ is ok for most distributions | 99 | # TEXINPUTS=/usr/share/texmf/pdftex/plain/misc/ is ok for most distributions |
... | @@ -114,3 +116,57 @@ untabify: | ... | @@ -114,3 +116,57 @@ untabify: |
114 | emacs -batch -l untabify.el $(info_TEXINFOS) $(mailutils_TEXINFOS) | 116 | emacs -batch -l untabify.el $(info_TEXINFOS) $(mailutils_TEXINFOS) |
115 | 117 | ||
116 | final: untabify master-menu | 118 | final: untabify master-menu |
119 | |||
120 | |||
121 | # Checks | ||
122 | check-format: | ||
123 | @if test -n "`cat $(info_TEXINFOS) $(mailutils_TEXINFOS) |\ | ||
124 | tr -d -c '\t'`"; then \ | ||
125 | echo "Sources contain tabs; run make untabify"; \ | ||
126 | false; \ | ||
127 | fi | ||
128 | |||
129 | check-refs: | ||
130 | @for file in $(info_TEXINFOS) $(dico_TEXINFOS); \ | ||
131 | do \ | ||
132 | sed -e = $$file | \ | ||
133 | sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\)}.*/'$$file':\1: \2/gp}'; \ | ||
134 | done > $@-t; \ | ||
135 | if [ -s $@-t ]; then \ | ||
136 | echo "Unresolved cross-references:"; \ | ||
137 | cat $@-t;\ | ||
138 | rm $@-t; \ | ||
139 | else \ | ||
140 | rm -f $@-t; \ | ||
141 | fi | ||
142 | |||
143 | check-fixmes: | ||
144 | @for file in $(info_TEXINFOS); \ | ||
145 | do \ | ||
146 | sed -e = $$file | \ | ||
147 | sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/'$$file':\1: \2/gp}'; \ | ||
148 | done > $@-t; \ | ||
149 | if [ -s $@-t ]; then \ | ||
150 | echo "Unresolved FIXMEs:"; \ | ||
151 | cat $@-t; \ | ||
152 | rm $@-t; \ | ||
153 | false; \ | ||
154 | else \ | ||
155 | rm -f $@-t; \ | ||
156 | fi | ||
157 | |||
158 | check-unrevised: | ||
159 | @grep -Hn @UNREVISED $(info_TEXINFOS) $(dico_TEXINFOS) > $@-t; \ | ||
160 | if [ -s $@-t ]; then \ | ||
161 | echo "Unrevised nodes:"; \ | ||
162 | cat $@-t; \ | ||
163 | rm $@-t; \ | ||
164 | false;\ | ||
165 | else \ | ||
166 | rm $@-t; \ | ||
167 | fi | ||
168 | |||
169 | all-check-docs: check-format check-refs check-fixmes check-unrevised | ||
170 | |||
171 | check-docs: | ||
172 | $(MAKE) -k all-check-docs | ... | ... |
... | @@ -16,49 +16,41 @@ | ... | @@ -16,49 +16,41 @@ |
16 | @end menu | 16 | @end menu |
17 | 17 | ||
18 | @node POP3 | 18 | @node POP3 |
19 | @comment node-name, next, previous, up | ||
20 | @section POP3 | 19 | @section POP3 |
21 | @cindex POP3 | 20 | @cindex POP3 |
22 | @include pop3.texi | 21 | @include pop3.texi |
23 | 22 | ||
24 | @node IMAP4 | 23 | @node IMAP4 |
25 | @comment node-name, next, previous, up | ||
26 | @section IMAP4 | 24 | @section IMAP4 |
27 | @cindex IMAP4 | 25 | @cindex IMAP4 |
28 | @include imap4.texi | 26 | @include imap4.texi |
29 | 27 | ||
30 | @node Mbox | 28 | @node Mbox |
31 | @comment node-name, next, previous, up | ||
32 | @section Mbox | 29 | @section Mbox |
33 | @cindex Mbox | 30 | @cindex Mbox |
34 | @include mbox.texi | 31 | @include mbox.texi |
35 | 32 | ||
36 | @node Mh | 33 | @node Mh |
37 | @comment node-name, next, previous, up | ||
38 | @section Mh | 34 | @section Mh |
39 | @cindex Mh | 35 | @cindex Mh |
40 | @include mh.texi | 36 | @include mh.texi |
41 | 37 | ||
42 | @node Maildir | 38 | @node Maildir |
43 | @comment node-name, next, previous, up | ||
44 | @section Maildir | 39 | @section Maildir |
45 | @cindex Maildir | 40 | @cindex Maildir |
46 | @include maildir.texi | 41 | @include maildir.texi |
47 | 42 | ||
48 | @node SMTP | 43 | @node SMTP |
49 | @comment node-name, next, previous, up | ||
50 | @section SMTP | 44 | @section SMTP |
51 | @cindex SMTP | 45 | @cindex SMTP |
52 | @include smtp.texi | 46 | @include smtp.texi |
53 | 47 | ||
54 | @node Sendmail | 48 | @node Sendmail |
55 | @comment node-name, next, previous, up | ||
56 | @section Sendmail | 49 | @section Sendmail |
57 | @cindex Sendmail | 50 | @cindex Sendmail |
58 | @include sendmail.texi | 51 | @include sendmail.texi |
59 | 52 | ||
60 | @node Parse822 | 53 | @node Parse822 |
61 | @comment node-name, next, previous, up | ||
62 | @section Parse822 | 54 | @section Parse822 |
63 | @cindex Parse822 | 55 | @cindex Parse822 |
64 | @include parse822.texi | 56 | @include parse822.texi | ... | ... |
1 | @setfilename fdl.info | 1 | @setfilename fdl.info |
2 | @node GNU FDL | ||
2 | @appendix GNU Free Documentation License | 3 | @appendix GNU Free Documentation License |
3 | @cindex FDL, GNU Free Documentation License | 4 | @cindex FDL, GNU Free Documentation License |
4 | @center Version 1.2, November 2002 | 5 | @center Version 1.2, November 2002 | ... | ... |
... | @@ -34,7 +34,7 @@ | ... | @@ -34,7 +34,7 @@ |
34 | </p> | 34 | </p> |
35 | <hr /> | 35 | <hr /> |
36 | 36 | ||
37 | The manual for %%PACKAGE%% is available in the following formats:</p> | 37 | <p>The manual for %%PACKAGE%% is available in the following formats:</p> |
38 | 38 | ||
39 | <ul> | 39 | <ul> |
40 | <li><a href="%%PACKAGE%%.html">HTML | 40 | <li><a href="%%PACKAGE%%.html">HTML |
... | @@ -44,10 +44,10 @@ The manual for %%PACKAGE%% is available in the following formats:</p> | ... | @@ -44,10 +44,10 @@ The manual for %%PACKAGE%% is available in the following formats:</p> |
44 | <li><a href="%%PACKAGE%%.html.gz">HTML compressed | 44 | <li><a href="%%PACKAGE%%.html.gz">HTML compressed |
45 | (%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on | 45 | (%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on |
46 | one web page.</li> | 46 | one web page.</li> |
47 | <li><a href="%%PACKAGE%%_html_node.tar.gz">HTML compressed | 47 | <li><a href="%%PACKAGE%%.html_node.tar.gz">HTML compressed |
48 | (%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> - | 48 | (%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> - |
49 | with one web page per node.</li> | 49 | with one web page per node.</li> |
50 | <li><a href="%%PACKAGE%%-info.tar.gz">Info document | 50 | <li><a href="%%PACKAGE%%.info.tar.gz">Info document |
51 | (%%INFO_TGZ_SIZE%%K characters gzipped tar file)</a>.</li> | 51 | (%%INFO_TGZ_SIZE%%K characters gzipped tar file)</a>.</li> |
52 | <li><a href="%%PACKAGE%%.txt">ASCII text | 52 | <li><a href="%%PACKAGE%%.txt">ASCII text |
53 | (%%ASCII_SIZE%%K characters)</a>.</li> | 53 | (%%ASCII_SIZE%%K characters)</a>.</li> |
... | @@ -77,7 +77,9 @@ href="%%SCRIPTURL%%">%%SCRIPTNAME%%</a> script.) | ... | @@ -77,7 +77,9 @@ href="%%SCRIPTURL%%">%%SCRIPTNAME%%</a> script.) |
77 | <p> | 77 | <p> |
78 | Return to the <a href="/home.html">GNU Project home page</a>. | 78 | Return to the <a href="/home.html">GNU Project home page</a>. |
79 | </p> | 79 | </p> |
80 | 80 | <p> | |
81 | Return to <a href="/software/%%PACKAGE%%">GNU %%PACKAGE%% home page</a>. | ||
82 | </p> | ||
81 | <p> | 83 | <p> |
82 | Please send FSF & GNU inquiries to | 84 | Please send FSF & GNU inquiries to |
83 | <a href="mailto:gnu@gnu.org"><em>gnu@gnu.org</em></a>. | 85 | <a href="mailto:gnu@gnu.org"><em>gnu@gnu.org</em></a>. |
... | @@ -89,8 +91,8 @@ Please send broken links and other corrections (or suggestions) to | ... | @@ -89,8 +91,8 @@ Please send broken links and other corrections (or suggestions) to |
89 | </p> | 91 | </p> |
90 | 92 | ||
91 | <p> | 93 | <p> |
92 | Copyright (C) 2004 Free Software Foundation, Inc., | 94 | Copyright (C) 2005 Free Software Foundation, Inc., |
93 | 59 Temple Place - Suite 330, Boston, MA 02111, USA | 95 | 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA |
94 | <br /> | 96 | <br /> |
95 | Verbatim copying and distribution of this entire article is | 97 | Verbatim copying and distribution of this entire article is |
96 | permitted in any medium, provided this notice is preserved. | 98 | permitted in any medium, provided this notice is preserved. | ... | ... |
... | @@ -216,7 +216,7 @@ credentials for accessing the database are taken from global variables | ... | @@ -216,7 +216,7 @@ credentials for accessing the database are taken from global variables |
216 | and @code{sql_db}. The SQL queries for retrieving user information | 216 | and @code{sql_db}. The SQL queries for retrieving user information |
217 | from global variables @code{sql_getpwnam_query} and | 217 | from global variables @code{sql_getpwnam_query} and |
218 | @code{sql_getpwuid_query}. The variable @code{sql_getpass_query} keeps | 218 | @code{sql_getpwuid_query}. The variable @code{sql_getpass_query} keeps |
219 | the query used for retrieving user's password. @xref{auth}, for | 219 | the query used for retrieving user's password. @FIXME-xref{auth}, for |
220 | information on command line options used to set these variables. | 220 | information on command line options used to set these variables. |
221 | @end defvar | 221 | @end defvar |
222 | 222 | ... | ... |
... | @@ -484,7 +484,7 @@ follows: | ... | @@ -484,7 +484,7 @@ follows: |
484 | int | 484 | int |
485 | _sieve_default_parse_error (void *unused, | 485 | _sieve_default_parse_error (void *unused, |
486 | const char *filename, int lineno, | 486 | const char *filename, int lineno, |
487 | const char *fmt, va_list ap) | 487 | const char *fmt, va_list ap) |
488 | @{ | 488 | @{ |
489 | if (filename) | 489 | if (filename) |
490 | fprintf (stderr, "%s:%d: ", filename, lineno); | 490 | fprintf (stderr, "%s:%d: ", filename, lineno); | ... | ... |
doc/texinfo/macros.texi
0 → 100644
... | @@ -6,14 +6,9 @@ | ... | @@ -6,14 +6,9 @@ |
6 | @finalout | 6 | @finalout |
7 | @c %**end of header | 7 | @c %**end of header |
8 | 8 | ||
9 | @c This file has the new style title page commands. | ||
10 | @c Run `makeinfo' rather than `texinfo-format-buffer'. | ||
11 | @c smallbook | ||
12 | @c tex | ||
13 | @c \overfullrule=0pt | ||
14 | @c end tex | ||
15 | |||
16 | @include version.texi | 9 | @include version.texi |
10 | @include macros.texi | ||
11 | @include rendition.texi | ||
17 | 12 | ||
18 | @c Combine indices. | 13 | @c Combine indices. |
19 | @defcodeindex op | 14 | @defcodeindex op |
... | @@ -23,7 +18,7 @@ | ... | @@ -23,7 +18,7 @@ |
23 | @ifinfo | 18 | @ifinfo |
24 | @dircategory Email | 19 | @dircategory Email |
25 | @direntry | 20 | @direntry |
26 | * Mailutils: (mailutils). Utilities & library for mailboxes, protocols. | 21 | * Mailutils: (mailutils). GNU Mail Utilities. |
27 | @end direntry | 22 | @end direntry |
28 | @dircategory Individual utilities | 23 | @dircategory Individual utilities |
29 | @direntry | 24 | @direntry |
... | @@ -45,7 +40,7 @@ Published by the Free Software Foundation, | ... | @@ -45,7 +40,7 @@ Published by the Free Software Foundation, |
45 | 51 Franklin Street, Fifth Floor | 40 | 51 Franklin Street, Fifth Floor |
46 | Boston, MA 02110-1301, USA | 41 | Boston, MA 02110-1301, USA |
47 | 42 | ||
48 | Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004 | 43 | Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2008 |
49 | Free Software Foundation, Inc. | 44 | Free Software Foundation, Inc. |
50 | 45 | ||
51 | Permission is granted to copy, distribute and/or modify this document | 46 | Permission is granted to copy, distribute and/or modify this document |
... | @@ -63,7 +58,7 @@ Software Foundation raise funds for GNU development.'' | ... | @@ -63,7 +58,7 @@ Software Foundation raise funds for GNU development.'' |
63 | @titlepage | 58 | @titlepage |
64 | @title GNU Mailutils | 59 | @title GNU Mailutils |
65 | @subtitle version @value{VERSION}, @value{UPDATED} | 60 | @subtitle version @value{VERSION}, @value{UPDATED} |
66 | @author Alain Magloire et al. | 61 | @author Alain Magloire, Sergey Pozbyakoff et al. |
67 | @page | 62 | @page |
68 | @vskip 0pt plus 1filll | 63 | @vskip 0pt plus 1filll |
69 | @insertcopying | 64 | @insertcopying |
... | @@ -74,14 +69,13 @@ Software Foundation raise funds for GNU development.'' | ... | @@ -74,14 +69,13 @@ Software Foundation raise funds for GNU development.'' |
74 | @page | 69 | @page |
75 | @contents | 70 | @contents |
76 | 71 | ||
77 | @node Top, Introduction, (dir), (dir) | 72 | @ifnottex |
78 | @comment node-name, next, previous, up | 73 | @node Top |
74 | @top GNU Mailutils | ||
79 | 75 | ||
80 | @ifinfo | 76 | This edition of the @cite{GNU Mailutils Manual}, last updated on |
81 | @chapter GNU Mailutils | 77 | @value{UPDATED}, documents GNU Mailutils Version @value{VERSION}. |
82 | This edition of the @cite{GNU Mailutils Manual}, last updated @value{UPDATED}, | 78 | @end ifnottex |
83 | documents GNU Mailutils Version @value{VERSION}. | ||
84 | @end ifinfo | ||
85 | 79 | ||
86 | @menu | 80 | @menu |
87 | * Introduction:: Preliminary Information. | 81 | * Introduction:: Preliminary Information. |
... | @@ -89,12 +83,13 @@ documents GNU Mailutils Version @value{VERSION}. | ... | @@ -89,12 +83,13 @@ documents GNU Mailutils Version @value{VERSION}. |
89 | * Libraries:: Mailutils Libraries. | 83 | * Libraries:: Mailutils Libraries. |
90 | * Sieve Language:: The Sieve Language. | 84 | * Sieve Language:: The Sieve Language. |
91 | * Reporting Bugs:: How to Report a Bug. | 85 | * Reporting Bugs:: How to Report a Bug. |
92 | * News:: Getting News About @sc{gnu} Mailutils. | 86 | * News:: Getting News About GNU Mailutils. |
93 | * Acknowledgement:: Thanks and Credits. | 87 | * Acknowledgement:: Thanks and Credits. |
94 | 88 | ||
95 | Appendices | 89 | Appendices |
96 | 90 | ||
97 | * References:: References. | 91 | * References:: References. |
92 | * Usage Vars:: Configuring Help Summary | ||
98 | * GNU FDL:: This manual is under the GNU Free | 93 | * GNU FDL:: This manual is under the GNU Free |
99 | Documentation License. | 94 | Documentation License. |
100 | 95 | ||
... | @@ -136,18 +131,6 @@ Mailutils Programs | ... | @@ -136,18 +131,6 @@ Mailutils Programs |
136 | 131 | ||
137 | * mailutils-config:: Get the Information about the Mailutils Build. | 132 | * mailutils-config:: Get the Information about the Mailutils Build. |
138 | 133 | ||
139 | Mailutils Configuration File | ||
140 | |||
141 | * common:: Options understood by most @sc{gnu} utilities. | ||
142 | * mailbox:: Specifies the mail spool location, and locking strategy. | ||
143 | * mailer:: Sets the mailer URL. | ||
144 | * address:: Specifies the default email address and domain. | ||
145 | * daemon:: Options common for daemon programs. | ||
146 | * auth:: Authentication-specific options. | ||
147 | * encryption:: Encryption options. | ||
148 | * logging:: Logging control options. | ||
149 | * sieve: sieve group. Sieve specific options | ||
150 | * config sample:: A sample configuration file. | ||
151 | 134 | ||
152 | @command{mail} --- Send and Receive Mail | 135 | @command{mail} --- Send and Receive Mail |
153 | 136 | ||
... | @@ -360,24 +343,60 @@ Preprocessor | ... | @@ -360,24 +343,60 @@ Preprocessor |
360 | @end detailmenu | 343 | @end detailmenu |
361 | @end menu | 344 | @end menu |
362 | 345 | ||
363 | @node Introduction, Programs, Top, Top | 346 | @node Introduction |
364 | @comment node-name, next, previous, up | ||
365 | @chapter Introduction | 347 | @chapter Introduction |
366 | 348 | ||
367 | @sc{gnu} Mailutils contains a series of useful mail clients, servers, | 349 | GNU Mailutils contains a series of useful mail clients, servers, |
368 | and libraries. These are the primary mail utilities of the GNU system. | 350 | and libraries. These are the primary mail utilities of the GNU system. |
369 | Specifically, this package contains a POP3 server, an IMAP4 server, | 351 | Specifically, this package contains a POP3 server, an IMAP4 server, |
370 | and a Sieve mail filter. It also provides a POSIX `mailx' client, | 352 | and a Sieve mail filter. It also provides a POSIX `mailx' client, |
371 | and a collection of other tools. The central library is capable of | 353 | and a collection of other tools. All utilities can manipulate the |
372 | accessing different mailbox formats and mailers as well as off of | 354 | mailboxes of various formats, both local, stored on the hard disk, |
373 | local or remote POP3 and IMAP4 servers. | 355 | and remote, accessed via network protocols, such as POP3 or IMAP4. |
356 | |||
357 | The GNU Mailutils libraries supply a rich set of primitives for | ||
358 | handling electronic mail in programs written in C, C++ or Scheme. | ||
374 | 359 | ||
375 | This software is part of the GNU Project and belongs to the Free | 360 | This software is part of the GNU Project and belongs to the Free |
376 | Software Foundation. All libraries are licensed using the GNU LGPL. | 361 | Software Foundation. All libraries are licensed using the GNU LGPL. |
377 | The documentation is licensed under the GNU FDL, and everything | 362 | The documentation is licensed under the GNU FDL, and everything |
378 | else is licensed using the GNU GPL. | 363 | else is licensed using the GNU GPL. |
379 | 364 | ||
380 | @subheading Why use this package? | 365 | @menu |
366 | * Book Contents:: What this Book Contains | ||
367 | * History:: A bit of History | ||
368 | @end menu | ||
369 | |||
370 | @node Book Contents | ||
371 | @section What this Book Contains | ||
372 | @UNREVISED | ||
373 | |||
374 | @FIXME{This is more a plan on how the document should be structured, | ||
375 | than a description of its actual structure. However it is:} | ||
376 | |||
377 | This book addresses a wide audience of both system administrators | ||
378 | and users that aim to use Mailutils programs, and programmers who wish | ||
379 | to use Mailutils libraries in their programs. Given this audience, | ||
380 | the book is divided in three major parts. | ||
381 | |||
382 | The first part provides a detailed description of each Mailutils | ||
383 | utility, and advices on how to use them in various situations. This | ||
384 | part is intended for users and system administrators who are using | ||
385 | Mailutils programs. If you are not interested in programming using | ||
386 | Mailutils, this is the only part you need to read. | ||
387 | |||
388 | Subsequent parts address programmers. | ||
389 | |||
390 | The second part is a tutorial which provides an introduction to | ||
391 | programming techniques for writing mail applications using GNU | ||
392 | Mailutils. | ||
393 | |||
394 | Finally, the third part contains a complete Mailutils library | ||
395 | reference. | ||
396 | |||
397 | @node History | ||
398 | @section A bit of History, and why use this package? | ||
399 | @UNREVISED | ||
381 | 400 | ||
382 | This package started off to try and handle large mailbox files more | 401 | This package started off to try and handle large mailbox files more |
383 | gracefully then current POP3 servers did. While it handles this task, | 402 | gracefully then current POP3 servers did. While it handles this task, |
... | @@ -386,14 +405,12 @@ without any real effort on your part. Also, if a new format is added | ... | @@ -386,14 +405,12 @@ without any real effort on your part. Also, if a new format is added |
386 | at a later date, your program will support that new format | 405 | at a later date, your program will support that new format |
387 | automatically as soon as it is compiled against the new library. | 406 | automatically as soon as it is compiled against the new library. |
388 | 407 | ||
389 | @node Programs, Libraries, Introduction, Top | 408 | @node Programs |
390 | @comment node-name, next, previous, up | ||
391 | @chapter Mailutils Programs | 409 | @chapter Mailutils Programs |
392 | @cindex Programs | 410 | @cindex Programs |
393 | @include programs.texi | 411 | @include programs.texi |
394 | 412 | ||
395 | @node Libraries, Sieve Language, Programs, Top | 413 | @node Libraries |
396 | @comment node-name, next, previous, up | ||
397 | @chapter Mailutils Libraries | 414 | @chapter Mailutils Libraries |
398 | @cindex Libraries | 415 | @cindex Libraries |
399 | 416 | ||
... | @@ -404,46 +421,38 @@ automatically as soon as it is compiled against the new library. | ... | @@ -404,46 +421,38 @@ automatically as soon as it is compiled against the new library. |
404 | * libsieve:: GNU Implementation of Sieve Mail Filtering. | 421 | * libsieve:: GNU Implementation of Sieve Mail Filtering. |
405 | @end menu | 422 | @end menu |
406 | 423 | ||
407 | @node libmailbox, libmuauth, Libraries, Libraries | 424 | @node libmailbox |
408 | @comment node-name, next, previous, up | ||
409 | @section Framework | 425 | @section Framework |
410 | @cindex Framework | 426 | @cindex Framework |
411 | @include framework.texi | 427 | @include framework.texi |
412 | 428 | ||
413 | @node libmuauth, libmu_scm, libmailbox, Libraries | 429 | @node libmuauth |
414 | @comment node-name, next, previous, up | ||
415 | @section Authentication Library | 430 | @section Authentication Library |
416 | @cindex Authentication Library | 431 | @cindex Authentication Library |
417 | @cindex libmuauth | 432 | @cindex libmuauth |
418 | @include libmuauth.texi | 433 | @include libmuauth.texi |
419 | 434 | ||
420 | @node libmu_scm, libsieve, libmuauth, Libraries | 435 | @node libmu_scm |
421 | @comment node-name, next, previous, up | ||
422 | @section Mailutils to Scheme Interface | 436 | @section Mailutils to Scheme Interface |
423 | @cindex Scheme | 437 | @cindex Scheme |
424 | @cindex libmu_scm | 438 | @cindex libmu_scm |
425 | @include libmu_scm.texi | 439 | @include libmu_scm.texi |
426 | 440 | ||
427 | @node libsieve, , libmu_scm, Libraries | 441 | @node libsieve |
428 | @comment node-name, next, previous, up | ||
429 | @section Sieve Library | 442 | @section Sieve Library |
430 | @cindex Sieve Library | 443 | @cindex Sieve Library |
431 | @cindex libsieve | 444 | @cindex libsieve |
432 | @include libsieve.texi | 445 | @include libsieve.texi |
433 | 446 | ||
434 | @node Sieve Language, Reporting Bugs, Libraries, Top | 447 | @node Sieve Language |
435 | @comment node-name, next, previous, up | ||
436 | @chapter Sieve Language | 448 | @chapter Sieve Language |
437 | @cindex Sieve Language | 449 | @cindex Sieve Language |
438 | @include sieve.texi | 450 | @include sieve.texi |
439 | 451 | ||
440 | @node Reporting Bugs, News, Sieve Language, Top | 452 | @node Reporting Bugs |
441 | @comment node-name, next, previous, up | ||
442 | @chapter Reporting Bugs | 453 | @chapter Reporting Bugs |
443 | 454 | ||
444 | Email bug reports to @email{bug-mailutils@@gnu.org}. | 455 | Email bug reports to @email{bug-mailutils@@gnu.org}. |
445 | Be sure to include the word ``mailutils'' somewhere | ||
446 | in the ``Subject:'' field. | ||
447 | 456 | ||
448 | As the purpose of bug reporting is to improve software, please be sure | 457 | As the purpose of bug reporting is to improve software, please be sure |
449 | to include maximum information when reporting a bug. The information | 458 | to include maximum information when reporting a bug. The information |
... | @@ -458,19 +467,17 @@ needed is: | ... | @@ -458,19 +467,17 @@ needed is: |
458 | The archives of bug-mailutils mailing list are available from | 467 | The archives of bug-mailutils mailing list are available from |
459 | @url{http://mail.gnu.org/@/mailman/@/listinfo/@/bug-mailutils}. | 468 | @url{http://mail.gnu.org/@/mailman/@/listinfo/@/bug-mailutils}. |
460 | 469 | ||
461 | @node News, Acknowledgement, Reporting Bugs, Top | 470 | @node News |
462 | @comment node-name, next, previous, up | 471 | @chapter Getting News About GNU Mailutils |
463 | @chapter Getting News About @sc{gnu} Mailutils | ||
464 | 472 | ||
465 | The two places to look for any news regarding @sc{gnu} Mailutils are the | 473 | The two places to look for any news regarding GNU Mailutils are the |
466 | Mailutils homepage at @url{http://www.gnu.org/@/software/@/mailutils}, and the | 474 | Mailutils homepage at @url{http://www.gnu.org/@/software/@/mailutils}, and the |
467 | project page at @url{http://savannah.gnu.org/@/projects/@/mailutils}. | 475 | project page at @url{http://savannah.gnu.org/@/projects/@/mailutils}. |
468 | 476 | ||
469 | The updated versions of this manual are available online from | 477 | The updated versions of this manual are available online from |
470 | @url{http://www.gnu.org/@/software/@/mailutils/@/manual}. | 478 | @url{http://www.gnu.org/@/software/@/mailutils/@/manual}. |
471 | 479 | ||
472 | @node Acknowledgement, References, News, Top | 480 | @node Acknowledgement |
473 | @comment node-name, next, previous, up | ||
474 | @chapter Acknowledgement | 481 | @chapter Acknowledgement |
475 | 482 | ||
476 | In no particular order, | 483 | In no particular order, |
... | @@ -500,8 +507,7 @@ Jordi Mallach @email{jordi@@sindominio.net} | ... | @@ -500,8 +507,7 @@ Jordi Mallach @email{jordi@@sindominio.net} |
500 | Wojciech Polak @email{polak@@gnu.org} | 507 | Wojciech Polak @email{polak@@gnu.org} |
501 | @end itemize | 508 | @end itemize |
502 | 509 | ||
503 | @node References, GNU FDL, Acknowledgement, Top | 510 | @node References |
504 | @comment node-name, next, previous, up | ||
505 | @appendix References | 511 | @appendix References |
506 | 512 | ||
507 | @itemize @bullet | 513 | @itemize @bullet |
... | @@ -619,12 +625,11 @@ Notifications} | ... | @@ -619,12 +625,11 @@ Notifications} |
619 | @end itemize | 625 | @end itemize |
620 | @end itemize | 626 | @end itemize |
621 | 627 | ||
622 | @node GNU FDL, Function Index, References, Top | 628 | @include usage.texi |
623 | @comment node-name, next, previous, up | 629 | |
624 | @include fdl.texi | 630 | @include fdl.texi |
625 | 631 | ||
626 | @node Function Index, Variable Index, GNU FDL, Top | 632 | @node Function Index |
627 | @comment node-name, next, previous, up | ||
628 | @unnumbered Function Index | 633 | @unnumbered Function Index |
629 | 634 | ||
630 | This is an alphabetical list of all Mailutils functions. | 635 | This is an alphabetical list of all Mailutils functions. |
... | @@ -632,25 +637,23 @@ This is an alphabetical list of all Mailutils functions. | ... | @@ -632,25 +637,23 @@ This is an alphabetical list of all Mailutils functions. |
632 | @printindex fn | 637 | @printindex fn |
633 | @page | 638 | @page |
634 | 639 | ||
635 | @node Variable Index, Keyword Index, Function Index, Top | 640 | @node Variable Index |
636 | @unnumbered Variable Index | 641 | @unnumbered Variable Index |
637 | @printindex vr | 642 | @printindex vr |
638 | @page | 643 | @page |
639 | 644 | ||
640 | @node Keyword Index, Program Index, Variable Index, Top | 645 | @node Keyword Index |
641 | @unnumbered Keyword Index | 646 | @unnumbered Keyword Index |
642 | @printindex ky | 647 | @printindex ky |
643 | @page | 648 | @page |
644 | 649 | ||
645 | @node Program Index, Concept Index, Keyword Index, Top | 650 | @node Program Index |
646 | @comment node-name, next, previous, up | ||
647 | @unnumbered Program Index | 651 | @unnumbered Program Index |
648 | 652 | ||
649 | @printindex pg | 653 | @printindex pg |
650 | @page | 654 | @page |
651 | 655 | ||
652 | @node Concept Index, , Program Index, Top | 656 | @node Concept Index |
653 | @comment node-name, next, previous, up | ||
654 | @unnumbered Concept Index | 657 | @unnumbered Concept Index |
655 | 658 | ||
656 | This is a general index of all issues discussed in this manual | 659 | This is a general index of all issues discussed in this manual | ... | ... |
... | @@ -324,7 +324,7 @@ aliases, like @option{--cc}, @option{--from}, etc.) | ... | @@ -324,7 +324,7 @@ aliases, like @option{--cc}, @option{--from}, etc.) |
324 | The argument to this option is a string of type specifications: | 324 | The argument to this option is a string of type specifications: |
325 | 325 | ||
326 | @multitable @columnfractions 0.20 0.80 | 326 | @multitable @columnfractions 0.20 0.80 |
327 | @item B @tab Use basic regular expressions | 327 | @item B @tab Use basic regular expressions |
328 | @item E @tab Use extended regular expressions | 328 | @item E @tab Use extended regular expressions |
329 | @item I @tab Ignore case | 329 | @item I @tab Ignore case |
330 | @item C @tab Case sensitive | 330 | @item C @tab Case sensitive | ... | ... |
This diff is collapsed.
Click to expand it.
doc/texinfo/rendition.texi
0 → 100644
1 | @c Let's use the concept of 'renditions' by Fra@,{c}ois Pinard | ||
2 | @c I extended it by adding a FIXME_FOOTNOTE variable, which controls | ||
3 | @c whether FIXME information should be placed in footnotes or | ||
4 | @c inlined. | ||
5 | |||
6 | @c ====================================================================== | ||
7 | @c This document has three levels of rendition: PUBLISH, DISTRIB or PROOF, | ||
8 | @c as decided by @set symbols. The PUBLISH rendition does not show | ||
9 | @c notes or marks asking for revision. Most users will prefer having more | ||
10 | @c information, even if this information is not fully revised for adequacy, | ||
11 | @c so DISTRIB is the default for distributions. The PROOF rendition | ||
12 | @c show all marks to the point of ugliness, but is nevertheless useful to | ||
13 | @c those working on the manual itself. | ||
14 | @c ====================================================================== | ||
15 | |||
16 | @c Set this symbol if you wish FIXMEs to appear in footnotes, instead | ||
17 | @c of being inserted into the text. | ||
18 | @c @set PROOF_FOOTNOTED | ||
19 | |||
20 | @ifclear PUBLISH | ||
21 | @ifclear DISTRIB | ||
22 | @ifclear PROOF | ||
23 | @set DISTRIB | ||
24 | @end ifclear | ||
25 | @end ifclear | ||
26 | @end ifclear | ||
27 | |||
28 | @ifset PUBLISH | ||
29 | @set RENDITION The book, version | ||
30 | @end ifset | ||
31 | |||
32 | @ifset DISTRIB | ||
33 | @set RENDITION FTP release, version | ||
34 | @end ifset | ||
35 | |||
36 | @ifset PROOF | ||
37 | @set RENDITION Proof reading version | ||
38 | @end ifset | ||
39 | |||
40 | @c Output marks for nodes needing revision, but not in PUBLISH rendition. | ||
41 | |||
42 | @macro UNREVISED | ||
43 | @ifclear PUBLISH | ||
44 | @quotation | ||
45 | (@emph{The information in this node may be obsolete or otherwise inaccurate.} | ||
46 | This message will disappear, once this node revised.) | ||
47 | @end quotation | ||
48 | @end ifclear | ||
49 | @end macro | ||
50 | |||
51 | @c Output various FIXME information only in PROOF rendition. | ||
52 | |||
53 | @macro FIXME{string} | ||
54 | @ifset PROOF | ||
55 | @ifset PROOF_FOOTNOTED | ||
56 | @footnote{@strong{FIXME:} \string\} | ||
57 | @end ifset | ||
58 | @ifclear PROOF_FOOTNOTED | ||
59 | @cartouche | ||
60 | @strong{<FIXME>} \string\ @strong{</>} | ||
61 | @end cartouche | ||
62 | @end ifclear | ||
63 | @end ifset | ||
64 | |||
65 | @end macro | ||
66 | |||
67 | @macro FIXME-ref{string} | ||
68 | @ifset PROOF | ||
69 | @strong{<REF>} \string\ @strong{</>} | ||
70 | @end ifset | ||
71 | |||
72 | @end macro | ||
73 | |||
74 | @macro FIXME-pxref{string} | ||
75 | @ifset PROOF | ||
76 | @strong{<PXREF>} \string\ @strong{</>} | ||
77 | @end ifset | ||
78 | |||
79 | @end macro | ||
80 | |||
81 | @macro FIXME-xref{string} | ||
82 | @ifset PROOF | ||
83 | @strong{<XREF>} \string\ @strong{</>} | ||
84 | @end ifset | ||
85 | |||
86 | @end macro |
... | @@ -392,7 +392,7 @@ If @var{filename} starts with a directory separator character | ... | @@ -392,7 +392,7 @@ If @var{filename} starts with a directory separator character |
392 | The @code{#searchpath} directive adds its argument to the list of | 392 | The @code{#searchpath} directive adds its argument to the list of |
393 | directories searched for loadable modules. It has the same effect | 393 | directories searched for loadable modules. It has the same effect |
394 | as @option{-L} command line switch used by @sc{gnu} sieve utility | 394 | as @option{-L} command line switch used by @sc{gnu} sieve utility |
395 | (@pxref{sieve group}). | 395 | (@FIXME-pxref{sieve group}). |
396 | 396 | ||
397 | @node Require Statement | 397 | @node Require Statement |
398 | @section Require Statement | 398 | @section Require Statement | ... | ... |
1 | /* GNU Mailutils -- a suite of utilities for electronic mail | 1 | /* GNU Mailutils -- a suite of utilities for electronic mail |
2 | Copyright (C) 2007 Free Software Foundation, Inc. | 2 | Copyright (C) 2007, 2008 Free Software Foundation, Inc. |
3 | 3 | ||
4 | This library is free software; you can redistribute it and/or | 4 | This library is free software; you can redistribute it and/or |
5 | modify it under the terms of the GNU Lesser General Public | 5 | modify it under the terms of the GNU Lesser General Public |
... | @@ -25,10 +25,17 @@ | ... | @@ -25,10 +25,17 @@ |
25 | extern "C" { | 25 | extern "C" { |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | struct mu_conf_option | ||
29 | { | ||
30 | char *name; | ||
31 | char *descr; | ||
32 | }; | ||
33 | |||
28 | extern char *mu_license_text; | 34 | extern char *mu_license_text; |
29 | extern void mu_print_options (void); | 35 | extern void mu_print_options (void); |
30 | extern void mu_fprint_options (FILE *fp); | 36 | extern void mu_fprint_options (FILE *fp); |
31 | extern const char *mu_check_option (char *name); | 37 | extern void mu_fprint_conf_option (FILE *fp, const struct mu_conf_option *opt); |
38 | extern const struct mu_conf_option *mu_check_option (char *name); | ||
32 | 39 | ||
33 | #ifdef __cplusplus | 40 | #ifdef __cplusplus |
34 | } | 41 | } | ... | ... |
... | @@ -58,16 +58,21 @@ static struct argp_option mu_common_argp_options[] = | ... | @@ -58,16 +58,21 @@ static struct argp_option mu_common_argp_options[] = |
58 | N_("Show compilation options"), 0 }, | 58 | N_("Show compilation options"), 0 }, |
59 | { "config-help", OPT_HELP_CONFIG, NULL, 0, | 59 | { "config-help", OPT_HELP_CONFIG, NULL, 0, |
60 | N_("Show configuration file summary"), 0 }, | 60 | N_("Show configuration file summary"), 0 }, |
61 | { "no-user-rcfile", OPT_NO_USER_RCFILE, NULL, 0, | 61 | { "no-user-config", OPT_NO_USER_RCFILE, NULL, 0, |
62 | N_("Do not load user configuration file"), 0 }, | 62 | N_("Do not load user configuration file"), 0 }, |
63 | { "no-site-rcfile", OPT_NO_SITE_RCFILE, NULL, 0, | 63 | { "no-user-rcfile", 0, NULL, OPTION_ALIAS, NULL }, |
64 | { "no-site-config", OPT_NO_SITE_RCFILE, NULL, 0, | ||
64 | N_("Do not load site configuration file"), 0 }, | 65 | N_("Do not load site configuration file"), 0 }, |
65 | { "rcfile", OPT_RCFILE, N_("FILE"), 0, | 66 | { "no-site-rcfile", 0, NULL, OPTION_ALIAS, NULL }, |
67 | { "config-file", OPT_RCFILE, N_("FILE"), 0, | ||
66 | N_("Load this configuration file"), 0, }, | 68 | N_("Load this configuration file"), 0, }, |
67 | { "rcfile-verbose", OPT_RCFILE_VERBOSE, NULL, 0, | 69 | { "rcfile", 0, NULL, OPTION_ALIAS, NULL }, |
70 | { "config-verbose", OPT_RCFILE_VERBOSE, NULL, 0, | ||
68 | N_("Verbosely log parsing of the configuration files"), 0 }, | 71 | N_("Verbosely log parsing of the configuration files"), 0 }, |
69 | { "rcfile-lint", OPT_RCFILE_LINT, NULL, 0, | 72 | { "rcfile-verbose", 0, NULL, OPTION_ALIAS, NULL }, |
73 | { "config-lint", OPT_RCFILE_LINT, NULL, 0, | ||
70 | N_("Check configuration file syntax and exit"), 0 }, | 74 | N_("Check configuration file syntax and exit"), 0 }, |
75 | { "rcfile-lint", 0, NULL, OPTION_ALIAS, NULL }, | ||
71 | { NULL, 0, NULL, 0, NULL, 0 } | 76 | { NULL, 0, NULL, 0, NULL, 0 } |
72 | }; | 77 | }; |
73 | 78 | ... | ... |
... | @@ -21,6 +21,7 @@ | ... | @@ -21,6 +21,7 @@ |
21 | #endif | 21 | #endif |
22 | 22 | ||
23 | #include <mailutils/nls.h> | 23 | #include <mailutils/nls.h> |
24 | #include <mailutils/version.h> | ||
24 | #include <stdio.h> | 25 | #include <stdio.h> |
25 | #include <string.h> | 26 | #include <string.h> |
26 | 27 | ||
... | @@ -42,121 +43,130 @@ char *mu_license_text = | ... | @@ -42,121 +43,130 @@ char *mu_license_text = |
42 | "\n" | 43 | "\n" |
43 | ); | 44 | ); |
44 | 45 | ||
45 | static char *mu_conf_option[] = { | 46 | static struct mu_conf_option mu_conf_option[] = { |
46 | "VERSION=" VERSION, | 47 | { "VERSION=" VERSION, N_("Version of this package") }, |
47 | #ifdef USE_LIBPAM | 48 | #ifdef USE_LIBPAM |
48 | "USE_LIBPAM", | 49 | { "USE_LIBPAM", N_("PAM support") }, |
49 | #endif | 50 | #endif |
50 | #ifdef HAVE_LIBLTDL | 51 | #ifdef HAVE_LIBLTDL |
51 | "HAVE_LIBLTDL", | 52 | { "HAVE_LIBLTDL", N_("a portable `dlopen' wrapper library") }, |
52 | #endif | 53 | #endif |
53 | #ifdef WITH_BDB2 | 54 | #ifdef WITH_BDB2 |
54 | "WITH_BDB2", | 55 | { "WITH_BDB2", N_("Berkeley DB v. 2") }, |
55 | #endif | 56 | #endif |
56 | #ifdef WITH_NDBM | 57 | #ifdef WITH_NDBM |
57 | "WITH_NDBM", | 58 | { "WITH_NDBM", }, |
58 | #endif | 59 | #endif |
59 | #ifdef WITH_OLD_DBM | 60 | #ifdef WITH_OLD_DBM |
60 | "WITH_OLD_DBM", | 61 | { "WITH_OLD_DBM", N_("Old DBM support") }, |
61 | #endif | 62 | #endif |
62 | #ifdef WITH_GDBM | 63 | #ifdef WITH_GDBM |
63 | "WITH_GDBM", | 64 | { "WITH_GDBM", N_("GNU DBM") }, |
64 | #endif | 65 | #endif |
65 | #ifdef WITH_GNUTLS | 66 | #ifdef WITH_GNUTLS |
66 | "WITH_GNUTLS", | 67 | { "WITH_GNUTLS", N_("TLS support using GNU TLS") }, |
67 | #endif | 68 | #endif |
68 | #ifdef WITH_GSASL | 69 | #ifdef WITH_GSASL |
69 | "WITH_GSASL", | 70 | { "WITH_GSASL", N_("SASL support using GNU SASL") }, |
70 | #endif | 71 | #endif |
71 | #ifdef WITH_GSSAPI | 72 | #ifdef WITH_GSSAPI |
72 | "WITH_GSSAPI", | 73 | { "WITH_GSSAPI", N_("GSSAPI support") }, |
73 | #endif | 74 | #endif |
74 | #ifdef WITH_GUILE | 75 | #ifdef WITH_GUILE |
75 | "WITH_GUILE", | 76 | { "WITH_GUILE", N_("Support for Guile as extension language") }, |
76 | #endif | 77 | #endif |
77 | #ifdef WITH_PTHREAD | 78 | #ifdef WITH_PTHREAD |
78 | "WITH_PTHREAD", | 79 | { "WITH_PTHREAD", N_("Support for POSIX threads") }, |
79 | #endif | 80 | #endif |
80 | #ifdef WITH_READLINE | 81 | #ifdef WITH_READLINE |
81 | "WITH_READLINE", | 82 | { "WITH_READLINE", N_("GNU Readline") }, |
82 | #endif | 83 | #endif |
83 | #ifdef HAVE_MYSQL | 84 | #ifdef HAVE_MYSQL |
84 | "HAVE_MYSQL", | 85 | { "HAVE_MYSQL", N_("MySQL") }, |
85 | #endif | 86 | #endif |
86 | #ifdef HAVE_PGSQL | 87 | #ifdef HAVE_PGSQL |
87 | "HAVE_PGSQL", | 88 | { "HAVE_PGSQL", N_("PostgreSQL") }, |
88 | #endif | 89 | #endif |
89 | #ifdef WITH_LDAP | 90 | #ifdef WITH_LDAP |
90 | "WITH_LDAP", | 91 | { "WITH_LDAP", }, |
91 | #endif | 92 | #endif |
92 | #ifdef ENABLE_VIRTUAL_DOMAINS | 93 | #ifdef ENABLE_VIRTUAL_DOMAINS |
93 | "ENABLE_VIRTUAL_DOMAINS", | 94 | { "ENABLE_VIRTUAL_DOMAINS", N_("Support for virtual mail domains") }, |
94 | #endif | 95 | #endif |
95 | #ifdef ENABLE_IMAP | 96 | #ifdef ENABLE_IMAP |
96 | "ENABLE_IMAP", | 97 | { "ENABLE_IMAP", N_("IMAP4D protocol support") }, |
97 | #endif | 98 | #endif |
98 | #ifdef ENABLE_POP | 99 | #ifdef ENABLE_POP |
99 | "ENABLE_POP", | 100 | { "ENABLE_POP", N_("POP3D protocol support") }, |
100 | #endif | 101 | #endif |
101 | #ifdef ENABLE_MH | 102 | #ifdef ENABLE_MH |
102 | "ENABLE_MH", | 103 | { "ENABLE_MH", N_("MH mail storage support") }, |
103 | #endif | 104 | #endif |
104 | #ifdef ENABLE_MAILDIR | 105 | #ifdef ENABLE_MAILDIR |
105 | "ENABLE_MAILDIR", | 106 | { "ENABLE_MAILDIR", N_("Maildir mail storage support") }, |
106 | #endif | 107 | #endif |
107 | #ifdef ENABLE_SMTP | 108 | #ifdef ENABLE_SMTP |
108 | "ENABLE_SMTP", | 109 | { "ENABLE_SMTP", N_("SMTP protocol support") }, |
109 | #endif | 110 | #endif |
110 | #ifdef ENABLE_SENDMAIL | 111 | #ifdef ENABLE_SENDMAIL |
111 | "ENABLE_SENDMAIL", | 112 | { "ENABLE_SENDMAIL", N_("Sendmail command line interface support")}, |
112 | #endif | 113 | #endif |
113 | #ifdef ENABLE_NNTP | 114 | #ifdef ENABLE_NNTP |
114 | "ENABLE_NNTP", | 115 | { "ENABLE_NNTP", N_("NNTP protocol support") }, |
115 | #endif | 116 | #endif |
116 | #ifdef ENABLE_RADIUS | 117 | #ifdef ENABLE_RADIUS |
117 | "ENABLE_RADIUS", | 118 | { "ENABLE_RADIUS", N_("RADIUS protocol support") }, |
118 | #endif | 119 | #endif |
119 | #ifdef WITH_INCLUDED_LIBINTL | 120 | #ifdef WITH_INCLUDED_LIBINTL |
120 | "WITH_INCLUDED_LIBINTL", | 121 | { "WITH_INCLUDED_LIBINTL", N_("GNU libintl compiled in") }, |
121 | #endif | 122 | #endif |
122 | NULL | 123 | { NULL } |
123 | }; | 124 | }; |
124 | 125 | ||
125 | void | 126 | void |
127 | mu_fprint_conf_option (FILE *fp, const struct mu_conf_option *opt) | ||
128 | { | ||
129 | fprintf (fp, "%s", opt->name); | ||
130 | if (opt->descr) | ||
131 | fprintf (fp, "\t- %s", _(opt->descr)); | ||
132 | fputc('\n', fp); | ||
133 | } | ||
134 | |||
135 | void | ||
126 | mu_fprint_options (FILE *fp) | 136 | mu_fprint_options (FILE *fp) |
127 | { | 137 | { |
128 | int i; | 138 | int i; |
129 | 139 | ||
130 | for (i = 0; mu_conf_option[i]; i++) | 140 | for (i = 0; mu_conf_option[i].name; i++) |
131 | fprintf (fp, "%s\n", mu_conf_option[i]); | 141 | mu_fprint_conf_option (fp, mu_conf_option + i); |
132 | } | 142 | } |
133 | 143 | ||
134 | void | 144 | void |
135 | mu_print_options (FILE *fp) | 145 | mu_print_options () |
136 | { | 146 | { |
137 | mu_fprint_options (stdout); | 147 | mu_fprint_options (stdout); |
138 | } | 148 | } |
139 | 149 | ||
140 | const char * | 150 | const struct mu_conf_option * |
141 | mu_check_option (char *name) | 151 | mu_check_option (char *name) |
142 | { | 152 | { |
143 | int i; | 153 | int i; |
144 | 154 | ||
145 | for (i = 0; mu_conf_option[i]; i++) | 155 | for (i = 0; mu_conf_option[i].name; i++) |
146 | { | 156 | { |
147 | int len; | 157 | int len; |
148 | char *q, *p = strchr (mu_conf_option[i], '='); | 158 | char *q, *p = strchr (mu_conf_option[i].name, '='); |
149 | if (p) | 159 | if (p) |
150 | len = p - mu_conf_option[i]; | 160 | len = p - mu_conf_option[i].name; |
151 | else | 161 | else |
152 | len = strlen (mu_conf_option[i]); | 162 | len = strlen (mu_conf_option[i].name); |
153 | 163 | ||
154 | if (strncasecmp (mu_conf_option[i], name, len) == 0) | 164 | if (strncasecmp (mu_conf_option[i].name, name, len) == 0) |
155 | return mu_conf_option[i]; | 165 | return &mu_conf_option[i]; |
156 | else if ((q = strchr (mu_conf_option[i], '_')) != NULL | 166 | else if ((q = strchr (mu_conf_option[i].name, '_')) != NULL |
157 | && strncasecmp (q + 1, name, | 167 | && strncasecmp (q + 1, name, |
158 | len - (q - mu_conf_option[i]) - 1) == 0) | 168 | len - (q - mu_conf_option[i].name) - 1) == 0) |
159 | return mu_conf_option[i]; | 169 | return &mu_conf_option[i]; |
160 | } | 170 | } |
161 | return NULL; | 171 | return NULL; |
162 | } | 172 | } | ... | ... |
... | @@ -370,12 +370,13 @@ proc mu_version {} { | ... | @@ -370,12 +370,13 @@ proc mu_version {} { |
370 | } | 370 | } |
371 | 371 | ||
372 | set output [remote_exec host "$MU_TOOL --show-config-options"] | 372 | set output [remote_exec host "$MU_TOOL --show-config-options"] |
373 | set flg [split [lindex $output 1]] | 373 | set flg [split [lindex $output 1] "\n"] |
374 | for {set i 0} {$i < [llength $flg]} {incr i} { | 374 | for {set i 0} {$i < [llength $flg]} {incr i} { |
375 | if [regexp "(.*)=(.*)" [lindex $flg $i] var name value] { | 375 | regsub "(\t.*)?\r" [lindex $flg $i] "" string |
376 | if [regexp "(.*)=(.*)" $string var name value] { | ||
376 | set MU_CAPABILITY($name) $value | 377 | set MU_CAPABILITY($name) $value |
377 | } else { | 378 | } elseif {$string != ""} { |
378 | set MU_CAPABILITY([lindex $flg $i]) 1 | 379 | set MU_CAPABILITY($string) 1 |
379 | } | 380 | } |
380 | } | 381 | } |
381 | if [info exists MU_CAPABILITY(VERSION)] { | 382 | if [info exists MU_CAPABILITY(VERSION)] { | ... | ... |
-
Please register or sign in to post a comment