hyanantha               Fri Jan  3 06:46:21 2003 EDT

  Added files:                 
    /php4/netware       phptest.ncf 

  Modified files:              
    /php4/netware       grp.h libpq.imp mktemp.c param.h 
                        php4apache2filter.mak php4cli.mak pipe.c pipe.h 
                        postgres_ext.h pwd.c sysexits.h time_nw.c time_nw.h 
                        wfile.c wfile.h php-nw.bat php4apache.mak phplib.imp 
                        phplib.mak pwd.h start.c tsrm.mak zend.mak 
                        ZendEngine2.mak 
  Log:
  A few New files added and some old files modified for NetWare.
  
  
Index: php4/netware/grp.h
diff -u /dev/null php4/netware/grp.h:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/grp.h  Fri Jan  3 06:46:15 2003
@@ -0,0 +1,31 @@
+/*  pwd.h - Try to approximate UN*X's getuser...() functions under MS-DOS.
+   Copyright (C) 1990 by Thorsten Ohl, [EMAIL PROTECTED]
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+   $Header: /usr/repository/php4/netware/grp.h,v 1.2 2003/01/03 11:46:15 hyanantha 
+Exp $
+ */
+
+/* This 'implementation' is conjectured from the use of this functions in
+   the RCS and BASH distributions.  Of course these functions don't do too
+   much useful things under MS-DOS, but using them avoids many "#ifdef
+   MSDOS" in ported UN*X code ...  */
+
+struct group {
+       char *gr_name;                          /* group name */
+       char *gr_passwd;                        /* group password */
+       int gr_gid;                                     /* group id */
+       char **gr_mem;                          /* group members */
+};
Index: php4/netware/libpq.imp
diff -u /dev/null php4/netware/libpq.imp:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/libpq.imp      Fri Jan  3 06:46:16 2003
@@ -0,0 +1,93 @@
+ lo_open,
+ lo_close,
+ lo_read,
+ lo_write,
+ lo_lseek,
+ lo_creat,
+ lo_tell,
+ lo_unlink,
+ lo_import,
+ lo_export,
+ PQconnectdb,
+ PQconnectStart,
+ PQconndefaults,
+ PQsetdbLogin,
+ PQconnectPoll,
+ PQfinish,
+ PQreset,
+ PQresetStart,
+ PQresetPoll,
+ PQrequestCancel,
+ PQconninfoFree,
+ PQdb,
+ PQuser,
+ PQpass,
+ PQhost,
+ PQport,
+ PQtty,
+ PQoptions,
+ PQstatus,
+ PQerrorMessage,
+ PQsocket,
+ PQbackendPID,
+ PQclientEncoding,
+ PQsetClientEncoding,
+ PQtrace,
+ PQuntrace,
+ PQsetNoticeProcessor,
+ PQmakeEmptyPGresult,
+ PQclear,
+ PQsendQuery,
+ PQconsumeInput,
+ PQisBusy,
+ PQgetResult,
+ PQexec,
+ PQnotifies,
+ PQgetline,
+ PQgetlineAsync,
+ PQputline,
+ PQputnbytes,
+ PQendcopy,
+ PQfn,
+ PQresultStatus,
+ PQresStatus,
+ PQresultErrorMessage,
+ PQntuples,
+ PQnfields,
+ PQbinaryTuples,
+ PQfname,
+ PQfnumber,
+ PQftype,
+ PQfsize,
+ PQfmod,
+ PQcmdStatus,
+ PQoidStatus,
+ PQoidValue,
+ PQcmdTuples,
+ PQgetvalue,
+ PQgetlength,
+ PQgetisnull,
+ PQsetnonblocking,
+ PQisnonblocking,
+ PQflush,
+ PQmblen,
+ PQenv2encoding,
+ PQprint,
+ PQdisplayTuples,
+ PQprintTuples,
+ pg_valid_client_encoding,
+ pg_valid_server_encoding,
+ pg_char_to_encname_struct,
+ pg_char_to_encoding,
+ pg_encoding_to_char,
+ createPQExpBuffer,
+ initPQExpBuffer,
+ destroyPQExpBuffer,
+ termPQExpBuffer,
+ resetPQExpBuffer,
+ enlargePQExpBuffer,
+ printfPQExpBuffer,
+ appendPQExpBuffer,
+ appendPQExpBufferStr,
+ appendPQExpBufferChar,
+ appendBinaryPQExpBuffer
Index: php4/netware/mktemp.c
diff -u /dev/null php4/netware/mktemp.c:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/mktemp.c       Fri Jan  3 06:46:18 2003
@@ -0,0 +1,87 @@
+
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+
+
+/* Based on standard ANSI C mktemp() for NetWare */
+char* mktemp(char* templateStr)
+{
+       char* pXs = NULL;
+       char numBuf[50] = {'\0'};
+       int count = 0;
+       char* pPid = NULL;
+
+       char termChar = '\0';
+       char letter = 'a';
+       char letter1 = 'a';
+
+       if (templateStr && (pXs = strstr(templateStr, "XXXXXX")))
+       {
+               /* Generate temp name */
+               termChar = pXs[6];
+               ltoa(NXThreadGetId(), numBuf, 16);
+               numBuf[strlen(numBuf)-1] = '\0';
+
+        /*
+               Beware! thread IDs are 8 hex digits on NW 4.11 and only the
+               lower digits seem to change, whereas on NW 5 they are in the
+               range of < 1000 hex or 3 hex digits in length. So the following
+               logic ensures we use the least significant portion of the number.\
+               */
+               if (strlen(numBuf) > 5)
+                       pPid = &numBuf[strlen(numBuf)-5];
+               else
+                       pPid = numBuf;
+
+               /*
+               Temporary files, as the name suggests, are temporarily used and then
+               cleaned up after usage. In the case of complex scripts, new temp files
+               may be created before the old ones are deleted. So, we need to have
+               a provision to create many temp files. It is found that provision for
+               26 files may not be enough in such cases. Hence the logic below.
+
+               The logic below allows 26 files (like, pla00015.tmp through 
+plz00015.tmp)
+               plus 6x26=676 (like, plaa0015.tmp through plzz0015.tmp)
+               */
+               letter = 'a';
+               do
+               {
+                       sprintf(pXs, (char *)"%c%05.5s", letter, pPid);
+                       pXs[6] = termChar;
+
+                       if (access(templateStr, 0) != 0)
+                               return templateStr;             /* File does not exist 
+*/
+
+                       letter++;
+               } while (letter <= 'z');
+
+               letter1 = 'a';
+               do
+               {
+                       letter = 'a';
+
+                       do
+                       {
+                               sprintf(pXs, (char *)"%c%c%04.5s", letter1, letter, 
+pPid);
+                               pXs[6] = termChar;
+
+                               if (access(templateStr, 0) != 0)
+                                       return templateStr;             /* File does 
+not exist */
+
+                               letter++;
+                       } while (letter <= 'z');
+
+                       letter1++;
+               } while (letter1 <= 'z');
+
+               errno = ENOENT;
+               return NULL;
+       }
+       else
+       {
+               errno = EINVAL;
+               return NULL;
+       }
+}
+
Index: php4/netware/param.h
diff -u /dev/null php4/netware/param.h:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/param.h        Fri Jan  3 06:46:18 2003
@@ -0,0 +1,20 @@
+
+/*****************************************************************************
+ *                                                                           *
+ * sys/param.c                                                               *
+ *                                                                           *
+ * Freely redistributable and modifiable.  Use at your own risk.             *
+ *                                                                           *
+ * Copyright 1994 The Downhill Project                                       *
+ *                                                                           *
+ *****************************************************************************/
+#ifndef MAXPATHLEN
+/*#define MAXPATHLEN     _MAX_PATH*/
+#define MAXPATHLEN     260  /* _MAX_PATH defined in STDLIB.H for Windows; picked up 
+the value from there */
+#define _MAX_PATH     260  /* Defined since it is used in os.c while compiling apache 
+*/
+#endif
+#define MAXHOSTNAMELEN 64
+#define howmany(x,y)   (((x)+((y)-1))/(y))
+#define roundup(x,y)   ((((x)+((y)-1))/(y))*(y))
+
+#define _MAX_VOLUME 31  /* Defined since it is used in os.c while compiling apache. 
+The value picked up from LibC */
Index: php4/netware/php4apache2filter.mak
diff -u /dev/null php4/netware/php4apache2filter.mak:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/php4apache2filter.mak  Fri Jan  3 06:46:20 2003
@@ -0,0 +1,166 @@
+# Temporarily here -- later may go into some batch file
+# which will set this as an environment variable
+PROJECT_ROOT = ../..
+
+# Module details
+MODULE_NAME = mod_php
+MODULE_DESC = "PHP 4.3 - Apache 2.0 Module"
+VMAJ = 3
+VMIN = 0
+VREV = 0
+
+#include the common settings
+include $(PROJECT_ROOT)/netware/common.mif
+
+# Extensions of all input and output files
+.SUFFIXES:
+.SUFFIXES: .nlm .lib .obj .cpp .c .msg .mlc .mdb .xdc .d
+
+# Source files
+C_SRC = apache_config.c \
+        php_functions.c \
+        sapi_apache2.c
+
+# Destination directories and files
+OBJ_DIR = $(BUILD)
+FINAL_DIR = $(BUILD)
+MAP_FILE = $(FINAL_DIR)\$(MODULE_NAME).map
+OBJECTS = $(addprefix $(OBJ_DIR)/,$(CPP_SRC:.cpp=.obj) $(C_SRC:.c=.obj))
+DEPDS  = $(addprefix $(OBJ_DIR)/,$(CPP_SRC:.cpp=.d) $(C_SRC:.c=.d))
+
+# Binary file
+ifndef BINARY
+BINARY=$(FINAL_DIR)\$(MODULE_NAME).nlm
+endif
+
+
+# Compile flags
+C_FLAGS += -c -maxerrors 25 -msgstyle gcc
+C_FLAGS += -wchar_t on -bool on
+C_FLAGS += -processor Pentium
+C_FLAGS += -w nounusedarg -msext on
+C_FLAGS += -nostdinc
+C_FLAGS += -relax_pointers             # To remove type-casting errors
+C_FLAGS += -DNETWARE
+C_FLAGS += -DZTS
+C_FLAGS += -DNLM_PLATFORM
+C_FLAGS += -DN_PLAT_NLM -DNLM=1 -D__NO_MATH_OPS
+C_FLAGS += -D__C9X_CMATH_INLINES_DEFINED -DAPACHE_OS_H -DNO_USE_SIGACTION 
+-DMULTITHREAD
+C_FLAGS += -DCLIB_STAT_PATCH
+C_FLAGS += -DNEW_LIBC
+C_FLAGS += -I. -I- -I. -I../../netware -I$(SDK_DIR)/include            # 
+../../netware added for special SYS/STAT.H
+C_FLAGS += -I$(SDK_DIR)/include/winsock        # For Apache 2.0 headers
+C_FLAGS += -I$(MWCIncludes)
+C_FLAGS += -I$(APACHE_DIR)/include
+C_FLAGS += -I- -I../../main -I../../Zend -I../../TSRM -I../../ext/standard
+C_FLAGS += -I../../ -I../../netware -I$(PROJECT_ROOT)/regex
+C_FLAGS += -I$(WINSOCK_DIR)/include/nlm -I$(WINSOCK_DIR)/include
+
+
+# Extra stuff based on debug / release builds
+ifeq '$(BUILD)' 'debug'
+       SYM_FILE = $(FINAL_DIR)\$(MODULE_NAME).sym
+       C_FLAGS  += -inline smart -sym on -sym codeview4 -opt off -opt intrinsics -sym 
+internal -DDEBUGGING -DDKFBPON
+       C_FLAGS += -r -DZEND_DEBUG=1
+       C_FLAGS += -exc cw
+       LD_FLAGS += -sym on -sym codeview4 -sym internal -osym $(SYM_FILE) 
+        LD_FLAGS += -msgstyle std
+       export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtld.lib
+else
+       C_FLAGS  += -opt speed -inline on -inline smart -inline auto -sym off 
+-DZEND_DEBUG=0
+       C_FLAGS += -opt intrinsics
+       C_FLAGS += -opt level=4
+       LD_FLAGS += -sym off
+       export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtl.lib
+endif
+
+# Dependencies
+MODULE = LibC \
+         phplib
+IMPORT = @$(SDK_DIR)/imports/libc.imp          \
+         @$(APACHE_DIR)/lib/httpd.imp   \
+         @$(APACHE_DIR)/lib/aprlib.imp  \
+         @$(PROJECT_ROOT)/netware/phplib.imp
+EXPORT = php4_module
+
+
+# Virtual paths
+vpath %.cpp .
+vpath %.c .
+vpath %.obj $(OBJ_DIR)
+
+
+all: prebuild project
+
+.PHONY: all
+
+prebuild:
+       @if not exist $(OBJ_DIR) md $(OBJ_DIR)
+
+project: $(BINARY) $(MESSAGE)
+       @echo Build complete.
+
+
+$(OBJ_DIR)/%.d: %.c
+       @echo Building Dependencies for $(<F)
+       @$(CC) -M $< $(C_FLAGS) -o $@
+
+$(OBJ_DIR)/%.obj: %.c
+       @echo Compiling $?...
+       @$(CC) $< $(C_FLAGS) -o $@
+
+
+$(BINARY): $(OBJECTS)
+       @echo Import $(IMPORT) > $(basename $@).def
+ifdef API
+       @echo Import $(API) >> $(basename $@).def
+endif
+       @echo Module $(MODULE) >> $(basename $@).def
+ifdef EXPORT
+       @echo Export $(EXPORT) >> $(basename $@).def
+endif
+       @echo AutoUnload >> $(basename $@).def
+ifeq '$(BUILD)' 'debug'
+       @echo Debug >> $(basename $@).def
+endif
+       @echo Flag_On 0x00000008 >> $(basename $@).def
+       @echo Start _lib_start >> $(basename $@).def
+       @echo Exit _lib_stop >> $(basename $@).def
+
+       $(MPKTOOL) $(XDCFLAGS) $(basename $@).xdc
+       @echo xdcdata $(basename $@).xdc >> $(basename $@).def
+
+       @echo Linking $@...
+       @echo $(LD_FLAGS) -commandfile $(basename $@).def > $(basename $@).link
+ifdef LIBRARY
+       @echo $(LIBRARY) >> $(basename $@).link
+endif
+       @echo $(OBJECTS) $(APACHE_DIR)/lib/libpre.obj >> $(basename $@).link
+
+       @$(LINK) @$(basename $@).link
+
+
+.PHONY: clean
+clean: cleanobj cleanbin
+
+.PHONY: cleand
+cleand:
+       @echo Deleting all dependency files...
+       -@del "$(OBJ_DIR)\*.d"
+
+.PHONY: cleanobj
+cleanobj:
+       @echo Deleting all object files...
+       -@del "$(OBJ_DIR)\*.obj"
+
+.PHONY: cleanbin
+cleanbin:
+       @echo Deleting binary files...
+       -@del "$(FINAL_DIR)\$(MODULE_NAME).nlm"
+       @echo Deleting MAP, DEF files, etc....
+       -@del "$(FINAL_DIR)\$(MODULE_NAME).map"
+       -@del "$(FINAL_DIR)\$(MODULE_NAME).def"
+       -@del "$(FINAL_DIR)\$(MODULE_NAME).link"
+ifeq '$(BUILD)' 'debug'
+       -@del $(FINAL_DIR)\$(MODULE_NAME).sym
+endif
Index: php4/netware/php4cli.mak
diff -u /dev/null php4/netware/php4cli.mak:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/php4cli.mak    Fri Jan  3 06:46:20 2003
@@ -0,0 +1,163 @@
+# Temporarily here -- later may go into some batch file
+# which will set this as an environment variable
+PROJECT_ROOT = ../..
+
+# Module details
+MODULE_NAME = php
+MODULE_DESC = "PHP 4.2.3 - Command Line Interface"
+VMAJ = 2
+VMIN = 0
+VREV = 0
+
+#include the common settings
+include $(PROJECT_ROOT)/netware/common.mif
+
+# Extensions of all input and output files
+.SUFFIXES:
+.SUFFIXES: .nlm .lib .obj .cpp .c .msg .mlc .mdb .xdc .d
+
+# Source files
+C_SRC = getopt.c \
+        php_cli.c
+
+# Library files
+LIBRARY =
+
+# Destination directories and files
+OBJ_DIR = $(BUILD)
+FINAL_DIR = $(BUILD)
+MAP_FILE = $(FINAL_DIR)\$(MODULE_NAME).map
+OBJECTS = $(addprefix $(OBJ_DIR)/,$(CPP_SRC:.cpp=.obj) $(C_SRC:.c=.obj))
+DEPDS  = $(addprefix $(OBJ_DIR)/,$(CPP_SRC:.cpp=.d) $(C_SRC:.c=.d))
+
+# Binary file
+ifndef BINARY
+       BINARY=$(FINAL_DIR)\$(MODULE_NAME).nlm
+endif
+
+
+# Compile flags
+C_FLAGS += -c -maxerrors 25 -msgstyle gcc
+C_FLAGS += -wchar_t on -bool on
+C_FLAGS += -processor Pentium
+C_FLAGS += -w nounusedarg -msext on
+C_FLAGS += -nostdinc
+C_FLAGS += -relax_pointers             # To remove type-casting errors
+C_FLAGS += -DNETWARE -DTHREAD_SWITCH
+C_FLAGS += -DZTS
+C_FLAGS += -DNLM_PLATFORM
+C_FLAGS += -DN_PLAT_NLM -DNLM=1 -D__NO_MATH_OPS
+C_FLAGS += -D__C9X_CMATH_INLINES_DEFINED -DAPACHE_OS_H -DNO_USE_SIGACTION 
+-DMULTITHREAD
+C_FLAGS += -DNEW_LIBC
+C_FLAGS += -I. -I- -I. -I../../netware -I$(SDK_DIR)/include            # 
+../../netware added for special SYS/STAT.H
+C_FLAGS += -I$(MWCIncludes)
+C_FLAGS += -I- -I../../main -I../../Zend -I../../TSRM -I../../ext/standard
+C_FLAGS += -I../../ -I../../netware -I$(PROJECT_ROOT)/regex
+C_FLAGS += -I$(WINSOCK_DIR)/include/nlm -I$(WINSOCK_DIR)/include
+
+# Extra stuff based on debug / release builds
+ifeq '$(BUILD)' 'debug'
+       SYM_FILE = $(FINAL_DIR)\$(MODULE_NAME).sym
+       C_FLAGS  += -inline smart -sym on -sym codeview4 -opt off -opt intrinsics -sym 
+internal -DDEBUGGING -DDKFBPON
+       C_FLAGS += -r -DZEND_DEBUG=1
+       C_FLAGS += -exc cw
+       LD_FLAGS += -sym on -sym codeview4 -sym internal -osym $(SYM_FILE) 
+       export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtld.lib
+else
+       C_FLAGS  += -opt speed -inline on -inline smart -inline auto -sym off 
+-DZEND_DEBUG=0
+       C_FLAGS += -opt intrinsics
+       C_FLAGS += -opt level=4
+       LD_FLAGS += -sym off
+       export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtl.lib
+endif
+
+
+# Dependencies
+MODULE = LibC   \
+         phplib
+IMPORT = @$(SDK_DIR)/imports/libc.imp        \
+         @$(PROJECT_ROOT)/netware/phplib.imp
+EXPORT = 
+API    =
+
+
+# Virtual paths
+vpath %.cpp .
+vpath %.c .
+vpath %.obj $(OBJ_DIR)
+
+
+all: prebuild project
+
+.PHONY: all
+
+prebuild:
+       @if not exist $(OBJ_DIR) md $(OBJ_DIR)
+
+project: $(BINARY) $(MESSAGE)
+       @echo Build complete.
+
+
+$(OBJ_DIR)/%.d: %.c
+       @echo Building Dependencies for $(<F)
+       @$(CC) -M $< $(C_FLAGS) -o $@
+
+$(OBJ_DIR)/%.obj: %.c
+       @echo Compiling $?...
+       @$(CC) $< $(C_FLAGS) -o $@
+
+
+$(BINARY): $(OBJECTS)
+       @echo Import $(IMPORT) > $(basename $@).def
+ifdef API
+       @echo Import $(API) >> $(basename $@).def
+endif
+       @echo Module $(MODULE) >> $(basename $@).def
+ifdef EXPORT
+       @echo Export $(EXPORT) >> $(basename $@).def
+endif
+       @echo AutoUnload >> $(basename $@).def
+ifeq '$(BUILD)' 'debug'
+       @echo Debug >> $(basename $@).def
+endif
+       @echo Flag_On 0x00000008 >> $(basename $@).def
+       @echo Start _LibCPrelude >> $(basename $@).def
+       @echo Exit _LibCPostlude >> $(basename $@).def
+
+       $(MPKTOOL) $(XDCFLAGS) $(basename $@).xdc
+       @echo xdcdata $(basename $@).xdc >> $(basename $@).def
+
+       @echo Linking $@...
+       @echo $(LD_FLAGS) -commandfile $(basename $@).def > $(basename $@).link
+ifdef LIBRARY
+       @echo $(LIBRARY) >> $(basename $@).link
+endif
+       @echo $(OBJECTS) >> $(basename $@).link
+
+       @$(LINK) @$(basename $@).link
+
+
+.PHONY: clean
+clean: cleanobj cleanbin
+
+.PHONY: cleand
+cleand:
+       @echo Deleting all dependency files...
+       -@del "$(OBJ_DIR)\*.d"
+
+.PHONY: cleanobj
+cleanobj:
+       @echo Deleting all object files...
+       -@del "$(OBJ_DIR)\*.obj"
+
+.PHONY: cleanbin
+cleanbin:
+       @echo Deleting binary files...
+       -@del "$(FINAL_DIR)\$(MODULE_NAME).nlm"
+       @echo Deleting MAP, DEF files, etc....
+       -@del "$(FINAL_DIR)\$(MODULE_NAME).map"
+       -@del "$(FINAL_DIR)\$(MODULE_NAME).def"
+       -@del "$(FINAL_DIR)\$(MODULE_NAME).link"
+ifeq '$(BUILD)' 'debug'
+       -@del $(FINAL_DIR)\$(MODULE_NAME).sym
+endif
Index: php4/netware/pipe.c
diff -u /dev/null php4/netware/pipe.c:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/pipe.c Fri Jan  3 06:46:20 2003
@@ -0,0 +1,329 @@
+/*
+ * FILENAME            :       pipe.c
+ * DESCRIPTION :       Functions to implement pipes on NetWare.
+ * Author              :       Anantha Kesari H Y, Venkat Raghavan S, Srivathsa M
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "netware/pipe.h"
+#include "netware/mktemp.h"
+
+
+/* Following definitions unavailable in LibC, hence borrowed from CLib */
+#define P_WAIT      0
+#define P_NOWAIT    1
+
+#define WHITESPACE  " \t"
+#define MAX_ARGS    10
+
+
+FILE* popen(const char* commandline, const char* mode)
+{
+       int               err, count;
+       char              pszPipestr[32] = {'\0'};
+       char *command = NULL, *argv[MAX_ARGS] = {'\0'};
+       int fd = -1;
+       fd_set myfds;
+       wiring_t wiring;
+       pid_t pid=0;
+       FILE *fp=NULL;
+       char *ptr = NULL;
+       int ptrLen = 0, argc = 0, i = 0;
+
+
+       /* Get a temporary name */
+       (void) tmpnam(strecpy(pszPipestr,  "PHP/php$pipe/"));
+
+       wiring.infd=FD_UNUSED;
+       wiring.outfd=FD_UNUSED;
+       wiring.errfd=FD_UNUSED;
+
+       /* Open a pipe */
+       if ( *mode=='r') {
+               fd = pipe_open (pszPipestr, O_RDONLY);
+               if (fd == -1)
+                       return NULL;
+
+               wiring.outfd=fd;
+       } else if (*mode=='w') {
+               fd = pipe_open (pszPipestr, O_WRONLY);
+               if (fd == -1)
+                       return NULL;
+
+               wiring.infd=fd;
+       } else {
+               consoleprintf ("Unsupported pipe open mode \n");
+               return NULL;
+       }
+
+       /* Get the file pointer */
+       fp = fdopen(fd, mode);
+       if (fp == NULL) {
+               consoleprintf ("Failure in fdopen \n");
+               close (fd);
+               return NULL;
+       }
+
+       /* Separate commandline string into words */
+       ptr = strtok((char*)commandline, WHITESPACE);
+       ptrLen = strlen(ptr);
+
+       /* Get the command */
+       command = (char*)malloc(ptrLen + 1);
+       if(command == NULL) {
+               consoleprintf ("Failure in memory allocation \n");
+               close (fd);
+               fclose (fp);
+               return NULL;
+       }
+       strcpy (command, ptr);
+
+       /* Command as the first argument into prcessve */
+       argv[argc] = (char*)malloc(ptrLen + 1);
+       if(argv[argc] == NULL) {
+               consoleprintf ("Failure in memory allocation \n");
+               close (fd);
+               fclose (fp);
+               if(command) {
+                       free(command);
+                       command = NULL;
+               }
+               return NULL;
+       }
+       strcpy (argv[argc], ptr);
+       argc++;
+
+       /* Get more arguments if any to be passed to prcessve */
+       ptr = strtok(NULL, WHITESPACE);
+       while (ptr && (argc < MAX_ARGS))
+       {
+               ptrLen = strlen(ptr);
+
+               argv[argc] = (char*)malloc(ptrLen + 1);
+               if(argv[argc] == NULL) {
+                       consoleprintf ("Failure in memory allocation \n");
+                       close (fd);
+                       fclose (fp);
+                       if(command) {
+                               free(command);
+                               command = NULL;
+                       }
+                       return NULL;
+               }
+               strcpy (argv[argc], ptr);
+               argc++;
+
+               ptr = strtok(NULL, WHITESPACE);
+       }
+       argv[argc] = NULL;
+
+       FD_ZERO(&myfds);
+       FD_SET(fd, &myfds);
+
+       pid = processve(command, PROC_CURRENT_SPACE, NULL, &wiring,
+                                       &myfds, NULL, (const char **)argv );
+       if (pid == -1) {
+               consoleprintf ("Failure in processve call \n");
+               close (fd);
+               fclose(fp);
+               if(command) {
+                       free(command);
+                       command = NULL;
+               }
+               for(i=0; i<argc; i++) {
+                       if(argv[i]) {
+                               free(argv[i]);
+                               argv[i] = NULL;
+                       }
+               }
+               return NULL;
+       }
+
+       close (fd);
+       if(command) {
+               free(command);
+               command = NULL;
+       }
+       for(i=0; i<argc; i++) {
+               if(argv[i]) {
+                       free(argv[i]);
+                       argv[i] = NULL;
+               }
+       }
+
+       return fp;
+}
+
+
+int pclose(FILE* stream)
+{
+       fclose(stream);
+       return 0;
+}
+
+
+
+#if 0
+
+FILE* popen2(const char* commandline, const char* mode)
+{
+    int               err, count, var, replaced;
+    char              **env, pszPipestr[32];
+    NXVmId_t          newVM;
+    NXExecEnvSpec_t   envSpec;
+    char *command = NULL, *argv[MAX_ARGS] = {"\0"};
+    NXHandle_t fd;
+    
+    fd = (NXHandle_t) -1;
+    
+    count = NXGetEnvCount() + 1;  // (add one for NULL)
+    env   = (char **) NXMemAlloc(sizeof(char *) * count, 0);
+    
+    if (!env)
+        return 0;
+    
+    err = NXCopyEnv(env, count);  // ensure NULL added at end
+    if ( *mode='r'){
+        (void) tmpnam(strecpy(pszPipestr,  "PHPPIPE/stdin/"));
+        err = NXFifoOpen(0, pszPipestr, NX_O_RDONLY, 0, &fd);
+        if (err)
+            return 0;
+        
+        envSpec.esStdin.ssType     = NX_OBJ_CONSOLE;
+        envSpec.esStdout.ssType    = NX_OBJ_FIFO;
+        envSpec.esStdout.ssPath    = pszPipestr;
+    }
+    else if (*mode='w') then{
+        (void) tmpnam(strecpy(pszPipestr, "PHPPIPE/stdout/"));
+        err = NXFifoOpen(0, instr, NX_O_WRONLY, 0, &fd);
+        if (err)
+            return 0;
+        envSpec.esStdin.ssType     = NX_OBJ_FIFO;
+        envSpec.esStdout.ssType    = NX_OBJ_CONSOLE;
+               envSpec.esStdin.ssPath     =  pszPipestr;
+    }
+    else
+        consoleprintf ("Unsupported pipe open mode \n");
+    
+    
+    /* Separate commandline string into words */
+    
+    ptr = strtok((char*)commandline, WHITESPACE);
+    ptrLen = strlen(ptr);
+    
+    command = (char*)malloc(ptrLen + 1);
+    strcpy (command, ptr);
+    
+    ptr = strtok(NULL, WHITESPACE);
+    while (ptr && (argc < MAX_ARGS))
+    {
+        ptrLen = strlen(ptr);
+        
+        argv[argc] = (char*)malloc(ptrLen + 1);
+        strcpy (argv[argc], ptr);
+        
+        argc++;
+        
+        ptr = strtok(NULL, WHITESPACE);
+    }
+/*    consoleprintf ("PHP | popen: command = %s\n", command); */
+    
+       //
+
+    envSpec.esArgc             = argc;
+    envSpec.esArgv             = argv;
+    envSpec.esEnv              = env;
+    
+    envSpec.esStderr.ssType    = NX_OBJ_CONSOLE;
+    
+    envSpec.esStdin.ssHandle   =
+        envSpec.esStdout.ssHandle  =
+        envSpec.esStderr.ssHandle  = -1;
+    
+    envSpec.esStdin.ssPathCtx  =
+        envSpec.esStdout.ssPathCtx =
+        envSpec.esStderr.ssPathCtx = NULL;
+    
+    envSpec.esStderr.ssPath    = NULL;
+    
+    err = NXVmSpawn(NULL, command, &envSpec, NX_VM_CREATE_DETACHED, &newVM);
+    return fd;
+    
+}
+
+int pclose2(FILE* stream)
+{
+       NXClose(*(NXHandle_t *)stream);
+    return 0;
+}
+
+FILE* popen1(const char* commandline, const char* mode)
+{
+    char *command = NULL, *argv[MAX_ARGS] = {"\0"};
+       char *tempName = "phpXXXXXX.tmp";
+    char *filePath = NULL;
+    FILE *fp = NULL;
+    char *ptr = NULL;
+    int ptrLen = 0, argc = 0, i = 0;
+
+    /* Check for validity of input parameters */
+    if (!commandline || !mode)
+        return NULL;
+
+    /* Get temporary file name */
+    filePath = mktemp(tempName);
+       if (!filePath)
+               return NULL;
+
+    /* Separate commandline string into words */
+
+    ptr = strtok((char*)commandline, WHITESPACE);
+    ptrLen = strlen(ptr);
+
+    command = (char*)malloc(ptrLen + 1);
+    strcpy (command, ptr);
+
+    ptr = strtok(NULL, WHITESPACE);
+    while (ptr && (argc < MAX_ARGS))
+    {
+        ptrLen = strlen(ptr);
+
+        argv[argc] = (char*)malloc(ptrLen + 1);
+        strcpy (argv[argc], ptr);
+
+        argc++;
+
+        ptr = strtok(NULL, WHITESPACE);
+    }
+/*consoleprintf ("PHP | popen: command = %s\n", command);*/
+    if(strchr(mode,'r') != 0)
+    {
+        /*spawnvp(P_WAIT, command, argv);*/
+
+        fp = fopen(filePath, "r"); /* Get the file handle of the pipe */
+    }
+       else if(strchr(mode,'w') != 0)
+        fp = fopen(filePath, "w"); /* Get the file handle of the pipe */
+
+    /* Free resources */
+    free (command);
+    for (i = 0; i < argc; i++)
+    {
+/*consoleprintf ("%s\t", argv[i]);*/
+        free (argv[i]);
+    }
+/*consoleprintf ("\n");*/
+
+       return fp;  /* Return the file handle.*/
+}
+
+int pclose1(FILE* stream)
+{
+    return (fclose(stream));
+}
+
+# endif
Index: php4/netware/pipe.h
diff -u /dev/null php4/netware/pipe.h:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/pipe.h Fri Jan  3 06:46:20 2003
@@ -0,0 +1,11 @@
+
+/* pipe related function declarations */
+
+/*#include <unistd.h>*/
+#include <proc.h>
+#include <fcntl.h>
+#include <sys/select.h>
+
+
+FILE* popen(const char* command, const char* mode);
+int pclose(FILE* stream);
Index: php4/netware/postgres_ext.h
diff -u /dev/null php4/netware/postgres_ext.h:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/postgres_ext.h Fri Jan  3 06:46:20 2003
@@ -0,0 +1,45 @@
+/*-------------------------------------------------------------------------
+ *
+ * postgres_ext.h
+ *
+ *        This file contains declarations of things that are visible everywhere
+ *     in PostgreSQL *and* are visible to clients of frontend interface libraries.
+ *     For example, the Oid type is part of the API of libpq and other libraries.
+ *
+ *        Declarations which are specific to a particular interface should
+ *     go in the header file for that interface (such as libpq-fe.h).  This
+ *     file is only for fundamental Postgres declarations.
+ *
+ *        User-written C functions don't count as "external to Postgres."
+ *     Those function much as local modifications to the backend itself, and
+ *     use header files that are otherwise internal to Postgres to interface
+ *     with the backend.
+ *
+ * $Id: postgres_ext.h,v 1.2 2003/01/03 11:46:20 hyanantha Exp $
+ *
+ *-------------------------------------------------------------------------
+ */
+
+#ifndef POSTGRES_EXT_H
+#define POSTGRES_EXT_H
+
+/*
+ * Object ID is a fundamental type in Postgres.
+ */
+typedef unsigned int Oid;
+
+#define InvalidOid             ((Oid) 0)
+
+#define OID_MAX  UINT_MAX
+/* you will need to include <limits.h> to use the above #define */
+
+
+/*
+ * NAMEDATALEN is the max length for system identifiers (e.g. table names,
+ * attribute names, function names, etc.)
+ *
+ * NOTE that databases with different NAMEDATALEN's cannot interoperate!
+ */
+#define NAMEDATALEN 32
+
+#endif
Index: php4/netware/pwd.c
diff -u /dev/null php4/netware/pwd.c:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/pwd.c  Fri Jan  3 06:46:20 2003
@@ -0,0 +1,86 @@
+/*  pwd.c - Try to approximate UN*X's getuser...() functions under MS-DOS.
+   Copyright (C) 1990 by Thorsten Ohl, [EMAIL PROTECTED]
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 1, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+   $Header: /usr/repository/php4/netware/pwd.c,v 1.2 2003/01/03 11:46:20 hyanantha 
+Exp $
+ */
+
+/* This 'implementation' is conjectured from the use of this functions in
+   the RCS and BASH distributions.  Of course these functions don't do too
+   much useful things under MS-DOS, but using them avoids many "#ifdef
+   MSDOS" in ported UN*X code ...  */
+
+#include "php.h"                               /*php specific */
+/* Need to take care of all the commented stuff later for NetWare */
+/*
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>  
+#include <lmaccess.h>
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+/*#include <lmapibuf.h>*/
+#include "pwd.h"
+#include "grp.h"
+
+#ifndef THREAD_SAFE
+static struct passwd pw;               /* should we return a malloc()'d structure   */
+#endif
+static char *home_dir = ".";   /* we feel (no|every)where at home */
+static char *login_shell = "not command.com!";
+
+struct passwd *getpwnam(char *name)
+{
+       return (struct passwd *) 0;
+}
+
+
+char *getlogin()
+{
+/*
+       static char name[256];
+       DWORD dw = 256;
+       GetUserName(name, &dw);
+       return name;
+*/
+    return NULL;    /* For now */
+}
+
+struct passwd *
+ getpwuid(int uid)
+{
+       pw.pw_name = getlogin();
+       pw.pw_dir = home_dir;
+       pw.pw_shell = login_shell;
+       pw.pw_uid = 0;
+
+       return &pw;
+}
+
+/* Implementation for now */
+int getpid()
+{
+    return -1;
+}
+
+/*
+ * Local Variables:
+ * mode:C
+ * ChangeLog:ChangeLog
+ * compile-command:make
+ * End:
+ */
Index: php4/netware/sysexits.h
diff -u /dev/null php4/netware/sysexits.h:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/sysexits.h     Fri Jan  3 06:46:20 2003
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 1987, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)sysexits.h  8.1 (Berkeley) 6/2/93
+ */
+
+#ifndef        _SYSEXITS_H
+#define        _SYSEXITS_H 1
+
+/*
+ *  SYSEXITS.H -- Exit status codes for system programs.
+ *
+ *     This include file attempts to categorize possible error
+ *     exit statuses for system programs, notably delivermail
+ *     and the Berkeley network.
+ *
+ *     Error numbers begin at EX__BASE to reduce the possibility of
+ *     clashing with other exit statuses that random programs may
+ *     already return.  The meaning of the codes is approximately
+ *     as follows:
+ *
+ *     EX_USAGE -- The command was used incorrectly, e.g., with
+ *             the wrong number of arguments, a bad flag, a bad
+ *             syntax in a parameter, or whatever.
+ *     EX_DATAERR -- The input data was incorrect in some way.
+ *             This should only be used for user's data & not
+ *             system files.
+ *     EX_NOINPUT -- An input file (not a system file) did not
+ *             exist or was not readable.  This could also include
+ *             errors like "No message" to a mailer (if it cared
+ *             to catch it).
+ *     EX_NOUSER -- The user specified did not exist.  This might
+ *             be used for mail addresses or remote logins.
+ *     EX_NOHOST -- The host specified did not exist.  This is used
+ *             in mail addresses or network requests.
+ *     EX_UNAVAILABLE -- A service is unavailable.  This can occur
+ *             if a support program or file does not exist.  This
+ *             can also be used as a catchall message when something
+ *             you wanted to do doesn't work, but you don't know
+ *             why.
+ *     EX_SOFTWARE -- An internal software error has been detected.
+ *             This should be limited to non-operating system related
+ *             errors as possible.
+ *     EX_OSERR -- An operating system error has been detected.
+ *             This is intended to be used for such things as "cannot
+ *             fork", "cannot create pipe", or the like.  It includes
+ *             things like getuid returning a user that does not
+ *             exist in the passwd file.
+ *     EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp,
+ *             etc.) does not exist, cannot be opened, or has some
+ *             sort of error (e.g., syntax error).
+ *     EX_CANTCREAT -- A (user specified) output file cannot be
+ *             created.
+ *     EX_IOERR -- An error occurred while doing I/O on some file.
+ *     EX_TEMPFAIL -- temporary failure, indicating something that
+ *             is not really an error.  In sendmail, this means
+ *             that a mailer (e.g.) could not create a connection,
+ *             and the request should be reattempted later.
+ *     EX_PROTOCOL -- the remote system returned something that
+ *             was "not possible" during a protocol exchange.
+ *     EX_NOPERM -- You did not have sufficient permission to
+ *             perform the operation.  This is not intended for
+ *             file system problems, which should use NOINPUT or
+ *             CANTCREAT, but rather for higher level permissions.
+ */
+
+#define EX_OK          0       /* successful termination */
+
+#define EX__BASE       64      /* base value for error messages */
+
+#define EX_USAGE       64      /* command line usage error */
+#define EX_DATAERR     65      /* data format error */
+#define EX_NOINPUT     66      /* cannot open input */
+#define EX_NOUSER      67      /* addressee unknown */
+#define EX_NOHOST      68      /* host name unknown */
+#define EX_UNAVAILABLE 69      /* service unavailable */
+#define EX_SOFTWARE    70      /* internal software error */
+#define EX_OSERR       71      /* system error (e.g., can't fork) */
+#define EX_OSFILE      72      /* critical OS file missing */
+#define EX_CANTCREAT   73      /* can't create (user) output file */
+#define EX_IOERR       74      /* input/output error */
+#define EX_TEMPFAIL    75      /* temp failure; user is invited to retry */
+#define EX_PROTOCOL    76      /* remote error in protocol */
+#define EX_NOPERM      77      /* permission denied */
+#define EX_CONFIG      78      /* configuration error */
+
+#define EX__MAX        78      /* maximum listed value */
+
+#endif /* sysexits.h */
Index: php4/netware/time_nw.c
diff -u /dev/null php4/netware/time_nw.c:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/time_nw.c      Fri Jan  3 06:46:20 2003
@@ -0,0 +1,246 @@
+
+/*****************************************************************************
+ *                                                                           *
+ * DH_TIME.C                                                                 *
+ *                                                                           *
+ * Freely redistributable and modifiable.  Use at your own risk.             *
+ *                                                                           *
+ * Copyright 1994 The Downhill Project                                       *
+ * 
+ * Modified by Shane Caraveo for use with PHP
+ *
+ *****************************************************************************/
+
+/* $Id: time_nw.c,v 1.2 2003/01/03 11:46:20 hyanantha Exp $ */
+
+ /**
+  *
+  * 04-Feb-2001
+  *   - Added patch by "Vanhanen, Reijo" <[EMAIL PROTECTED]>
+  *     Improves accuracy of msec
+  */
+
+/* Include stuff ************************************************************ */
+
+#include "time_nw.h"
+#include "unistd.h"
+#include "signal.h"
+/*#include <winbase.h>
+#include <mmsystem.h>*/
+#include <errno.h>
+/*
+int getfilesystemtime(struct timeval *time_Info) 
+{
+FILETIME ft;
+__int64 ff;
+
+    GetSystemTimeAsFileTime(&ft);   *//* 100 ns blocks since 01-Jan-1641 *//*
+                                    *//* resolution seems to be 0.01 sec *//*
+    ff = *(__int64*)(&ft);
+    time_Info->tv_sec = (int)(ff/(__int64)10000000-(__int64)11644473600);
+    time_Info->tv_usec = (int)(ff % 10000000)/10;
+    return 0;
+}
+*/
+ 
+
+int gettimeofday(struct timeval *time_Info, struct timezone *timezone_Info)
+{
+#ifdef NETWARE
+    return 0;
+#else
+       static struct timeval starttime = {0, 0};
+       static __int64 lasttime = 0;
+       static __int64 freq = 0;
+       __int64 timer;
+       LARGE_INTEGER li;
+       BOOL b;
+       double dt;
+
+       /* Get the time, if they want it */
+       if (time_Info != NULL) {
+               if (starttime.tv_sec == 0) {
+            b = QueryPerformanceFrequency(&li);
+            if (!b) {
+                starttime.tv_sec = -1;
+            }
+            else {
+                freq = li.QuadPart;
+                b = QueryPerformanceCounter(&li);
+                if (!b) {
+                    starttime.tv_sec = -1;
+                }
+                else {
+                    getfilesystemtime(&starttime);
+                    timer = li.QuadPart;
+                    dt = (double)timer/freq;
+                    starttime.tv_usec -= (int)((dt-(int)dt)*1000000);
+                    if (starttime.tv_usec < 0) {
+                        starttime.tv_usec += 1000000;
+                        --starttime.tv_sec;
+                    }
+                    starttime.tv_sec -= (int)dt;
+                }
+            }
+        }
+        if (starttime.tv_sec > 0) {
+            b = QueryPerformanceCounter(&li);
+            if (!b) {
+                starttime.tv_sec = -1;
+            }
+            else {
+                timer = li.QuadPart;
+                if (timer < lasttime) {
+                    getfilesystemtime(time_Info);
+                    dt = (double)timer/freq;
+                    starttime = *time_Info;
+                    starttime.tv_usec -= (int)((dt-(int)dt)*1000000);
+                    if (starttime.tv_usec < 0) {
+                        starttime.tv_usec += 1000000;
+                        --starttime.tv_sec;
+                    }
+                    starttime.tv_sec -= (int)dt;
+                }
+                else {
+                    lasttime = timer;
+                    dt = (double)timer/freq;
+                    time_Info->tv_sec = starttime.tv_sec + (int)dt;
+                    time_Info->tv_usec = starttime.tv_usec + 
+(int)((dt-(int)dt)*1000000);
+                    if (time_Info->tv_usec > 1000000) {
+                        time_Info->tv_usec -= 1000000;
+                        ++time_Info->tv_sec;
+                    }
+                }
+            }
+        }
+        if (starttime.tv_sec < 0) {
+            getfilesystemtime(time_Info);
+        }
+
+       }
+       /* Get the timezone, if they want it */
+       if (timezone_Info != NULL) {
+               _tzset();
+               timezone_Info->tz_minuteswest = _timezone;
+               timezone_Info->tz_dsttime = _daylight;
+       }
+       /* And return */
+       return 0;
+#endif
+}
+
+
+/* this usleep isnt exactly accurate but should do ok */
+/*
+void usleep(unsigned int useconds)
+{
+struct timeval tnow, tthen, t0;
+
+       gettimeofday(&tthen, NULL);
+    t0 = tthen;
+    tthen.tv_usec += useconds;
+    while (tthen.tv_usec > 1000000) {
+        tthen.tv_usec -= 1000000;
+        tthen.tv_sec++;
+    }
+    
+       if (useconds > 10000) {
+        useconds -= 10000;
+        Sleep(useconds/1000);
+    }
+    
+       while (1) {
+        gettimeofday(&tnow, NULL);
+        if (tnow.tv_sec > tthen.tv_sec) {
+            break;
+        }
+        if (tnow.tv_sec == tthen.tv_sec) {
+            if (tnow.tv_usec > tthen.tv_usec) {
+                break;
+            }
+        }
+    }
+}
+*/
+
+#ifdef HAVE_SETITIMER
+
+/*
+#ifndef THREAD_SAFE
+unsigned int proftimer, virttimer, realtimer;
+extern LPMSG phpmsg;
+#endif
+
+struct timer_msg {
+       int signal;
+       unsigned int threadid;
+};
+
+
+LPTIMECALLBACK setitimer_timeout(UINT uTimerID, UINT info, DWORD dwUser, DWORD dw1, 
+DWORD dw2)
+{
+       struct timer_msg *msg = (struct timer_msg *) info;
+
+       if (msg) {
+               raise((int) msg->signal);
+               PostThreadMessage(msg->threadid,
+                                                 WM_NOTIFY, msg->signal, 0);
+               free(msg);
+       }
+       return 0;
+}
+
+int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue)
+{
+       int timeout = value->it_value.tv_sec * 1000 + value->it_value.tv_usec;
+       int repeat = TIME_ONESHOT;
+*/
+       /*make sure the message queue is initialized *//*
+       PeekMessage(phpmsg, NULL, WM_USER, WM_USER, PM_NOREMOVE);
+       if (timeout > 0) {
+               struct timer_msg *msg = malloc(sizeof(struct timer_msg));
+               msg->threadid = GetCurrentThreadId();
+               if (!ovalue) {
+                       repeat = TIME_PERIODIC;
+               }
+               switch (which) {
+                       case ITIMER_REAL:
+                               msg->signal = SIGALRM;
+                               realtimer = timeSetEvent(timeout, 100, 
+(LPTIMECALLBACK) setitimer_timeout, (UINT) msg, repeat);
+                               break;
+                       case ITIMER_VIRT:
+                               msg->signal = SIGVTALRM;
+                               virttimer = timeSetEvent(timeout, 100, 
+(LPTIMECALLBACK) setitimer_timeout, (UINT) msg, repeat);
+                               break;
+                       case ITIMER_PROF:
+                               msg->signal = SIGPROF;
+                               proftimer = timeSetEvent(timeout, 100, 
+(LPTIMECALLBACK) setitimer_timeout, (UINT) msg, repeat);
+                               break;
+                       default:
+                               errno = EINVAL;
+                               return -1;
+                               break;
+               }
+       } else {
+               switch (which) {
+                       case ITIMER_REAL:
+                               timeKillEvent(realtimer);
+                               break;
+                       case ITIMER_VIRT:
+                               timeKillEvent(virttimer);
+                               break;
+                       case ITIMER_PROF:
+                               timeKillEvent(proftimer);
+                               break;
+                       default:
+                               errno = EINVAL;
+                               return -1;
+                               break;
+               }
+       }
+
+
+       return 0;
+}
+*/
+#endif
Index: php4/netware/time_nw.h
diff -u /dev/null php4/netware/time_nw.h:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/time_nw.h      Fri Jan  3 06:46:20 2003
@@ -0,0 +1,57 @@
+/*****************************************************************************
+ *                                                                           *
+ * sys/time.h                                                                *
+ *                                                                           *
+ * Freely redistributable and modifiable.  Use at your own risk.             *
+ *                                                                           *
+ * Copyright 1994 The Downhill Project                                       *
+ *
+ * Modified by Shane Caraveo for PHP
+ *
+ *****************************************************************************/
+#ifndef TIME_H
+#define TIME_H
+
+/* Include stuff ************************************************************ */
+#ifdef USE_WINSOCK
+/*#include <ws2nlm.h>*/
+#include <novsock2.h>
+#else
+#include <sys/socket.h>
+#endif
+#include <time.h>
+
+/*
+Commented out most of the stuff for now, since we dunno the utility right now 
+*/
+
+/* Struct stuff ************************************************************* */
+/*
+struct {
+       int tz_minuteswest;
+       int tz_dsttime;
+} timezone;
+*/
+/*
+struct {
+       struct timeval it_interval;     *//* next value *//*
+       struct timeval it_value;        *//* current value *//*
+} itimerval;
+*/
+#define ITIMER_REAL    0               /*generates sigalrm */
+#define ITIMER_VIRTUAL 1               /*generates sigvtalrm */
+#define ITIMER_VIRT    1               /*generates sigvtalrm */
+#define ITIMER_PROF    2               /*generates sigprof */
+
+/* Prototype stuff ********************************************************** */
+/*
+extern int gettimeofday(struct timeval *time_Info, struct timezone *timezone_Info);
+*/
+
+/* setitimer operates at 100 millisecond resolution */
+/*
+extern int setitimer(int which, const struct itimerval *value,
+                                        struct itimerval *ovalue);
+*/
+
+#endif
Index: php4/netware/wfile.c
diff -u /dev/null php4/netware/wfile.c:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/wfile.c        Fri Jan  3 06:46:20 2003
@@ -0,0 +1,17 @@
+
+/* Function borrowed from the Downhill Project */
+#include "wfile.h"
+/*#include "direct.h"*/ /* Can't find this file */
+
+int readlink(char *file_Name, char *buf_Mem, int buf_Size)
+{
+       /* See if the file exists */
+       if (access(file_Name, X_OK) == -1) {
+               errno = ENOENT;
+       } else {
+               errno = EINVAL;
+       }
+
+       /* Either way, it's not a link */
+       return -1;
+}
Index: php4/netware/wfile.h
diff -u /dev/null php4/netware/wfile.h:1.2
--- /dev/null   Fri Jan  3 06:46:21 2003
+++ php4/netware/wfile.h        Fri Jan  3 06:46:20 2003
@@ -0,0 +1,16 @@
+/*#include  <io.h> */
+#include  <stdio.h>
+#include  <stdlib.h>
+#include  <errno.h>
+
+#define access _access
+#define X_OK   0
+#ifndef ENOENT
+#define ENOENT 136
+#endif
+#ifndef EINVAL
+#define EINVAL 131
+#endif
+
+int readlink(char *, char *, int);
+int checkroot(char *path);
Index: php4/netware/php-nw.bat
diff -u php4/netware/php-nw.bat:1.2 php4/netware/php-nw.bat:1.3
--- php4/netware/php-nw.bat:1.2 Thu Sep  5 05:00:56 2002
+++ php4/netware/php-nw.bat     Fri Jan  3 06:46:19 2003
@@ -3,13 +3,8 @@
 REM CodeWarrior stuff
 set path=%path%;P:\APPS\SCRIPT\SW\CW71-4\BIN
 
