Commit Graph

697 Commits

Author SHA1 Message Date
Andrei Zmievski
0b34032e49 - Fix strrpos() logic (which was broken even in PHP 5).
- Optimizations for a couple of functions.
2006-10-02 19:18:14 +00:00
Andrei Zmievski
e673ae2eb9 Make stripos() work with Unicode strings. 2006-10-02 16:52:22 +00:00
Sara Golemon
7f21f36e45 ZTS fix 2006-10-02 01:11:04 +00:00
Andrei Zmievski
2db5bfbadd Heck, might as well commit this.. 2006-09-29 21:00:07 +00:00
Antony Dovgal
cad50f1dd2 one more try to fix ZTS build 2006-09-23 12:22:07 +00:00
Antony Dovgal
e02e25dca2 fix ZTS build 2006-09-23 12:17:43 +00:00
Andrei Zmievski
ca83e9b7a7 Unicode upgrade for quotemeta(). Yes, I know it's ugly. You try making
it pretty.
2006-09-22 19:35:05 +00:00
Andrei Zmievski
cd58faa031 Bring localeconv(), money_format(), and nl_langinfo() to standards. Add
E_STRICT notices about them being deprecated in Unicode mode.
2006-09-22 18:24:12 +00:00
Andrei Zmievski
50fe3da0af Unicode support in count_chars(). Note that due to the size of the
Unicode character set only mode=1 is supported.
2006-09-22 17:47:09 +00:00
Andrei Zmievski
7ff8b9b090 Bug fixes for substr_replace(). 2006-09-20 20:30:19 +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
1e284298d7 more z/Z fixes 2006-08-31 14:19:33 +00:00
Antony Dovgal
f53f3b01dd fix ZTS build 2006-08-30 20:24:32 +00:00
Ilia Alshanetsky
922fd02404 Avoid TSRMLS_FETCH 2006-08-30 18:40:26 +00:00
Dmitry Stogov
9ea1f365d9 ZTS fix 2006-08-22 04:54:00 +00:00
Andrei Zmievski
9f8bcf3f51 Unicode support for str_word_count() (using the same semantics as for
binary strings).

