nginx-0.1.33-RELEASE import

    *) Bugfix: nginx could not be built with the --without-pcre parameter;
       the bug had appeared in 0.1.29.

    *) Bugfix: 3, 4, 7, and 8 the "proxy_set_header" directives in one
       level cause the bus fault on start up.

    *) Bugfix: the HTTP protocol was specified in the HTTPS redirects.

    *) Bugfix: if the "rewrite" directive used the captures inside the "if"
       directive, then the 500 error code was returned.
diff --git a/auto/cc/ccc b/auto/cc/ccc
index 968015f..298f31e 100644
--- a/auto/cc/ccc
+++ b/auto/cc/ccc
@@ -10,27 +10,30 @@
 
 CFLAGS="$CFLAGS -msg_enable level6 -msg_fatal level6"
 
+CFLAGS="$CFLAGS -msg_disable unknownmacro"
+CFLAGS="$CFLAGS -msg_disable unusedincl"
 CFLAGS="$CFLAGS -msg_disable unnecincl"
 CFLAGS="$CFLAGS -msg_disable nestincl"
-CFLAGS="$CFLAGS -msg_disable unusedincl"
-CFLAGS="$CFLAGS -msg_disable unknownmacro"
 CFLAGS="$CFLAGS -msg_disable strctpadding"
 CFLAGS="$CFLAGS -msg_disable ansialiascast"
 CFLAGS="$CFLAGS -msg_disable inlinestoclsmod"
 CFLAGS="$CFLAGS -msg_disable cxxkeyword"
 CFLAGS="$CFLAGS -msg_disable longlongsufx"
+CFLAGS="$CFLAGS -msg_disable valuepres"
 
 # STUB
 CFLAGS="$CFLAGS -msg_disable truncintcast"
 CFLAGS="$CFLAGS -msg_disable trunclongcast"
+
 CFLAGS="$CFLAGS -msg_disable truncintasn"
 CFLAGS="$CFLAGS -msg_disable trunclongint"
 CFLAGS="$CFLAGS -msg_disable intconcastsgn"
 CFLAGS="$CFLAGS -msg_disable intconstsign"
-CFLAGS="$CFLAGS -msg_disable hexoctunsign"
 CFLAGS="$CFLAGS -msg_disable switchlong"
-CFLAGS="$CFLAGS -msg_disable valuepres"
 CFLAGS="$CFLAGS -msg_disable subscrbounds2"
+
+CFLAGS="$CFLAGS -msg_disable hexoctunsign"
+
 CFLAGS="$CFLAGS -msg_disable ignorecallval"
 CFLAGS="$CFLAGS -msg_disable nonstandcast"
 CFLAGS="$CFLAGS -msg_disable embedcomment"
@@ -38,4 +41,5 @@
 CFLAGS="$CFLAGS -msg_disable questcompare2"
 CFLAGS="$CFLAGS -msg_disable unusedtop"
 CFLAGS="$CFLAGS -msg_disable unrefdecl"
+
 CFLAGS="$CFLAGS -msg_disable bitnotint"
diff --git a/auto/cc/conf b/auto/cc/conf
index b2eabeb..4d151da 100644
--- a/auto/cc/conf
+++ b/auto/cc/conf
@@ -124,7 +124,7 @@
     . auto/feature
 
 
-    if [ $NGX_CC_NAME = 'ccc' ]; then
+    if [ "$NGX_CC_NAME" = "ccc" ]; then
         echo "checking for C99 variadic macros ... disabled"
     else
         ngx_feature="C99 variadic macros"
diff --git a/auto/cc/name b/auto/cc/name
index fb4f49a..c89ce79 100644
--- a/auto/cc/name
+++ b/auto/cc/name
@@ -34,7 +34,7 @@
     echo " using GNU C compiler"
 
 else
-if `$CC -V 2>&1 | grep '^Intel(R) C++ Compiler' 2>&1 >/dev/null`; then
+if `$CC -V 2>&1 | grep '^Intel(R) C' 2>&1 >/dev/null`; then
     NGX_CC_NAME=icc
     echo " using Intel C++ compiler"
 
@@ -49,6 +49,7 @@
     echo " using HP aC++ compiler"
 
 else
+    NGX_CC_NAME=unknown
     echo " unknown"
 
 fi # acc