-REM Cygwin stuff
-REM set path=%path%;R:\SCRIPT\PHP\CYGWIN\BIN
-REM set CYGWIN=R:\SCRIPT\PHP\CYGWIN
-
 REM Tools for building Zend
 set path=%path%;P:\APPS\SCRIPT\SW\GNUWIN32\BIN
 
 REM Build options
-REM set BUILD=release
 setbuild r 1
Index: php4/netware/php4apache.mak
diff -u php4/netware/php4apache.mak:1.1 php4/netware/php4apache.mak:1.2
--- php4/netware/php4apache.mak:1.1     Fri May 31 00:42:02 2002
+++ php4/netware/php4apache.mak Fri Jan  3 06:46:20 2003
@@ -4,9 +4,9 @@
 
 # Module details
 MODULE_NAME = mod_php
-MODULE_DESC = "PHP 4.x.x for NetWare - mod_php"
-VMAJ = 0
-VMIN = 90
+MODULE_DESC = "PHP 4.3 - Apache 1.3 Module"
+VMAJ = 3
+VMIN = 0
 VREV = 0
 
 #include the common settings
@@ -19,7 +19,8 @@
 # Source files
 C_SRC = mod_php4.c \
         php_apache.c \
-        sapi_apache.c
+        sapi_apache.c \
+        libpre.c
 
 # Destination directories and files
 OBJ_DIR = $(BUILD)
