Update copyright year to 2016
[gnus] / texi / sieve.texi
index 8fe8500..0b794fb 100644 (file)
@@ -1,11 +1,33 @@
 \input texinfo                  @c -*-texinfo-*-
 
-@setfilename sieve
+@include gnus-overrides.texi
+
+@setfilename sieve.info
 @settitle Emacs Sieve Manual
+@include docstyle.texi
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
-@dircategory Emacs
+
+@copying
+This file documents the Emacs Sieve package, for server-side mail filtering.
+
+Copyright @copyright{} 2001--2016 Free Software Foundation, Inc.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover Texts being ``A GNU Manual'',
+and with the Back-Cover Texts as in (a) below.  A copy of the license
+is included in the section entitled ``GNU Free Documentation License''.
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual.''
+@end quotation
+@end copying
+
+@dircategory Emacs network features
 @direntry
 * Sieve: (sieve).               Managing Sieve scripts in Emacs.
 @end direntry
 @end iftex
 @setchapternewpage odd
 
-@ifnottex
-
-This file documents the Emacs Sieve package.
-
-Copyright (C) 2001 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
-@end ifnottex
-
-@tex
-
 @titlepage
+@ifset WEBHACKDEVEL
+@title Emacs Sieve Manual (DEVELOPMENT VERSION)
+@end ifset
+@ifclear WEBHACKDEVEL
 @title Emacs Sieve Manual
+@end ifclear
 
 @author by Simon Josefsson
 @page
-
 @vskip 0pt plus 1filll
