cvs: php4 /ext/standard/ exec.c file.c /main/ php.h php_virtual_cwd.c

From: Date: Mon, 12 Jun 2000 19:39:04 +0000
Subject: cvs: php4 /ext/standard/ exec.c file.c /main/ php.h php_virtual_cwd.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-199@lists.php.net to get a copy of this message
andi Mon Jun 12 12:39:04 2000 EDT Modified files: /php4/ext/standard exec.c file.c /php4/main php.h php_virtual_cwd.c Log: - On UNIX support popen() which works with current working directory - when in VIRTUAL_DIR mode. Index: php4/ext/standard/exec.c diff -u php4/ext/standard/exec.c:1.34 php4/ext/standard/exec.c:1.35 --- php4/ext/standard/exec.c:1.34 Mon Jun 5 12:47:44 2000 +++ php4/ext/standard/exec.c Mon Jun 12 12:39:04 2000 @@ -15,7 +15,7 @@ | Author: Rasmus Lerdorf | +----------------------------------------------------------------------+ */ -/* $Id: exec.c,v 1.34 2000/06/05 19:47:44 andi Exp $ */ +/* $Id: exec.c,v 1.35 2000/06/12 19:39:04 andi Exp $ */ #include <stdio.h> #include "php.h" @@ -87,9 +87,9 @@ efree(d); d = tmp; #ifdef PHP_WIN32 - fp = popen(d, "rb"); + fp = V_POPEN(d, "rb"); #else - fp = popen(d, "r"); + fp = V_POPEN(d, "r"); #endif if (!fp) { php_error(E_WARNING, "Unable to fork [%s]", d); @@ -99,9 +99,9 @@ } } else { /* not safe_mode */ #ifdef PHP_WIN32 - fp = popen(cmd, "rb"); + fp = V_POPEN(cmd, "rb"); #else - fp = popen(cmd, "r"); + fp = V_POPEN(cmd, "r"); #endif if (!fp) { php_error(E_WARNING, "Unable to fork [%s]", cmd); @@ -364,9 +364,9 @@ convert_to_string_ex(cmd); #ifdef PHP_WIN32 - if ((in=popen((*cmd)->value.str.val,"rt"))==NULL) { + if ((in=V_POPEN((*cmd)->value.str.val,"rt"))==NULL) { #else - if ((in=popen((*cmd)->value.str.val,"r"))==NULL) { + if ((in=V_POPEN((*cmd)->value.str.val,"r"))==NULL) { #endif php_error(E_WARNING,"Unable to execute '%s'",(*cmd)->value.str.val); } Index: php4/ext/standard/file.c diff -u php4/ext/standard/file.c:1.89 php4/ext/standard/file.c:1.90 --- php4/ext/standard/file.c:1.89 Tue Jun 6 11:58:15 2000 +++ php4/ext/standard/file.c Mon Jun 12 12:39:04 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: file.c,v 1.89 2000/06/06 18:58:15 ccollie Exp $ */ +/* $Id: file.c,v 1.90 2000/06/12 19:39:04 andi Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ @@ -713,7 +713,7 @@ } tmp = php_escape_shell_cmd(buf); - fp = popen(tmp,p); + fp = V_POPEN(tmp,p); efree(tmp); if (!fp) { @@ -721,7 +721,7 @@ RETURN_FALSE; } } else { - fp = popen((*arg1)->value.str.val,p); + fp = V_POPEN((*arg1)->value.str.val,p); if (!fp) { php_error(E_WARNING,"popen(\"%s\",\"%s\") - %s",(*arg1)->value.str.val,p,strerror(errno)); efree(p); Index: php4/main/php.h diff -u php4/main/php.h:1.104 php4/main/php.h:1.105 --- php4/main/php.h:1.104 Mon Jun 12 11:48:18 2000 +++ php4/main/php.h Mon Jun 12 12:39:04 2000 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php.h,v 1.104 2000/06/12 18:48:18 andi Exp $ */ +/* $Id: php.h,v 1.105 2000/06/12 19:39:04 andi Exp $ */ #ifndef _PHP_H #define _PHP_H @@ -289,6 +289,7 @@ /* Virtual current directory support */ #ifdef VIRTUAL_DIR + #define V_GETCWD(buff, size) virtual_getcwd(buff,size) #define V_FOPEN(path, mode) virtual_fopen(path, mode) /* The V_OPEN macro will need to be used as V_OPEN((path, flags, ...)) */ @@ -307,8 +308,15 @@ #define V_MKDIR(pathname, mode) virtual_mkdir(pathname, mode) #define V_RMDIR(pathname) virtual_rmdir(pathname) #define V_OPENDIR(pathname) virtual_opendir(pathname) +#ifdef PHP_WIN32 +/* Under Windows the "cd /cwd ; command" trick doesn't work */ +#define V_POPEN(command, type) popen(command, type) +#else #define V_POPEN(command, type) virtual_popen(command, type) +#endif + #else + #define V_GETCWD(buff, size) getcwd(buff,size) #define V_FOPEN(path, mode) fopen(path, mode) #define V_OPEN(open_args) open open_args @@ -323,6 +331,7 @@ #define V_RMDIR(pathname) rmdir(pathname) #define V_OPENDIR(pathname) opendir(pathname) #define V_POPEN(command, type) popen(command, type) + #endif #include "zend_constants.h" Index: php4/main/php_virtual_cwd.c diff -u php4/main/php_virtual_cwd.c:1.53 php4/main/php_virtual_cwd.c:1.54 --- php4/main/php_virtual_cwd.c:1.53 Mon Jun 12 11:48:18 2000 +++ php4/main/php_virtual_cwd.c Mon Jun 12 12:39:04 2000 @@ -570,7 +570,7 @@ return NULL; } memcpy(ptr, "cd ", sizeof("cd ")-1); - ptr += sizeof("cd "); + ptr += sizeof("cd ")-1; if (CWDG(cwd).cwd_length == 0) { *ptr++ = DEFAULT_SLASH;

« previous php.cvs (#199) next »