@@ -37,18 +38,18 @@
 # Compile flags
 C_FLAGS  = -c -maxerrors 25 -msgstyle gcc
 C_FLAGS += -wchar_t on -bool on
-C_FLAGS += -processor Pentium -align 1
+C_FLAGS += -processor Pentium
 C_FLAGS += -w nounusedarg -msext on
 C_FLAGS += -nostdinc
-C_FLAGS += -DNETWARE -D__GNUC__
+C_FLAGS += -relax_pointers             # To remove type-casting errors
+C_FLAGS += -DNETWARE
 C_FLAGS += -DZTS
 C_FLAGS += -DNLM_PLATFORM
 C_FLAGS += -DN_PLAT_NLM -DNLM=1 -D__NO_MATH_OPS
 C_FLAGS += -D__C9X_CMATH_INLINES_DEFINED -DAPACHE_OS_H -DNO_USE_SIGACTION 
-DMULTITHREAD
 C_FLAGS += -DCLIB_STAT_PATCH
 C_FLAGS += -DNEW_LIBC
-#C_FLAGS  += -DUSE_WINSOCK_DIRECTLY=1
-C_FLAGS += -I. -I- -I. -I../../netware -I$(SDK_DIR)/include    # ../../netware added 
for special SYS/STAT.H
+C_FLAGS += -I. -I- -I. -I../../netware -I$(SDK_DIR)/include            # 
+../../netware added for special SYS/STAT.H
 C_FLAGS += -I$(MWCIncludes)
 C_FLAGS += -I$(APACHE_DIR)/include -I$(APACHE_DIR)/os/netware
 C_FLAGS += -I- -I../../main -I../../Zend -I../../TSRM -I../../ext/standard
@@ -60,7 +61,7 @@
 ifeq '$(BUILD)' 'debug'
        SYM_FILE = $(FINAL_DIR)\$(MODULE_NAME).sym
        C_FLAGS  += -inline smart -sym on -sym codeview4 -opt off -opt intrinsics -sym 
internal -DDEBUGGING -DDKFBPON
-       C_FLAGS += -r -DZEND_DEBUG
+       C_FLAGS += -r -DZEND_DEBUG=1
        C_FLAGS += -exc cw
        LD_FLAGS += -sym on -sym codeview4 -sym internal -osym $(SYM_FILE) 
         LD_FLAGS += -msgstyle std
@@ -77,7 +78,7 @@
 MODULE = LibC \
          phplib
 IMPORT = @$(SDK_DIR)/imports/libc.imp            \
-         @$(APACHE_DIR)/os/netware/apachecore.imp \
+         @$(PROJECT_ROOT)/netware/apachecore.imp \
          @$(PROJECT_ROOT)/netware/phplib.imp
 EXPORT = php4_module
 
@@ -108,7 +109,7 @@
        @$(CC) $< $(C_FLAGS) -o $@
 
 
-$(BINARY): $(DEPDS) $(OBJECTS)
+$(BINARY): $(OBJECTS)
        @echo Import $(IMPORT) > $(basename $@).def
 ifdef API
        @echo Import $(API) >> $(basename $@).def
@@ -125,18 +126,21 @@
        @echo Start _lib_start >> $(basename $@).def
        @echo Exit _lib_stop >> $(basename $@).def
 
+       $(MPKTOOL) $(XDCFLAGS) $(basename $@).xdc
+       @echo xdcdata $(basename $@).xdc >> $(basename $@).def
+
        @echo Linking $@...
        @echo $(LD_FLAGS) -commandfile $(basename $@).def > $(basename $@).link
 ifdef LIBRARY
        @echo $(LIBRARY) >> $(basename $@).link
 endif
-       @echo $(OBJECTS) $(APACHE_DIR)/os/netware/libpre.obj >> $(basename $@).link
+       @echo $(OBJECTS) >> $(basename $@).link
 
        @$(LINK) @$(basename $@).link
 
 
 .PHONY: clean
-clean: cleand cleanobj cleanbin
+clean: cleanobj cleanbin
 
 .PHONY: cleand
 cleand:
Index: php4/netware/phplib.imp
diff -u php4/netware/phplib.imp:1.2 php4/netware/phplib.imp:1.3
--- php4/netware/phplib.imp:1.2 Mon Sep 16 07:48:48 2002
+++ php4/netware/phplib.imp     Fri Jan  3 06:46:20 2003
@@ -1,9 +1,12 @@
 _array_init,
 _convert_to_string,
+_ecalloc,
 _efree,
 _emalloc,
+_erealloc,
 _estrdup,
 _estrndup,
+_object_and_properties_init,
 _object_init,
 _object_init_ex,
 _persist_alloc,
@@ -13,6 +16,7 @@
 _zend_list_find,
 _zval_copy_ctor,
 _zval_dtor,
+_zval_ptr_dtor,
 add_assoc_long_ex,
 add_index_null,
 add_index_long,
@@ -25,10 +29,14 @@
 add_next_index_long,
 add_next_index_string,
 add_next_index_stringl,
+add_next_index_zval,
 add_property_long_ex,
 add_property_string_ex,
+call_user_function,
 compiler_globals_id,
 convert_to_boolean,
+convert_to_array,
+convert_to_double,
 convert_to_long,
 core_globals_id,
 display_ini_entries,
@@ -41,16 +49,21 @@
 highlight_file,
 le_index_ptr,
 module_registry,
+multi_convert_to_long_ex,
 open_file_for_scanning,
-_object_and_properties_init,
 php_addslashes,
+php_check_open_basedir,
 php_checkuid,
 php_execute_script,
+php_file_le_fopen,
 php_fopen_primary_script,
+php_fopen_wrapper,
+php_fread_all,
 php_handle_aborted_connection,
 php_handle_special_queries,
 php_body_write,
 php_end_ob_buffers,
