mirror of
https://github.com/vdukhovni/postfix
synced 2025-09-03 15:45:24 +00:00
postfix-1.1.11-20020917
This commit is contained in:
committed by
Viktor Dukhovni
parent
549abc01a8
commit
5ca8554dc7
@@ -6963,6 +6963,12 @@ Apologies for any names omitted.
|
||||
This involved a rewrite of the pcre map code similar to
|
||||
the regexp map code. File: util/dict_pcre.c.
|
||||
|
||||
20020917
|
||||
|
||||
Feature: on Linux, support for PCRE lookup tables is now
|
||||
compiled in if the PCRE library code is found under
|
||||
/usr/include and /usr/lib. File: makedefs.
|
||||
|
||||
Open problems:
|
||||
|
||||
Low: smtpd should log queue ID with reject/warn/hold/discard
|
||||
|
@@ -12,30 +12,35 @@ snapshot release). Patches change the patchlevel and the release
|
||||
date. Snapshots change only the release date, unless they include
|
||||
the same bugfixes as a patch release.
|
||||
|
||||
Incompatible changes with Postfix snapshot 1.1.11-20020916
|
||||
Incompatible changes with Postfix snapshot 1.1.11-20020917
|
||||
==========================================================
|
||||
|
||||
The relayhost setting now behaves as documented, i.e. you can no
|
||||
longer specify multiple destinations.
|
||||
|
||||
Major changes with Postfix snapshot 1.1.11-20020916
|
||||
In regexp lookup tables, the form /pattern1/!/pattern2/ is going
|
||||
away. Use the cleaner and more flexible "if !/pattern2/..endif"
|
||||
form. The old form still exists but is no longer documented.
|
||||
|
||||
Major changes with Postfix snapshot 1.1.11-20020917
|
||||
===================================================
|
||||
|
||||
Speedups of regexp table lookups by optimizing the compilation and
|
||||
execution settings for the actual number of $number substitutions
|
||||
in the right-hand side. Based on a suggestion by Liviu Daia.
|
||||
Speedups of regexp table lookups by optimizing for the $number
|
||||
substitutions that are actually present in the right-hand side.
|
||||
Based on a suggestion by Liviu Daia.
|
||||
|
||||
Speedups of regexp and pcre tables, using IF..ENDIF support based
|
||||
Speedups of regexp and pcre tables, using IF..ENDIF support. Based
|
||||
on an idea by Bert Driehuis. To protect a block of patterns, use:
|
||||
|
||||
if /pattern/
|
||||
/pattern2/ replacement text1
|
||||
/pattern2/ replacement text2
|
||||
if /pattern1/
|
||||
/pattern2/ result2
|
||||
/pattern3/ result3
|
||||
endif
|
||||
|
||||
IF..ENDIF can nest. Don't specify blanks at the beginning of lines
|
||||
inside IF..ENDIF. Lines beginning with whitespace are appended to
|
||||
the previous line.
|
||||
inside IF..ENDIF, because lines beginning with whitespace are
|
||||
appended to the previous line. More details about the syntax are
|
||||
given in the pcre_table(5) and regexp_table(5) manual pages.
|
||||
|
||||
Incompatible changes with Postfix snapshot 1.1.11-20020906
|
||||
==========================================================
|
||||
|
@@ -6,6 +6,10 @@
|
||||
# SYNOPSIS
|
||||
# postmap /etc/postfix/access
|
||||
#
|
||||
# postmap -q "string" /etc/postfix/access
|
||||
#
|
||||
# postmap -q - /etc/postfix/access <inputfile
|
||||
#
|
||||
# DESCRIPTION
|
||||
# The optional access table directs the Postfix SMTP server
|
||||
# to selectively reject or accept mail. Access can be
|
||||
|
@@ -1,4 +1,3 @@
|
||||
#
|
||||
# CANONICAL(5) CANONICAL(5)
|
||||
#
|
||||
# NAME
|
||||
@@ -7,6 +6,10 @@
|
||||
# SYNOPSIS
|
||||
# postmap /etc/postfix/canonical
|
||||
#
|
||||
# postmap -q "string" /etc/postfix/canonical
|
||||
#
|
||||
# postmap -q - /etc/postfix/canonical <inputfile
|
||||
#
|
||||
# DESCRIPTION
|
||||
# The optional canonical table specifies an address mapping
|
||||
# for local and non-local addresses. The mapping is used by
|
||||
@@ -183,5 +186,4 @@
|
||||
# P.O. Box 704
|
||||
# Yorktown Heights, NY 10598, USA
|
||||
#
|
||||
# 1
|
||||
#
|
||||
# CANONICAL(5)
|
||||
|
@@ -411,38 +411,13 @@ mail_owner = postfix
|
||||
|
||||
# The header_checks parameter specifies an optional table with patterns
|
||||
# that each logical message header is matched against, including
|
||||
# headers that span multiple physical lines. Patterns are matched
|
||||
# in the specified order, and the search stops upon the first match.
|
||||
# When a pattern matches, what happens next depends on the associated
|
||||
# action that is specified in the right-hand side of the table:
|
||||
#
|
||||
# REJECT [optional text...]
|
||||
# Reject the entire message. The optional text is sent to the
|
||||
# originator and is logged to the maillog file.
|
||||
# IGNORE Silently discard the header line.
|
||||
# WARN [optional text...]
|
||||
# Log the message header and the optional text. This is useful
|
||||
# for testing. When the pattern is OK, change the WARN into a
|
||||
# REJECT or into a DISCARD.
|
||||
# HOLD [optional text...]
|
||||
# Place the message on the hold queue. Mail on hold can be
|
||||
# inspected with the postcat command, and can be destroyed or
|
||||
# taken off hold (i.e. delivered) with the postsuper command.
|
||||
# The matched header is logged with the optional text.
|
||||
# DISCARD [optional text...]
|
||||
# Claim successful delivery and silently discard the message.
|
||||
# The matched header is logged with the optional text.
|
||||
# FILTER transport:nexthop
|
||||
# after the message is queued, send the entire message through
|
||||
# a content filter. This requires different cleanup servers
|
||||
# before and after the filter, with header/body checks turned
|
||||
# off in the second cleanup server.
|
||||
# headers that span multiple physical lines.
|
||||
#
|
||||
# By default, these patterns also apply to MIME headers and to the
|
||||
# headers of attached messages. With older Postfix versions, MIME and
|
||||
# attached message headers were treated as body text.
|
||||
#
|
||||
# See also the body_checks example in the sample-filter.cf file.
|
||||
# For details, see the sample-filter.cf file.
|
||||
#
|
||||
#header_checks = regexp:/etc/postfix/header_checks
|
||||
|
||||
|
@@ -6,6 +6,10 @@
|
||||
# SYNOPSIS
|
||||
# pcre:/etc/postfix/filename
|
||||
#
|
||||
# postmap -q "string" pcre:/etc/postfix/filename
|
||||
#
|
||||
# postmap -q - pcre:/etc/postfix/filename <inputfile
|
||||
#
|
||||
# DESCRIPTION
|
||||
# The Postfix mail system uses optional tables for address
|
||||
# rewriting or mail routing. These tables are usually in dbm
|
||||
@@ -15,11 +19,14 @@
|
||||
# To find out what types of lookup tables your Postfix sys-
|
||||
# tem supports use the postconf -m command.
|
||||
#
|
||||
# To test lookup tables, use the postmap command as
|
||||
# described in the SYNOPSIS above.
|
||||
#
|
||||
# The general form of a PCRE table is:
|
||||
#
|
||||
# pattern result
|
||||
# /pattern/flags result
|
||||
# When pattern matches a search string, use the cor-
|
||||
# responding result.
|
||||
# responding result value.
|
||||
#
|
||||
# blank lines and comments
|
||||
# Empty lines and whitespace-only lines are ignored,
|
||||
@@ -31,6 +38,12 @@
|
||||
# line that starts with whitespace continues a logi-
|
||||
# cal line.
|
||||
#
|
||||
# if /pattern/flags
|
||||
#
|
||||
# endif Examine the lines between if..endif only if pattern
|
||||
# matches. The if..endif can nest. Do not prepend
|
||||
# whitespace to patterns inside if..endif.
|
||||
#
|
||||
# Each pattern is a perl-like regular expression. The
|
||||
# expression delimiter can be any character, except whites-
|
||||
# pace or characters that have special meaning (tradition-
|
||||
|
@@ -6,6 +6,10 @@
|
||||
# SYNOPSIS
|
||||
# regexp:/etc/postfix/filename
|
||||
#
|
||||
# postmap -q "string" regexp:/etc/postfix/filename
|
||||
#
|
||||
# postmap -q - regexp:/etc/postfix/filename <inputfile
|
||||
#
|
||||
# DESCRIPTION
|
||||
# The Postfix mail system uses optional tables for address
|
||||
# rewriting or mail routing. These tables are usually in dbm
|
||||
@@ -15,11 +19,16 @@
|
||||
# To find out what types of lookup tables your Postfix sys-
|
||||
# tem supports use the postconf -m command.
|
||||
#
|
||||
# To test lookup tables, use the postmap command as
|
||||
# described in the SYNOPSIS above.
|
||||
#
|
||||
# The general form of a Postfix regular expression table is:
|
||||
#
|
||||
# pattern result
|
||||
# When pattern matches a search string, use the cor-
|
||||
# responding result.
|
||||
# /pattern/flags result
|
||||
#
|
||||
# !/pattern/flags result
|
||||
# When pattern matches (does not match) a search
|
||||
# string, use the corresponding result value.
|
||||
#
|
||||
# blank lines and comments
|
||||
# Empty lines and whitespace-only lines are ignored,
|
||||
@@ -31,8 +40,14 @@
|
||||
# line that starts with whitespace continues a logi-
|
||||
# cal line.
|
||||
#
|
||||
# pattern1!pattern2 result
|
||||
# Matches pattern1 but not pattern2.
|
||||
# if /pattern/flags
|
||||
#
|
||||
# if !/pattern/flags
|
||||
#
|
||||
# endif Examine the lines between if..endif only if pattern
|
||||
# matches (does not match). The if..endif can nest.
|
||||
# Do not prepend whitespace to patterns inside
|
||||
# if..endif.
|
||||
#
|
||||
# Each pattern is a regular expression enclosed by a pair of
|
||||
# delimiters. The regular expression syntax is described in
|
||||
|
@@ -8,6 +8,10 @@
|
||||
# that each logical message header is matched against, including
|
||||
# headers that span multiple physical lines. Patterns are matched
|
||||
# in the specified order, and the search stops upon the first match.
|
||||
#
|
||||
# For examples of pattern syntax see the sample-regexp-header.cf and
|
||||
# sample-pcre-header.cf files.
|
||||
#
|
||||
# When a pattern matches, what happens next depends on the associated
|
||||
# action that is specified in the right-hand side of the table:
|
||||
#
|
||||
@@ -47,9 +51,13 @@ header_checks = regexp:/etc/postfix/header_checks
|
||||
# related headers in message headers, and to the headers that follow
|
||||
# multipart boundary strings. Headers may span multiple physical lines.
|
||||
# Patterns are matched in the specified order, and the search stops
|
||||
# upon the first match. When a pattern matches, what happens next
|
||||
# depends on the associated action that is specified in the right-hand
|
||||
# side of the table:
|
||||
# upon the first match.
|
||||
#
|
||||
# For examples of pattern syntax see the sample-regexp-header.cf and
|
||||
# sample-pcre-header files.
|
||||
#
|
||||
# When a pattern matches, what happens next depends on the associated
|
||||
# action that is specified in the right-hand side of the table:
|
||||
#
|
||||
# REJECT [optional text...]
|
||||
# Reject the entire message. The optional text is sent to the
|
||||
@@ -83,9 +91,13 @@ mime_header_checks = $header_checks
|
||||
# that each attached message header is matched against (except for
|
||||
# MIME related headers). Headers may span multiple physical lines.
|
||||
# Patterns are matched in the specified order, and the search stops
|
||||
# upon the first match. When a pattern matches, what happens next
|
||||
# depends on the associated action that is specified in the right-hand
|
||||
# side of the table:
|
||||
# upon the first match.
|
||||
#
|
||||
# For examples of pattern syntax see the sample-regexp-header.cf and
|
||||
# sample-pcre-header.cf files.
|
||||
#
|
||||
# When a pattern matches, what happens next depends on the associated
|
||||
# action that is specified in the right-hand side of the table:
|
||||
#
|
||||
# REJECT the entire message is rejected.
|
||||
# REJECT text.... The text is sent to the originator.
|
||||
@@ -111,6 +123,10 @@ nested_header_checks = $header_checks
|
||||
# Lines are matched one at a time. Long lines are matched in chunks
|
||||
# of at most $line_length_limit characters. Patterns are matched in
|
||||
# the specified order, and the search stops upon the first match.
|
||||
#
|
||||
# For examples of pattern syntax see the sample-regexp-body.cf and
|
||||
# sample-pcre-body.cf files.
|
||||
#
|
||||
# When a pattern matches, what happens next depends on the associated
|
||||
# action that is specified in the right-hand side of the table:
|
||||
#
|
||||
|
@@ -15,6 +15,12 @@
|
||||
# matching ungreedy (see PCRE documentation and source for more
|
||||
# info).
|
||||
#
|
||||
# A block of table entries may be "enclosed" by a line with
|
||||
# `if /pattern/flags' and a line with `endif'. This causes
|
||||
# the block of table entries to be examined only when the
|
||||
# pattern produces a successful match. The `if..endif' may
|
||||
# be nested. There currently is no `else' operator.
|
||||
#
|
||||
# The second field is the "replacement" string - the text
|
||||
# returned by the match. When used for smtpd checks, this would
|
||||
# be a helpful message to misguided users (or an offensive
|
||||
|
@@ -2,9 +2,8 @@
|
||||
# Sample pcre (PERL-compatible regular expression) map file for
|
||||
# mail body filtering. See pcre_table(5) for syntax description.
|
||||
#
|
||||
# Mail body lines are filtered one line at a time. In particular,
|
||||
# multi-line MIME headers in the message body are filtered one text
|
||||
# line at a time.
|
||||
# Mail body lines are filtered one line at a time. MIME headers are
|
||||
# filtered as message headers, i.e. not as part of the mail body.
|
||||
#
|
||||
# The first field is a perl-like regular expression. The expression
|
||||
# delimiter can be any character except whitespace, or characters
|
||||
@@ -18,6 +17,12 @@
|
||||
# matching ungreedy (see PCRE documentation and source for more
|
||||
# info).
|
||||
#
|
||||
# A block of table entries may be "enclosed" by a line with
|
||||
# `if /pattern/flags' and a line with `endif'. This causes
|
||||
# the block of table entries to be examined only when the
|
||||
# pattern produces a successful match. The `if..endif' may
|
||||
# be nested. There currently is no `else' operator.
|
||||
#
|
||||
# The second field is the "replacement" string - the text
|
||||
# returned by the match.
|
||||
#
|
||||
|
@@ -18,6 +18,12 @@
|
||||
# matching ungreedy (see PCRE documentation and source for more
|
||||
# info).
|
||||
#
|
||||
# A block of table entries may be "enclosed" by a line with
|
||||
# `if /pattern/flags' and a line with `endif'. This causes
|
||||
# the block of table entries to be examined only when the
|
||||
# pattern produces a successful match. The `if..endif' may
|
||||
# be nested. There currently is no `else' operator.
|
||||
#
|
||||
# The second field is the "replacement" string - the text
|
||||
# returned by the match.
|
||||
#
|
||||
|
@@ -3,17 +3,24 @@
|
||||
#
|
||||
# The general format of a table entry is PATTERN RESULT.
|
||||
#
|
||||
# The pattern format is /regexp/flags or /regexp/flags!/regexp/flags
|
||||
# where regexp is a regular expression as found in regexp(5), and flags are
|
||||
# The pattern format is `/regexp/flags' or `!/regexp/flags' where regexp
|
||||
# is a regular expression as found in re_format(7), and flags are
|
||||
# i: toggle ignore case (REG_ICASE - default is to ignore case)
|
||||
# x: toggle extended expression (REG_EXTENDED - default is extended)
|
||||
# m: toggle multiline mode (REG_NEWLINE - default is non-multiline mode)
|
||||
#
|
||||
# In order for a line to match, the first regexp must match, and the
|
||||
# second (if present) must not match. The first matching line wins,
|
||||
# terminating processing of the ruleset.
|
||||
# In order for a line to match, the regexp must match. If the regexp
|
||||
# is prefixed with !, it must not match. The first line with a successful
|
||||
# (non)match wins, terminating processing of the ruleset.
|
||||
#
|
||||
# The result syntax is described in the access(5) manual page.
|
||||
# A block of table entries may be "enclosed" by a line with `if
|
||||
# /pattern/flags' or `if !/pattern/flags' and a line with `endif'.
|
||||
# This causes the block of table entries to be examined only when
|
||||
# the pattern produces a successful (non)match. The `if..endif' may
|
||||
# be nested. There currently is no `else' operator.
|
||||
#
|
||||
# The syntax of access table results is described in the Postfix
|
||||
# access(5) manual page.
|
||||
|
||||
# Disallow sender-specified routing. This is a must if you relay mail
|
||||
#for other domains.
|
||||
|
@@ -1,20 +1,26 @@
|
||||
# Sample regexp message body filter lookup "table". See regexp_table(5)
|
||||
# for a description of the syntax.
|
||||
#
|
||||
# Mail body lines are filtered one line at a time. In particular, multi-line
|
||||
# MIME headers in the message body are filtered one text line at a time.
|
||||
# Mail body lines are filtered one line at a time. MIME headers are
|
||||
# filtered as message headers, i.e. not as part of the mail body.
|
||||
#
|
||||
# The general format of a table entry is PATTERN RESULT.
|
||||
#
|
||||
# The pattern format is /regexp/flags or /regexp/flags!/regexp/flags
|
||||
# where regexp is a regular expression as found in regexp(5), and flags are
|
||||
# The pattern format is `/regexp/flags' or `!/regexp/flags' where regexp
|
||||
# is a regular expression as found in re_format(7), and flags are
|
||||
# i: toggle ignore case (REG_ICASE - default is to ignore case)
|
||||
# x: toggle extended expression (REG_EXTENDED - default is extended)
|
||||
# m: toggle multiline mode (REG_NEWLINE - default is non-multiline mode)
|
||||
#
|
||||
# In order for a line to match, the first regexp must match, and the
|
||||
# second (if present) must not match. The first matching line wins,
|
||||
# terminating processing of the ruleset.
|
||||
# In order for a line to match, the regexp must match. If the regexp
|
||||
# is prefixed with !, it must not match. The first line with a successful
|
||||
# (non)match wins, terminating processing of the ruleset.
|
||||
#
|
||||
# A block of table entries may be "enclosed" by a line with `if
|
||||
# /pattern/flags' or `if !/pattern/flags' and a line with `endif'.
|
||||
# This causes the block of table entries to be examined only when
|
||||
# the pattern produces a successful (non)match. The `if..endif' may
|
||||
# be nested. There currently is no `else' operator.
|
||||
#
|
||||
# The result is one of the following:
|
||||
# REJECT [optional text...]
|
||||
|
@@ -7,15 +7,21 @@
|
||||
#
|
||||
# The general format of a table entry is PATTERN RESULT.
|
||||
#
|
||||
# The pattern format is /regexp/flags or /regexp/flags!/regexp/flags
|
||||
# where regexp is a regular expression as found in regexp(5), and flags are
|
||||
# The pattern format is `/regexp/flags' or `!/regexp/flags' where regexp
|
||||
# is a regular expression as found in re_format(7), and flags are
|
||||
# i: toggle ignore case (REG_ICASE - default is to ignore case)
|
||||
# x: toggle extended expression (REG_EXTENDED - default is extended)
|
||||
# m: toggle multiline mode (REG_NEWLINE - default is non-multiline mode)
|
||||
#
|
||||
# In order for a line to match, the first regexp must match, and the
|
||||
# second (if present) must not match. The first matching line wins,
|
||||
# terminating processing of the ruleset.
|
||||
# In order for a line to match, the regexp must match. If the regexp
|
||||
# is prefixed with !, it must not match. The first line with a successful
|
||||
# (non)match wins, terminating processing of the ruleset.
|
||||
#
|
||||
# A block of table entries may be "enclosed" by a line with `if
|
||||
# /pattern/flags' or `if !/pattern/flags' and a line with `endif'.
|
||||
# This causes the block of table entries to be examined only when
|
||||
# the pattern produces a successful (non)match. The `if..endif' may
|
||||
# be nested. There currently is no `else' operator.
|
||||
#
|
||||
# The result is one of the following:
|
||||
# REJECT [optional text...]
|
||||
|
@@ -6,6 +6,10 @@
|
||||
# SYNOPSIS
|
||||
# postmap /etc/postfix/transport
|
||||
#
|
||||
# postmap -q "string" /etc/postfix/transport
|
||||
#
|
||||
# postmap -q - /etc/postfix/transport <inputfile
|
||||
#
|
||||
# DESCRIPTION
|
||||
# The optional transport table specifies a mapping from
|
||||
# email addresses to message delivery transports and/or
|
||||
|
@@ -6,6 +6,10 @@
|
||||
# SYNOPSIS
|
||||
# postmap /etc/postfix/virtual
|
||||
#
|
||||
# postmap -q "string" /etc/postfix/virtual
|
||||
#
|
||||
# postmap -q - /etc/postfix/virtual <inputfile
|
||||
#
|
||||
# DESCRIPTION
|
||||
# The optional virtual table specifies address redirections
|
||||
# for local and non-local recipients or domains. The redi-
|
||||
|
@@ -7,6 +7,10 @@ ACCESS(5) ACCESS(5)
|
||||
<b>SYNOPSIS</b>
|
||||
<b>postmap</b> <b>/etc/postfix/access</b>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>"</b><i>string</i><b>"</b> <b>/etc/postfix/access</b>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>-</b> <b>/etc/postfix/access</b> <<i>inputfile</i>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The optional <b>access</b> table directs the Postfix SMTP server
|
||||
to selectively reject or accept mail. Access can be
|
||||
|
@@ -1,5 +1,4 @@
|
||||
<html> <head> </head> <body> <pre>
|
||||
|
||||
CANONICAL(5) CANONICAL(5)
|
||||
|
||||
<b>NAME</b>
|
||||
@@ -8,6 +7,10 @@ CANONICAL(5) CANONICAL(5)
|
||||
<b>SYNOPSIS</b>
|
||||
<b>postmap</b> <b>/etc/postfix/canonical</b>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>"</b><i>string</i><b>"</b> <b>/etc/postfix/canonical</b>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>-</b> <b>/etc/postfix/canonical</b> <<i>inputfile</i>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The optional <b>canonical</b> table specifies an address mapping
|
||||
for local and non-local addresses. The mapping is used by
|
||||
@@ -184,6 +187,5 @@ CANONICAL(5) CANONICAL(5)
|
||||
P.O. Box 704
|
||||
Yorktown Heights, NY 10598, USA
|
||||
|
||||
1
|
||||
|
||||
CANONICAL(5)
|
||||
</pre> </body> </html>
|
||||
|
@@ -5,7 +5,11 @@ PCRE_TABLE(5) PCRE_TABLE(5)
|
||||
pcre_table - format of Postfix PCRE tables
|
||||
|
||||
<b>SYNOPSIS</b>
|
||||
pcre:/etc/postfix/filename
|
||||
<b>pcre:/etc/postfix/</b><i>filename</i>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>"</b><i>string</i><b>"</b> <b>pcre:/etc/postfix/</b><i>filename</i>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>-</b> <b>pcre:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix mail system uses optional tables for address
|
||||
@@ -16,11 +20,14 @@ PCRE_TABLE(5) PCRE_TABLE(5)
|
||||
To find out what types of lookup tables your Postfix sys-
|
||||
tem supports use the <b>postconf</b> <b>-m</b> command.
|
||||
|
||||
To test lookup tables, use the <b>postmap</b> command as
|
||||
described in the SYNOPSIS above.
|
||||
|
||||
The general form of a PCRE table is:
|
||||
|
||||
<i>pattern</i> <i>result</i>
|
||||
<b>/</b><i>pattern</i><b>/</b><i>flags</i> <i>result</i>
|
||||
When <i>pattern</i> matches a search string, use the cor-
|
||||
responding <i>result</i>.
|
||||
responding <i>result</i> value.
|
||||
|
||||
blank lines and comments
|
||||
Empty lines and whitespace-only lines are ignored,
|
||||
@@ -32,6 +39,12 @@ PCRE_TABLE(5) PCRE_TABLE(5)
|
||||
line that starts with whitespace continues a logi-
|
||||
cal line.
|
||||
|
||||
<b>if</b> <b>/</b><i>pattern</i><b>/</b><i>flags</i>
|
||||
|
||||
<b>endif</b> Examine the lines between <b>if</b>..<b>endif</b> only if <i>pattern</i>
|
||||
matches. The <b>if</b>..<b>endif</b> can nest. Do not prepend
|
||||
whitespace to patterns inside <b>if</b>..<b>endif</b>.
|
||||
|
||||
Each pattern is a perl-like regular expression. The
|
||||
expression delimiter can be any character, except whites-
|
||||
pace or characters that have special meaning (tradition-
|
||||
|
@@ -107,7 +107,7 @@ PIPE(8) PIPE(8)
|
||||
is specified, the corresponding group ID is used
|
||||
instead of the group ID of <i>username</i>.
|
||||
|
||||
<b>eol=string</b> (default: <b>\n</b>)
|
||||
<b>eol=string</b> (optional, default: <b>\n</b>)
|
||||
The output record delimiter. Typically one would
|
||||
use either <b>\r\n</b> or <b>\n</b>. The usual C-style backslash
|
||||
escape sequences are recognized: <b>\a</b> <b>\b</b> <b>\f</b> <b>\n</b> <b>\r</b> <b>\t</b>
|
||||
|
@@ -5,7 +5,11 @@ REGEXP_TABLE(5) REGEXP_TABLE(5)
|
||||
regexp_table - format of Postfix regular expression tables
|
||||
|
||||
<b>SYNOPSIS</b>
|
||||
regexp:/etc/postfix/filename
|
||||
<b>regexp:/etc/postfix/</b><i>filename</i>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>"</b><i>string</i><b>"</b> <b>regexp:/etc/postfix/</b><i>filename</i>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>-</b> <b>regexp:/etc/postfix/</b><i>filename</i> <<i>inputfile</i>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The Postfix mail system uses optional tables for address
|
||||
@@ -16,11 +20,16 @@ REGEXP_TABLE(5) REGEXP_TABLE(5)
|
||||
To find out what types of lookup tables your Postfix sys-
|
||||
tem supports use the <b>postconf</b> <b>-m</b> command.
|
||||
|
||||
To test lookup tables, use the <b>postmap</b> command as
|
||||
described in the SYNOPSIS above.
|
||||
|
||||
The general form of a Postfix regular expression table is:
|
||||
|
||||
<i>pattern</i> <i>result</i>
|
||||
When <i>pattern</i> matches a search string, use the cor-
|
||||
responding <i>result</i>.
|
||||
<b>/</b><i>pattern</i><b>/</b><i>flags</i> <i>result</i>
|
||||
|
||||
<b>!/</b><i>pattern</i><b>/</b><i>flags</i> <i>result</i>
|
||||
When <i>pattern</i> matches (does not match) a search
|
||||
string, use the corresponding <i>result</i> value.
|
||||
|
||||
blank lines and comments
|
||||
Empty lines and whitespace-only lines are ignored,
|
||||
@@ -32,8 +41,14 @@ REGEXP_TABLE(5) REGEXP_TABLE(5)
|
||||
line that starts with whitespace continues a logi-
|
||||
cal line.
|
||||
|
||||
<i>pattern1!pattern2</i> <i>result</i>
|
||||
Matches <i>pattern1</i> but not <i>pattern2</i>.
|
||||
<b>if</b> <b>/</b><i>pattern</i><b>/</b><i>flags</i>
|
||||
|
||||
<b>if</b> <b>!/</b><i>pattern</i><b>/</b><i>flags</i>
|
||||
|
||||
<b>endif</b> Examine the lines between <b>if</b>..<b>endif</b> only if <i>pattern</i>
|
||||
matches (does not match). The <b>if</b>..<b>endif</b> can nest.
|
||||
Do not prepend whitespace to patterns inside
|
||||
<b>if</b>..<b>endif</b>.
|
||||
|
||||
Each pattern is a regular expression enclosed by a pair of
|
||||
delimiters. The regular expression syntax is described in
|
||||
|
@@ -7,6 +7,10 @@ TRANSPORT(5) TRANSPORT(5)
|
||||
<b>SYNOPSIS</b>
|
||||
<b>postmap</b> <b>/etc/postfix/transport</b>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>"</b><i>string</i><b>"</b> <b>/etc/postfix/transport</b>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>-</b> <b>/etc/postfix/transport</b> <<i>inputfile</i>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The optional <b>transport</b> table specifies a mapping from
|
||||
email addresses to message delivery transports and/or
|
||||
|
@@ -7,6 +7,10 @@ VIRTUAL(5) VIRTUAL(5)
|
||||
<b>SYNOPSIS</b>
|
||||
<b>postmap</b> <b>/etc/postfix/virtual</b>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>"</b><i>string</i><b>"</b> <b>/etc/postfix/virtual</b>
|
||||
|
||||
<b>postmap</b> <b>-q</b> <b>-</b> <b>/etc/postfix/virtual</b> <<i>inputfile</i>
|
||||
|
||||
<b>DESCRIPTION</b>
|
||||
The optional <b>virtual</b> table specifies address redirections
|
||||
for local and non-local recipients or domains. The redi-
|
||||
|
@@ -191,6 +191,10 @@ case "$SYSTEM.$RELEASE" in
|
||||
echo "See the RELEASE_NOTES file for more information." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
if [ -f /usr/include/pcre/pcre.h ]
|
||||
then
|
||||
CCARGS="$CCARGS -DHAS_PCRE -I/usr/include/pcre"
|
||||
fi
|
||||
# GDBM locks the DBM .pag file after open. This breaks postmap.
|
||||
# if [ -f /usr/include/gdbm-ndbm.h ]
|
||||
# then
|
||||
@@ -202,7 +206,7 @@ case "$SYSTEM.$RELEASE" in
|
||||
# GDBM_LIBS=gdbm
|
||||
# fi
|
||||
SYSLIBS="-ldb"
|
||||
for name in nsl resolv $GDBM_LIBS
|
||||
for name in nsl resolv pcre $GDBM_LIBS
|
||||
do
|
||||
test -e /usr/lib/lib$name.a -o -e /usr/lib/lib$name.so \
|
||||
-o -e /lib/lib$name.a -o -e /lib/lib$name.so \
|
||||
|
@@ -9,6 +9,10 @@ format of Postfix access table
|
||||
.na
|
||||
.nf
|
||||
\fBpostmap /etc/postfix/access\fR
|
||||
|
||||
\fBpostmap -q "\fIstring\fB" /etc/postfix/access\fR
|
||||
|
||||
\fBpostmap -q - /etc/postfix/access <\fIinputfile\fR
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
|
@@ -9,6 +9,10 @@ format of Postfix canonical table
|
||||
.na
|
||||
.nf
|
||||
\fBpostmap /etc/postfix/canonical\fR
|
||||
|
||||
\fBpostmap -q "\fIstring\fB" /etc/postfix/canonical\fR
|
||||
|
||||
\fBpostmap -q - /etc/postfix/canonical <\fIinputfile\fR
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
|
@@ -8,7 +8,11 @@ format of Postfix PCRE tables
|
||||
.SH SYNOPSIS
|
||||
.na
|
||||
.nf
|
||||
pcre:/etc/postfix/filename
|
||||
\fBpcre:/etc/postfix/\fIfilename\fR
|
||||
|
||||
\fBpostmap -q "\fIstring\fB" pcre:/etc/postfix/\fIfilename\fR
|
||||
|
||||
\fBpostmap -q - pcre:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
@@ -20,16 +24,24 @@ can be specified in Perl Compatible Regular Expression form.
|
||||
To find out what types of lookup tables your Postfix system
|
||||
supports use the \fBpostconf -m\fR command.
|
||||
|
||||
To test lookup tables, use the \fBpostmap\fR command as
|
||||
described in the SYNOPSIS above.
|
||||
|
||||
The general form of a PCRE table is:
|
||||
.IP "\fIpattern result\fR"
|
||||
.IP "\fB/\fIpattern\fB/\fIflags result\fR"
|
||||
When \fIpattern\fR matches a search string, use the corresponding
|
||||
\fIresult\fR.
|
||||
\fIresult\fR value.
|
||||
.IP "blank lines and comments"
|
||||
Empty lines and whitespace-only lines are ignored, as
|
||||
are lines whose first non-whitespace character is a `#'.
|
||||
.IP "multi-line text"
|
||||
A logical line starts with non-whitespace text. A line that
|
||||
starts with whitespace continues a logical line.
|
||||
.IP "\fBif /\fIpattern\fB/\fIflags\fR"
|
||||
.IP "\fBendif\fR"
|
||||
Examine the lines between \fBif\fR..\fBendif\fR only if
|
||||
\fIpattern\fR matches. The \fBif\fR..\fBendif\fR can nest.
|
||||
Do not prepend whitespace to patterns inside \fBif\fR..\fBendif\fR.
|
||||
.PP
|
||||
Each pattern is a perl-like regular expression. The expression
|
||||
delimiter can be any character, except whitespace or characters
|
||||
|
@@ -8,7 +8,11 @@ format of Postfix regular expression tables
|
||||
.SH SYNOPSIS
|
||||
.na
|
||||
.nf
|
||||
regexp:/etc/postfix/filename
|
||||
\fBregexp:/etc/postfix/\fIfilename\fR
|
||||
|
||||
\fBpostmap -q "\fIstring\fB" regexp:/etc/postfix/\fIfilename\fR
|
||||
|
||||
\fBpostmap -q - regexp:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
@@ -20,18 +24,27 @@ can be specified in POSIX regular expression form.
|
||||
To find out what types of lookup tables your Postfix system
|
||||
supports use the \fBpostconf -m\fR command.
|
||||
|
||||
To test lookup tables, use the \fBpostmap\fR command as
|
||||
described in the SYNOPSIS above.
|
||||
|
||||
The general form of a Postfix regular expression table is:
|
||||
.IP "\fIpattern result\fR"
|
||||
When \fIpattern\fR matches a search string, use the corresponding
|
||||
\fIresult\fR.
|
||||
.IP "\fB/\fIpattern\fB/\fIflags result\fR"
|
||||
.IP "\fB!/\fIpattern\fB/\fIflags result\fR"
|
||||
When \fIpattern\fR matches (does not match) a search string,
|
||||
use the corresponding \fIresult\fR value.
|
||||
.IP "blank lines and comments"
|
||||
Empty lines and whitespace-only lines are ignored, as
|
||||
are lines whose first non-whitespace character is a `#'.
|
||||
.IP "multi-line text"
|
||||
A logical line starts with non-whitespace text. A line that
|
||||
starts with whitespace continues a logical line.
|
||||
.IP "\fIpattern1!pattern2 result\fR"
|
||||
Matches \fIpattern1\fR but not \fIpattern2\fR.
|
||||
.IP "\fBif /\fIpattern\fB/\fIflags\fR"
|
||||
.IP "\fBif !/\fIpattern\fB/\fIflags\fR"
|
||||
.IP "\fBendif\fR"
|
||||
Examine the lines between \fBif\fR..\fBendif\fR only if
|
||||
\fIpattern\fR matches (does not match). The \fBif\fR..\fBendif\fR
|
||||
can nest.
|
||||
Do not prepend whitespace to patterns inside \fBif\fR..\fBendif\fR.
|
||||
.PP
|
||||
Each pattern is a regular expression enclosed by a pair of delimiters.
|
||||
The regular expression syntax is described in \fIre_format\fR(7).
|
||||
|
@@ -9,6 +9,10 @@ format of Postfix transport table
|
||||
.na
|
||||
.nf
|
||||
\fBpostmap /etc/postfix/transport\fR
|
||||
|
||||
\fBpostmap -q "\fIstring\fB" /etc/postfix/transport\fR
|
||||
|
||||
\fBpostmap -q - /etc/postfix/transport <\fIinputfile\fR
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
|
@@ -9,6 +9,10 @@ format of Postfix virtual table
|
||||
.na
|
||||
.nf
|
||||
\fBpostmap /etc/postfix/virtual\fR
|
||||
|
||||
\fBpostmap -q "\fIstring\fB" /etc/postfix/virtual\fR
|
||||
|
||||
\fBpostmap -q - /etc/postfix/virtual <\fIinputfile\fR
|
||||
.SH DESCRIPTION
|
||||
.ad
|
||||
.fi
|
||||
|
@@ -105,7 +105,7 @@ commands with root privileges, or with the privileges of the
|
||||
mail system owner. If \fIgroupname\fR is specified, the
|
||||
corresponding group ID is used instead of the group ID of
|
||||
\fIusername\fR.
|
||||
.IP "\fBeol=string\fR (default: \fB\en\fR)"
|
||||
.IP "\fBeol=string\fR (optional, default: \fB\en\fR)"
|
||||
The output record delimiter. Typically one would use either
|
||||
\fB\er\en\fR or \fB\en\fR. The usual C-style backslash escape
|
||||
sequences are recognized: \fB\ea \eb \ef \en \er \et \ev
|
||||
|
@@ -5,6 +5,10 @@
|
||||
# format of Postfix access table
|
||||
# SYNOPSIS
|
||||
# \fBpostmap /etc/postfix/access\fR
|
||||
#
|
||||
# \fBpostmap -q "\fIstring\fB" /etc/postfix/access\fR
|
||||
#
|
||||
# \fBpostmap -q - /etc/postfix/access <\fIinputfile\fR
|
||||
# DESCRIPTION
|
||||
# The optional \fBaccess\fR table directs the Postfix SMTP server
|
||||
# to selectively reject or accept mail. Access can be allowed or
|
||||
|
@@ -5,6 +5,10 @@
|
||||
# format of Postfix canonical table
|
||||
# SYNOPSIS
|
||||
# \fBpostmap /etc/postfix/canonical\fR
|
||||
#
|
||||
# \fBpostmap -q "\fIstring\fB" /etc/postfix/canonical\fR
|
||||
#
|
||||
# \fBpostmap -q - /etc/postfix/canonical <\fIinputfile\fR
|
||||
# DESCRIPTION
|
||||
# The optional \fBcanonical\fR table specifies an address mapping for
|
||||
# local and non-local addresses. The mapping is used by the
|
||||
|
@@ -4,7 +4,11 @@
|
||||
# SUMMARY
|
||||
# format of Postfix PCRE tables
|
||||
# SYNOPSIS
|
||||
# pcre:/etc/postfix/filename
|
||||
# \fBpcre:/etc/postfix/\fIfilename\fR
|
||||
#
|
||||
# \fBpostmap -q "\fIstring\fB" pcre:/etc/postfix/\fIfilename\fR
|
||||
#
|
||||
# \fBpostmap -q - pcre:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
|
||||
# DESCRIPTION
|
||||
# The Postfix mail system uses optional tables for address
|
||||
# rewriting or mail routing. These tables are usually in
|
||||
@@ -14,16 +18,24 @@
|
||||
# To find out what types of lookup tables your Postfix system
|
||||
# supports use the \fBpostconf -m\fR command.
|
||||
#
|
||||
# To test lookup tables, use the \fBpostmap\fR command as
|
||||
# described in the SYNOPSIS above.
|
||||
#
|
||||
# The general form of a PCRE table is:
|
||||
# .IP "\fIpattern result\fR"
|
||||
# .IP "\fB/\fIpattern\fB/\fIflags result\fR"
|
||||
# When \fIpattern\fR matches a search string, use the corresponding
|
||||
# \fIresult\fR.
|
||||
# \fIresult\fR value.
|
||||
# .IP "blank lines and comments"
|
||||
# Empty lines and whitespace-only lines are ignored, as
|
||||
# are lines whose first non-whitespace character is a `#'.
|
||||
# .IP "multi-line text"
|
||||
# A logical line starts with non-whitespace text. A line that
|
||||
# starts with whitespace continues a logical line.
|
||||
# .IP "\fBif /\fIpattern\fB/\fIflags\fR"
|
||||
# .IP "\fBendif\fR"
|
||||
# Examine the lines between \fBif\fR..\fBendif\fR only if
|
||||
# \fIpattern\fR matches. The \fBif\fR..\fBendif\fR can nest.
|
||||
# Do not prepend whitespace to patterns inside \fBif\fR..\fBendif\fR.
|
||||
# .PP
|
||||
# Each pattern is a perl-like regular expression. The expression
|
||||
# delimiter can be any character, except whitespace or characters
|
||||
|
@@ -4,7 +4,11 @@
|
||||
# SUMMARY
|
||||
# format of Postfix regular expression tables
|
||||
# SYNOPSIS
|
||||
# regexp:/etc/postfix/filename
|
||||
# \fBregexp:/etc/postfix/\fIfilename\fR
|
||||
#
|
||||
# \fBpostmap -q "\fIstring\fB" regexp:/etc/postfix/\fIfilename\fR
|
||||
#
|
||||
# \fBpostmap -q - regexp:/etc/postfix/\fIfilename\fR <\fIinputfile\fR
|
||||
# DESCRIPTION
|
||||
# The Postfix mail system uses optional tables for address
|
||||
# rewriting or mail routing. These tables are usually in
|
||||
@@ -14,18 +18,27 @@
|
||||
# To find out what types of lookup tables your Postfix system
|
||||
# supports use the \fBpostconf -m\fR command.
|
||||
#
|
||||
# To test lookup tables, use the \fBpostmap\fR command as
|
||||
# described in the SYNOPSIS above.
|
||||
#
|
||||
# The general form of a Postfix regular expression table is:
|
||||
# .IP "\fIpattern result\fR"
|
||||
# When \fIpattern\fR matches a search string, use the corresponding
|
||||
# \fIresult\fR.
|
||||
# .IP "\fB/\fIpattern\fB/\fIflags result\fR"
|
||||
# .IP "\fB!/\fIpattern\fB/\fIflags result\fR"
|
||||
# When \fIpattern\fR matches (does not match) a search string,
|
||||
# use the corresponding \fIresult\fR value.
|
||||
# .IP "blank lines and comments"
|
||||
# Empty lines and whitespace-only lines are ignored, as
|
||||
# are lines whose first non-whitespace character is a `#'.
|
||||
# .IP "multi-line text"
|
||||
# A logical line starts with non-whitespace text. A line that
|
||||
# starts with whitespace continues a logical line.
|
||||
# .IP "\fIpattern1!pattern2 result\fR"
|
||||
# Matches \fIpattern1\fR but not \fIpattern2\fR.
|
||||
# .IP "\fBif /\fIpattern\fB/\fIflags\fR"
|
||||
# .IP "\fBif !/\fIpattern\fB/\fIflags\fR"
|
||||
# .IP "\fBendif\fR"
|
||||
# Examine the lines between \fBif\fR..\fBendif\fR only if
|
||||
# \fIpattern\fR matches (does not match). The \fBif\fR..\fBendif\fR
|
||||
# can nest.
|
||||
# Do not prepend whitespace to patterns inside \fBif\fR..\fBendif\fR.
|
||||
# .PP
|
||||
# Each pattern is a regular expression enclosed by a pair of delimiters.
|
||||
# The regular expression syntax is described in \fIre_format\fR(7).
|
||||
|
@@ -5,6 +5,10 @@
|
||||
# format of Postfix transport table
|
||||
# SYNOPSIS
|
||||
# \fBpostmap /etc/postfix/transport\fR
|
||||
#
|
||||
# \fBpostmap -q "\fIstring\fB" /etc/postfix/transport\fR
|
||||
#
|
||||
# \fBpostmap -q - /etc/postfix/transport <\fIinputfile\fR
|
||||
# DESCRIPTION
|
||||
# The optional \fBtransport\fR table specifies a mapping from email
|
||||
# addresses to message delivery transports and/or relay hosts. The
|
||||
|
@@ -5,6 +5,10 @@
|
||||
# format of Postfix virtual table
|
||||
# SYNOPSIS
|
||||
# \fBpostmap /etc/postfix/virtual\fR
|
||||
#
|
||||
# \fBpostmap -q "\fIstring\fB" /etc/postfix/virtual\fR
|
||||
#
|
||||
# \fBpostmap -q - /etc/postfix/virtual <\fIinputfile\fR
|
||||
# DESCRIPTION
|
||||
# The optional \fBvirtual\fR table specifies address redirections for
|
||||
# local and non-local recipients or domains. The redirections are used
|
||||
|
@@ -20,7 +20,7 @@
|
||||
* Patches change the patchlevel and the release date. Snapshots change the
|
||||
* release date only, unless they include the same bugfix as a patch release.
|
||||
*/
|
||||
#define MAIL_RELEASE_DATE "20020916"
|
||||
#define MAIL_RELEASE_DATE "20020917"
|
||||
|
||||
#define VAR_MAIL_VERSION "mail_version"
|
||||
#define DEF_MAIL_VERSION "1.1.11-" MAIL_RELEASE_DATE
|
||||
|
@@ -95,7 +95,7 @@
|
||||
/* mail system owner. If \fIgroupname\fR is specified, the
|
||||
/* corresponding group ID is used instead of the group ID of
|
||||
/* \fIusername\fR.
|
||||
/* .IP "\fBeol=string\fR (default: \fB\en\fR)"
|
||||
/* .IP "\fBeol=string\fR (optional, default: \fB\en\fR)"
|
||||
/* The output record delimiter. Typically one would use either
|
||||
/* \fB\er\en\fR or \fB\en\fR. The usual C-style backslash escape
|
||||
/* sequences are recognized: \fB\ea \eb \ef \en \er \et \ev
|
||||
|
@@ -335,7 +335,7 @@ static void dict_pcre_close(DICT *dict)
|
||||
case DICT_PCRE_OP_ENDIF:
|
||||
break;
|
||||
default:
|
||||
msg_panic("dict_regexp_close: unknown operation %d", rule->op);
|
||||
msg_panic("dict_pcre_close: unknown operation %d", rule->op);
|
||||
}
|
||||
myfree((char *) rule);
|
||||
}
|
||||
@@ -645,6 +645,10 @@ DICT *dict_pcre_open(const char *mapname, int unused_flags, int dict_flags)
|
||||
last_rule = rule;
|
||||
}
|
||||
|
||||
if (nesting)
|
||||
msg_warn("pcre map %s, line %d: more IFs than ENDIFs",
|
||||
mapname, lineno);
|
||||
|
||||
vstring_free(line_buffer);
|
||||
vstream_fclose(map_fp);
|
||||
|
||||
|
@@ -574,11 +574,16 @@ static DICT_REGEXP_RULE *dict_regexp_parseline(const char *mapname, int lineno,
|
||||
#define FREE_EXPR_AND_RETURN(expr, rval) \
|
||||
{ regfree(expr); myfree((char *) (expr)); return (rval); }
|
||||
|
||||
if (prescan_context.max_sub == 0)
|
||||
if (prescan_context.max_sub == 0 || first_pat.match == 0)
|
||||
first_pat.options |= REG_NOSUB;
|
||||
if ((first_exp = dict_regexp_compile_pat(mapname, lineno,
|
||||
&first_pat)) == 0)
|
||||
return (0);
|
||||
if (prescan_context.max_sub > 0 && first_pat.match == 0) {
|
||||
msg_warn("regexp map %s, line %d: $number found in negative match replacement text: "
|
||||
"skipping this rule", mapname, lineno);
|
||||
FREE_EXPR_AND_RETURN(first_exp, 0);
|
||||
}
|
||||
if (prescan_context.max_sub > first_exp->re_nsub) {
|
||||
msg_warn("regexp map %s, line %d: out of range replacement index \"%d\": "
|
||||
"skipping this rule", mapname, lineno,
|
||||
|
Reference in New Issue
Block a user