This file is indexed.

/usr/share/doc/mailutils-doc/mailutils.html/Extending-Sieve.html is in mailutils-doc 1:2.99.98-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Published by the Free Software Foundation,
51 Franklin Street, Fifth Floor
Boston, MA 02110-1301, USA

Copyright (C) 1999-2004, 2008-2012 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.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover, and no Back-Cover texts.
A copy of the license is included in the section entitled "GNU Free
Documentation License". -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Mailutils Manual: Extending Sieve</title>

<meta name="description" content="GNU Mailutils Manual: Extending Sieve">
<meta name="keywords" content="GNU Mailutils Manual: Extending Sieve">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="sieve-interpreter.html#sieve-interpreter" rel="up" title="sieve interpreter">
<link href="sieve_002escm.html#sieve_002escm" rel="next" title="sieve.scm">
<link href="Logging-and-Debugging.html#Logging-and-Debugging" rel="prev" title="Logging and Debugging">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Extending-Sieve"></a>
<div class="header">
<p>
Previous: <a href="Logging-and-Debugging.html#Logging-and-Debugging" accesskey="p" rel="prev">Logging and Debugging</a>, Up: <a href="sieve-interpreter.html#sieve-interpreter" accesskey="u" rel="up">sieve interpreter</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Extending-sieve"></a>
<h4 class="subsubsection">3.9.1.4 Extending <code>sieve</code></h4>

<p>The basic set of sieve actions, tests and comparators may be extended
using loadable extensions.  Usual <code>require</code> mechanism is used for
that.
</p>
<p>When processing arguments for <code>require</code> statement, <code>sieve</code>
uses the following algorithm:
</p>
<ol>
<li> Look up the name in a symbol table.  If the name begins with
&lsquo;<samp>comparator-</samp>&rsquo; it is looked up in the comparator table.  If it
begins with &lsquo;<samp>test-</samp>&rsquo;, the test table is used instead.  Otherwise
the name is looked up in the action table.

</li><li> If the name is found, the search is terminated.

</li><li> Otherwise, transform the name.  First, any &lsquo;<samp>comparator-</samp>&rsquo; or
&lsquo;<samp>test-</samp>&rsquo; prefix is stripped.  Then, any character other than
alphanumeric characters, &lsquo;<samp>.</samp>&rsquo; and &lsquo;<samp>,</samp>&rsquo; is replaced with
dash (&lsquo;<samp>-</samp>&rsquo;).  The name thus obtained is used as a file name
of an external loadable module. 

</li><li> Try to load the module.  The module is searched in the
following search paths (in the order given):

<ol>
<li> Mailutils module directory.  By default it is
<samp>$prefix/lib/mailutils</samp>.

</li><li> The value of the environment variable <code>LTDL_LIBRARY_PATH</code>.

</li><li> Additional search directories specified with the
<code>library-path</code> statement (see <a href="Sieve-Configuration.html#Sieve-Configuration">library-path</a>) in Sieve configuration file.

</li><li> Additional search directories specified with the.
<samp>--libdir</samp> command line option (see <i>libdir</i>&nbsp;(<strong>Editor&rsquo;s note: dangling link</strong>)).

</li><li> Additional search directories specified with the
<code>#searchpath</code> Sieve directive (see <a href="_0023searchpath.html#g_t_0023searchpath">#searchpath</a>).

</li><li> System library search path: The system dependent library
search path (e.g. on Linux it is set by the contents of the file
<samp>/etc/ld.so.conf</samp> and the value of the environment variable
<code>LD_LIBRARY_PATH</code>).
</li></ol>

<p>The value of <code>LTDL_LIBRARY_PATH</code> and <code>LD_LIBRARY_PATH</code> must be
a colon-separated list of absolute directories, for example,
&lsquo;<samp>&quot;/usr/lib/mypkg:/lib/foo&quot;</samp>&rsquo;.
</p>
<p>In any of these directories, <code>sieve</code> first attempts to find
and load the given filename.  If this fails, it tries to append the
following suffixes to the file name:
</p>
<ol>
<li> the libtool archive extension &lsquo;<samp>.la</samp>&rsquo;

</li><li> the extension used for native dynamic libraries on the host
platform, e.g., &lsquo;<samp>.so</samp>&rsquo;, &lsquo;<samp>.sl</samp>&rsquo;, etc.
</li></ol>

</li><li> If the module is found, <code>sieve</code> executes its
initialization function (see below) and again looks up the name
in the symbol table.  If found, search terminates successfully.

</li><li> If either the module is not found, or the symbol wasn&rsquo;t
found after execution of the module initialization function,
search is terminated with an error status.  <code>sieve</code> then displays
the following diagnostic message:

<div class="example">
<pre class="example">source for the required action NAME is not available
</pre></div>
</li></ol>
 

<hr>
<div class="header">
<p>
Previous: <a href="Logging-and-Debugging.html#Logging-and-Debugging" accesskey="p" rel="prev">Logging and Debugging</a>, Up: <a href="sieve-interpreter.html#sieve-interpreter" accesskey="u" rel="up">sieve interpreter</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>