+php_error_docref0,
 php_get_current_user,
 php_get_highlight_struct,
 php_handle_auth_data,
@@ -68,30 +81,46 @@
 php_module_shutdown_for_exec,
 php_module_shutdown_wrapper,
 php_module_startup,
+php_ob_set_internal_handler,
 php_output_activate,
 php_output_set_status,
 php_output_startup,
 php_print_info,
 php_printf,
+php_regfree,
 php_register_variable,
 php_request_shutdown,
 php_request_shutdown_for_exec,
 php_request_startup,
+php_sig_gif,
+php_sig_jpg,
+php_sig_png,
+php_start_ob_buffer,
+php_strip_tags,
+php_strip_url_passwd,
+php_stripslashes,
 php_strlcpy,
 php_strtolower,
+php_strtoupper,
+php_write,
+sapi_add_header_ex,
 sapi_free_header,
 sapi_get_default_content_type,
 sapi_globals_id,
 sapi_shutdown,
 sapi_startup,
+second_arg_force_ref,
 ts_allocate_id,
 ts_resource_ex,
 tsrm_shutdown,
 tsrm_startup,
+virtual_filepath,
 virtual_fopen,
 zend_alter_ini_entry,
 zend_error,
+zend_eval_string,
 zend_execute_scripts,
+zend_extensions,
 zend_fetch_resource,
 zend_get_parameters_ex,
 zend_hash_add_or_update,
@@ -106,6 +135,7 @@
 zend_hash_index_find,
 zend_hash_index_update_or_next_insert,
 zend_hash_init,
+zend_hash_init_ex,
 zend_hash_internal_pointer_reset_ex
 zend_hash_merge_ex,
 zend_hash_move_forward_ex,
@@ -113,13 +143,16 @@
 zend_highlight,
 zend_ini_deactivate,
 zend_ini_boolean_displayer_cb,
+zend_ini_string,
 zend_list_insert,
 zend_llist_add_element,
 zend_llist_apply,
+zend_llist_apply_with_argument,
 zend_llist_destroy,
 zend_llist_init,
 zend_load_extension,
 zend_parse_parameters,
+zend_parse_parameters_ex,
 zend_printf,
 zend_register_ini_entries,
 zend_register_internal_class,
@@ -128,8 +161,11 @@
 zend_register_resource,
 zend_startup_module,
 zend_standard_class_def,
+zend_strip,
 zend_unregister_ini_entries,
 zend_wrong_param_count,
+zval_add_ref,
+OnUpdateBool,
 OnUpdateInt,
 OnUpdateString,
 OnUpdateStringUnempty
Index: php4/netware/phplib.mak
diff -u php4/netware/phplib.mak:1.1 php4/netware/phplib.mak:1.2
--- php4/netware/phplib.mak:1.1 Wed Sep  4 08:22:57 2002
+++ php4/netware/phplib.mak     Fri Jan  3 06:46:20 2003
@@ -3,11 +3,11 @@
 PROJECT_ROOT = .
 
 # Module details
-MODULE_NAME = phplib
-MODULE_DESC = "PHP 4.0.8 for NetWare (Beta) - PHP Library"
-VMAJ = 0
-VMIN = 60
-VREV = 1
+MODULE_NAME = PHPLIB
+MODULE_DESC = "PHP 4.3 - Script Interpreter and Library"
+VMAJ = 3
+VMIN = 0
+VREV = 0
 
 #include the common settings
 include $(PROJECT_ROOT)/netware/common.mif
@@ -58,11 +58,14 @@
         ext/pcre/pcrelib/get.c \
         ext/pcre/pcrelib/maketables.c \
         ext/pcre/pcrelib/pcre.c \
+        ext/pcre/pcrelib/pcreposix.c \
         ext/pcre/pcrelib/study.c \
         ext/session/mod_files.c \
+        ext/session/mod_mm.c \
         ext/session/mod_user.c \
         ext/session/session.c \
         ext/snmp/snmp.c \
+        ext/standard/aggregation.c \
         ext/standard/array.c \
         ext/standard/assert.c \
         ext/standard/base64.c \
@@ -70,6 +73,7 @@
         ext/standard/browscap.c \
         ext/standard/crc32.c \
         ext/standard/credits.c \
+        ext/standard/css.c \
         ext/standard/cyr_convert.c \
         ext/standard/datetime.c \
         ext/standard/dir.c \
@@ -81,6 +85,7 @@
         ext/standard/flock_compat.c \
         ext/standard/formatted_print.c \
         ext/standard/fsock.c \
+        ext/standard/ftok.c \
         ext/standard/ftp_fopen_wrapper.c \
         ext/standard/head.c \
         ext/standard/html.c \
@@ -105,6 +110,7 @@
         ext/standard/rand.c \
         ext/standard/reg.c \
         ext/standard/scanf.c \
+        ext/standard/sha1.c \
         ext/standard/soundex.c \
         ext/standard/string.c \
         ext/standard/strnatcmp.c \
@@ -114,9 +120,12 @@
         ext/standard/url_scanner.c \
         ext/standard/url_scanner_ex.c \
         ext/standard/var.c \
+        ext/standard/var_unserializer.c \
+        ext/standard/versioning.c \
         main/fopen_wrappers.c \
         main/internal_functions_nw.c \
         main/main.c \
+        main/memory_streams.c \
         main/mergesort.c \
         main/network.c \
         main/output.c \
@@ -124,6 +133,7 @@
         main/php_ini.c \
         main/php_logos.c \
         main/php_open_temporary_file.c \
+        main/php_sprintf.c \
         main/php_ticks.c \
         main/php_variables.c \
         main/reentrancy.c \
@@ -131,42 +141,35 @@
         main/safe_mode.c \
         main/SAPI.c \
         main/snprintf.c \
+        main/spprintf.c \
+        main/streams.c \
         main/strlcat.c \
         main/strlcpy.c \
-        netware/env.c \
+        main/user_streams.c \
         netware/geterrnoptr.c \
         netware/mktemp.c \
         netware/pipe.c \
         netware/pwd.c \
-        netware/sendmail.c \
         netware/start.c \
+        netware/time_nw.c \
         netware/wfile.c \
         regex/regcomp.c \
         regex/regerror.c \
         regex/regexec.c \
         regex/regfree.c \
 #        ext/standard/crypt.c \
-#        ext/xml/xml.c \
 #        ext/com/COM.c \
 #        ext/com/conversion.c \
-#        ext/ldap/ldap.c \
 #        ext/odbc/php_odbc.c \
 #        ext/snmp/winsnmp.c \
 #        netware/winutil.c \
-#        ext/mysql/php_mysql.c \
-#        ext/standard/syslog.c \
 #        netware/registry.c \
-#        netware/time_nw.c \
-#        netware/wsyslog.c
-#        ext/xml/expat/xmlparse/hashtable.c \
-#        ext/xml/expat/xmlparse/xmlparse.c \
-#        ext/xml/expat/xmltok/xmlrole.c \
-#        ext/xml/expat/xmltok/xmltok.c \
-#        ext/xml/expat/xmltok/xmltok_impl.c \
-#        ext/xml/expat/xmltok/xmltok_ns.c \
+#        main/alloca.c \
 #        ext/wddx/wddx.c \
 #        netware/readdir.c \
 
+WIN32_C_SRC = sendmail.c \
+
 
 CPP_SRC_NODIR = $(notdir $(CPP_SRC))
 C_SRC_NODIR = $(notdir $(C_SRC))
@@ -174,14 +177,13 @@
 
 # Library files
 LIBRARY  = $(PROJECT_ROOT)/Zend/$(BUILD)/Zend.lib 
$(PROJECT_ROOT)/TSRM/$(BUILD)/TSRM.lib
-LIBRARY += $(PROJECT_ROOT)/win32build/lib/resolv.lib
-#LIBRARY += libmysql.lib
 
 # Destination directories and files
 OBJ_DIR = $(BUILD)
 FINAL_DIR = $(BUILD)
 MAP_FILE = $(FINAL_DIR)\$(MODULE_NAME).map
 OBJECTS  = $(join $(SRC_DIR), $(addprefix $(OBJ_DIR)/,$(CPP_SRC_NODIR:.c=.obj) 
$(C_SRC_NODIR:.c=.obj)))
+WIN32_OBJECTS  = $(addprefix $(OBJ_DIR)/,$(WIN32_C_SRC:.c=.obj))
 DEPDS  = $(join $(SRC_DIR), $(addprefix $(OBJ_DIR)/,$(CPP_SRC_NODIR:.c=.d) 
$(C_SRC_NODIR:.c=.d)))
 
 # Binary file
@@ -192,36 +194,35 @@
 # Compile flags
 C_FLAGS += -c -maxerrors 25 -msgstyle gcc
 C_FLAGS += -wchar_t on -bool on
+C_FLAGS += -relax_pointers             # To remove type-casting errors
 C_FLAGS += -processor Pentium
 C_FLAGS += -nostdinc -nosyspath
 C_FLAGS  += -DNETWARE -D__BIT_TYPES_DEFINED__ -DZTS
-#C_FLAGS  += -DZEND_DEBUG
 C_FLAGS  += -DPHP4DLLTS_EXPORTS -DPHP_EXPORTS -DLIBZEND_EXPORTS -DTSRM_EXPORTS 
-DSAPI_EXPORTS
 C_FLAGS  += -DHAVE_SYS_TIME_H -DHAVE_STRUCT_FLOCK -DVIRTUAL_DIR -DHAVE_TZNAME
 C_FLAGS  += -DHAVE_DLFCN_H -DHAVE_LIBDL
-#C_FLAGS  += -DCOMPILE_DL_LDAP
+C_FLAGS  += -DCLIB_STAT_PATCH          # stat patch
 C_FLAGS  += -DNEW_LIBC -DHAVE_ARPA_INET_H=1 -DHAVE_NETINET_IN_H=1 -DHAVE_INET_ATON=1
-#C_FLAGS  += -DUSE_WINSOCK -DUSE_WINSOCK_DIRECTLY=1
-C_FLAGS  += -I. -Imain -Inetware -Iregex -I./bindlib_w32 -IZend -ITSRM
+
+C_FLAGS  += -DLINK_SIZE=2              # Added for the new definition in 
+ext\pcre\pcrelib\internal.h
+# Below added for the file ext\pcre\pcrelib\pcreposix.c and
+# the default value is what is defined in the changelog file
+C_FLAGS  += -DPOSIX_MALLOC_THRESHOLD=5
+
+C_FLAGS  += -I. -Imain -Inetware -Iregex -IZend -ITSRM
 C_FLAGS  += -Iext/standard -Iext/mcal -Iext/pcre -Iext/pcre/pcrelib
 C_FLAGS  += -Iext/bcmath -Iext/bcmath/libbcmath/src
-#C_FLAGS  += -Iext/ldap
-C_FLAGS  += -Iext/xml -Iext/xml/expat/xmltok -Iext/xml/expat -Iext/xml/expat/xmlparse
 C_FLAGS  += -Iext/odbc -Iext/session -Iext/ftp -Iext/wddx -Iext/calendar -Iext/snmp
-#C_FLAGS  += -Iext/mysql -Iext/mysql/libmysql
-#C_FLAGS  += -I- -Inetware -I$(SDK_DIR)/sdk -I$(MWCIncludes)   # netware added for 
special SYS/STAT.H : Venkat(6/2/02)
 C_FLAGS  += -I- -Inetware -I$(SDK_DIR)/include -I$(MWCIncludes)        # netware 
added for special SYS/STAT.H : Venkat(6/2/02)
-
-C_FLAGS  += -I$(SDK_DIR)/include/winsock       # Added for socket calls : Ananth (16 
Aug 2002)
-
-#C_FLAGS  += -I$(LDAP_DIR)/inc
+C_FLAGS  += -Iwin32
+C_FLAGS  += -I$(SDK_DIR)/include/winsock       # Added for socket calls
 
 
 # Extra stuff based on debug / release builds
 ifeq '$(BUILD)' 'debug'
        SYM_FILE = $(FINAL_DIR)\$(MODULE_NAME).sym
        C_FLAGS  += -inline smart -sym on -sym codeview4 -sym internal -opt off -opt 
