Commit Graph

156 Commits

Author SHA1 Message Date
Antony Dovgal
21fb4c1030 apply correct fix for bug #43522
fix Unicode streams too this time
2007-12-29 10:50:12 +00:00
Ilia Alshanetsky
d963eaffcc MFB: Fixed bug #43522 (stream_get_line() eats additional characters) 2007-12-10 14:19:20 +00:00
Marcus Boerger
c26e0d8ee7 - MFB ws 2007-11-06 10:54:29 +00:00
Dmitry Stogov
922f3d5512 Fixed wrong warning 2007-07-11 14:32:54 +00:00
Dmitry Stogov
f766275b7a Added ability to create local or remote (URL) user streams
Local user streams must not be able to open(), URLs if allow_url_include is off
Implemented new function stream_is_local()
[
- stream_wrapper_register() extended with additional optional argument "flags"
  of type long. This time only one flag is implemented - STREAM_IS_URL, that
  means that userstream wrapper is remote (URL). By default stream is local.
- stream_is_local() is a new function that accepts stream and tell if this
  stream is local or remote (URL)
]
2007-07-03 10:22:55 +00:00
Dmitry Stogov
0ddb071abb Fixed bug #41304 (compress.zlib temp files left) 2007-05-08 12:08:41 +00:00
Sara Golemon
98e832d29e Fix handling over overridden file:// wrapper 2007-03-06 20:04:05 +00:00
Marcus Boerger
ff3a914147 -A stream wrapper might only allow directory access 2007-03-03 18:59:53 +00:00
Antony Dovgal
30dacafa72 implement PHP_STREAM_FLAG_NO_CLOSE and avoid hacks in plain wrapper 2007-02-21 21:56:45 +00:00
Sara Golemon
cc1b19cf0e Expand allow_url_fopen/allow_url_include functionality 2007-01-24 21:43:47 +00:00
Marcus Boerger
1c60406349 - Add more unicode stuff 2007-01-16 20:36:04 +00:00
Marcus Boerger
99bd9f758a - Help streams debugging 2007-01-15 22:19:33 +00:00
Antony Dovgal
902e6583d9 add trailing '\0' to stream hashes 2007-01-15 17:06:52 +00:00
Sara Golemon
53333166fc Add convenience function for openeing files with unicode names 2007-01-10 22:43:17 +00:00
Sebastian Bergmann
3717df72ae Bump year. 2007-01-01 09:29:37 +00:00
Antony Dovgal
e2070c4360 eliminate a couple of compile warnings 2006-11-09 01:06:45 +00:00
Hannes Magnusson
176b72284c Error message clean up
(patch by Matt W (php_lists -AT- realpain.com))
2006-10-08 13:34:24 +00:00
Antony Dovgal
d38bf75b69 int -> size_t 2006-10-03 23:22:21 +00:00
Ilia Alshanetsky
15e5832c26 MFB: Last set of zend_hash_init() optimizations 2006-10-03 19:52:34 +00:00
Sara Golemon
f8fdb67056 PHP6 Updates for popen() and related functionality 2006-09-24 20:33:14 +00:00
Sara Golemon
3191ed0e85 Update stream_copy_to_stream() for PHP6 2006-09-22 19:54:30 +00:00
Sara Golemon
3f56da6eba Add INI controlled default stream encoding (unicode.stream_encoding).
Add convenience function stream_defualt_encoding() for setting it.
2006-09-19 20:36:48 +00:00
Dmitry Stogov
128548a5c0 Disabled autoconversion of hash keys (from string to unicode) for PHP arrays 2006-09-19 10:38:31 +00:00
Antony Dovgal
e264e460a4 fix double free(), add test 2006-09-15 07:26:19 +00:00
Antony Dovgal
d13d452523 fix coverity issue #197
"I can't think of a reason to pass a NULL buf" (c) Wez
2006-09-10 13:01:28 +00:00
Ilia Alshanetsky
22206ebf22 MFB: Fixed bug #38661 (mixed-case URL breaks url-wrappers). 2006-09-03 16:33:02 +00:00
Antony Dovgal
dbe2092313 implement zend_unicode_to_string() and zend_string_to_unicode()
part #2 (of 2)
2006-08-08 16:59:11 +00:00
Sara Golemon
aea4195ac6 #38105 (1/3) Backward logic, filter_product == IS_STRING means the wrapper HAS applied pre-filtering 2006-07-14 19:14:40 +00:00
Antony Dovgal
12f44c2b2b fix #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger than the actual length) 2006-07-13 11:58:42 +00:00
Andrei Zmievski
e875205714 Implement user conversion error handler support. Works as normal error
handler, in that it can return false to make the default one take over.
Handler signature is:
  user_handler($direction, $encoding, $char_byte, $offset, $message)