-Copyright @copyright{} 2001 Free Software Foundation, Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being none, with the Front-Cover texts being ``A GNU
-Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
-license is included in the section entitled ``GNU Free Documentation
-License'' in the Emacs manual.
-
-(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
-this GNU Manual, like GNU software.  Copies published by the Free
-Software Foundation raise funds for GNU development.''
-
-This document is part of a collection distributed under the GNU Free
-Documentation License.  If you want to distribute this document
-separately from the collection, you can do so by adding a copy of the
-license to the document, as described in section 6 of the license.
+@insertcopying
 @end titlepage
-@page
 
-@end tex
+@summarycontents
+@contents
 
 @node Top
 @top Sieve Support for Emacs
 
-This manual documents the Emacs Sieve package.
-
-It is intended as a users manual for Sieve Mode and Manage Sieve, and
+This is intended as a users manual for Sieve Mode and Manage Sieve, and
 as a reference manual for the @samp{sieve-manage} protocol Emacs Lisp
 API.
 
@@ -83,12 +64,18 @@ Sieve is a language for server-side filtering of mail.  The language
 is documented in RFC 3028.  This manual does not attempt to document
 the language, so keep RFC 3028 around.
 
+@ifnottex
+@insertcopying
+@end ifnottex
+
 @menu
 * Installation::          Getting ready to use the package.
 * Sieve Mode::            Editing Sieve scripts.
 * Managing Sieve::        Managing Sieve scripts on a remote server.
+* Examples ::             A few Sieve code snippets.
 * Manage Sieve API ::     Interfacing to the Manage Sieve Protocol API.
 * Standards::             A summary of RFCs and working documents used.
+* GNU Free Documentation License:: The license for this documentation.
 * Index::                 Function and variable index.
 @end menu
 
@@ -106,7 +93,9 @@ commands in your @code{~/.emacs}:
 
 @lisp
 (autoload 'sieve-mode "sieve-mode")
-(setq auto-mode-alist (cons '("\\.si\\(v\\|eve\\)\\'" . sieve-mode)
+@end lisp
+@lisp
+(setq auto-mode-alist (cons '("\\.s\\(v\\|iv\\|ieve\\)\\'" . sieve-mode)
                             auto-mode-alist))
 @end lisp
 
@@ -124,13 +113,13 @@ runs the hook @code{sieve-mode-hook}.
 @vindex sieve-mode-syntax-table
 Sieve mode is derived from @code{c-mode}, and is very similar except
 for the syntax of comments.  The keymap (@code{sieve-mode-map}) is
-inherited from @code{c-mode}, as are the the variables for customizing
+inherited from @code{c-mode}, as are the variables for customizing
 indentation.  Sieve mode has its own abbrev table
 (@code{sieve-mode-abbrev-table}) and syntax table
 (@code{sieve-mode-syntax-table}).
 
 In addition to the editing utility functions, Sieve mode also contains
-bindings to manage Sieve scripts remotely. @pxref{Managing Sieve}.
+bindings to manage Sieve scripts remotely. @xref{Managing Sieve}.
 
 @table @kbd
 
@@ -157,11 +146,11 @@ on a remote server.  It can be invoked with @kbd{M-x sieve-manage
 RET}, which queries the user for a server and if necessary, user
 credentials to use.
 
-When a server has been succesfully contacted, the Manage Sieve buffer
+When a server has been successfully contacted, the Manage Sieve buffer
 looks something like:
 
 @example
-Server  : mailserver:2000
+Server  : mailserver:sieve
 
 2 scripts on server, press RET on a script name edits it, or
 press RET on <new script> to create a new script.
@@ -171,7 +160,7 @@ press RET on <new script> to create a new script.
 @end example
 
 One of the scripts are highlighted, and standard point navigation
-commands (@kbd{<up>}, @kbd{<down>} etc) can be used to navigate the
+commands (@kbd{<up>}, @kbd{<down>} etc.)@: can be used to navigate the
 list.
 
 The following commands are available in the Manage Sieve buffer:
@@ -188,8 +177,8 @@ Activates the currently highlighted script.
 @findex sieve-deactivate
 Deactivates the currently highlighted script.
 
-@item M-C-?
-@kindex M-C-?
+@item C-M-?
+@kindex C-M-?
 @findex sieve-deactivate-all
 Deactivates all scripts.
 
@@ -224,10 +213,58 @@ Bury the Manage Sieve buffer without closing the connection.
 @kindex ?
 @kindex h
 @findex sieve-help
-Displays help in the minibuffer. 
+Displays help in the minibuffer.
+
+@item Q
+@kindex Q
+@findex sieve-manage-quit
+Quit Manage Sieve and close the connection.
 
 @end table
 
+@node Examples
+@chapter Examples
+
+If you are not familiar with Sieve, this chapter contains a few simple
+code snippets that you can cut'n'paste and modify at will, until you
+feel more comfortable with the Sieve language to write the rules from
+scratch.
+
+The following complete Sieve script places all messages with a matching
+@samp{Sender:} header into the given mailbox.  Many mailing lists uses
+this format.  The first line makes sure your Sieve server understands
+the @code{fileinto} command.
+
+@example
+require "fileinto";
+
+if address "sender" "owner-w3-beta@@xemacs.org" @{
+        fileinto "INBOX.w3-beta";
+@}
+@end example
+
+A few mailing lists do not use the @samp{Sender:} header, but has a
+unique identifier in some other header.  The following is not a
+complete script, it assumes that @code{fileinto} has already been
+required.
+
+@example
+if header :contains "Delivered-To" "auc-tex@@sunsite.dk" @{
+        fileinto "INBOX.auc-tex";
+@}
+@end example
+
+At last, we have the hopeless mailing lists that does not have any
+unique identifier and you are forced to match on the @samp{To:} and
+@samp{Cc} headers.  As before, this snippet assumes that @code{fileinto}
+has been required.
+
+@example
+if address ["to", "cc"] "kerberos@@mit.edu" @{
+        fileinto "INBOX.kerberos";
+@}
+@end example
+
 @node Manage Sieve API
 @chapter Manage Sieve API
 
@@ -239,17 +276,13 @@ in the @code{sieve} group (@kbd{M-x customize-group RET sieve RET}):
 
 @table @code
 
-@item sieve-manage-default-user
-@vindex sieve-manage-default-user
-Sets the default username.
-
 @item sieve-manage-default-port
 @vindex sieve-manage-default-port
 Sets the default port to use, the suggested port number is @code{2000}.
 
 @item sieve-manage-log
 @vindex sieve-manage-log
-If non-nil, should be a string naming a buffer where a protocol trace
+If non-@code{nil}, should be a string naming a buffer where a protocol trace
 is dumped (for debugging purposes).
 
 @end table
@@ -277,7 +310,7 @@ Authenticate to the server.
 
 @item sieve-manage-capability
 @findex sieve-manage-capability
-Return a list of capabilities the server support.
+Return a list of capabilities the server supports.
 
 @item sieve-manage-listscripts
 @findex sieve-manage-listscripts
@@ -285,7 +318,8 @@ List scripts on the server.
 
 @item sieve-manage-havespace
 @findex sieve-manage-havespace
-Returns non-nil iff server have roam for a script of given size.
+Return non-@code{nil} if the server has room for a script of given
+size.
 
 @item sieve-manage-getscript
 @findex sieve-manage-getscript
@@ -307,25 +341,26 @@ Indicate which script on the server should be active.
 The Emacs Sieve package implements all or parts of a small but
 hopefully growing number of RFCs and drafts documents.  This chapter
 lists the relevant ones.  They can all be fetched from
-@samp{http://quimby.gnus.org/notes/}.
+@uref{http://quimby.gnus.org/notes/}.
 
 @table @dfn
 
 @item RFC3028
 Sieve: A Mail Filtering Language.
 
-@item draft-martin-managesieve-03
+@item RFC5804
 A Protocol for Remotely Managing Sieve Scripts
 
 @end table
 
+@node GNU Free Documentation License
+@appendix GNU Free Documentation License
+@include doclicense.texi
 
 @node Index
-@chapter Index
+@unnumbered Index
 @printindex cp
 
-@summarycontents
-@contents
 @bye
 
 @c End: