nginx-0.1.5-RELEASE import

    *) Bugfix: on Solaris and Linux there may be too many "recvmsg()
       returned not enough data" alerts.

    *) Bugfix: there were the "writev() failed (22: Invalid argument)"
       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.

    *) Bugfix: segmentation fault on Solaris in proxy mode and using
       sendfile.

    *) Bugfix: segmentation fault on Solaris.

    *) Bugfix: on-line upgrade did not work on Linux.

    *) Bugfix: the ngx_http_autoindex_module module did not escape the
       spaces, the quotes, and the percent signs in the directory listing.

    *) Change: the decrease of the copy operations.

    *) Feature: the userid_p3p directive.
diff --git a/auto/cc/bcc b/auto/cc/bcc
index 5765c47..a76b68f 100644
--- a/auto/cc/bcc
+++ b/auto/cc/bcc
@@ -32,17 +32,31 @@
 # disable logo
 CFLAGS="$CFLAGS -q"
 
+
 # precompiled headers
 CORE_DEPS="$CORE_DEPS $OBJS/ngx_config.csm"
 NGX_PCH="$OBJS/ngx_config.csm"
 NGX_BUILD_PCH="-H=$OBJS/ngx_config.csm"
 NGX_USE_PCH="-Hu -H=$OBJS/ngx_config.csm"
 
-LINK="\$(CC)"
+
+# Win32 GUI mode application
+LINK="\$(CC) -laa"
+
+
+# the resource file
+NGX_RES="$OBJS/nginx.res"
+NGX_RCC="brcc32 -fo$OBJS/nginx.res \$(CORE_INCS) $NGX_WIN32_RC"
+# the pragma allows to link the resource file using bcc32 and
+# to avoid the direct ilink32 calling and the c0w32.obj's WinMain/main problem
+NGX_PRAGMA="#pragma resource \"$OBJS/nginx.res\""
+
 
 ngx_include_opt="-I"
 ngx_objout="-o"
 ngx_binout="-e"
 ngx_objext="obj"
 ngx_binext=".exe"
-ngx_dirsep='\\'
+
+ngx_regex_dirsep='\\'
+ngx_dirsep="\\"
diff --git a/auto/cc/conf b/auto/cc/conf
index 77eeda7..acb68f8 100644
--- a/auto/cc/conf
+++ b/auto/cc/conf
@@ -64,8 +64,8 @@
 #            . auto/cc/acc
 #        ;;
 
-        msvc)
-            # MSVC 6.0 SP2
+        msvc*)
+            # MSVC++ 6.0 SP2, MSVC++ Toolkit 2003
 
             . auto/cc/msvc
         ;;
@@ -93,6 +93,22 @@
 
 if [ "$PLATFORM" != win32 ]; then
 
+    if test -n "$NGX_LD_OPT"; then
+        ngx_feature=--with-ld-opt=\"$NGX_LD_OPT\"
+        ngx_feature_name=DUMMY
+        ngx_feature_run=no
+        ngx_feature_incs=
+        ngx_feature_libs=
+        ngx_feature_test=
+        . auto/feature
+
+        if [ $ngx_found = no ]; then
+            echo $0: error: the invalid value in --with-ld-opt=\"$NGX_LD_OPT\"
+            echo
+            exit 1
+        fi
+    fi
+
     ngx_feature="gcc variadic macros"
     ngx_feature_name=HAVE_GCC_VARIADIC_MACROS
     ngx_feature_run=yes
diff --git a/auto/cc/gcc b/auto/cc/gcc
index 61f048b..756e397 100644
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -104,6 +104,3 @@
 fi
 
 LINK="\$(CC)"
-
-
-CC_STRONG="-Wall -Werror"
diff --git a/auto/cc/icc b/auto/cc/icc
index 94d5cdd..89c6f35 100644
--- a/auto/cc/icc
+++ b/auto/cc/icc
@@ -64,6 +64,3 @@
 CFLAGS="$CFLAGS -g"
 
 LINK="\$(CC)"
-
-
-CC_STRONG="-w1 -Werror"
diff --git a/auto/cc/msvc b/auto/cc/msvc
index d47d4b2..8272cac 100644
--- a/auto/cc/msvc
+++ b/auto/cc/msvc
@@ -2,7 +2,7 @@
 # Copyright (C) Igor Sysoev
 
 
-# MSVC 6.0 SP2
+# MSVC 6.0 SP2, MSVC Toolkit 2003 (7.1)
 
 # optimizations
 
@@ -31,8 +31,8 @@
     ;;
 
     pentium4)