intrinsics 
-       C_FLAGS += -D_DEBUG -DZEND_DEBUG=1  #-r
+       C_FLAGS += -D_DEBUG -DZEND_DEBUG=1
        LD_FLAGS += -sym codeview4 -sym internal -osym $(SYM_FILE) 
        export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtl.lib
 else
@@ -244,7 +245,7 @@
 
 # Virtual paths
 vpath %.cpp .
-vpath %.c .
+vpath %.c . win32
 vpath %.obj $(OBJ_DIR)
 
 
@@ -255,23 +256,16 @@
 prebuild:
        @if not exist main\$(OBJ_DIR)                     md main\$(OBJ_DIR)
        @if not exist regex\$(OBJ_DIR)                    md regex\$(OBJ_DIR)
-       @if not exist bindlib_w32\$(OBJ_DIR)              md bindlib_w32\$(OBJ_DIR)
        @if not exist netware\$(OBJ_DIR)                  md netware\$(OBJ_DIR)
        @if not exist ext\standard\$(OBJ_DIR)             md ext\standard\$(OBJ_DIR)
        @if not exist ext\bcmath\$(OBJ_DIR)               md ext\bcmath\$(OBJ_DIR)
        @if not exist ext\bcmath\libbcmath\src\$(OBJ_DIR) md 
ext\bcmath\libbcmath\src\$(OBJ_DIR)
        @if not exist ext\mcal\$(OBJ_DIR)                 md ext\mcal\$(OBJ_DIR)
-       @if not exist ext\mysql\$(OBJ_DIR)                md ext\mysql\$(OBJ_DIR)
-       @if not exist ext\mysql\libmysql\$(OBJ_DIR)       md 
ext\mysql\libmysql\$(OBJ_DIR)
        @if not exist ext\pcre\$(OBJ_DIR)                 md ext\pcre\$(OBJ_DIR)
        @if not exist ext\pcre\pcrelib\$(OBJ_DIR)         md 
ext\pcre\pcrelib\$(OBJ_DIR)
        @if not exist ext\odbc\$(OBJ_DIR)                 md ext\odbc\$(OBJ_DIR)
-       @if not exist ext\xml\$(OBJ_DIR)                  md ext\xml\$(OBJ_DIR)
-       @if not exist ext\xml\expat\xmlparse\$(OBJ_DIR)   md 
ext\xml\expat\xmlparse\$(OBJ_DIR)
-       @if not exist ext\xml\expat\xmltok\$(OBJ_DIR)     md 
ext\xml\expat\xmltok\$(OBJ_DIR)
        @if not exist ext\session\$(OBJ_DIR)              md ext\session\$(OBJ_DIR)
        @if not exist ext\ftp\$(OBJ_DIR)                  md ext\ftp\$(OBJ_DIR)
-#      @if not exist ext\ldap\$(OBJ_DIR)                 md ext\ldap\$(OBJ_DIR)
        @if not exist ext\wddx\$(OBJ_DIR)                 md ext\wddx\$(OBJ_DIR)
        @if not exist ext\calendar\$(OBJ_DIR)             md ext\calendar\$(OBJ_DIR)
        @if not exist ext\snmp\$(OBJ_DIR)                 md ext\snmp\$(OBJ_DIR)
@@ -293,11 +287,9 @@
        @echo $(wordlist 61, 80, $(C_FLAGS)) >> $(basename $(OBJ_DIR)\$(notdir $@)).cfg
        @$(CC) $< @$(basename $(OBJ_DIR)\$(notdir $@)).cfg -o $@ 
        @del $(basename $(OBJ_DIR)\$(notdir $@)).cfg
-#      @$(CC) $< $(C_FLAGS) -o $@
 
 
-#$(BINARY): $(DEPDS) $(OBJECTS) $(LIBRARY)
-$(BINARY): $(OBJECTS) $(LIBRARY)
+$(BINARY): $(OBJECTS) $(WIN32_OBJECTS) $(LIBRARY)
        @echo Import $(IMPORT) > $(basename $@).def
 ifdef API
        @echo Import $(API) >> $(basename $@).def
@@ -311,8 +303,10 @@
        @echo Debug >> $(basename $@).def
 endif
        @echo Flag_On 0x00000008 >> $(basename $@).def
-       @echo Start _NonAppStart >> $(basename $@).def
-       @echo Exit _NonAppStop >> $(basename $@).def
+#      @echo Start _NonAppStart >> $(basename $@).def
+#      @echo Exit _NonAppStop >> $(basename $@).def
+       @echo Start _LibCPrelude >> $(basename $@).def
+       @echo Exit _LibCPostlude >> $(basename $@).def
 
        $(MPKTOOL) $(XDCFLAGS) $(basename $@).xdc
        @echo xdcdata $(basename $@).xdc >> $(basename $@).def
@@ -339,61 +333,57 @@
        @echo $(wordlist 111, 115, $(OBJECTS)) >> $(basename $@).link
        @echo $(wordlist 116, 120, $(OBJECTS)) >> $(basename $@).link
        @echo $(wordlist 121, 125, $(OBJECTS)) >> $(basename $@).link
-       @echo $(wordlist 126, 127, $(OBJECTS)) >> $(basename $@).link
-#      @echo $(wordlist 126, 134, $(OBJECTS)) >> $(basename $@).link
+       @echo $(wordlist 126, 130, $(OBJECTS)) >> $(basename $@).link
+       @echo $(wordlist 131, 135, $(OBJECTS)) >> $(basename $@).link
+       @echo $(wordlist 136, 140, $(OBJECTS)) >> $(basename $@).link
+
+       @echo $(wordlist 1, 2, $(WIN32_OBJECTS)) >> $(basename $@).link
 
        @$(LINK) @$(basename $@).link
 
 
 .PHONY: clean
-clean: cleand cleanobj cleanbin
+clean: cleansrc cleanobj cleanbin
 
 .PHONY: cleand
 cleand:
        @echo Deleting all dependency files...
        -@del "main\$(OBJ_DIR)\*.d"
        -@del "regex\$(OBJ_DIR)\*.d"
-       -@del "..\bindlib_w32\$(OBJ_DIR)\*.d"
        -@del "netware\$(OBJ_DIR)\*.d"
        -@del "ext\standard\$(OBJ_DIR)\*.d"
        -@del "ext\bcmath\$(OBJ_DIR)\*.d"
        -@del "ext\bcmath\libbcmath\src\$(OBJ_DIR)\*.d"
-#      -@del "ext\ldap\$(OBJ_DIR)\*.d"
        -@del "ext\mcal\$(OBJ_DIR)\*.d"
-       -@del "ext\mysql\$(OBJ_DIR)\*.d"
-       -@del "ext\mysql\libmysql\$(OBJ_DIR)\*.d"
        -@del "ext\pcre\$(OBJ_DIR)\*.d"
        -@del "ext\pcre\pcrelib\$(OBJ_DIR)\*.d"
        -@del "ext\odbc\$(OBJ_DIR)\*.d"
-       -@del "ext\xml\$(OBJ_DIR)\*.d"
-       -@del "ext\xml\expat\xmlparse\$(OBJ_DIR)\*.d"
-       -@del "ext\xml\expat\xmltok\$(OBJ_DIR)\*.d"
        -@del "ext\session\$(OBJ_DIR)\*.d"
        -@del "ext\ftp\$(OBJ_DIR)\*.d"
        -@del "ext\wddx\$(OBJ_DIR)\*.d"
        -@del "ext\calendar\$(OBJ_DIR)\*.d"
        -@del "ext\snmp\$(OBJ_DIR)\*.d"
 
+.PHONY: cleansrc
+cleansrc:
+       @echo Deleting all generated source files...
+       -@del "ext\standard\parsedate.c"
+       -@del "ext\standard\parsedate.h"
+       -@del "ext\standard\parsedate.output"
+
 .PHONY: cleanobj
 cleanobj:
        @echo Deleting all object files...
        -@del "main\$(OBJ_DIR)\*.obj"
        -@del "regex\$(OBJ_DIR)\*.obj"
-       -@del "..\bindlib_w32\$(OBJ_DIR)\*.obj"
        -@del "netware\$(OBJ_DIR)\*.obj"
        -@del "ext\standard\$(OBJ_DIR)\*.obj"
        -@del "ext\bcmath\$(OBJ_DIR)\*.obj"
        -@del "ext\bcmath\libbcmath\src\$(OBJ_DIR)\*.obj"
-#      -@del "ext\ldap\$(OBJ_DIR)\*.obj"
        -@del "ext\mcal\$(OBJ_DIR)\*.obj"
-       -@del "ext\mysql\$(OBJ_DIR)\*.obj"
-       -@del "ext\mysql\libmysql\$(OBJ_DIR)\*.obj"
        -@del "ext\pcre\$(OBJ_DIR)\*.obj"
        -@del "ext\pcre\pcrelib\$(OBJ_DIR)\*.obj"
        -@del "ext\odbc\$(OBJ_DIR)\*.obj"
-       -@del "ext\xml\$(OBJ_DIR)\*.obj"
-       -@del "ext\xml\expat\xmlparse\$(OBJ_DIR)\*.obj"
-       -@del "ext\xml\expat\xmltok\$(OBJ_DIR)\*.obj"
        -@del "ext\session\$(OBJ_DIR)\*.obj"
        -@del "ext\ftp\$(OBJ_DIR)\*.obj"
        -@del "ext\wddx\$(OBJ_DIR)\*.obj"
Index: php4/netware/pwd.h
diff -u php4/netware/pwd.h:1.1 php4/netware/pwd.h:1.2
--- php4/netware/pwd.h:1.1      Fri May 31 00:42:02 2002
+++ php4/netware/pwd.h  Fri Jan  3 06:46:20 2003
@@ -20,15 +20,16 @@
 /* This 'implementation' is conjectured from the use of this functions in
    the RCS and BASH distributions.  Of course these functions don't do too
    much useful things under MS-DOS, but using them avoids many "#ifdef
-   MSDOS" in ported UN*X code ...  */
+   MSDOS" in ported UN*X code ...
+ */
+
 
 #ifndef PWD_H
 #define PWD_H
 
-/*
-    Not available in LibC / SDK header or CodeWarrior header files; so taking from 
Winsock
-    definitions, which should be OK
-*/
+/* Not available in LibC / SDK header or CodeWarrior header files.
+ * So taking from Winsock definitions, which should be OK
+ */
 typedef unsigned int DWORD;
 
 struct passwd {
@@ -45,5 +46,9 @@
 extern struct passwd *getpwuid(int);
 extern struct passwd *getpwnam(char *name);
 extern char *getlogin(void);
+
+#ifndef NEW_LIBC
+int getpid();
+#endif
 
 #endif
Index: php4/netware/start.c
diff -u php4/netware/start.c:1.3 php4/netware/start.c:1.4
--- php4/netware/start.c:1.3    Tue Dec 31 10:58:55 2002
+++ php4/netware/start.c        Fri Jan  3 06:46:20 2003
@@ -21,14 +21,14 @@
 #include <netware.h>
 #include <nks/synch.h>
 
-void                   *gLibHandle = (void *) NULL;
+void           *gLibHandle = (void *) NULL;
 rtag_t         gAllocTag = (rtag_t) NULL;
 NXMutex_t      *gLibLock = (NXMutex_t *) NULL;
-int gLibId=0;
+int                    gLibId = 0;
+
 
 int DisposeLibraryData(        void    *data)
 {
-
        return 0;
 }
 
@@ -61,26 +61,22 @@
 #pragma unused(messageCount)
 #pragma unused(messages)
 
-/*
-** Here we process our command line, post errors (to the error screen),
-** perform initializations and anything else we need to do before being able
-** to accept calls into us. If we succeed, we return non-zero and the NetWare
-** Loader will leave us up, otherwise we fail to load and get dumped.
-*/
-//     gAllocTag = AllocateResourceTag(NLMHandle,
-//                                                             "<library-name> memory 
allocations", AllocSignature);
-
-//     if (!gAllocTag)
-//     {
-//             OutputToScreen(errorScreen, "Unable to allocate resource tag for "
-//                                                                                    
 "library memory allocations.\n");
