CVS update: php31/sapi
| From: | shane | Date: | Sat, 22 Aug 1998 23:33:12 +0000 |
| Subject: | CVS update: php31/sapi | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-497@lists.php.net to get a copy of this message | ||
Date: Saturday August 22, 1998 @ 19:33
Author: shane
Update of /repository/php31/sapi
In directory asf:/tmp/cvs-serv16801/sapi
Modified Files:
nsapi_sapi.c phpsapi_nsapi.dsp
Added Files:
nsapi-readme.txt
Log Message:
NSAPI now works! work likely needs to be done on headers, cookies and authentication,
all untested. Only simple scripts tested at this time. See sapi/nsapi-readme.txt
for configuration information.
Index: php31/sapi/nsapi_sapi.c
diff -c php31/sapi/nsapi_sapi.c:2.2 php31/sapi/nsapi_sapi.c:2.3
*** php31/sapi/nsapi_sapi.c:2.2 Fri Aug 21 09:48:44 1998
--- php31/sapi/nsapi_sapi.c Sat Aug 22 19:33:12 1998
***************
*** 39,45 ****
#include "modules.h"
#include "ext/standard/file.h"
#include "head.h"
! #include "ext/standard/post.h"
#include "head.h"
#include "ext/standard/type.h"
#include "highlight.h"
--- 39,45 ----
#include "modules.h"
#include "ext/standard/file.h"
#include "head.h"
! #include "post.h"
#include "head.h"
#include "ext/standard/type.h"
#include "highlight.h"
***************
*** 75,81 ****
#include <stdio.h>
#endif /* XP_WIN32 */
!
struct ns_request_info {
pblock *pb;
Session *sn;
--- 75,87 ----
#include <stdio.h>
#endif /* XP_WIN32 */
! #define DEBUG_MESSAGE(debugmessage) OutputDebugString(debugmessage)
! /* { \
! char logmessage[1024]; \
! snprintf(logmessage, 1024, "%d:debugmessage\n", GetCurrentThreadId()); \
! OutputDebugString(logmessage); \
! }
! */
struct ns_request_info {
pblock *pb;
Session *sn;
***************
*** 157,162 ****
--- 163,171 ----
Request *rq = (Request *) ns_rqst->rq;
int i = 0;
+ #ifdef DEBUG
+ DEBUG_MESSAGE("enter _php3_nsapi_env_get\n");
+ #endif
/* we need to go through the table above, and see if we can get
what is being looked for from netscape, otherwise, try the regular
environment
***************
*** 230,235 ****
--- 239,247 ----
char *sapi_getenv(SAPI_GLOBAL_INCLUDE char *var)
{
SAPI_FUNC_VARS;
+ #ifdef DEBUG
+ DEBUG_MESSAGE("called sapi_getenv\n");
+ #endif
return _php3_nsapi_env_get(ns_rqst, var);
}
***************
*** 315,324 ****
/*********************************************************/
/*FIXME need to make nsapi correctly handle redirects and status strings */
! int sapi_insert_header(SAPI_GLOBAL_INCLUDE char *header)
{
char *tempstr = NULL;
SAPI_FUNC_VARS;
/*inserts header into a list of headers */
/* header is in form of "headername: info"
need to split into two strings and handle from there
--- 327,339 ----
/*********************************************************/
/*FIXME need to make nsapi correctly handle redirects and status strings */
! int sapi_insert_header(SAPI_GLOBAL_INCLUDE unsigned char *header)
{
char *tempstr = NULL;
SAPI_FUNC_VARS;
+ #ifdef DEBUG
+ DEBUG_MESSAGE("enter sapi_insert_header\n");
+ #endif
/*inserts header into a list of headers */
/* header is in form of "headername: info"
need to split into two strings and handle from there
***************
*** 327,332 ****
--- 342,350 ----
pblock_remove("content-type", rq->srvhdrs);
pblock_nvinsert("content-type", "text/html", rq->srvhdrs);
}
+ #ifdef DEBUG
+ DEBUG_MESSAGE("exit sapi_insert_header\n");
+ #endif
return SUCCESS;
}
***************
*** 335,345 ****
SAPI_FUNC_VARS;
/* this is sending ok on every call. need to figure out how
we can handle other status codes */
if (!rq->senthdrs) { /*just verify headers not already sent */
protocol_status(sn, rq, PROTOCOL_OK, NULL);
! if (protocol_start_response(sn, rq) == REQ_NOACTION)
return REQ_PROCEED;
}
return SUCCESS;
}
--- 353,373 ----
SAPI_FUNC_VARS;
/* this is sending ok on every call. need to figure out how
we can handle other status codes */
+ #ifdef DEBUG
+ DEBUG_MESSAGE("enter sapi_send_header\n");
+ #endif
if (!rq->senthdrs) { /*just verify headers not already sent */
protocol_status(sn, rq, PROTOCOL_OK, NULL);
! if (protocol_start_response(sn, rq) == REQ_NOACTION){
! #ifdef DEBUG
! DEBUG_MESSAGE("exit sapi_send_header, failed\n");
! #endif
return REQ_PROCEED;
+ }
}
+ #ifdef DEBUG
+ DEBUG_MESSAGE("exit sapi_send_header, success\n");
+ #endif
return SUCCESS;
}
***************
*** 401,418 ****
void sapi_treat_headers(SAPI_GLOBAL_INCLUDE_V)
{
- char *s = NULL;
- char *t;
- char *user, *type = "Basic ";
int len;
! char *escaped_str;
SAPI_FUNC_VARS;
if (rq->headers)
! s = pblock_findval("Authorization", rq->headers);
! if (!s)
return;
!
/* Check to make sure that this URL isn't authenticated
using a traditional auth module mechanism
Not yet sure how to do this with NSAPI
--- 429,449 ----
void sapi_treat_headers(SAPI_GLOBAL_INCLUDE_V)
{
int len;
! char *escaped_str, *decoded, *r, *password, *authinfo, *auth;
SAPI_FUNC_VARS;
+ #ifdef DEBUG
+ DEBUG_MESSAGE("enter sapi_treat_headers\n");
+ #endif
if (rq->headers)
! authinfo = pblock_findval("Authorization", rq->headers);
! if (!authinfo){
! #ifdef DEBUG
! DEBUG_MESSAGE("enter sapi_treat_headers, no auth\n");
! #endif
return;
! }
/* Check to make sure that this URL isn't authenticated
using a traditional auth module mechanism
Not yet sure how to do this with NSAPI
***************
*** 420,471 ****
return;
}
*/
! if (strncmp(type, s, 6)) {
! /* Client tried to authenticate using wrong auth scheme */
! php3_error(E_WARNING, "client used wrong authentication scheme");
return;
}
! t = _php3_base64_decode(s, strlen(s), &len);
! /* FIXME
! user = getword_nulls_nc(php3_rqst->pool, &t, ':');
! */
! if (user) {
! if (GLOBAL(php3_ini)->magic_quotes_gpc) {
! escaped_str = _php3_addslashes(user, 0, &len, 0);
! SET_VAR_STRINGL("PHP_AUTH_USER", escaped_str, len);
! } else {
! SET_VAR_STRING("PHP_AUTH_USER", estrdup(user));
}
! }
! if (t) {
! if (GLOBAL(php3_ini)->magic_quotes_gpc) {
! escaped_str = _php3_addslashes(t, 0, &len, 0);
! SET_VAR_STRINGL("PHP_AUTH_PW", escaped_str, len);
! } else {
! SET_VAR_STRING("PHP_AUTH_PW", estrdup(t));
}
! }
! if (type) {
! if (GLOBAL(php3_ini)->magic_quotes_gpc) {
! escaped_str = _php3_addslashes(type, 0, &len, 0);
! SET_VAR_STRINGL("PHP_AUTH_TYPE", escaped_str, len);
! } else {
! SET_VAR_STRING("PHP_AUTH_TYPE", estrdup(type));
}
}
}
/*********************************************************
/ input / output functions
/*********************************************************/
! int sapi_readclient(SAPI_GLOBAL_INCLUDE char *buf, int len)
{
SAPI_FUNC_VARS;
return net_read(sn->csd, buf, len, 10);
}
! int sapi_writeclient(SAPI_GLOBAL_INCLUDE char *string, int len)
{
SAPI_FUNC_VARS;
return net_write(sn->csd, string, len);
--- 451,515 ----
return;
}
*/
! if (strncmp("Basic ", authinfo, 6)) {
! #ifdef DEBUG
! DEBUG_MESSAGE("enter sapi_treat_headers, not basic\n");
! #endif
return;
}
! auth = authinfo + 6;
! decoded = _php3_base64_decode(auth, strlen(auth), &len);
! r = strchr(decoded, ':');
! if (r) {
! *r = '\0';
! password = r + 1;
! #ifdef DEBUG
! {
! char logmessage[1024];
! snprintf(logmessage, 79, "%d:sapi_treat_headers:decoded: %s - %s\n",
! GetCurrentThreadId(),
! decoded, password);
! OutputDebugString(logmessage);
}
! #endif
! if (decoded) {
! if (GLOBAL(php3_ini)->magic_quotes_gpc) {
! len = strlen(decoded);
! escaped_str = _php3_addslashes(decoded, 0, &len, 0);
! SET_VAR_STRINGL("PHP_AUTH_USER", escaped_str, len);
! } else {
! SET_VAR_STRING("PHP_AUTH_USER", estrdup(decoded));
! }
}
! if (password) {
! if (GLOBAL(php3_ini)->magic_quotes_gpc) {
! len = strlen(password);
! escaped_str = _php3_addslashes(password, 0, &len, 0);
! SET_VAR_STRINGL("PHP_AUTH_PW", escaped_str, len);
! } else {
! SET_VAR_STRING("PHP_AUTH_PW", estrdup(password));
! }
}
+ *r = ':';
+ efree(decoded);
}
+ SET_VAR_STRING("PHP_AUTH_TYPE", estrdup("Basic"));
+ #ifdef DEBUG
+ DEBUG_MESSAGE("exit sapi_treat_headers\n");
+ #endif
}
/*********************************************************
/ input / output functions
/*********************************************************/
! int sapi_readclient(SAPI_GLOBAL_INCLUDE unsigned char *buf, int len)
{
SAPI_FUNC_VARS;
return net_read(sn->csd, buf, len, 10);
}
! int sapi_writeclient(SAPI_GLOBAL_INCLUDE unsigned char *string, int len)
{
SAPI_FUNC_VARS;
return net_write(sn->csd, string, len);
***************
*** 488,510 ****
int i = 0;
char *temp;
SAPI_FUNC_VARS;
! PUTS(SAPI_GLOBAL_PASS "<center><h2>NSAPI
Environment</h2></center>");
! PUTS(SAPI_GLOBAL_PASS "<table border=5 width=\"600\">\n");
! PUTS(SAPI_GLOBAL_PASS "<tr><th bgcolor=\"" HEADER_COLOR
"\">Variable</th><th bgcolor=\"" HEADER_COLOR
"\">Value</th></tr>\n");
/* print out the server environment table here */
while (nsapi_env[i].type != -1) {
temp = _php3_nsapi_env_get(ns_rqst, nsapi_env[i].name1);
! PUTS(SAPI_GLOBAL_PASS "<tr><td bgcolor=\"" ENTRY_NAME_COLOR
"\">");
! PUTS(SAPI_GLOBAL_PASS nsapi_env[i].name1);
! PUTS(SAPI_GLOBAL_PASS "</td><td bgcolor=\"" CONTENTS_COLOR
"\">");
! PUTS(SAPI_GLOBAL_PASS temp);
! PUTS(SAPI_GLOBAL_PASS " </td></tr>\n");
i++;
}
PUTS(SAPI_GLOBAL_PASS "</table>\n");
}
/*********************************************************
--- 532,563 ----
int i = 0;
char *temp;
SAPI_FUNC_VARS;
+
+ #ifdef DEBUG
+ DEBUG_MESSAGE("enter sapi_print_info\n");
+ #endif
! PUTS("<center><h2>NSAPI Environment</h2></center>");
! PUTS("<table border=5 width=\"600\">\n");
! PUTS("<tr><th bgcolor=\"" HEADER_COLOR
"\">Variable</th><th bgcolor=\"" HEADER_COLOR
"\">Value</th></tr>\n");
/* print out the server environment table here */
while (nsapi_env[i].type != -1) {
temp = _php3_nsapi_env_get(ns_rqst, nsapi_env[i].name1);
! if(temp){
! PUTS("<tr><td bgcolor=\"" ENTRY_NAME_COLOR "\">");
! PUTS(nsapi_env[i].name1);
! PUTS("</td><td bgcolor=\"" CONTENTS_COLOR "\">");
! PUTS(temp);
! PUTS(" </td></tr>\n");
! }
i++;
}
PUTS(SAPI_GLOBAL_PASS "</table>\n");
+ #ifdef DEBUG
+ DEBUG_MESSAGE("exit sapi_print_info\n");
+ #endif
}
/*********************************************************
***************
*** 526,535 ****
void sapi_request_shutdown(SAPI_GLOBAL_INCLUDE_V)
{
}
- int sapi_aborted(SAPI_GLOBAL_INCLUDE_V)
- {
- return 0;
- }
/******************************************************************************
/* code from main.c in _php3_hash_environment()
--- 579,584 ----
***************
*** 543,548 ****
--- 592,600 ----
char *phpsn, *pi;
int l = 0;
+ #ifdef DEBUG
+ DEBUG_MESSAGE("enter sapi__php3_hash_server_env\n");
+ #endif
phpsn = sapi_info->script_name;
pi = sapi_info->path_info;
if (sn)
***************
*** 557,562 ****
--- 609,617 ----
tmp.value.str.len = _php3_sprintf(tmp.value.str.val, "%s%s", (phpsn ? phpsn :
""), (pi ? pi : "")); /* SAFE */
tmp.type = IS_STRING;
_php3_hash_update(&php3_globals->symbol_table, "PHP_SELF",
sizeof("PHP_SELF"), (void *) & tmp, sizeof(pval), NULL);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("exit sapi__php3_hash_server_env\n");
+ #endif
}
#if defined(CRASH_DETECTION)
***************
*** 582,600 ****
pblock *pb = (pblock *) ns_rqst->pb;
Session *sn = (Session *) ns_rqst->sn;
Request *rq = (Request *) ns_rqst->rq;
!
/* for cgi we dont use request id's */
sapi_info->scid = ns_rqst;
sapi_info->path_info = pblock_findval("path-info", rq->vars);
sapi_info->path_translated = pblock_findval("path", rq->vars);
! sapi_info->filename = estrdup(sapi_info->path_translated);
sapi_info->query_string = pblock_findval("query", rq->vars);
sapi_info->request_method = pblock_findval("method", rq->reqpb);
sapi_info->script_name = pblock_findval("path", rq->vars);
! sapi_info->content_length = atoi(pblock_findval("content-length", rq->headers));
sapi_info->content_type = pblock_findval("content-type", rq->srvhdrs);
sapi_info->getenv = sapi_getenv;
sapi_info->writeclient = sapi_writeclient;
sapi_info->flush = sapi_flush;
--- 637,683 ----
pblock *pb = (pblock *) ns_rqst->pb;
Session *sn = (Session *) ns_rqst->sn;
Request *rq = (Request *) ns_rqst->rq;
! char *temp;
! #ifdef DEBUG
! DEBUG_MESSAGE("enter sapi_init\n");
! #endif
/* for cgi we dont use request id's */
sapi_info->scid = ns_rqst;
sapi_info->path_info = pblock_findval("path-info", rq->vars);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("done with path_info\n");
+ #endif
sapi_info->path_translated = pblock_findval("path", rq->vars);
! #ifdef DEBUG
! DEBUG_MESSAGE("done with path_translated\n");
! #endif
! sapi_info->rqst_filename = strdup(sapi_info->path_translated);
! #ifdef DEBUG
! DEBUG_MESSAGE("done with rqst_filename\n");
! #endif
sapi_info->query_string = pblock_findval("query", rq->vars);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("done with query_string\n");
+ #endif
sapi_info->request_method = pblock_findval("method", rq->reqpb);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("done with request_method\n");
+ #endif
sapi_info->script_name = pblock_findval("path", rq->vars);
! #ifdef DEBUG
! DEBUG_MESSAGE("done with script_name\n");
! #endif
! temp=pblock_findval("content-length", rq->headers);
! if(temp)sapi_info->content_length = atol(temp);
! #ifdef DEBUG
! DEBUG_MESSAGE("done with content_length\n");
! #endif
sapi_info->content_type = pblock_findval("content-type", rq->srvhdrs);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("done with content_type\n");
+ #endif
sapi_info->getenv = sapi_getenv;
sapi_info->writeclient = sapi_writeclient;
sapi_info->flush = sapi_flush;
***************
*** 603,614 ****
sapi_info->unblockalarms = sapi_unblock;
sapi_info->log = sapi_log;
sapi_info->info = sapi_print_info;
- sapi_info->aborted = sapi_aborted;
sapi_info->insert_header = sapi_insert_header;
sapi_info->treat_headers = sapi_treat_headers;
sapi_info->send_header = sapi_send_header;
sapi_info->headers = NULL;
sapi_info->_php3_hash_server_env = sapi__php3_hash_server_env;
sapi_info->register_clean = sapi_reqister_cleanup;
--- 686,697 ----
sapi_info->unblockalarms = sapi_unblock;
sapi_info->log = sapi_log;
sapi_info->info = sapi_print_info;
sapi_info->insert_header = sapi_insert_header;
sapi_info->treat_headers = sapi_treat_headers;
sapi_info->send_header = sapi_send_header;
sapi_info->headers = NULL;
+ sapi_info->cookies = NULL;
sapi_info->_php3_hash_server_env = sapi__php3_hash_server_env;
sapi_info->register_clean = sapi_reqister_cleanup;
***************
*** 628,674 ****
sapi_info->page_uid = 0;
sapi_info->page_inode = 0;
sapi_info->page_mtime = 0;
}
! void close_nsapi_mod(void *vparam)
{
//global shutdown for all php threads
//do we use dllmain or this? What about thread start/end?
//_php3_sapi_process_end();
}
! int init_nsapi_mod(pblock * pb, Session * sn, Request * rq)
{
//global initialization for all php threads
//do we use dllmain or this? What about thread start/end?
//_php3_sapi_process_start(module_info);
daemon_atrestart(close_nsapi_mod, NULL);
return REQ_PROCEED;
}
! int nsapi_php_main(pblock * pb, Session * sn, Request * rq)
{
! struct ns_request_info *ns_rqst = malloc(sizeof(struct ns_request_info));
! struct sapi_request_info *sapi_info = malloc(sizeof(struct sapi_request_info));
ns_rqst->pb = pb;
ns_rqst->sn = sn;
ns_rqst->rq = rq;
! ns_rqst->cookie_recv = _php3_nsapi_get_cookie_pblock(rq); //get cookies up front
// we can now get cookies like this:
// char *cookiename=pblock_findval("cookiename", cookie_recv);
sapi_init(ns_rqst, sapi_info);
! if (!php3_sapi_main(sapi_info, module_info)) {
! free(sapi_info);
! free(ns_rqst);
! return REQ_ABORTED; /*FAILURE */
! }
free(sapi_info);
free(ns_rqst);
! return REQ_PROCEED; /*SUCCESS */
}
--- 711,798 ----
sapi_info->page_uid = 0;
sapi_info->page_inode = 0;
sapi_info->page_mtime = 0;
+ #ifdef DEBUG
+ DEBUG_MESSAGE("sapi_init exit\n");
+ #endif
}
! void EXPORT close_nsapi_mod(void *vparam)
{
+ OutputDebugString("close_nsapi_mod");
//global shutdown for all php threads
//do we use dllmain or this? What about thread start/end?
//_php3_sapi_process_end();
+ #ifdef DEBUG
+ DEBUG_MESSAGE("close_nsapi_mod");
+ #endif
}
! int EXPORT init_nsapi_mod(pblock * pb, Session * sn, Request * rq)
{
+ OutputDebugString("init_nsapi_mod");
//global initialization for all php threads
//do we use dllmain or this? What about thread start/end?
//_php3_sapi_process_start(module_info);
daemon_atrestart(close_nsapi_mod, NULL);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("init_nsapi_mod");
+ #endif
return REQ_PROCEED;
}
!
! int EXPORT nsapi_php_main(pblock * pb, Session * sn, Request * rq)
{
! struct ns_request_info *ns_rqst;
! struct sapi_request_info *sapi_info;
! int ret;
! #ifdef DEBUG
! DEBUG_MESSAGE("nsapi entry\n");
! #endif
+ ns_rqst = malloc(sizeof(struct ns_request_info));
+ sapi_info = malloc(sizeof(struct sapi_request_info));
+
+ #ifdef DEBUG
+ DEBUG_MESSAGE("memory alloced\n");
+ #endif
+ // protocol_status(sn,rq,PROTOCOL_OK,NULL);
+ // if(protocol_start_response(sn,rq)==REQ_NOACTION)return REQ_PROCEED;
+
+ #ifdef DEBUG
+ DEBUG_MESSAGE("response started\n");
+ #endif
ns_rqst->pb = pb;
ns_rqst->sn = sn;
ns_rqst->rq = rq;
! // ns_rqst->cookie_recv = _php3_nsapi_get_cookie_pblock(rq); //get cookies up front
// we can now get cookies like this:
// char *cookiename=pblock_findval("cookiename", cookie_recv);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("nsapi starting sapi init\n");
+ #endif
sapi_init(ns_rqst, sapi_info);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("nsapi sapi init done");
+ #endif
! ret=php3_sapi_main(sapi_info, module_info);
!
free(sapi_info);
free(ns_rqst);
! if (ret == SUCCESS){
! #ifdef DEBUG
! DEBUG_MESSAGE("nsapi success");
! #endif
! return REQ_PROCEED; /*SUCCESS */
! } else {
! #ifdef DEBUG
! DEBUG_MESSAGE("nsapi failed");
! #endif
! return REQ_ABORTED; /*FAILURE */
! }
}
***************
*** 685,698 ****
--- 809,834 ----
switch (ul_reason_for_call) {
case DLL_PROCESS_ATTACH:
return _php3_sapi_process_start(module_info);
+ #ifdef DEBUG
+ DEBUG_MESSAGE("nsapi DLL_PROCESS_ATTACH");
+ #endif
break;
case DLL_THREAD_ATTACH:
+ #ifdef DEBUG
+ DEBUG_MESSAGE("nsapi DLL_THREAD_ATTACH");
+ #endif
return _php3_sapi_thread_start(module_info);
break;
case DLL_THREAD_DETACH:
+ #ifdef DEBUG
+ DEBUG_MESSAGE("nsapi DLL_THREAD_DETACH");
+ #endif
return _php3_sapi_thread_end();
break;
case DLL_PROCESS_DETACH:
+ #ifdef DEBUG
+ DEBUG_MESSAGE("nsapi DLL_PROCESS_DETACH");
+ #endif
return _php3_sapi_process_end();
break;
}
Index: php31/sapi/phpsapi_nsapi.dsp
diff -c php31/sapi/phpsapi_nsapi.dsp:2.0 php31/sapi/phpsapi_nsapi.dsp:2.1
*** php31/sapi/phpsapi_nsapi.dsp:2.0 Fri Jul 3 09:19:26 1998
--- php31/sapi/phpsapi_nsapi.dsp Sat Aug 22 19:33:12 1998
***************
*** 64,75 ****
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
! # PROP Output_Dir "sapi_Debug"
# PROP Intermediate_Dir "sapi_Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "./" /I "../" /I
"../main" /I "c:\netscape\suitespot\include" /D "XP_WIN32" /D
"MSVC5" /D "CRASH_DETECTION" /D "THREAD_SAFE" /D "WIN32" /D
"_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
--- 64,75 ----
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
! # PROP Output_Dir "c:\php31"
# PROP Intermediate_Dir "sapi_Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /YX /FD /c
! # ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I "./" /I "../" /I
"../main" /I "c:\netscape\suitespot\include" /D "XP_WIN32" /D
"MSVC5" /D "DEBUG" /D "CRASH_DETECTION" /D "THREAD_SAFE" /D
"WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
--
PHP Development Mailing List http://www.php.net/
To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net
For help: php-dev-help@lists.php.net