nginx-0.3.49-RELEASE import

    *) Bugfix: in the "set" directive.

    *) Bugfix: if two or more FastCGI subrequests was in SSI, then first
       subrequest output was included instead of second and following
       subrequests.
diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml
index 225b0b0..b641d39 100644
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -9,6 +9,32 @@
 <title lang="en">nginx changelog</title>
 
 
+<changes ver="0.3.49" date="31.05.2006">
+
+<change type="bugfix">
+<para lang="ru">
+× ÄÉÒÅËÔÉ×Å set.
+</para>
+<para lang="en">
+in the "set" directive.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+ÐÒÉ ×ËÌÀÞÅÎÉÉ × ssi Ä×ÕÈ É ÂÏÌÅÅ ÐÏÄÚÁÐÒÏÓÏ×, ÏÂÒÁÂÁÔÙ×ÁÅÍÙÈ ÞÅÒÅÚ FastCGI,
+×ÍÅÓÔÏ ×Ù×ÏÄÁ ×ÔÏÒÏÇÏ É ÏÓÔÁÌØÎÙÈ ÐÏÄÚÁÐÒÏÓÏ× × ÏÔ×ÅÔ ×ËÌÀÞÁÌÓÑ ×Ù×ÏÄ
+ÐÅÒ×ÏÇÏ ÐÏÄÚÁÐÒÏÓÁ.
+</para>
+<para lang="en">
+if two or more FastCGI subrequests was in SSI, then first subrequest output
+was included instead of second and following subrequests.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="0.3.48" date="29.05.2006">
 
 <change type="change">
diff --git a/src/core/nginx.h b/src/core/nginx.h
index c376b92..cd1917f 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define NGINX_VER          "nginx/0.3.48"
+#define NGINX_VER          "nginx/0.3.49"
 
 #define NGINX_VAR          "NGINX"
 #define NGX_OLDPID_EXT     ".oldbin"
diff --git a/src/http/modules/ngx_http_fastcgi_module.c b/src/http/modules/ngx_http_fastcgi_module.c
index 82388a6..8663f88 100644
--- a/src/http/modules/ngx_http_fastcgi_module.c
+++ b/src/http/modules/ngx_http_fastcgi_module.c
@@ -1476,7 +1476,7 @@
     ngx_http_variable_t  *var;
 
     var = ngx_http_add_variable(cf, &ngx_http_fastcgi_script_name,
-                                NGX_HTTP_VAR_NOHASH);
+                                NGX_HTTP_VAR_NOHASH|NGX_HTTP_VAR_NOCACHABLE);
     if (var == NULL) {
         return NGX_ERROR;
     }
diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c
index 94793d7..83c1998 100644
--- a/src/http/ngx_http_script.c
+++ b/src/http/ngx_http_script.c
@@ -501,7 +501,7 @@
             && (e->request->quoted_uri || e->request->plus_in_uri))
         {
             return e->captures[code->n + 1] - e->captures[code->n]
-                   + ngx_escape_uri(NULL,
+                   + 2 * ngx_escape_uri(NULL,
                                 &e->line.data[e->captures[code->n]],
                                 e->captures[code->n + 1] - e->captures[code->n],
                                 NGX_ESCAPE_ARGS);
@@ -1016,9 +1016,11 @@
     ngx_memzero(&le, sizeof(ngx_http_script_engine_t));
 
     le.ip = code->lengths->elts;
+    le.line = e->line;
     le.request = e->request;
     le.captures = e->captures;
     le.ncaptures = e->ncaptures;
+    le.quote = e->quote;
 
     for (len = 0; *(uintptr_t *) le.ip; len += lcode(&le)) {
         lcode = *(ngx_http_script_len_code_pt *) le.ip;