Also removed support for using exceptions in default error handler.
2006-06-21 20:17:21 +00:00
Andrei Zmievski
9573e77249 Typos. 2006-06-21 17:10:13 +00:00
Hannes Magnusson
64ce1969c9 Plug memleak (leaks on empty files) 2006-06-20 18:09:33 +00:00
Marcus Boerger
3856d8da6d - Add strict compliant RFC2397 support (no //) 2006-05-14 18:35:40 +00:00
Antony Dovgal
8a434f5df0 merge fix for #37158 into HEAD
add test
2006-04-22 23:49:39 +00:00
Michael Wallner
54ff84d3d5 MFB: Fix reading stream filters never notified about EOF 2006-04-20 17:52:01 +00:00
Sara Golemon
d229fc9048 Fix copy/paste typo in php_stream_path_decode() proto 2006-04-18 19:09:31 +00:00
Sara Golemon
0b84c73635 Allow http:// wrapper to automatically apply correct unicode.from.* filter based on content-type header 2006-04-12 22:40:56 +00:00
Sara Golemon
3b35b15961 Do runtime conversions (with an E_NOTICE) on writing unicode data to a binary stream. Take the WTF out of the equation 2006-04-06 19:39:11 +00:00
Sara Golemon
fd606a8d78 Add API hooks and unicode.filesystem_encoding for handling unicode
conversions of filename entries.

Normal path conversions will simply use this converter,
Certain other protocols (such as http) which specify a
required character set (utf8), may override the conversion
by defining a path_encode() and/or path_decode() wrapper ops method.
2006-03-31 22:51:37 +00:00
Sara Golemon
51b9a0f269 Make php_stream_copy_to_mem() unicode aware and
update userspace function file_get_contents().

Note: fgc()'s second parameter (use_include_path) has been changed
to be a bitmask "flags" parameter instead.

For the most commonly used values (TRUE, 1) this will continue functioning
as expected since the value of FILE_USE_INCLUDE_PATH is (coincidentally) 1.
The impact to other values should be noted in the migration6 guide.

This change makes it possible to allow fgc() to return binary file
contents (default) or unicode transcoded contents (using FILE_TEXT flag).
2006-03-30 00:22:51 +00:00
Sara Golemon
1c97a0d78c Update php_stream_passthru() to handle unicode data.
This updates userspace functions fpassthru() and readfile()

UG(output_encoding) is used by php_stream_passthru() to translate
unicode stream contents back to an outputable character set.

Note: readfile()'s second parameter (use_include_path) has been changed
to be a bitmask "flags" parameter instead.

For the most commonly used values (TRUE, 1) this will continue functioning
as expected since the value of FILE_USE_INCLUDE_PATH is (coincidentally) 1.
The impact to other values should be noted in the migration6 guide.

This change makes it possible to allow readfile() to output binary file
contents (default) or unicode transcoded contents (using FILE_TEXT flag).
2006-03-29 22:52:24 +00:00
Sara Golemon
30a2bd1d11 Another (and hopefully last) major streams commit.
This moves unicode conversion to the filter layer
(rather than at the lower streams layer)
unicode_filter.c has been moved from ext/unicode to main/streams
as it's an integral part of the streams unicode conversion process.

There are now three ways to set encoding on a stream:

(1) By context
$ctx = stream_context_create(NULL,array('encoding'=>'latin1'));
$fp = fopen('somefile', 'r+t', false, $ctx);

(2) By stream_encoding()
$fp = fopen('somefile', 'r+');
stream_encoding($fp, 'latin1');

(3) By filter
$fp = fopen('somefile', 'r+');
stream_filter_append($fp, 'unicode.from.latin1', STREAM_FILTER_READ);
stream_filter_append($fp, 'unicode.to.latin1', STREAM_FILTER_WRITE);

Note: Methods 1 and 2 are convenience wrappers around method 3.
2006-03-29 01:20:43 +00:00
Andrei Zmievski
1709428494 Implement to-Unicode conversion error behavior. Note the adjusted APIs. 2006-03-26 06:19:24 +00:00
Andrei Zmievski
930bde5897 * Remove unicode.from_error_mode and unicode.from_subst_char from INI
settings.
* Add unicode_set_error_mode() and unicode_set_subst_char() functions to
  manipulate these global settings.
2006-03-26 01:48:33 +00:00
Sara Golemon
e883cee0b1 Handle converter instantiation errors properly 2006-03-25 04:37:44 +00:00
Sara Golemon
0260dfc9b1 Hook into new unicode conversion error handling API 2006-03-24 20:21:48 +00:00
Sara Golemon
880dd406f2 Add php_stream_get_record_unicde() API call.
Update stream_get_line() userspace function to handle unicode streams.
2006-03-24 19:22:24 +00:00
Sara Golemon
eb44e642b1 Add some error checking when stream converters are instantiated.
Use the global conversion error handlers for output conversion (for now)
We may want to make this customizable on a per-stream basis
via context param later on...
2006-03-24 00:19:39 +00:00
Sara Golemon
201d5df650 Allow grow_mode && !bufstart (original assertion logic) 2006-03-21 18:28:42 +00:00
Marcus Boerger
d7a4909ed2 - Fix issue in _php_stream_get_line(): Allow maxchars == 0 as macro
php_stream_get_line() does
2006-03-18 19:44:51 +00:00