Commit Graph

655 Commits

Author SHA1 Message Date
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
Andrei Zmievski
264cec8be6 Unicode support. 2005-08-11 23:36:07 +00:00
Johannes Schlüter
69303b58a4 - Added option to strstr() and stristr() to get a particular haystack component 2005-08-09 20:49:19 +00:00
foobar
23e671a51e - Bumber up year 2005-08-03 14:08:58 +00:00
Ilia Alshanetsky
29bf2d3a09 Fixed bug in str_word_count() when charlist if specified and "word" starts
with a character found inside the charlist.
2005-07-23 19:44:13 +00:00
Anantha Kesari H Y
384a96faf6 ext/standard/file.h NetWare LibC has fnmatch and realpath implemented.
ext/standard/syslog.c Except LOG_SYSLOG other syslog macros are supported by NetWare LibC.
ext/standard/string.c NetWare fix for dirname
-- Kamesh
2005-07-15 12:35:12 +00:00
Antony Dovgal
3baf1f7632 fix #33605 (substr_compare() crashes with negative offset & length) 2005-07-07 15:19:40 +00:00
Ilia Alshanetsky
b9575ead72 make substr_count() 30% when counting instances of 1 byte long strings. 2005-06-19 16:31:51 +00:00
Ilia Alshanetsky
67ea97dfdf Added offset & length parameters to substr_count() function. 2005-06-18 18:23:12 +00:00
Derick Rethans
ad21bb1baa - That should have been removed, not commented out. 2005-06-02 08:51:20 +00:00
Derick Rethans
90f4590d87 - Fixed memory corruption in stristr(). 2005-06-02 08:29:37 +00:00
foobar
156a908997 - Fixed bug #33200 (preg_replace(): magic_quotes_sybase=On makes 'e' modifier misbehave) 2005-05-31 12:54:56 +00:00
Antony Dovgal
4ce95ef1ea fix bug #33076 (str_ireplace() incorrectly counts result string length and may cause segfault)
add test
2005-05-20 14:23:42 +00:00
Ilia Alshanetsky
ca10457a58 Fixed bug #32530 (chunk_split() does not append endstr if chunklen is
longer then the original string).
2005-04-03 18:08:40 +00:00
Ilia Alshanetsky
f56e5c045c A more performance friendly version of Andrey's patch. 2005-03-12 17:51:19 +00:00
Andrey Hristov
f15c24d44c added an optional third parameter to str_word_count(), which is used as
a list of characters which are considerd "is_alpha()". Thus V14GR4 can
be extracted as one word if the user supplies "14" as charlist.
FR #31560
# Nuno, are you wishing to document this one too? :)
2005-03-12 14:41:20 +00:00
Andrey Hristov
1236cfa38a - type is either 1 or 2 if second parameter is set. if not set then type
is 0.
- use the lvalue for the second rvalue
2005-03-12 13:08:19 +00:00
Marcus Boerger
df56c39bda - Cosmetics 2005-03-10 23:52:43 +00:00
Marcus Boerger
4172ec995c - Do not touch return_valu's refcount or is_ref 2005-03-10 23:42:15 +00:00
Anantha Kesari H Y
033a45903c NetWare allows directory seperator as \ and / 2005-03-01 14:59:37 +00:00
Ilia Alshanetsky
1e6454a67b Fixed bug #31479 (Fixed crash in chunk_split(), when chunklen > strlen). 2005-01-18 15:47:57 +00:00
Antony Dovgal
39b25e4f3d fix yet another typo 2004-11-21 13:35:32 +00:00
Antony Dovgal
d9dd604ae7 fix typo (bug #30857) 2004-11-21 13:33:20 +00:00
Derick Rethans
59651c4e58 - Fixed bug #30630: Added a BSD based strtod function that is
locale-independent. (PHP part)
2004-11-03 23:36:51 +00:00
Ilia Alshanetsky
0818faee7f Slight optimization in str_split() when split length is the same or greater
then the string length.
2004-10-20 22:44:43 +00:00
Ilia Alshanetsky
2476198086 Fixed bug #30356 (str_ireplace() does not work on all strings). 2004-10-07 23:10:35 +00:00
Andi Gutmans
56f8195fe5 - Nuke empty_string. It is a reminanent from the time where RETURN_FALSE()
used to return "" and not bool(false). It's not worth keeping it because
  STR_FREE() and zval_dtor() always have to check for it and it slows down
  the general case. In addition, it seems that empty_string has been abused
  quite a lot, and was used not only for setting zval's but generally in
  PHP code instead of "", which wasn't the intention. Last but not least,
  nuking empty_string should improve stability as I doubt every place
  correctly checked if they are not mistakenly erealloc()'ing it or
  calling efree() on it.
  NOTE: Some code is probably broken. Each extension maintainer should
  check and see that my changes are OK. Also, I haven't had time to touch
  PECL yet. Will try and do it tomorrow.
2004-07-19 07:19:50 +00:00
Andrey Hristov
96f5c697dd Add support for negative values of limit of explode(). If limit is negative
then all components are returned except the last abs(limit) ones.
2004-07-18 11:34:28 +00:00
Andrey Hristov
0eef82a733 fixing bug #28974 : overflow in array_slice()
The same kind of overflow appeared in array_splice(), substr() and
substr_replace()
2004-07-11 21:15:04 +00:00
Ilia Alshanetsky
5201e62d0d Fixed bug #29034 (wordwrap() returns a boolean when passed empty string). 2004-07-06 22:16:42 +00:00
Stefan Esser
a27d5d842a IE we love you all... 2004-06-26 07:43:02 +00:00
Stefan Esser
585628ba67 Fixed: made 3rd parameter to strrpos 64bit safe. 2004-06-15 22:38:18 +00:00
Ilia Alshanetsky
d24465ba8a Fixed bug #28386 (wordwrap() wraps lines 1 character too soon). 2004-05-13 17:44:23 +00:00
Jay Smith
8f306fd749 Fixed a segfault. (It's possible for large offsets to make strrpos()
read past the end of the haystack string...)
2004-05-06 16:11:50 +00:00
Sara Golemon
c52cc1c333 BugFix 27675 and add regression test. 2004-03-26 19:23:42 +00:00
Dmitry Stogov
6e63ea45c7 BUG #27457 was fixed (using temporary hash table with string keys only) 2004-03-18 09:48:37 +00:00
Ard Biesheuvel
81f05c18f5 Wordsize fixes 2004-02-25 20:16:27 +00:00
Sara Golemon
ba8ad292d9 Make today's changes work w/ str_ireplace() as well. 2004-02-23 20:34:59 +00:00
Sara Golemon
1c82797664 Short circuit str_replaces when we already know that needle does not occur in haystack.
Note: Prior bugfix was for #27176 not #27276
2004-02-23 20:13:14 +00:00
Sara Golemon
5144a1f522 Bugfix #27276: When using str_replace to expand a string, count occurances of needle in haystack to avoid massive overallocation 2004-02-23 20:06:01 +00:00
Andi Gutmans
dbeb4158d2 - A belated happy holidays and PHP 5 2004-01-08 08:18:22 +00:00
Ilia Alshanetsky
56f046a67a Fixed ZTS build. 2003-12-10 21:23:35 +00:00
Moriyoshi Koizumi
b2cd08f33d Fix bug #26574 (basename() doesn't work properly with multibyte characters) 2003-12-10 07:15:28 +00:00