-        # optimize for Pentium 4
-        #CPU_OPT="-G7"
+        # optimize for Pentium 4, MSVC 7
+        CPU_OPT="-G7"
     ;;
 esac
 
@@ -47,30 +47,48 @@
 # stop on warning
 CFLAGS="$CFLAGS -WX"
 
-# link with libcmt.lib, multithreaded
-#LIBC="-MT"
-# link with msvcrt.dll
-LIBC="-MD"
-
-CFLAGS="$CFLAGS $LIBC"
-
 # disable logo
 CFLAGS="$CFLAGS -nologo"
 
+
 LINK="\$(CC)"
 
-# link flags
+# the link flags
 CORE_LINK="$CORE_LINK -link -verbose:lib"
 
+if [ $NGX_CC_NAME = msvc7 ]; then
+    # link with libcmt.lib, multithreaded
+    LIBC="-MT"
+else
+    # link with msvcrt.dll
+    LIBC="-MD"
+fi
+
+CFLAGS="$CFLAGS $LIBC"
+
+# Win32 GUI mode application
+CORE_LIBS="$CORE_LIBS kernel32.lib user32.lib"
+CORE_LINK="$CORE_LINK -subsystem:windows -entry:mainCRTStartup"
+
 # debug
 CFLAGS="$CFLAGS -Yd"
 CORE_LINK="$CORE_LINK -debug -debugtype:coff"
 
+
 # precompiled headers
-CORE_DEPS="$CORE_DEPS $OBJS/ngx_config.pch"
-NGX_PCH="$OBJS/ngx_config.pch"
-NGX_BUILD_PCH="-Ycngx_config.h -Fp$OBJS/ngx_config.pch"
-NGX_USE_PCH="-Yungx_config.h -Fp$OBJS/ngx_config.pch"
+if [ $NGX_CC_NAME != msvc7 ]; then
+    CORE_DEPS="$CORE_DEPS $OBJS/ngx_config.pch"
+    NGX_PCH="$OBJS/ngx_config.pch"
+    NGX_BUILD_PCH="-Ycngx_config.h -Fp$OBJS/ngx_config.pch"
+    NGX_USE_PCH="-Yungx_config.h -Fp$OBJS/ngx_config.pch"
+fi
+
+
+# the resource file
+NGX_RES="$OBJS/nginx.res"
+NGX_RCC="rc -fo$NGX_RES \$(CORE_INCS) $NGX_WIN32_RC"
+CORE_LINK="$NGX_RES $CORE_LINK"
+
 
 ngx_objout="-Fo"
 ngx_binout="-Fe"
diff --git a/auto/cc/name b/auto/cc/name
index b974479..cbed6a7 100644
--- a/auto/cc/name
+++ b/auto/cc/name
@@ -6,8 +6,17 @@
 
 
 if [ $CC = cl ]; then
-    NGX_CC_NAME=msvc
-    echo " using Microsoft Visual C compiler"
+    if `$NGX_WINE $CC -v 2>&1 \
+        | grep '^Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13' \
+          2>&1 >/dev/null`; then
+
+        NGX_CC_NAME=msvc7
+        echo " using Microsoft Visual C++ 7 compiler"
+
+    else
+        NGX_CC_NAME=msvc
+        echo " using Microsoft Visual C++ compiler"
+    fi
 
 else
 if [ $CC = wcl386 ]; then
diff --git a/auto/cc/owc b/auto/cc/owc
index 0c8194d..789ffad 100644
--- a/auto/cc/owc
+++ b/auto/cc/owc
@@ -59,18 +59,25 @@
 CFLAGS="$CFLAGS -zq"
 
 # Open Watcom C 1.2
-#have=HAVE_C99_VARIADIC_MACROS . auto/have
+#have=NGX_HAVE_C99_VARIADIC_MACROS . auto/have
 
-# precompiled headers 
+
+# the precompiled headers 
 CORE_DEPS="$CORE_DEPS $OBJS/ngx_config.pch"
 NGX_PCH="$OBJS/ngx_config.pch"
 NGX_BUILD_PCH="-fhq=$OBJS/ngx_config.pch"
 NGX_USE_PCH="-fh=$OBJS/ngx_config.pch"
 
+
 LINK="\$(CC)"
 
-# link flags
-CORE_LINK="$CORE_LINK -l=nt"
+# the link flags, built target is NT GUI mode application
+CORE_LINK="$CORE_LINK -l=nt_win"
+
+
+# the resource file
+NGX_RCC="wrc \$(CORE_INCS) -fo=$OBJS/nginx.res $NGX_WIN32_RC $OBJS/nginx.exe"
+
 
 ngx_include_opt="-i="
 ngx_objout="-fo"