# These semantics seem quite broken, by the way, as it counts words
# ending or starting with dashes (-). Since this shouldn't really be
# used to count words in Unicode world anyway, supporting the "broken"
# behavior is okay if it helps people with migration.
2006-08-18 18:01:58 +00:00
Andrei Zmievski
253a82d0cc Simplify php_u_trim(). 2006-08-16 18:07:22 +00:00
Andrei Zmievski
2dcfe8aaf5 Fix some trim() issues. 2006-08-15 20:38:12 +00:00
Andrei Zmievski
bd927905ee Unicode support for strcoll(). 2006-08-14 22:00:46 +00:00
Andrei Zmievski
aa9de18ef5 Unicode support for str_split(). 2006-08-14 21:04:50 +00:00
Andrei Zmievski
01e677b37b Unicode support in chunk_split(). 2006-08-14 20:43:23 +00:00
Edin Kadribasic
56a821ec02 Fixed windows build.
Looking at the macro definition it seems that the second argument
to U_STRING_DECL can only be a string literal, not an indetifier.
2006-08-14 11:59:07 +00:00
Ilia Alshanetsky
fa48ce6810 MFB: Various security fixes 2006-08-10 19:02:32 +00:00
Antony Dovgal
8a159b3efc initialize variable 2006-08-10 09:31:24 +00:00
Antony Dovgal
704dc9be61 fix ZTS build 2006-08-09 20:31:06 +00:00
Andrei Zmievski
8d953e611d Unicode support for str_shuffle(). 2006-08-09 20:19:06 +00:00
Andrei Zmievski
7201041bc0 Upgrade str_rot13() to work with IS_UNICODE type. 2006-08-09 20:03:22 +00:00
Frank M. Kromann
4fef78869b Fix ZTS builds 2006-08-09 18:15:06 +00:00
Andrei Zmievski
533196671f addcslashes() and stripcslashes() should work only on binary strings. 2006-08-09 17:40:21 +00:00
Antony Dovgal
2168051985 initialize vars 2006-08-08 22:01:48 +00:00
Andrei Zmievski
1b18b5a68f Convert nl2br() to suppor IS_UNICODE.
# Hmm, it's a bit ugly..
2006-08-08 21:03:11 +00:00
Antony Dovgal
9cc9f2da3e use memrchr/zend_memrchr instead of strrchr
fix wrong test
2006-08-08 09:48:08 +00:00
Antony Dovgal
8320b9a8f0 fix typo and invalid read 2006-08-08 08:59:51 +00:00
Andrei Zmievski
50cb40f389 Simplify strrchr(). 2006-08-04 23:20:04 +00:00
Andrei Zmievski
ad017699b1 Upgrade pathinfo() to Unicode support. 2006-08-04 21:06:11 +00:00
Andrei Zmievski
9ff2107cc1 Upgrade dirname() to support IS_UNICODE. 2006-08-04 18:09:46 +00:00
Andrei Zmievski
49f1d3a779 Upgraded basename() to work on IS_UNICODE strings as well. 2006-08-03 23:45:27 +00:00
Andrei Zmievski
768a9227ed - Adjusted php_u_strtoupper/php_u_strtolower/php_u_strtotitle API to be
more sane.
- Upgrade strtoupper(), strtolower(), strtotitle() to use params API.
2006-08-03 23:09:29 +00:00
Andrei Zmievski
72adc1b397 Update similar_text() to use params API. 2006-08-03 21:46:16 +00:00
Andrei Zmievski
f6f8792be4 A few fixes noted during analysis. 2006-08-02 21:53:43 +00:00
Andrei Zmievski
09811323a9 bin2hex() should accept only binary strings. 2006-08-02 20:38:39 +00:00
Antony Dovgal
f6de0063dd patch for #37846 (wordwrap() wraps incorrectly)
by Dmitry Kononov <ddk at krasn dot ru>
2006-07-28 12:21:34 +00:00
Michael Wallner
6ad2093794 MFB52: fix bug #37945 pathinfo() cannot handle argument with special
characters like german "Umlaute"
2006-07-17 20:43:07 +00:00
Antony Dovgal
688000ca74 fix access to freed memory in pathinfo()
add test
2006-07-17 06:44:45 +00:00
Pierre Joye
02a92e7eb5 - MFB: PATHINFO_FILENAME constant registration (Sara) 2006-07-16 15:56:00 +00:00
Marcus Boerger
92a47b44b4 - Pathinfo allows to get filename (Toby S, Christian S) 2006-07-16 10:34:32 +00:00
Andrei Zmievski
f717e25ce7 FIXME note 2006-07-13 22:26:50 +00:00
Andrei Zmievski
2fbc36496f - Let the caller output a warning instead of having
zend_get_unified_string_type() do it.
- Mark a few more functions are Unicode compatible.
2006-07-13 21:27:48 +00:00
Antony Dovgal
87d846c2cb initialize variables 2006-07-13 17:55:50 +00:00
Antony Dovgal
9de18e2ca2 don't try to compare strings if haystack is "" or shorter than needle
add test
2006-07-12 12:33:04 +00:00
Antony Dovgal
a6e26b742a fix off-by-one in addslashes() in Unicode mode 2006-06-30 09:35:21 +00:00
Hannes Magnusson
bf0a79d381 Updated protos
Fixed vim folding
2006-06-25 19:19:31 +00:00
Hannes Magnusson
53d262c04d Nuke unused var 2006-06-11 20:33:29 +00:00
Ilia Alshanetsky
6434512a05 MFB: Improved performance of str_replace() when doing 1 char to 1 char or 1
char to many chars replacement by 30-40%.
2006-06-10 15:51:23 +00:00
Johannes Schlüter
40da89d6b9 - Fix str_replace with unicode strings as key 2006-05-28 21:09:58 +00:00
Ilia Alshanetsky
7dd87b5307 MFB: Fixed bug #37394 (substr_compare() returns an error when offset equals
string length).
2006-05-10 13:07:56 +00:00
Antony Dovgal
7bde7e87eb MF51: fix possible substr_compare() crash
add new tests
2006-04-25 12:49:04 +00:00
Andrei Zmievski
efd298e2eb I'm not sure what the heck people were thinking here, but it should be
fixed finally. Please test.
2006-04-18 05:18:12 +00:00
Andrei Zmievski
6b336175a6 Fix trim("a") bug. 2006-04-18 02:40:29 +00:00
Antony Dovgal
0b0fff07b2 fix spelling in error messages:
greater/less thEn -> greater/less thAn
2006-04-03 09:14:50 +00:00
Andrei Zmievski
d57e79782e Bug! 2006-03-29 05:56:06 +00:00
Andrei Zmievski
e85495f6f1 Fix UErrorCode check. 2006-03-27 23:05:38 +00:00
Dmitry Stogov
bdfa3b1d36 Fixed ZTS build 2006-03-27 06:02:42 +00:00
Derick Rethans
3df5f17231 - Commit intermediate work so that I can hack on it on some plane. 2006-03-26 02:15:47 +00:00
Derick Rethans
3056defb26 - Moved strtotitle to ext/standard and implemented the fallback case to
non-unicode with ucwords. There is also an implementation for unicode ucwords
  but that returns different results then strtotitle as it uppercases the
  first character of every word, and doesn't *titlecase* a word. The test case
  shows that.
