This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mailutils".

http://git.savannah.gnu.org/cgit/mailutils.git/commit/?id=31e90a814915648fe37d1e579cfec4e407290396

The branch, master has been updated
       via  31e90a814915648fe37d1e579cfec4e407290396 (commit)
      from  cdb95d01e4ead871b5d10543a32dd28ea5740a0d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 31e90a814915648fe37d1e579cfec4e407290396
Author: Sergey Poznyakoff <g...@gnu.org.ua>
Date:   Wed Oct 28 12:26:21 2015 +0200

    Document Sieve extensions

-----------------------------------------------------------------------

Summary of changes:
 doc/texinfo/sieve.texi        |   75 +++++++++++++++++++++++++++++-----------
 libmu_sieve/extensions/pipe.c |   31 +++++++++++++++--
 2 files changed, 82 insertions(+), 24 deletions(-)

diff --git a/doc/texinfo/sieve.texi b/doc/texinfo/sieve.texi
index 5e77fec..b5391b1 100644
--- a/doc/texinfo/sieve.texi
+++ b/doc/texinfo/sieve.texi
@@ -968,6 +968,35 @@ less than @var{count}, the test is true; otherwise, it is 
false.
 If the tagged argument is not given, @samp{:over} is assumed. 
 @end deftypefn
 
+@deftypefn Test {} pipe [:envelope] [:header] [:body] @
+                        [:exit @var{code}(number)] @
+                       [:signal @var{code}(number)] @
+                        @var{command}(string)
+@*Synopsis:
+@smallexample
+require "test-pipe";
+
+if pipe @var{command}
+  @{
+    @dots{}
+  @}
+@end smallexample
+@*Description: 
+The @code{pipe} test executes a shell command specified by its
+argument and pipes the entire message (including envelope) to its
+standard input.  When given, tags @code{:envelope}, @code{:header},
+and @code{:body} control what parts of the message to pipe to the command.
+
+In the absence of the @code{:exit} tag, the test returns true if
+the command exits with code 0.  If @code{:exit} is given, the test returns
+true if the command exits with code equal to its argument.
+
+The @code{:signal} tag determines the result of the test in case if the program
+exits on signal.  By default, the test returns false.  If @code{:signal}
+is given and the number of signal which caused the program to terminate
+matches its argument, the test returns true.
+@end deftypefn
+
 @deftypefn Test {} spamd [:host @var{tcp-host}(string)] @
                          [:port @var{tcp-port}(number)] @
                          [:socket @var{unix-socket}(string)] @
@@ -1046,7 +1075,7 @@ if list @var{args}
   @}
 @end smallexample  
 @*Description:  
-The @code{list} test evaluates to true if any of @var{headers} match any
+The @code{list} test evaluates to true if any of @var{headers} matches any
 key from @var{keys}.  Each header is regarded as containing a list of
 keywords.  By default, comma is assumed as list separator.  This can be
 overridden by specifying the @code{:delim} tag, whose value is a
@@ -1362,13 +1391,13 @@ the old message in a new one.
 
 @node External Actions
 @subsection External Actions
-@UNREVISED
   GNU Mailutils is shipped with a set of external Sieve
 actions.  These actions are compiled as loadable modules and must be
 required prior to use (@pxref{Require Statement}).
 
 @deftypefn Action {}  moderator [:keep] [:address @var{address}(string)] @
-                                [:source @var{sieve-file}(string)]
+                                [:source @var{sieve-file}(string)] @
+                                [:program @var{sieve-text}(string)]
 @*Synopsis:
 @smallexample
 require "moderator"
@@ -1401,9 +1430,16 @@ control message, thereby causing the submission to be 
discarded.  The
 @code{:address} tag.  After discarding the message, @code{moderator}
 marks it as deleted, unless it is given @code{:keep} tag. 
 
-The argument of @code{:source} tag, if given, specifies the Sieve
-source file to be used on the message.  If @code{:tag} is not present,
-@code{moderator} will create and use a copy of the existing Sieve machine.
+If the @code{:source} tag is given, its argument specifies a Sieve
+source file to be used on the message.  Otherwise, if @code{:program}
+is given, its argument supplies a Sieve program to be used on this
+message.  At most one of these tags may be specified.  Supplying them
+both, or supplying several instances of the same tag, is an error. The
+behavior of the action in this case is undefined.
+   
+If neither @code{:program} nor @code{:source} is given,
+@code{moderator} will create a copy of the existing Sieve machine and
+use it on the message.
 
 The action checks the message structure: it will bail out if the message
 does not have exactly 3 MIME parts, or if parts 2 and 3 are not of
