Mercurial > hg > nginx
view docs/xsls/changes.xsls @ 7838:815c63581be4
Mail: POP3 pipelining support.
The change is mostly the same as the SMTP one (04e43d03e153 and 3f5d0af4e40a),
and ensures that nginx is able to properly handle or reject multiple POP3
commands, as required by the PIPELINING capability (RFC 2449). The s->cmd
field is not really used and set for consistency.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 19 May 2021 03:13:18 +0300 |
parents | 529f10f7757c |
children | e79c7521aaf4 |
line wrap: on
line source
X:stylesheet { X:output method="text"; X:param lang="'en'"; X:param configuration="'../xml/change_log_conf.xml'"; X:var conf = "document($configuration)/configuration"; X:var start = "$conf/start"; X:var indent = "$conf/indent"; X:var max = "$conf/length"; X:var br = {<br>} X:template = "/" { !! "change_log"; } X:template = "change_log" { !! "changes"; } X:template = "changes" { X:text { } !{substring(concat($conf/changes[@lang=$lang]/title, //change_log/@title, ' ', @ver, ' '), 1, $conf/changes[@lang=$lang]/length)} X:if "$lang='ru'" { !{substring(@date, 9, 2)} X:text {.} !{substring(@date, 6, 2)} X:text {.} !{substring(@date, 1, 4)} } X:if "$lang='en'" { !{substring(@date, 9, 2)} !{$conf/changes[@lang=$lang]/month[number(substring(current()/@date, 6, 2))]} !{substring(@date, 1, 4)} } X:text { } !! "change"; X:text { } } X:template = "change" { X:var prefix = "$conf/changes[@lang=$lang]/*[local-name(.)=current()/@type]" X:var postfix = { X:if "$prefix" { X:text {: } } } !! "para[@lang=$lang]" (prefix = "concat($start, $prefix, $postfix)"); } X:template para(prefix) = "para" { X:var text = { !!; } X:text { } !wrap(text = "normalize-space($text)", prefix = { X:if "position() = 1" { !{$prefix} } else { !{$indent} } }) } X:template wrap(text, prefix) { X:if "$text" { X:var offset = { X:choose { X:when "starts-with($text, concat($br, ' '))" { !{string-length($br) + 2} } X:when "starts-with($text, $br)" { !{string-length($br) + 1} } X:otherwise { 1 } } } X:var length = { !length(text = "substring($text, $offset)", prefix = "string-length($prefix)", length = "$max") } !{$prefix} !{normalize-space(translate(substring($text, $offset, $length), ' ', ' '))} X:text { } !wrap(text = "substring($text, $length + $offset)", prefix = "$indent") } } X:template length(text, prefix, length) { X:var break = "substring-before(substring($text, 1, $length - $prefix + string-length($br)), $br)" X:choose { X:when "$break" { !{string-length($break)} } X:when "$length = 0" { !{$max - $prefix} } X:when "string-length($text) + $prefix <= $length" { !{$length - $prefix} } X:when "substring($text, $length - $prefix + 1, 1) = ' '" { !{$length - $prefix + 1} } X:otherwise { !length(text = "$text", prefix = "$prefix", length = "$length - 1") } } } X:template = "at" {@} X:template = "br" { !{$br} } X:template = "nobr" { !{translate(., ' ', ' ')} } }