wez             Fri Oct 18 12:55:48 2002 EDT

  Modified files:              
    /php4/ext/standard  file.c 
  Log:
  Improve file().
  Patch by Tal Peer <[EMAIL PROTECTED]>
  
  
Index: php4/ext/standard/file.c
diff -u php4/ext/standard/file.c:1.270 php4/ext/standard/file.c:1.271
--- php4/ext/standard/file.c:1.270      Tue Oct 15 12:45:26 2002
+++ php4/ext/standard/file.c    Fri Oct 18 12:55:47 2002
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: file.c,v 1.270 2002/10/15 16:45:26 wez Exp $ */
+/* $Id: file.c,v 1.271 2002/10/18 16:55:47 wez Exp $ */
 
 /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */
 
@@ -463,7 +463,7 @@
        int filename_len;
        char *slashed, *target_buf;
        register int i = 0;
-       int target_len, len;
+       int len;
        char eol_marker = '\n';
        zend_bool use_include_path = 0;
        zend_bool reached_eof = 0;
@@ -486,47 +486,19 @@
        array_init(return_value);
 
        /* Now loop through the file and do the magic quotes thing if needed */
-       target_len = 0;
-       target_buf = NULL;
        while (1) {
-               if (!target_buf) {
-                       target_buf = (char *) emalloc(PHP_FILE_BUF_SIZE+1);
-                       target_buf[PHP_FILE_BUF_SIZE] = 0; /* avoid overflows */
-               } else {
-                       target_buf = (char *) erealloc(target_buf, 
target_len+PHP_FILE_BUF_SIZE+1);
-                       target_buf[target_len+PHP_FILE_BUF_SIZE] = 0; /* avoid 
overflows */
-               }
-               if (php_stream_gets(stream, target_buf+target_len, 
PHP_FILE_BUF_SIZE)==NULL) {
-                       if (target_len==0) {
-                               efree(target_buf);
-                               break;
-                       } else {
-                               reached_eof = 1;
-                       }
+               target_buf = php_stream_gets(stream, NULL, 0);
+               if (target_buf == NULL) {
+                       break;
                }
                
-               /* mini-hack because I don't feel like re-writing this whole function 
*/
-               if (stream->flags & PHP_STREAM_FLAG_EOL_MAC)
-                       eol_marker = '\r';
-               
-               if (!reached_eof) {
-                       target_len += strlen(target_buf+target_len);
-                       if (target_buf[target_len-1] != eol_marker) {
-                               continue;
-                       }
-               }
                if (PG(magic_quotes_runtime)) {
-                       slashed = php_addslashes(target_buf, target_len, &len, 1 
TSRMLS_CC); /* 1 = free source string */
-                       add_index_stringl(return_value, i++, slashed, len, 0);
+                       /* 1 = free source string */
+                       slashed = php_addslashes(target_buf, strlen(target_buf), &len, 
+1 TSRMLS_CC);
+                       add_next_index_stringl(return_value, slashed, len, 0);
                } else {
-                       target_buf = erealloc(target_buf, target_len+1); /* do we 
really want to do that? */
-                       add_index_stringl(return_value, i++, target_buf, target_len, 
0);
-               }
-               if (reached_eof) {
-                       break;
+                       add_next_index_string(return_value, target_buf, 0);
                }
-               target_buf = NULL;
-               target_len = 0;
        }
        php_stream_close(stream);
 }



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

Reply via email to