2006-03-22 10:20:20 +00:00
Marcus Boerger
792e4d9f4d - Fix TSRM 2006-03-17 23:14:55 +00:00
Andrei Zmievski
6b165251db Calculate the size of the tmp[] buffer directly at compile time. 2006-03-17 22:51:20 +00:00
Derick Rethans
2ffc93140d - Fixed bug in ucfirst() implementation. If the tmp_len = 0 then it will not
write the uppercased character to the buffer, but only returns the length of
  the uppercased letter as per
  http://icu.sourceforge.net/apiref/icu4c/ustring_8h.html#a50.
- Updated is_string():
  If Unicode semantics is turned on, return "true" for Unicode strings only.
  If Unicode semantics is turned off, return "true" for native strings only.
- Added is_binary() function that returns "true" for native strings only.
- Added first implementation of upgraded strtr function. It works except if
  combining sequences or surrogates are used in the non-array method of calling
  this function.
2006-03-17 14:29:05 +00:00
Derick Rethans
c76917a773 - Fixed two memory issues:
- In the first one we were calculating the tmp_len wrong which made the
	u_strFromUTF32() function try to convert too many code points.
  - The second issue was a bit more subtle as the "what" string wasn't
	duplicated but still modified. This string is passed as data to the
	function and this kind of data the engine tries to free when the function
	ends. Because we were re-allocating the data the original memory location
	was already freed resulting in a double free error when the engine tries to
	free the argument as it was passed to the function.
