iliaa           Sat Feb 22 15:33:11 2003 EDT

  Modified files:              
    /php4/ext/standard  basic_functions.c file.c file.h html.c 
  Log:
  int/long change.
  
  
Index: php4/ext/standard/basic_functions.c
diff -u php4/ext/standard/basic_functions.c:1.584 
php4/ext/standard/basic_functions.c:1.585
--- php4/ext/standard/basic_functions.c:1.584   Fri Feb 21 03:45:57 2003
+++ php4/ext/standard/basic_functions.c Sat Feb 22 15:33:11 2003
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: basic_functions.c,v 1.584 2003/02/21 08:45:57 sniper Exp $ */
+/* $Id: basic_functions.c,v 1.585 2003/02/22 20:33:11 iliaa Exp $ */
 
 #include "php.h"
 #include "php_streams.h"
@@ -670,6 +670,7 @@
        PHP_STATIC_FE("tmpfile",                php_if_tmpfile,                        
                         NULL)
        PHP_FE(file,                                                                   
                                                 NULL)
        PHP_FE(file_get_contents,                                                      
                                         NULL)
+       PHP_FE(file_write_content,                                                     
                                         NULL)
        PHP_FE(stream_select,                                     
first_through_third_args_force_ref)
        PHP_FE(stream_context_create,                                                  
                                 NULL)
        PHP_FE(stream_context_set_params,                                              
                                 NULL)
Index: php4/ext/standard/file.c
diff -u php4/ext/standard/file.c:1.307 php4/ext/standard/file.c:1.308
--- php4/ext/standard/file.c:1.307      Tue Feb 18 10:15:22 2003
+++ php4/ext/standard/file.c    Sat Feb 22 15:33:11 2003
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: file.c,v 1.307 2003/02/18 15:15:22 moriyoshi Exp $ */
+/* $Id: file.c,v 1.308 2003/02/22 20:33:11 iliaa Exp $ */
 
 /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */
 
@@ -406,6 +406,67 @@
        php_stream_close(md.stream);
 }
 
+/* }}} */
+
+/* {{{ proto int file_write_content(string filename, mixed content [, char mode [, 
bool use_include_path]])
+   Write a string to a file. */
+PHP_FUNCTION(file_write_content)
+{
+       zval *content;
+       char *filename, *mode;
+       int filename_len, mode_len = 0;
+       zend_bool use_include_path = 0;
+       size_t written;
+       php_stream *stream;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|sb", &filename, 
&filename_len, &content, &mode, &mode_len, &use_include_path) == FAILURE) {
+               RETURN_FALSE;
+       }
+
+       if (!(stream = php_stream_open_wrapper(filename, (mode_len ? mode : "wb"), 
(use_include_path ? USE_PATH : 0) | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL))) {
+               RETURN_FALSE;
+       }
+
+       /* try to set an exclusive lock on the file to prevent access to the file 
while the write operation
+        * is happening.
+        */
+       php_stream_set_option(stream, PHP_STREAM_OPTION_LOCKING, F_SETLKW, (void *) 
F_WRLCK TSRMLS_CC);
+
+       if (Z_TYPE_P(content) == IS_ARRAY) {
+               HashPosition pos;
+               zval **tmp;
+               size_t cur_write; 
+               
+               written = 0;
+               zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(content), &pos);
+                       
+               while (zend_hash_get_current_data_ex(Z_ARRVAL_P(content), (void **) 
&tmp, &pos) == SUCCESS) {
+                       SEPARATE_ZVAL(tmp);
+                       convert_to_string(*tmp);
+                       
+                       if ((cur_write = php_stream_write(stream, Z_STRVAL_PP(tmp), 
Z_STRLEN_PP(tmp))) < 0) {
+                               RETVAL_FALSE;
+                               goto done;
+                       }
+                       written += cur_write;
+                       
+                       zend_hash_move_forward_ex(Z_ARRVAL_P(content), &pos);
+               }
+               RETVAL_LONG(written);
+       } else {
+               SEPARATE_ZVAL(&content);
+               convert_to_string(content);
+               if ((written = php_stream_write(stream, Z_STRVAL_P(content), 
Z_STRLEN_P(content))) < 0) {
+                       RETVAL_FALSE;
+               } else {
+                       RETVAL_LONG(written);
+               }
+               zval_ptr_dtor(&content);
+       }
+
+done:
+       php_stream_close(stream);
+}
 /* }}} */
 
 /* {{{ proto string file_get_contents(string filename [, bool use_include_path])
Index: php4/ext/standard/file.h
diff -u php4/ext/standard/file.h:1.75 php4/ext/standard/file.h:1.76
--- php4/ext/standard/file.h:1.75       Mon Feb 10 17:26:53 2003
+++ php4/ext/standard/file.h    Sat Feb 22 15:33:11 2003
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: file.h,v 1.75 2003/02/10 22:26:53 iliaa Exp $ */
+/* $Id: file.h,v 1.76 2003/02/22 20:33:11 iliaa Exp $ */
 
 /* Synced with php 3.0 revision 1.30 1999-06-16 [ssb] */
 
@@ -54,6 +54,7 @@
 PHP_FUNCTION(copy);
 PHP_FUNCTION(file);
 PHP_FUNCTION(file_get_contents);
+PHP_FUNCTION(file_write_content);
 PHP_FUNCTION(set_socket_blocking); /* deprecated */
 PHP_FUNCTION(stream_set_blocking);
 PHP_FUNCTION(stream_select);
Index: php4/ext/standard/html.c
diff -u php4/ext/standard/html.c:1.71 php4/ext/standard/html.c:1.72
--- php4/ext/standard/html.c:1.71       Fri Jan 24 11:29:40 2003
+++ php4/ext/standard/html.c    Sat Feb 22 15:33:11 2003
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: html.c,v 1.71 2003/01/24 16:29:40 iliaa Exp $ */
+/* $Id: html.c,v 1.72 2003/02/22 20:33:11 iliaa Exp $ */
 
 #include "php.h"
 #if PHP_WIN32
@@ -831,11 +831,11 @@
 {
        char *str, *hint_charset = NULL;
        int str_len, hint_charset_len = 0;
-       int len, quote_style = ENT_COMPAT;
+       int len;
+       long quote_style = ENT_COMPAT;
        char *replaced;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ls", &str, &str_len,
-                                                         &quote_style, &hint_charset, 
&hint_charset_len) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ls", &str, &str_len, 
&quote_style, &hint_charset, &hint_charset_len) == FAILURE) {
                return;
        }
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to