diff --git a/auto/os/conf b/auto/os/conf
index 226f8dd..69813ce 100644
--- a/auto/os/conf
+++ b/auto/os/conf
@@ -53,8 +53,9 @@
     ;;
 
     OSF1:*)
-        # HP Tru64
+        # Tru64 UNIX
         have=NGX_TRU64 . auto/have_headers
+        have=NGX_HAVE_STRERROR_R . auto/nohave
         CORE_INCS="$UNIX_INCS"
         CORE_DEPS="$UNIX_DEPS $POSIX_DEPS"
         CORE_SRCS="$UNIX_SRCS"
diff --git a/docs/xml/nginx/changes.xml b/docs/xml/nginx/changes.xml
index ce7f6c3..f65c705 100644
--- a/docs/xml/nginx/changes.xml
+++ b/docs/xml/nginx/changes.xml
@@ -9,6 +9,53 @@
 <title lang="en">nginx changelog</title>
 
 
+<changes ver="0.1.33" date="23.05.2005">
+
+<change type="bugfix">
+<para lang="ru">
+nginx ÎÅ ÓÏÂÉÒÁÌÓÑ Ó ÐÁÒÁÍÅÔÒÏÍ --without-pcre;
+ÏÛÉÂËÁ ÐÏÑ×ÉÌÁÓØ × 0.1.29.
+</para>
+<para lang="en">
+nginx could not be built with the --without-pcre parameter;
+bug appeared in 0.1.29.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+3, 5, 7 É 8 ÄÉÒÅËÔÉ× proxy_set_header ÎÁ ÏÄÎÏÍ ÕÒÏ×ÎÅ ×ÙÚÙ×ÁÌÉ
+bus fault ÐÒÉ ÚÁÐÕÓËÅ.
+</para>
+<para lang="en">
+3, 4, 7, and 8 the "proxy_set_header" directives in one level cause
+the bus fault on start up.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+× ÒÅÄÉÒÅËÔÁÈ ×ÎÕÔÒÉ HTTPS ÓÅÒ×ÅÒÁ ÂÙÌ ÕËÁÚÁÎ ÐÒÏÔÏËÏÌ HTTP.
+</para>
+<para lang="en">
+the HTTP protocol was specified in the HTTPS redirects.
+</para>
+</change>
+
+<change type="bugfix">
+<para lang="ru">
+ÅÓÌÉ ÄÉÒÅËÔÉ×Á rewrite ÉÓÐÏÌØÚÏ×ÁÌÁ ×ÙÄÅÌÅÎÉÑ ×ÎÕÔÒÉ ÄÉÒÅËÔÉ×Ù if, ÔÏ
+×ÏÚ×ÒÁÝÁÌÁÓØ ÏÛÉÂËÁ 500.
+</para>
+<para lang="en">
+if the "rewrite" directive used the captures inside the "if" directive, then
+the 500 error code was returned.
+</para>
+</change>
+
+</changes>
+
+
 <changes ver="0.1.32" date="19.05.2005">
 
 <change type="bugfix">
diff --git a/src/core/nginx.c b/src/core/nginx.c
index bb6f093..7b98e12 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -440,7 +440,7 @@
             return NGX_ERROR;
         }
 
-        ngx_cpystrn((u_char *) ngx_argv[i], (u_char *) argv[i], len);
+        (void) ngx_cpystrn((u_char *) ngx_argv[i], (u_char *) argv[i], len);
     }
 
     ngx_argv[i] = NULL;
@@ -473,8 +473,8 @@
     ccf->master = NGX_CONF_UNSET;
     ccf->worker_processes = NGX_CONF_UNSET;
     ccf->debug_points = NGX_CONF_UNSET;
-    ccf->user = (ngx_uid_t) NGX_CONF_UNSET;
-    ccf->group = (ngx_gid_t) NGX_CONF_UNSET;
+    ccf->user = (ngx_uid_t) NGX_CONF_UNSET_UINT;
+    ccf->group = (ngx_gid_t) NGX_CONF_UNSET_UINT;
 #if (NGX_THREADS)
     ccf->worker_threads = NGX_CONF_UNSET;
     ccf->thread_stack_size = NGX_CONF_UNSET_SIZE;
