Mercurial > hg > nginx-vendor-0-7
diff src/http/ngx_http_script.c @ 190:3689cd4e3228 NGINX_0_3_42
nginx 0.3.42
*) Feature: the "bind" option of the "listen" directive in IMAP/POP3
proxy.
*) Bugfix: if the same capture in the "rewrite" directive was used more
then once.
*) Bugfix: the $sent_http_content_type, $sent_http_content_length,
$sent_http_last_modified, $sent_http_connection,
$sent_http_keep_alive, and $sent_http_transfer_encoding variables
were not written to access log.
*) Bugfix: the $sent_http_cache_control returned value of the single
"Cache-Control" response header line.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Wed, 26 Apr 2006 00:00:00 +0400 |
parents | 54aabf2b0bc6 |
children | ca5f86d94316 |
line wrap: on
line diff
--- a/src/http/ngx_http_script.c +++ b/src/http/ngx_http_script.c @@ -91,6 +91,14 @@ ngx_http_script_compile(ngx_http_script_ if (sc->source->data[i] >= '1' && sc->source->data[i] <= '9') { + n = sc->source->data[i] - '0'; + + if (sc->captures_mask & (1 << n)) { + sc->dup_capture = 1; + } + + sc->captures_mask |= 1 << n; + copy_capture = ngx_http_script_add_code(*sc->lengths, sizeof(ngx_http_script_copy_capture_code_t), NULL); @@ -100,7 +108,8 @@ ngx_http_script_compile(ngx_http_script_ copy_capture->code = (ngx_http_script_code_pt) ngx_http_script_copy_capture_len_code; - copy_capture->n = 2 * (sc->source->data[i] - '0'); + copy_capture->n = 2 * n; + copy_capture = ngx_http_script_add_code(*sc->values, sizeof(ngx_http_script_copy_capture_code_t), @@ -110,14 +119,12 @@ ngx_http_script_compile(ngx_http_script_ } copy_capture->code = ngx_http_script_copy_capture_code; - copy_capture->n = sc->source->data[i] - '0'; + copy_capture->n = 2 * n; - if (sc->ncaptures < copy_capture->n) { - sc->ncaptures = copy_capture->n; + if (sc->ncaptures < n) { + sc->ncaptures = n; } - copy_capture->n *= 2; - i++; continue;