Commit f104514b f104514b52f3078230a5d1dca92aacc6bd17f698 by Sergey Poznyakoff

Updated

1 parent 84319bba
2003-09-20 Sergey Poznyakoff
Install under mailutils/gnu only those headers which are
missing on the system.
Include regex to libmailbox if the system's libc lacks it.
Add new functions for handling reply subject headers.
* Makefile.am: Added headers
* m4/mu_libobj.m4 (MU_HEADER,MU_FINISH_LINKS): New macros
* configure.ac: Use MU_HEADER and MU_FINISH_LINKS where needed
* m4/regex.m4: Likewise
* dotlock/Makefile.am: Fixed INCLUDES
* lib/Makefile.am: Updated
* mailbox/Makefile.am: Likewise.
* examples/Makefile.am: Likewise.
* frm/Makefile.am: Likewise.
* guimb/Makefile.am: Likewise.
* imap4d/Makefile.am: Likewise.
* include/mailutils/gnu/Makefile.am: Likewise.
* libsieve/Makefile.am: Likewise.
* mail/Makefile.am: Likewise.
* mail.local/Makefile.am: Likewise.
* mail.remote/Makefile.am: Likewise.
* mailbox/imap/Makefile.am: Likewise.
* mailbox/maildir/Makefile.am: Likewise.
* mailbox/mbox/Makefile.am: Likewise.
* mailbox/mh/Makefile.am: Likewise.
* mailbox/pop/Makefile.am: Likewise.
* messages/Makefile.am: Likewise.
* mh/Makefile.am: Likewise.
* pop3d/Makefile.am: Likewise.
* readmsg/Makefile.am: Likewise.
* sieve/Makefile.am: Likewise.
* from/Makefile.am: Likewise.
* comsat/Makefile.am: Likewise.
* auth/Makefile.am: Likewise.
* headers: New directory
* headers/Makefile.am: New file
* headers/posix/Makefile.am: New file
* include/mailutils/gnu/argp.h: Moved to ...
* headers/argp.h: ... here
* include/mailutils/gnu/getopt.h: Moved to ...
* headers/getopt.h: ... here
* lib/regex.h: Moved to ...
* headers/regex.h: ... here
* lib/posix/regex.h: Moved to ...
* headers/posix/regex.h: ... here
* lib/posix/Makefile.am: Removed
* lib/posix/.cvsignore: Removed
* lib/posix: Removed
* lib/regex.c: Moved to ...
* mailbox/regex.c: ... here
* include/mailutils/gnu/.cvsignore: Updated
* mailbox/munre.c: New file
* include/mailutils/mutil.h (munre_set_regex)
(munre_subject): New functions.
* mail/followup.c: Use munre_subject() and util_reply_prefix().
* mail/reply.c: Likewise
* mail/mail.c (struct argp_option options): Removed irrelevant
OPTION_DOC.
(main): Set default replyprefix
* mail/mail.h (util_reply_prefix): New function
* mail/util.c: Likewise
(util_setenv): A hack to properly handle "replyregex".
* mail/var.c (run_editor): Fixed return type.
* mh/mh_format.c (builtin_unre): Use munre_subject()
(builtin_isreply,builtin_reply_regex): New functions
* mh/mh.h (mh_set_reply_regex): New function.
* mh/mh_init.c: Likewise.
* mh/mh_global.c (mh_read_profile): Read Reply-Regex
* mh/README: Updated
* mh/replcomps: Updated
* mh/replgroupcomps: Updated
* doc/texinfo/programs.texi: Updated
2003-09-18 Sergey Poznyakoff
* mailbox/mh/mbox.c (_mh_message_delete): Zero out the
......
......@@ -17,7 +17,7 @@
## Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
INCLUDES = -I${top_srcdir}/include -I${top_srcdir}/mailbox/include -I${top_srcdir}/lib @INTLINCS@
INCLUDES = -I${top_srcdir}/include -I${top_srcdir}/mailbox/include -I${top_srcdir}/lib -I${top_builddir}/include/mailutils/gnu @INTLINCS@
AM_CFLAGS = -DSITE_VIRTUAL_PWDDIR=\"@SITE_VIRTUAL_PWDDIR@\" \
-DSITE_CRAM_MD5_PWD=\"@SITE_CRAM_MD5_PWD@\"
......
......@@ -17,7 +17,7 @@
## Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
INCLUDES =-I$(srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/include @INTLINCS@
INCLUDES =-I$(srcdir) -I$(top_srcdir)/lib -I${top_builddir}/include/mailutils/gnu -I$(top_srcdir)/include @INTLINCS@
sbin_PROGRAMS = comsatd
......
......@@ -1913,6 +1913,33 @@ configuration file upon startup. See @ref{Mail Configuration Files}.
When set, any outgoing message will be saved to the named file.
@item replyprefix
@*Type: String
@*Default: @samp{Re: }
Sets the prefix that will be used when constructing the subject line
of a reply message.
@item replyregex
@*Type: String
@*Default: @samp{^re: *}
Sets the regular expression used to recognize subjects of reply
messages. If the @code{Subject} header of the message matches this
expression, the value of @code{replyprefix} will not be prepended to
it before replying. The expression should be a POSIX extended regular
expression. The comparison is case-insensitive.
For example, to recognize usual English, Polish, Norwegian and German
reply subject styles, use:
@example
set replyregex="^(re|odp|aw|ang)(\\[[0-9]+\\])?:[[:blank:]]"
@end example
@noindent
(Notice the quoting of backslash characters).
@item save
@*Type: Boolean.
@*Default: True.
......
......@@ -17,7 +17,7 @@
## Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/lib @INTLINCS@
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/lib -I${top_builddir}/include/mailutils/gnu @INTLINCS@
SUBDIRS = testsuite
bin_PROGRAMS = from
......
......@@ -20,11 +20,7 @@
#include <mailutils/types.h>
#ifdef HAVE_ARGP_H
# include <argp.h>
#else
# include <mailutils/gnu/argp.h>
#endif
#include <argp.h>
#define MODE_INTERACTIVE 0
#define MODE_DAEMON 1
......
......@@ -3,4 +3,5 @@ Makefile.in
getopt.h
argp.h
regex.h
posix
posix/regex.h
......
......@@ -50,6 +50,48 @@ from its argument. Useful for creating subjects in reply messages:
%<{subject}Subject: Re: %(unre{subject})\\n%>
*** reply_regex
Argument: string
Return: none
Sets the regular expression used to recognize reply messages. The
argument should be a POSIX extended regular expression. The matching
is case insensitive.
For example, the following invocation
%(reply_regex ^\(re|aw|ang|odp\)\(\\[[0-9]+\\]\)?:[[:blank:]])
corresponds to the English "Re", Polish "Odp", Norwegian "Aw" or
German "Ang", optionally followed by a number in brackets, followed
by colon and any amount of whitespace. Notice the quoting of the
regex metacharacters.
See also `Reply-Regex' and `isreply' below.
*** isreply
Argument: [OPTIONAL] string
Return: boolean
If argument is not given, the value of 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
Reply-Regex or via the format function %(reply_regex).
This function is useful for creating Subject: headers in reply
messages. For example, consider the following construction:
%<{subject}%(lit)%<(isreply)%?\
(profile reply-prefix)%(concat)%|%(concat Re:)%>\
%(concat{subject})%(printhdr Subject: )\n%>
If the Subject: header already contained reply prefix, this construct
leaves it unchanged. Otherwise it prepends to it the value of
Reply-Prefix profile variable, or, if it is unset, the string "Re:".
This expression is used in default replcomps and replgroupcomps files.
*** rcpt
Argument: string, one of "to", "cc", "me", "all"
Return: boolean
......@@ -78,7 +120,6 @@ argument. The output is formatted as RFC 822 header, i.e.
it is split at whitespace characters nearest to the width boundary
and each subsequent segment is prefixed with horizontal tabulation.
*** in_reply_to
Argument: none
Return: string
......@@ -91,6 +132,23 @@ Return: string
Generates the value for the References: header according to RFC 2822.
* New profile variables:
** Reply-Regex
Sets the regular expression used to recognize reply messages. The
argument should be a POSIX extended regular expression. The matching
is case insensitive.
For example, setting in your .mh_profile:
Reply-Regex: ^(re|aw|ang|odp)(\[[0-9]+\])?:[[:blank:]]
will make the default replcomps and replgroupcomps formats recognize
usual English, Norwiegian, German and Polish reply subject prefixes.
See also format functions `reply_regex' and `isreply'.
* rmm
** Different behaviour if one of the messages in the list does not exist.
......
......@@ -9,7 +9,7 @@
%(lit)%<(rcpt to)%(formataddr{to})%>%<(rcpt cc)%(formataddr{cc})%>%<(rcpt me)%(formataddr(me))%>\
%<(nonnull)%(void(width))%(putaddr cc: )\n%>\
%<{fcc}Fcc: %{fcc}\n%>\
%<{subject}%(lit)%(concat(unre{subject}))%(printhdr Subject: Re: )\n%>\
%<{subject}%(lit)%<(isreply)%?(profile reply-prefix)%(concat)%|%(concat Re:)%>%(concat{subject})%(printhdr Subject: )\n%>\
%(lit)%(concat(in_reply_to))%<(nonnull)%(void(width))%(printhdr In-reply-to: )\n%>\
%(lit)%(concat(references))%<(nonnull)%(void(width))%(printhdr References: )\n%>\
X-Mailer: MH \(%(package_string)\)\n\
......
......@@ -13,7 +13,7 @@
%<(nonnull)%(void(width))%(putaddr cc: )\n%>%>\
%;
%<{fcc}Fcc: %{fcc}\n%>\
%<{subject}%(lit)%(concat(unre{subject}))%(printhdr Subject: Re: )\n%>\
%<{subject}%(lit)%<(isreply{subject})%?(profile reply-prefix)%(concat)%|%(concat Re:)%>%(concat{subject})%(printhdr Subject: )\n%>\
%(lit)%(concat(in_reply_to))%<(nonnull)%(void(width))%(printhdr In-reply-to: )\n%>\
%(lit)%(concat(references))%<(nonnull)%(void(width))%(printhdr References: )\n%>\
X-Mailer: MH \(%(package_string)\)\n\
......