chiark / gitweb /
user-spam.m4: Fix indentation in the output.
[exim-config] / divmap.m4
1 ### -*-m4-*-
2 ###
3 ### Diversion map for distorted.org.uk Exim configuration.
4 ###
5 ### (c) 2012 Mark Wooding
6 ###
7
8 ###----- Licensing notice ---------------------------------------------------
9 ###
10 ### This program is free software; you can redistribute it and/or modify
11 ### it under the terms of the GNU General Public License as published by
12 ### the Free Software Foundation; either version 2 of the License, or
13 ### (at your option) any later version.
14 ###
15 ### This program is distributed in the hope that it will be useful,
16 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
17 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 ### GNU General Public License for more details.
19 ###
20 ### You should have received a copy of the GNU General Public License
21 ### along with this program; if not, write to the Free Software Foundation,
22 ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23
24 ###--------------------------------------------------------------------------
25 ### Numbering machinery.
26
27 ## Rather than maintain the diversion numbers by hand, this chunk of Emacs
28 ## Lisp will recompute them when they've been edited.  All you have to do is
29 ## declare the diversions in the correct order.
30 (save-excursion
31   (save-match-data
32     (goto-char (point-min))
33     (let ((next-div 0) div)
34       (while (re-search-forward (concat "\\(DEFDIVERSION(\\)" ;1
35                                         "\\([^,]+\\)"         ;2 = diversion
36                                         "\\(,\\s-*\\)"        ;3
37                                         "\\([0-9]+\\)"        ;4 = number
38                                         "\\([,)]\\)")         ;5
39                                 nil t)
40         (setq div (match-string 2))
41         (if (not (string-match-p "/" div))
42             (setq next-div (* 100 (/ (+ next-div 100) 100))))
43         (replace-match (concat "\\1\\2\\3"
44                                (int-to-string next-div)
45                                "\\5"))
46         (setq next-div (+ next-div 2))))))
47
48 m4_define(<:_div:null:>,         <:-1:>)
49
50 m4_define(<:DEFDIVERSION:>, <:m4_dnl
51   m4_define(<:_div:$1:>, <:$2:>)m4_dnl
52   m4_ifelse(<:$3:>, <::>, <::>, <:m4_dnl
53     m4_define(<:_head:$1:>, <:$3:>):>):>)
54
55 ###--------------------------------------------------------------------------
56 ### The diversion map.
57
58 ## header                          0
59
60 DEFDIVERSION(global,                     100, ### Global settings.)
61 DEFDIVERSION(global/logging,             102, Logging.)
62
63 DEFDIVERSION(global/lists,               104)
64
65 DEFDIVERSION(global/misc,                106, Miscellaneous.)
66 DEFDIVERSION(global/param,               108, Exim parameters.)
67 DEFDIVERSION(global/env,                 110, Environment variables.)
68 DEFDIVERSION(global/priv,                112, Privilege controls.)
69 DEFDIVERSION(global/frozen,              114, Frozen messages.)
70 DEFDIVERSION(global/lookups,             116, Data lookups.)
71 DEFDIVERSION(global/msgid,               118, Message ids.)
72 DEFDIVERSION(global/perl,                120, Embedded Perl startup.)
73 DEFDIVERSION(global/daemon,              122, Daemon.)
74 DEFDIVERSION(global/resource,            124, Resource control.)
75 DEFDIVERSION(global/policy,              126, Policy controls.)
76 DEFDIVERSION(global/callout,             128, Callout cache.)
77 DEFDIVERSION(global/tls,                 130, TLS.)
78 DEFDIVERSION(global/users,               132, Local user handling.)
79 DEFDIVERSION(global/incoming,            134,
80         All incoming messages (SMTP and non-SMTP).)
81 DEFDIVERSION(global/non-smtp,            136, Non-SMTP incoming messages.)
82 DEFDIVERSION(global/smtp,                138, Incoming SMTP messages.)
83 DEFDIVERSION(global/process,             140, Processing messages.)
84 DEFDIVERSION(global/filter,              142, System filter.)
85 DEFDIVERSION(global/routing,             144, Routing and delivery.)
86 DEFDIVERSION(global/bounce,              146, Bounce and warning messages.)
87 DEFDIVERSION(global/acl,                 148, Access control lists.)
88 DEFDIVERSION(global/acl-after,           150)
89
90 DEFDIVERSION(acl,                        200)
91 DEFDIVERSION(acl/connect,                202)
92 DEFDIVERSION(acl/connect-hooks,          204)
93 DEFDIVERSION(acl/connect-tail,           206)
94 DEFDIVERSION(acl/mail,                   208)
95 DEFDIVERSION(acl/mail-hooks,             210)
96 DEFDIVERSION(acl/mail-tail,              212)
97 DEFDIVERSION(acl/rcpt,                   214)
98 DEFDIVERSION(acl/rcpt-hooks,             216)
99 DEFDIVERSION(acl/rcpt-tail,              218)
100 DEFDIVERSION(acl/data,                   220)
101 DEFDIVERSION(acl/data-hooks,             222)
102 DEFDIVERSION(acl/data-tail,              224)
103 DEFDIVERSION(acl/misc,                   226)
104
105 DEFDIVERSION(auth,                       300, begin authenticators)
106
107 DEFDIVERSION(routers,                    400)
108 DEFDIVERSION(routers/virtual-spam,       402)
109 DEFDIVERSION(routers/route,              404)
110 DEFDIVERSION(routers/remote,             406)
111 DEFDIVERSION(routers/virtual,            408)
112 DEFDIVERSION(routers/virtual-hooks,      410)
113 DEFDIVERSION(routers/virtual-tail,       412)
114 DEFDIVERSION(routers/real,               414)
115 DEFDIVERSION(routers/alias,              416)
116 DEFDIVERSION(routers/alias-opts,         418)
117 DEFDIVERSION(routers/smarthost,          420)
118 DEFDIVERSION(routers/allspam,            422)
119 DEFDIVERSION(routers/dispatch,           424)
120 DEFDIVERSION(routers/forward,            426)
121 DEFDIVERSION(routers/deliver,            428)
122
123 DEFDIVERSION(transports,                 500)
124
125 DEFDIVERSION(retry,                      600)
126 DEFDIVERSION(retry/misc,                 602)
127 DEFDIVERSION(retry/default,              604)
128
129 DEFDIVERSION(rewrite,                    700)
130
131 ## warning trailer                      1000
132
133 DIVERT(null)
134 ###----- That's all, folks --------------------------------------------------