@@ -1421,22 +1457,19 @@ if allof(header :is "Sender" "mailman-bounces@@gnu.org",
 @end smallexample
 @end deftypefn
 
-@deftypefn Action {} pipe [:envelope] @var{command}(string)
+@deftypefn Action {} pipe [:envelope] [:header] [:body] @var{command}(string)
 @*Synopsis:
 @smallexample
 require "pipe";
-if pipe @var{args}
-  @{
-     @dots{}
-  @}
+
+pipe @var{command}
 @end smallexample
 @*Description:
-The @code{pipe} action sends executes a command specified by its
-argument and sends the entire message to its standard input.  The
-@var{command} argument supplies the command line.
-
-The envelope of the message is included, if the @code{:envelope} tag
-is given. 
+The @code{pipe} action executes a shell command specified by its
+argument and pipes the entire message (including envelope) to its
+standard input.  When given, tags @code{:envelope}, @code{:header},
+and @code{:body} control what parts of the message to pipe to the
+command.
 
 @*Example:
 The example below uses the @command{maidag} utility
@@ -1479,12 +1512,12 @@ If the @code{:file} tag is present, @var{text} is 
treated as the name
 of the file to read the body of the reply message from.  When used together
 with tag @code{:rfc2822}, the file should be formatted as a valid RFC
 2822 message, i.e. headers followed by empty line and body.  Headers
-must not contain @samp{To}, @samp{From}, and @samp{Subject}, as these
+may not contain @samp{To}, @samp{From}, and @samp{Subject}, as these
 will be generated automatically.
 
 If the @code{:subject} tag is given, its argument sets the subject of
 the message.  Otherwise, the subject is formed by prefixing original
-subject with @samp{Re:}, or @var{prefix}, given with the
+subject with @samp{Re:}, or the @var{prefix} given with the
 @code{:reply_prefix} tag.  Before prefixing, any original prefixes
 matching extended regular expression @var{expr} (@code{:reply_regex}
 tag) are stripped from the subject line.  If @code{:reply_regex} is not
@@ -1586,11 +1619,11 @@ may disappear from the subsequent releases.
 @item @code{fileinto} action
 
 The @code{fileinto} action allows to specify permissions on the mailbox,
-in case it is created (@pxref{fileinto}).
+in case it will be created (@pxref{fileinto}).
 
 @item Match type optional argument.
 
-Along with the usual @code{:is}, @code{:matches} and @code{contains}
+Along with the usual @code{:is}, @code{:matches} and @code{:contains}
 matching type, GNU sieve library understands @code{:regex} type.  This
 matching type toggles POSIX Extended Regular Expression matching.
 @end enumerate
diff --git a/libmu_sieve/extensions/pipe.c b/libmu_sieve/extensions/pipe.c
index e474c2c..a5c4cc8 100644
--- a/libmu_sieve/extensions/pipe.c
+++ b/libmu_sieve/extensions/pipe.c
@@ -16,12 +16,37 @@
    Public License along with this library.  If not, see
    <http://www.gnu.org/licenses/>. */
 
-/* Syntax: pipe [:envelope] <program: string>
+/* The "pipe" action
+   
+   Syntax: pipe [:envelope] [:header] [:body]
+                <command: string>
 
    The pipe action executes a shell command specified by its
-   argument and pipes the entire message to its standard input.
-   The envelope of the message is included, if the :envelope tag is given.
-
+   argument and pipes the entire message (including envelope) to its
+   standard input.  When given, tags :envelope, :header, and :body
+   control what parts of the message to pipe to the command.
+   
+   The "pipe" test
+   
+   Syntax: pipe [:envelope] [:header] [:body]
+                [:exit <code: number>]
+               [:signal <code: number>]
+                <command: string>
+
+   The pipe test executes a shell command specified by its
+   argument and pipes the entire message (including envelope) to its
+   standard input.  When given, tags :envelope, :header, and :body
+   control what parts of the message to pipe to the command.
+
+   In the absence of :exit and :signal tags, the test returns true if
+   the command exits with code 0.  If :exit is given, the test returns
+   true if the command exits with code equal to its argument.
+
+   The :signal tag determines the result in case if the program
+   exits on signal.  By default, the test returns false.  If :signal
+   is given and the number of signal which caused the program to terminate
+   matches its argument, the test returns true.
+               
    Notes/FIXME: 1. it would be nice to implement meta-variables in
                <program call> which would expand to various
                items from the message being handled.


hooks/post-receive
-- 
GNU Mailutils

_______________________________________________
Commit-mailutils mailing list
Commit-mailutils@gnu.org
https://lists.gnu.org/mailman/listinfo/commit-mailutils

Reply via email to