2006-03-15 12:20:49 +00:00
Antony Dovgal
49ec971d85 add brackets and clarity 2006-03-14 15:14:59 +00:00
Ilia Alshanetsky
24d06926d4 MFB51: Fixed offset/length parameter validation in substr_compare() function. 2006-03-14 14:55:27 +00:00
Ilia Alshanetsky
fef63cd5e5 MFB51: Added overflow checks to wordwrap() function. 2006-03-13 14:37:32 +00:00
Pierre Joye
bb1ec86f9d - remove magic_quotes_gpc, magic_quotes_runtime, magic_quotes_sybase
(calling ini_set('magic_....') returns 0|false
- get_magic_quotes_gpc, get_magic_quotes_runtime are kept but always return false
- set_magic_quotes_runtime raises an E_CORE_ERROR
2006-03-08 00:43:32 +00:00
Andrei Zmievski
da831e6e0c Fix protos to use 'string' for parameters that can be either binary or
unicode.
2006-03-06 21:49:21 +00:00
Dmitry Stogov
b86007f0e1 ZTS fix 2006-03-03 08:50:25 +00:00
Andrei Zmievski
c5f6efe367 Fix ucwords() to use full case mapping.
# Note that this is different from i18n_strtotitle() which uses
# locale-aware word break iterator. The difference is seen here:
#
# $a = "pouvez-vous";
# var_dump(ucwords($a));
# var_dump(i18n_strtotitle($a));
#
# Outputs:
#
# unicode(11) "Pouvez-vous"
# unicode(11) "Pouvez-Vous"
#
2006-03-02 23:12:33 +00:00
Andrei Zmievski
1751241203 - Update protos for Unicode-upgraded functions
- Also fix ucfirst() to use full case mapping, so that ß (sharp s)
  maps to 'SS' for example
2006-03-02 20:37:07 +00:00
Dmitry Stogov
c366cc6d1a Nuke int32_t (everywhere except streams layer) and signed/unsigned warnings 2006-03-02 13:12:45 +00:00
Rob Richards
06a4265712 64-bit fixes - ("make test" now works again on these platforms) 2006-03-01 11:19:35 +00:00
Dmitry Stogov
0f1209ab3d Portable unicode string API:
- use the same type (int) for zval.value.usr.len and zval.value.str.len
  - use union "zstr" as char*/UChar* mixture instead of void*
  - Z_UNISTR() and Z_UNILEN() no longer check for Z_TYPE()
  - nuke int32_t from ZE (not finisned)
2006-02-21 20:12:43 +00:00
Pierre Joye
d10b1290b2 - #36185 str_rot13(NULL) crash 2006-01-28 00:13:13 +00:00
Andrei Zmievski
e7752216f4 Use zend_codepoint_to_uchar() macro. 2006-01-25 00:02:23 +00:00
Andrei Zmievski
0fe1845267 eurealloc() should not be used with UBYTES() 2006-01-24 23:09:43 +00:00
Dmitry Stogov
227295a4f1 Unicode stuff is changed according to decision maden on PDM.
Now IS_BINRAY data type is removed and IS_STRING starts behave as IS_BINARY in unicode mode. IS_STRING is incompatible with IS_UNICODE, so ALL functions should be improved to support unicode mode.
2006-01-17 12:18:53 +00:00
Antony Dovgal
16be5ff45b fix typo 2006-01-05 20:49:28 +00:00
foobar
251c5173fd bump year and license version 2006-01-01 13:10:10 +00:00
Antony Dovgal
41fad0ad77 fix spelling and #35665 2005-12-14 00:54:04 +00:00
Antony Dovgal
749c6e3016 fix #35617
no need to separate zvals twice
2005-12-09 22:26:39 +00:00
Dmitry Stogov
7810872573 Support for 64-bit platforms 2005-12-09 13:41:06 +00:00
foobar
0ac2b74b0b - Nuke php3 legacy 2005-12-05 22:53:34 +00:00
Ilia Alshanetsky
7f66777bbf MFB51: Fixed bug #35427 (str_word_count() handles '-' incorrectly). 2005-11-29 16:14:47 +00:00
Derick Rethans
574a210973 - Fixed protos. 2005-11-12 14:56:35 +00:00
Frank M. Kromann
82c00c179d Make sure haystack_len is initialized before it's used 2005-10-28 19:29:29 +00:00
Rolland Santimano
37d12b82b3 - Unicode impl of strrchr() 2005-10-24 14:35:02 +00:00
Rolland Santimano
a948324778 - php_u_stristr: Remove leading back-slash ... sheesh 2005-10-22 13:36:55 +00:00
Rolland Santimano
68487a234e - php_u_stristr: s/codepts/codepoints/ - make Jani happy 2005-10-22 13:32:51 +00:00
Rolland Santimano
03b7fe7666 - Unicode impl of strpbrk() 2005-10-22 13:25:00 +00:00
Rolland Santimano
c36ac8de3d - php_u_stristr: Code comments 2005-10-22 05:52:53 +00:00
Rolland Santimano
5ca019aad3 - Unicode impl of stristr() 2005-10-20 19:25:54 +00:00
Rolland Santimano
8ed78ae796 - Unicode impl of str[c]spn() 2005-10-19 19:10:13 +00:00
Rolland Santimano
a9ce7d32e4 - Unicode impl of stripos() 2005-10-17 19:50:13 +00:00
Rolland Santimano
b277b1d1c0 - Unicode impl of strrpos() 2005-10-17 17:07:44 +00:00
Derick Rethans
a923f3d6f0 - Fixed folding markers. 2005-10-15 12:50:20 +00:00
Dmitry Stogov
7adf1a259c Fixed unicode support for strip_tags() 2005-10-12 11:00:47 +00:00
Rolland Santimano
07ff8d5632 - strip_tags(): some fixes, still AWiP 2005-10-05 12:16:02 +00:00
Dmitry Stogov
c8aa7f6088 Fixed compilation error (gcc-4). 2005-10-04 06:33:10 +00:00
Rolland Santimano
11d1574211 - Unicode impl of strip_tags() 2005-10-03 17:00:00 +00:00
Rolland Santimano
eea40f95d8 - Unicode impl of similar_text() 2005-10-03 06:14:10 +00:00
Rolland Santimano
2dc1c72917 - substr_replace(): call correct funcn for string conversion 2005-09-30 13:19:15 +00:00
Rolland Santimano
c893c70275 - Unicode impl of strtok() 2005-09-29 11:05:30 +00:00
Rolland Santimano
6f06e93237 - Updated addslashes(): add codepoints directly rather than with zend_codepoint_to_uchar() 2005-09-29 09:33:38 +00:00
Ilia Alshanetsky
146517684d Fixed possible GLOBALS variable override when register_globals are ON.
Fixed possible register_globals toggle via parse_str().
2005-09-28 22:31:29 +00:00
Rolland Santimano
c775c4cf83 - Updated substr_replace() to use:
- zend_get_unified_string_type()/convert_to_explicit_type() for type conversion
  - u_countChar32() for counting codepoints
2005-09-28 14:58:31 +00:00
Rolland Santimano
227791e5af - Unicode impl of {add,strip}slashes() 2005-09-28 09:22:08 +00:00
Ilia Alshanetsky
200d5924cf Allow substr_compare() to take a negative offset to facilitate start of the
comparison from the end of string.
2005-09-26 23:08:10 +00:00
Rolland Santimano
05e365bab3 - str_pad(): Use u_countChar32() for codepoint counting, eumalloc/eurealloc() for Unicode mallocs. 2005-09-09 19:07:18 +00:00
Derick Rethans
9d04a8e369 - Make ord() work on binary strings too. 2005-09-08 14:07:40 +00:00
Dmitry Stogov
b0b0f8147d Fixed craches in substr_replace() 2005-09-08 12:40:01 +00:00
Rolland Santimano
a441e78984 - Unicode impl of substr_replace() 2005-09-08 05:05:36 +00:00
Dmitry Stogov
18e259480e Fixed unicode support for substr_count() 2005-09-07 07:00:03 +00:00
Rolland Santimano
8404034552 Pointer arithmetic with char * rather than void * 2005-09-05 16:37:45 +00:00
Rolland Santimano
8d5d2125d0 - Unicode impl of str_pad() 2005-09-05 10:55:35 +00:00
Dmitry Stogov
a3b7eb2284 Fixed gcc 4 compatibility 2005-08-29 06:51:14 +00:00
Rolland Santimano
c7ad26fbf4 - Unicode impl of substr_count() 2005-08-27 19:14:05 +00:00
Rolland Santimano
c81d6d6cfd - Updated strrev() to handle base+combining sequences 2005-08-26 10:21:07 +00:00
Dmitry Stogov
8f6f97a77d Unicode support 2005-08-23 12:53:31 +00:00
Dmitry Stogov
f4b8f4e958 Unicode support cleanup 2005-08-23 09:33:46 +00:00
Dmitry Stogov
e404ee456b Fixed unicode support for ltrim() 2005-08-22 14:14:10 +00:00
Andrei Zmievski
23086f5f1c Unicode support for ord() and chr(). 2005-08-19 22:00:21 +00:00
Andrei Zmievski
676a3cf46e Use RETVAL_ASCII_STRINGL() here. 2005-08-19 17:53:03 +00:00
Rolland Santimano
973e98f51e - Unicode capable impl() of strrev() 2005-08-19 10:59:19 +00:00
Andrei Zmievski
0b036a8fdc Use u_totitle() instead of u_toupper() in ucwords(). 2005-08-18 22:37:22 +00:00
Rolland Santimano
fd4e6da642 - Removed 'proto' from description of internal funcns: ucfirst()/ucwords() 2005-08-18 05:53:46 +00:00
Rolland Santimano
412dac1576 Unicode-capable impl of ucwords() 2005-08-17 20:29:00 +00:00
Andrei Zmievski
202bb697fd Fix bin2hex() to work on binary data and return strings of correct type. 2005-08-17 17:39:04 +00:00
Rolland Santimano
ed370daef5 Unicode impl of ucfirst() 2005-08-17 17:33:19 +00:00
Dmitry Stogov
3509630024 trim() should accept objects with __toString() method 2005-08-17 11:36:32 +00:00
Rolland Santimano
c98838037e php_u_trim_range(): Alloc UChar32 units rather than UChar 2005-08-17 10:26:02 +00:00
Dmitry Stogov
8c63822f0d Fixed implode() bugs 2005-08-17 07:59:31 +00:00
Rolland Santimano
616089e772 Updated implode() impl as per Andrei's comments
[http://news.php.net/php.cvs/33457]
2005-08-17 07:14:12 +00:00
Marcus Boerger
5085c21d7e - TSRM Fix 2005-08-16 20:22:33 +00:00
Antony Dovgal
5adc3ce7c6 nuke unused vars 2005-08-16 16:57:59 +00:00
Rolland Santimano
3b4b22a8fc Unicode capable impl of implode() 2005-08-16 12:04:13 +00:00
Rolland Santimano
c1b8eda121 php_trim() takes extra arg to determine string type to be returned 2005-08-16 06:02:56 +00:00
Johannes Schlüter
c5d862c254 - Fix leak with explode of empty unicode string 2005-08-15 19:12:59 +00:00
Dmitry Stogov
7061405249 Fixed trim()'s memory leak in unicode mode 2005-08-15 08:11:35 +00:00
Antony Dovgal
079a748d3c fix php_u_trim() and compile warnings 2005-08-12 16:46:38 +00:00
Dmitry Stogov
369d59c20b Fixed str_repeat() bug 2005-08-12 13:41:15 +00:00
Sebastian Bergmann
6b98cc4ef5 Patch by Michael Wallner, signed off by Edin Kadribasic. 2005-08-12 10:10:41 +00:00
Sebastian Bergmann
6ad189f82a ZTS fixes. 2005-08-12 05:58:02 +00:00