-//             return -1;
-//     }
-
+/* Here we process our command line, post errors (to the error screen),
+ * perform initializations and anything else we need to do before being able
+ * to accept calls into us. If we succeed, we return non-zero and the NetWare
+ * Loader will leave us up, otherwise we fail to load and get dumped.
+ */
+/**
+       gAllocTag = AllocateResourceTag(NLMHandle,
+                                                               "<library-name> memory 
+allocations", AllocSignature);
+       if (!gAllocTag) {
+               OutputToScreen(errorScreen, "Unable to allocate resource tag for "
+                                                                                      
+ "library memory allocations.\n");
+               return -1;
+       }
+**/
        gLibId = register_library(DisposeLibraryData);
-
-       if (gLibId < -1)
-       {
+       if (gLibId == -1) {
                OutputToScreen(errorScreen, "Unable to register library with 
kernel.\n");
                return -1;
        }
@@ -88,9 +84,7 @@
        gLibHandle = NLMHandle;
 
        gLibLock = NXMutexAlloc(0, 0, &liblock);
-
-       if (!gLibLock)
-       {
+       if (!gLibLock) {
                OutputToScreen(errorScreen, "Unable to allocate library data lock.\n");
                return -1;
        }
@@ -101,26 +95,25 @@
 
 void _NonAppStop( void )
 {
-/*
-** Here we clean up any resources we allocated. Resource tags is a big part
-** of what we created, but NetWare doesn't ask us to free those.
-*/
+/* Here we clean up any resources we allocated. Resource tags is a big part
+ * of what we created, but NetWare doesn't ask us to free those.
+ */
        (void) unregister_library(gLibId);
        NXMutexFree(gLibLock);
 }
 
+
 int  _NonAppCheckUnload( void )
 {
-/*
-** This function cannot be the first in the file for if the file is linked
-** first, then the check-unload function's offset will be nlmname.nlm+0
-** which is how to tell that there isn't one. When the check function is
-** first in the linked objects, it is ambiguous. For this reason, we will
-** put it inside this file after the stop function.
-**
-** Here we check to see if it's alright to ourselves to be unloaded. If not,
-** we return a non-zero value. Right now, there isn't any reason not to allow
-** it.
-*/
+/* This function cannot be the first in the file for if the file is linked
+ * first, then the check-unload function's offset will be nlmname.nlm+0
+ * which is how to tell that there isn't one. When the check function is
+ * first in the linked objects, it is ambiguous. For this reason, we will
+ * put it inside this file after the stop function.
+ *
+ * Here we check to see if it's alright to ourselves to be unloaded. If not,
+ * we return a non-zero value. Right now, there isn't any reason not to allow
+ * it.
+ */
        return 0;
 }
Index: php4/netware/tsrm.mak
diff -u php4/netware/tsrm.mak:1.2 php4/netware/tsrm.mak:1.3
--- php4/netware/tsrm.mak:1.2   Wed May 29 04:38:33 2002
+++ php4/netware/tsrm.mak       Fri Jan  3 06:46:20 2003
@@ -5,8 +5,6 @@
 # Module details
 MODULE_NAME = TSRM
 
-#MODULE_ROOT = $(PROJECT_ROOT)\\$(MODULE_NAME)
-
 #include the common settings
 include $(PROJECT_ROOT)/netware/common.mif
 
@@ -17,9 +15,9 @@
 # Source files
 CPP_SRC = 
 C_SRC = TSRM.c \
+        tsrm_nw.c \
         tsrm_strtok_r.c \
-        tsrm_virtual_cwd.c \
-        tsrm_nw.c
+        tsrm_virtual_cwd.c
 
 # Destination directories and files
 OBJ_DIR = $(BUILD)
@@ -35,16 +33,19 @@
 # Compile flags
 C_FLAGS  = -c -maxerrors 25 -msgstyle gcc
 C_FLAGS += -wchar_t on -bool on
-C_FLAGS += -processor Pentium -align 1
+C_FLAGS += -processor Pentium
 C_FLAGS += -nostdinc
-C_FLAGS  += -DZTS -DNETWARE -DHAVE_DIRENT_H
-#C_FLAGS  += -DUSE_PIPE_OPEN
+C_FLAGS += -relax_pointers             # To remove type-casting errors
+C_FLAGS  += -DZTS -DNETWARE -DHAVE_DIRENT_H=1
+C_FLAGS  += -DNEW_LIBC
 C_FLAGS  += -DUSE_MKFIFO
-C_FLAGS  += -DCLIB_STAT_PATCH -DUSE_MPK
+C_FLAGS  += -DCLIB_STAT_PATCH
+#C_FLAGS  += -DUSE_MPK         # To use the LibC recursive mutex locking
 C_FLAGS  += -I. -I- -I../netware -I$(SDK_DIR)/include  # ../netware added for special 
SYS/STAT.H
 C_FLAGS  += -I$(MPK_DIR)/include1
 C_FLAGS  += -I$(MWCIncludes)
 
+
 # Link flags
 LD_FLAGS  = -type library
 LD_FLAGS += -o $(BINARY)
@@ -84,13 +85,13 @@
        @echo Compiling $?...
        @$(CC) $< $(C_FLAGS) -o $@
 
-$(BINARY): $(DEPDS) $(OBJECTS)
+$(BINARY): $(OBJECTS)
        @echo Linking $@...
        @$(LINK) $(LD_FLAGS) $(OBJECTS)
 
 
 .PHONY: clean
-clean: cleand cleanobj cleanbin
+clean: cleanobj cleanbin
 
 .PHONY: cleand
 cleand:
Index: php4/netware/zend.mak
diff -u php4/netware/zend.mak:1.2 php4/netware/zend.mak:1.3
--- php4/netware/zend.mak:1.2   Wed May 29 01:16:17 2002
+++ php4/netware/zend.mak       Fri Jan  3 06:46:20 2003
@@ -5,8 +5,6 @@
 # Module details
 MODULE_NAME = ZEND
 
-#MODULE_ROOT = $(PROJECT_ROOT)\\$(MODULE_NAME)
-
 #include the common settings
 include $(PROJECT_ROOT)/netware/common.mif
 
@@ -28,8 +26,13 @@
         zend_highlight.c \
         zend_indent.c \
         zend_ini.c \
+        zend_ini_parser.c \
+        zend_ini_scanner.c \
+        zend_language_parser.c \
+        zend_language_scanner.c \
         zend_list.c \
         zend_llist.c \
+        zend_multibyte.c \
         zend_opcode.c \
         zend_operators.c \
         zend_ptr_stack.c \
@@ -37,11 +40,7 @@
         zend_sprintf.c \
         zend_stack.c \
         zend_static_allocator.c \
-        zend_variables.c \
-        zend_ini_parser.c \
-        zend_ini_scanner.c \
-        zend_language_parser.c \
-        zend_language_scanner.c
+        zend_variables.c
 
 
 # Destination directories and files
@@ -59,16 +58,23 @@
 # Compile flags
 C_FLAGS  = -c -maxerrors 25 -msgstyle std
 C_FLAGS += -wchar_t on -bool on
-C_FLAGS += -processor Pentium -align 1
+C_FLAGS += -processor Pentium
 C_FLAGS += -nostdinc
+C_FLAGS += -relax_pointers             # To remove type-casting errors
 C_FLAGS += -D__C9X_CMATH_INLINES_DEFINED
-C_FLAGS += -DNETWARE -D__GNUC__
-C_FLAGS += -DZTS
+C_FLAGS += -DNETWARE -DZTS
+C_FLAGS  += -DNEW_LIBC
 C_FLAGS += -DCLIB_STAT_PATCH
 C_FLAGS += -DTHREAD_SWITCH
+
+# These are required to use dlclose so that the PHP extensions are automatically 
+unloaded
+# when apache is unloaded
+C_FLAGS  += -DHAVE_DLFCN_H -DHAVE_LIBDL
+
 C_FLAGS += -I. -I- -I../netware -I$(SDK_DIR)/include   # ../netware added for special 
SYS/STAT.H
 C_FLAGS += -I$(MWCIncludes)
 
+
 # Link flags
 LD_FLAGS  = -type library
 LD_FLAGS += -o $(BINARY)
@@ -76,12 +82,13 @@
 
 # Extra stuff based on debug / release builds
 ifeq '$(BUILD)' 'debug'
-       C_FLAGS  += -DZEND_DEBUG
+       C_FLAGS  += -DZEND_DEBUG=1
        C_FLAGS  += -inline smart -sym on -sym codeview4 -sym internal -opt off -opt 
intrinsics
        LD_FLAGS += -sym codeview4 -sym internal
        export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtld.lib
 else
        C_FLAGS  += -opt speed -inline on -inline auto -sym off
+       C_FLAGS  += -DZEND_DEBUG=0
        LD_FLAGS += -sym off
        export MWLibraryFiles=$(SDK_DIR)/imports/libcpre.o;mwcrtl.lib
 endif
@@ -104,18 +111,6 @@
        @echo Build complete.
 
 
-##zend_ini_parser.c zend_ini_parser.h : zend_ini_parser.y
-##     @bison --output=$@ -v -d -p ini_ zend_ini_parser.y
-
-##zend_ini_scanner.c : zend_ini_scanner.l
-##     @flex -i -Pini_ -o$@ zend_ini_scanner.l
-
-##zend_language_parser.c zend_language_parser.h : zend_language_parser.y
-##     @bison --output=$@ -v -d -p zend zend_language_parser.y
-
-##zend_language_scanner.c : zend_language_scanner.l
-##     @flex -i -Pzend -o$@ zend_language_scanner.l
-
 $(OBJ_DIR)/%.d: %.c
        @echo Building Dependencies for $(<F)
        @$(CC) -M $< $(C_FLAGS) -o $@
@@ -125,13 +120,13 @@
        @$(CC) $< $(C_FLAGS) -o $@
 
 
-$(BINARY): $(DEPDS) $(OBJECTS)
+$(BINARY): $(OBJECTS)
        @echo Linking $@...
        @$(LINK) $(LD_FLAGS) $(OBJECTS)
 
 
 .PHONY: clean
-clean: cleansrc cleand cleanobj cleanbin
+clean: cleansrc cleanobj cleanbin
 
 .PHONY: cleansrc
 cleansrc:
Index: php4/netware/ZendEngine2.mak
diff -u php4/netware/ZendEngine2.mak:1.3 php4/netware/ZendEngine2.mak:1.4
--- php4/netware/ZendEngine2.mak:1.3    Fri Dec 20 15:53:10 2002
+++ php4/netware/ZendEngine2.mak        Fri Jan  3 06:46:20 2003
@@ -3,7 +3,7 @@
 PROJECT_ROOT = ..
 
 # Module details
-MODULE_NAME = Zend
+MODULE_NAME = ZEND
 
 #include the common settings
 include $(PROJECT_ROOT)/netware/common.mif
@@ -63,10 +63,10 @@
 C_FLAGS += -wchar_t on -bool on
 C_FLAGS += -processor Pentium
 C_FLAGS += -nostdinc
-C_FLAGS += -relax_pointers     # To remove the type-casting errors
+C_FLAGS += -relax_pointers             # To remove type-casting errors
 C_FLAGS += -D__C9X_CMATH_INLINES_DEFINED
-C_FLAGS += -DNETWARE
-C_FLAGS += -DZTS
+C_FLAGS += -DNETWARE -DZTS
+C_FLAGS  += -DNEW_LIBC
 C_FLAGS += -DCLIB_STAT_PATCH
 C_FLAGS += -DTHREAD_SWITCH
 

Index: php4/netware/phptest.ncf
+++ php4/netware/phptest.ncf
php -q run-tests.php > results.txt
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to