nginx-0.1.6-RELEASE import

    *) Bugfix: some location directive combinations with the regular
       expressions caused the wrong configuration choose.
diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml
index 5236047..48f48c0 100644
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -6,6 +6,22 @@
             title="nginx">
 
 
+<changes ver="0.1.6" date="11.11.2004">
+
+<change type="bugfix">
+<para lang="ru">
+ÐÒÉ ÎÅËÏÔÏÒÙÈ ËÏÍÂÉÎÁÃÉÑÈ ÄÉÒÅËÔÉ× location c ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÉÑÍÉ
+ÉÓÐÏÌØÚÏ×ÁÌÁÓØ ËÏÎÆÉÇÕÒÁÃÉÑ ÎÅ ÉÚ ÔÏÇÏ location.
+</para>
+<para lang="en">
+some location directive combiations with the regular expressions caused
+the wrong configuration choose.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="0.1.5" date="11.11.2004">
 
 <change type="bugfix">
@@ -22,11 +38,11 @@
 <change type="bugfix">
 <para lang="ru">
 × ÒÅÖÉÍÅ ÐÒÏËÓÉ ÂÅÚ ÉÓÐÏÌØÚÏ×ÁÎÉÑ sendfile ÎÁ Solaris ×ÏÚÎÉËÁÌÁ
-ÏÛÉÂËÁ "writev() failed (22: Invalid argument)". îÁ ÄÒÕÇÉÈ ÐÌÁÔÆÏÒÍÁÈ,
-ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÝÉÈ sendfile, ÐÒÏÃÅÓÓ ÚÁÃÉËÌÉ×ÁÌÓÑ.
+ÏÛÉÂËÁ "writev() failed <nobr>(22: Invalid argument)".</nobr>
+îÁ ÄÒÕÇÉÈ ÐÌÁÔÆÏÒÍÁÈ, ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÝÉÈ sendfile, ÐÒÏÃÅÓÓ ÚÁÃÉËÌÉ×ÁÌÓÑ.
 </para>
 <para lang="en">
-there were the "writev() failed (22: Invalid argument)" errors on
+there were the "writev() failed <nobr>(22: Invalid argument)"</nobr> errors on
 Solaris in proxy mode without sendfile. On other platforms that do not
 support sendfile at all the process got caught in an endless loop.
 </para>
diff --git a/src/core/nginx.h b/src/core/nginx.h
index 2be26e0..a8c5ca1 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
 #define _NGINX_H_INCLUDED_
 
 
-#define NGINX_VER          "nginx/0.1.5"
+#define NGINX_VER          "nginx/0.1.6"
 
 #define NGINX_VAR          "NGINX"
 #define NGX_NEWPID_EXT     ".newbin"
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index 7e8cf69..29a6f76 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -992,6 +992,11 @@
         return 1;
     }
 
+    if (!first->regex && second->regex) {
+        /* shift the regex matches to the end */
+        return -1;
+    }
+
     if (first->regex || second->regex) {
         /* do not sort the regex matches */
         return 0;
@@ -1061,8 +1066,7 @@
 
     if (cf->args->nelts == 3) {
         if (value[1].len == 1 && value[1].data[0] == '=') {
-            clcf->name.len = value[2].len;
-            clcf->name.data = value[2].data;
+            clcf->name = value[2];
             clcf->exact_match = 1;
 
         } else if ((value[1].len == 1 && value[1].data[0] == '~')
@@ -1098,8 +1102,7 @@
         }
 
     } else {
-        clcf->name.len = value[1].len;
-        clcf->name.data = value[1].data;
+        clcf->name = value[1];
     }
 
     pclcf = pctx->loc_conf[ngx_http_core_module.ctx_index];