@@ -507,7 +507,7 @@
 
 #if !(NGX_WIN32)
 
-    if (ccf->user == (uid_t) NGX_CONF_UNSET && geteuid() == 0) {
+    if (ccf->user == (uid_t) NGX_CONF_UNSET_UINT && geteuid() == 0) {
 
         pwd = getpwnam(NGX_USER);
         if (pwd == NULL) {
@@ -573,7 +573,7 @@
     struct group     *grp;
     ngx_str_t        *value;
 
-    if (ccf->user != (uid_t) NGX_CONF_UNSET) {
+    if (ccf->user != (uid_t) NGX_CONF_UNSET_UINT) {
         return "is duplicate";
     }
 
diff --git a/src/core/nginx.h b/src/core/nginx.h
index d1a5693..efc35b8 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.32"
+#define NGINX_VER          "nginx/0.1.33"
 
 #define NGINX_VAR          "NGINX"
 #define NGX_NEWPID_EXT     ".newbin"
diff --git a/src/core/ngx_conf_file.c b/src/core/ngx_conf_file.c
index 42143bd..1a66ea9 100644
--- a/src/core/ngx_conf_file.c
+++ b/src/core/ngx_conf_file.c
@@ -457,7 +457,7 @@
                 return NGX_OK;
 
             case '}':
-                if (cf->args->nelts > 0) {
+                if (cf->args->nelts != 0) {
                     ngx_log_error(NGX_LOG_EMERG, cf->log, 0,
                                   "unexpected \"}\" in %s:%ui",
                                   cf->conf_file->file.name.data,
diff --git a/src/core/ngx_config.h b/src/core/ngx_config.h
index 675d427..4045e7a 100644
--- a/src/core/ngx_config.h
+++ b/src/core/ngx_config.h
@@ -126,9 +126,9 @@
 
 
 #if ((__GNU__ == 2) && (__GNUC_MINOR__ < 8))
-#define NGX_MAX_UINT32_VALUE  0xffffffffLL
+#define NGX_MAX_UINT32_VALUE  (uint32_t) 0xffffffffLL
 #else
-#define NGX_MAX_UINT32_VALUE  0xffffffff
+#define NGX_MAX_UINT32_VALUE  (uint32_t) 0xffffffff
 #endif
 
 
diff --git a/src/core/ngx_connection.h b/src/core/ngx_connection.h
index eed955a..bbca32b 100644
--- a/src/core/ngx_connection.h
+++ b/src/core/ngx_connection.h
@@ -17,8 +17,8 @@
 
     struct sockaddr  *sockaddr;
     socklen_t         socklen;    /* size of sockaddr */
-    int               addr;       /* offset to address in sockaddr */
-    int               addr_text_max_len;
+    size_t            addr;       /* offset to address in sockaddr */
+    size_t            addr_text_max_len;
     ngx_str_t         addr_text;
 
     int               family;
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
index eaebdb0..3a1c00e 100644
--- a/src/core/ngx_cycle.c
+++ b/src/core/ngx_cycle.c
@@ -717,7 +717,7 @@
             continue;
         }
 #else
-        if (user != (ngx_uid_t) -1) {
+        if (user != (ngx_uid_t) NGX_CONF_UNSET_UINT) {
 
             if (ngx_file_info((const char *) file[i].name.data, &fi) == -1) {
                 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index 46d2e0a..efabd39 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -61,8 +61,8 @@
     n = ngx_next_temp_number(0);
 
     for ( ;; ) {
-        ngx_sprintf(file->name.data + path->name.len + 1 + path->len,
-                    "%0muA%Z", n);
+        (void) ngx_sprintf(file->name.data + path->name.len + 1 + path->len,
+                           "%0muA%Z", n);
 
         ngx_create_hashed_filename(file, path);
 
@@ -123,7 +123,8 @@
 void
 ngx_create_hashed_filename(ngx_file_t *file, ngx_path_t *path)
 {
-    ngx_uint_t  i, name, pos, level;
+    size_t      name, pos, level;
+    ngx_uint_t  i;
 
     name = file->name.len;
     pos = path->name.len + 1;
@@ -151,8 +152,9 @@
 ngx_int_t
 ngx_create_path(ngx_file_t *file, ngx_path_t *path)
 {
-    int        i, pos;
-    ngx_err_t  err;
+    size_t      pos;
+    ngx_err_t   err;
+    ngx_uint_t  i;
 
     pos = path->name.len;
 
@@ -344,7 +346,7 @@
             }
         }
 
-        if (user == (ngx_uid_t) -1) {
+        if (user == (ngx_uid_t) NGX_CONF_UNSET_UINT) {
             continue;
         }
 
diff --git a/src/core/ngx_file.h b/src/core/ngx_file.h
index 2bda858..1efee29 100644
--- a/src/core/ngx_file.h
+++ b/src/core/ngx_file.h
@@ -33,8 +33,8 @@
 
 struct ngx_path_s {
     ngx_str_t           name;
-    ngx_uint_t          len;
-    ngx_uint_t          level[3];
+    size_t              len;
+    size_t              level[3];
     ngx_gc_handler_pt   cleaner;
 
     u_char             *conf_file;
diff --git a/src/core/ngx_garbage_collector.c b/src/core/ngx_garbage_collector.c
index 07a3f7f..4eeaeb9 100644
--- a/src/core/ngx_garbage_collector.c
+++ b/src/core/ngx_garbage_collector.c
@@ -6,7 +6,6 @@
 
 #include <ngx_config.h>
 #include <ngx_core.h>
-#include <ngx_garbage_collector.h>
 
 
 
diff --git a/src/core/ngx_inet.c b/src/core/ngx_inet.c
index e7bdc41..7b2d8d6 100644
--- a/src/core/ngx_inet.c
+++ b/src/core/ngx_inet.c
@@ -225,8 +225,9 @@
 {
     char                *err;
     u_char              *host;
+    size_t               len;
     in_addr_t            in_addr;
-    ngx_uint_t           i, len;
+    ngx_uint_t           i;
     ngx_peers_t         *peers;
     struct hostent      *h;
     struct sockaddr_in  *sin;
@@ -281,7 +282,7 @@
         return NULL;
     }
 
-    ngx_cpystrn(host, u->host.data, u->host.len + 1);
+    (void) ngx_cpystrn(host, u->host.data, u->host.len + 1);
 
     /* AF_INET only */
 
diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c
index 2782582..efc62f9 100644
--- a/src/core/ngx_log.c
+++ b/src/core/ngx_log.c
@@ -179,7 +179,7 @@
 
     errstr[len++] = LF;
 
-    write(log->file->fd, errstr, len);
+    (void) write(log->file->fd, errstr, len);
 
 #endif
 }
diff --git a/src/core/ngx_output_chain.c b/src/core/ngx_output_chain.c
index e4a8723..1e72291 100644
--- a/src/core/ngx_output_chain.c
+++ b/src/core/ngx_output_chain.c
@@ -381,12 +381,12 @@
         n = ngx_read_file(src->file, dst->pos, (size_t) size, src->file_pos);
 
         if (n == NGX_ERROR) {
-            return n;
+            return (ngx_int_t) n;
         }
 
 #if (NGX_FILE_AIO_READ)
         if (n == NGX_AGAIN) {
-            return n;
+            return (ngx_int_t) n;
         }
 #endif
 
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c
index 8d69c1b..0307bb1 100644
--- a/src/core/ngx_string.c
+++ b/src/core/ngx_string.c
@@ -15,7 +15,7 @@
         return dst;
     }
 
-    for (/* void */; --n; dst++, src++) {
+    for ( /* void */ ; --n; dst++, src++) {
         *dst = *src;
 
         if (*dst == '\0') {
diff --git a/src/core/ngx_times.c b/src/core/ngx_times.c
index 30938a1..f43987e 100644
--- a/src/core/ngx_times.c
+++ b/src/core/ngx_times.c
@@ -155,14 +155,14 @@
 
     p = cached_http_time[slot];
 
-    ngx_sprintf(p, "%s, %02d %s %4d %02d:%02d:%02d GMT",
-                week[ngx_cached_gmtime.ngx_tm_wday],
-                ngx_cached_gmtime.ngx_tm_mday,
-                months[ngx_cached_gmtime.ngx_tm_mon - 1],
-                ngx_cached_gmtime.ngx_tm_year,
-                ngx_cached_gmtime.ngx_tm_hour,
-                ngx_cached_gmtime.ngx_tm_min,
-                ngx_cached_gmtime.ngx_tm_sec);
+    (void) ngx_sprintf(p, "%s, %02d %s %4d %02d:%02d:%02d GMT",
+                       week[ngx_cached_gmtime.ngx_tm_wday],
+                       ngx_cached_gmtime.ngx_tm_mday,
+                       months[ngx_cached_gmtime.ngx_tm_mon - 1],
+                       ngx_cached_gmtime.ngx_tm_year,
+                       ngx_cached_gmtime.ngx_tm_hour,
+                       ngx_cached_gmtime.ngx_tm_min,
+                       ngx_cached_gmtime.ngx_tm_sec);
 
     ngx_cached_http_time.data = p;
 
@@ -175,7 +175,7 @@
 #elif (NGX_HAVE_GMTOFF)
 
     ngx_localtime(&tm);
-    ngx_gmtoff = tm.ngx_tm_gmtoff / 60;
+    ngx_gmtoff = (ngx_int_t) (tm.ngx_tm_gmtoff / 60);
 
 #else
 
@@ -187,22 +187,22 @@
 
     p = cached_err_log_time[slot];
 
-    ngx_sprintf(p, "%4d/%02d/%02d %02d:%02d:%02d",
-                tm.ngx_tm_year, tm.ngx_tm_mon,
-                tm.ngx_tm_mday, tm.ngx_tm_hour,
-                tm.ngx_tm_min, tm.ngx_tm_sec);
+    (void) ngx_sprintf(p, "%4d/%02d/%02d %02d:%02d:%02d",
+                       tm.ngx_tm_year, tm.ngx_tm_mon,
+                       tm.ngx_tm_mday, tm.ngx_tm_hour,
+                       tm.ngx_tm_min, tm.ngx_tm_sec);
 
     ngx_cached_err_log_time.data = p;
 
 
     p = cached_http_log_time[slot];
 
-    ngx_sprintf(p, "%02d/%s/%d:%02d:%02d:%02d %c%02d%02d",
-                tm.ngx_tm_mday, months[tm.ngx_tm_mon - 1],
-                tm.ngx_tm_year, tm.ngx_tm_hour,
-                tm.ngx_tm_min, tm.ngx_tm_sec,
-                ngx_gmtoff < 0 ? '-' : '+',
-                abs(ngx_gmtoff / 60), abs(ngx_gmtoff % 60));
+    (void) ngx_sprintf(p, "%02d/%s/%d:%02d:%02d:%02d %c%02d%02d",
+                       tm.ngx_tm_mday, months[tm.ngx_tm_mon - 1],
+                       tm.ngx_tm_year, tm.ngx_tm_hour,
+                       tm.ngx_tm_min, tm.ngx_tm_sec,
+                       ngx_gmtoff < 0 ? '-' : '+',
+                       abs(ngx_gmtoff / 60), abs(ngx_gmtoff % 60));
 
     ngx_cached_http_log_time.data = p;
 
diff --git a/src/core/ngx_unix_domain.c b/src/core/ngx_unix_domain.c
index a7fdd63..097d111 100644
--- a/src/core/ngx_unix_domain.c
+++ b/src/core/ngx_unix_domain.c
@@ -72,7 +72,7 @@
     peers->number = 1;
 
     sun->sun_family = AF_UNIX;
-    ngx_cpystrn((u_char *) sun->sun_path, u->url.data + 5, len + 1);
+    (void) ngx_cpystrn((u_char *) sun->sun_path, u->url.data + 5, len + 1);
 
     peers->peer[0].sockaddr = (struct sockaddr *) sun;
     peers->peer[0].socklen = sizeof(struct sockaddr_un);
diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c
index a24be24..92dd6cc 100644
--- a/src/http/modules/ngx_http_proxy_module.c
+++ b/src/http/modules/ngx_http_proxy_module.c
@@ -311,8 +311,8 @@
 
 
 static ngx_table_elt_t  ngx_http_proxy_headers[] = {
-    { 0, ngx_string("Host"), ngx_string("$proxy_host"), },
-    { 0, ngx_string("Connection"), ngx_string("close"), },
+    { 0, ngx_string("Host"), ngx_string("$proxy_host") },
+    { 0, ngx_string("Connection"), ngx_string("close") },
     { 0, ngx_null_string, ngx_null_string }
 };
 
@@ -1560,6 +1560,8 @@
 
         *s = *h;
 
+        src = conf->headers_source->elts;
+
     next:
 
         continue;
diff --git a/src/http/modules/ngx_http_rewrite_module.c b/src/http/modules/ngx_http_rewrite_module.c
index 47ff8c5..da4719b 100644
--- a/src/http/modules/ngx_http_rewrite_module.c
+++ b/src/http/modules/ngx_http_rewrite_module.c
@@ -556,8 +556,7 @@
     regex_end->redirect = regex->redirect;
 
     if (last) {
-        code = ngx_http_script_add_code(lcf->codes, sizeof(uintptr_t),
-                                        &regex);
+        code = ngx_http_script_add_code(lcf->codes, sizeof(uintptr_t), &regex);
         if (code == NULL) {
             return NGX_CONF_ERROR;
         }
@@ -713,6 +712,11 @@
     }
 
 
+    if (lcf->captures < nlcf->captures) {
+        lcf->captures = nlcf->captures;
+    }
+
+
     if (elts != lcf->codes->elts) {
         if_code = (ngx_http_script_if_code_t *)
                    ((u_char *) if_code + ((u_char *) lcf->codes->elts - elts));
diff --git a/src/http/ngx_http_header_filter_module.c b/src/http/ngx_http_header_filter_module.c
index f3defa0..a45f2e5 100644
--- a/src/http/ngx_http_header_filter_module.c
+++ b/src/http/ngx_http_header_filter_module.c
@@ -264,11 +264,26 @@
     {
         r->headers_out.location->hash = 0;
 
-        len += sizeof("Location: http://") - 1
-               + r->server_name.len + r->headers_out.location->value.len + 2;
+#if (NGX_HTTP_SSL)
+        if (r->connection->ssl) {
+            len += sizeof("Location: https://") - 1
+                   + r->server_name.len
+                   + r->headers_out.location->value.len + 2;
 
-        if (r->port != 80) {
-            len += r->port_text->len;
+            if (r->port != 443) {
+                len += r->port_text->len;
+            }
+
+        } else
+#endif
+        {
+            len += sizeof("Location: http://") - 1
+                   + r->server_name.len
+                   + r->headers_out.location->value.len + 2;
+
+            if (r->port != 80) {
+                len += r->port_text->len;
+            }
         }
     }
 
@@ -396,13 +411,33 @@
         && r->headers_out.location->value.data[0] == '/')
     {
         p = b->last + sizeof("Location: ") - 1;
-        b->last = ngx_cpymem(b->last, "Location: http://",
-                             sizeof("Location: http://") - 1);
+
+        b->last = ngx_cpymem(b->last, "Location: http",
+                             sizeof("Location: http") - 1);
+
+#if (NGX_HTTP_SSL)
+        if (r->connection->ssl) {
+            *b->last++ ='s';
+        }
+#endif
+
+        *b->last++ = ':'; *b->last++ = '/'; *b->last++ = '/';
         b->last = ngx_cpymem(b->last, r->server_name.data,
                              r->server_name.len);
-        if (r->port != 80) {
-            b->last = ngx_cpymem(b->last, r->port_text->data,
-                                 r->port_text->len);
+
+#if (NGX_HTTP_SSL)
+        if (r->connection->ssl) {
+            if (r->port != 443) {
+                b->last = ngx_cpymem(b->last, r->port_text->data,
+                                     r->port_text->len);
+            }
+        } else
+#endif
+        {
+            if (r->port != 80) {
+                b->last = ngx_cpymem(b->last, r->port_text->data,
+                                     r->port_text->len);
+            }
         }
 
         b->last = ngx_cpymem(b->last, r->headers_out.location->value.data,
diff --git a/src/http/ngx_http_script.c b/src/http/ngx_http_script.c
index ea1e56b..89256b3 100644
--- a/src/http/ngx_http_script.c
+++ b/src/http/ngx_http_script.c
@@ -463,6 +463,9 @@
 }
 
 
+
+#if (NGX_PCRE)
+
 void
 ngx_http_script_regex_start_code(ngx_http_script_engine_t *e)
 {
@@ -693,6 +696,8 @@
     e->ip += sizeof(ngx_http_script_regex_end_code_t);
 }
 
+#endif
+
 
 void
 ngx_http_script_return_code(ngx_http_script_engine_t *e)
diff --git a/src/http/ngx_http_script.h b/src/http/ngx_http_script.h
index cf80f22..eb6f17e 100644
--- a/src/http/ngx_http_script.h
+++ b/src/http/ngx_http_script.h
@@ -79,6 +79,8 @@
 } ngx_http_script_copy_capture_code_t;
 
 
+#if (NGX_PCRE)
+
 typedef struct {
     ngx_http_script_code_pt          code;
     ngx_regex_t                     *regex;
@@ -114,6 +116,8 @@
     uintptr_t                        redirect:1;
 } ngx_http_script_regex_end_code_t;
 
+#endif
+
 
 typedef struct {
     ngx_http_script_code_pt          code;
@@ -156,10 +160,11 @@
 void ngx_http_script_copy_var_code(ngx_http_script_engine_t *e);
 size_t ngx_http_script_copy_capture_len_code(ngx_http_script_engine_t *e);
 void ngx_http_script_copy_capture_code(ngx_http_script_engine_t *e);
+void ngx_http_script_start_args_code(ngx_http_script_engine_t *e);
+#if (NGX_PCRE)
 void ngx_http_script_regex_start_code(ngx_http_script_engine_t *e);
 void ngx_http_script_regex_end_code(ngx_http_script_engine_t *e);
-void ngx_http_script_copy_capture_code(ngx_http_script_engine_t *e);
-void ngx_http_script_start_args_code(ngx_http_script_engine_t *e);
+#endif
 void ngx_http_script_return_code(ngx_http_script_engine_t *e);
 void ngx_http_script_if_code(ngx_http_script_engine_t *e);
 void ngx_http_script_complex_value_code(ngx_http_script_engine_t *e);
diff --git a/src/os/unix/ngx_errno.h b/src/os/unix/ngx_errno.h
index 51d608b..310a1dc 100644
--- a/src/os/unix/ngx_errno.h
+++ b/src/os/unix/ngx_errno.h
@@ -52,7 +52,7 @@
 
 #else
 
-/* Solaris has thread-safe strerror() */
+/* Solaris and Tru64 UNIX have thread-safe strerror() */
 
 #define ngx_strerror_r(err, errstr, size)  \
     ngx_cpystrn(errstr, (u_char *) strerror(err), size)
diff --git a/src/os/unix/ngx_time.c b/src/os/unix/ngx_time.c
index 72137f9..1b1a566 100644
--- a/src/os/unix/ngx_time.c
+++ b/src/os/unix/ngx_time.c
@@ -14,7 +14,7 @@
     time_t     now;
 
     now = ngx_time();
-    localtime_r(&now, tm);
+    (void) localtime_r(&now, tm);
 
 #else
     time_t     now;
@@ -37,7 +37,7 @@
     time_t      now;
 
     now = ngx_time();
-    localtime_r(&now, tm);
+    (void) localtime_r(&now, tm);
 
 #else
     time_t      now;
@@ -57,7 +57,7 @@
     time_t      now;
 
     now = ngx_time();
-    gmtime_r(&now, tm);
+    (void) gmtime_r(&now, tm);
 
 #else
     time_t      now;
diff --git a/src/os/unix/ngx_time.h b/src/os/unix/ngx_time.h
index 6e5a38a..d3d176f 100644
--- a/src/os/unix/ngx_time.h
+++ b/src/os/unix/ngx_time.h
@@ -57,9 +57,9 @@
 void ngx_libc_localtime(struct tm *tm);
 void ngx_libc_gmtime(struct tm *tm);
 
-#define ngx_gettimeofday(tp)  gettimeofday(tp, NULL);
-#define ngx_msleep(ms)        usleep(ms * 1000)
-#define ngx_sleep(s)          sleep(s)
+#define ngx_gettimeofday(tp)  (void) gettimeofday(tp, NULL);
+#define ngx_msleep(ms)        (void) usleep(ms * 1000)
+#define ngx_sleep(s)          (void) sleep(s)
 
 
 #endif /* _NGX_TIME_H_INCLUDED_ */