Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:17467 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 68573 invoked by uid 1010); 30 Jul 2005 10:43:24 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 68558 invoked from network); 30 Jul 2005 10:43:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 30 Jul 2005 10:43:24 -0000 X-Host-Fingerprint: 62.244.34.170 vk.kiev.ua NetCache 5.3-5.5 Received: from ([62.244.34.170:61132] helo=ivory.vk.kiev.ua) by pb1.pair.com (ecelerity 2.0 beta r(6323M)) with SMTP id 2E/C8-04646-AC95BE24 for ; Sat, 30 Jul 2005 06:43:23 -0400 Received: from [192.168.0.8] (helo=ROCK) by ivory.vk.kiev.ua with esmtp (Exim 4.43) id 1DyooJ-000KeM-5q for internals@lists.php.net; Sat, 30 Jul 2005 13:43:19 +0300 Date: Sat, 30 Jul 2005 13:40:23 +0300 X-Priority: 3 (Normal) Message-ID: <446750995.20050730134023@vk.kiev.ua> To: internals@lists.php.net MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------E419611F3B2DBBE8" Subject: [PHP-DEV] patch to allow negative string offsets in {} From: val@vk.kiev.ua (val khokhlov) ------------E419611F3B2DBBE8 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello, a small patch that allows using negative value for offset in $string{offset} $string = "test"; $string{-1} -> last 't' $string{-2} -> 's' and so on... ================<< --- zend_execute.c Mon Jul 18 11:20:19 2005 +++ /home/val/src/php/php5.1/php-src/Zend/zend_execute.c Sat Jul 30 13:33:57 2005 @@ -1097,6 +1097,7 @@ result->str_offset.str = container; PZVAL_LOCK(container); result->str_offset.offset = dim->value.lval; + if (dim->value.lval < 0) result->str_offset.offset += container->value.str.len; result->var.ptr_ptr = NULL; if (type == BP_VAR_R || type == BP_VAR_IS) { AI_USE_PTR(result->var); ================<< -- Best regards, val mailto:val@vk.kiev.ua ------------E419611F3B2DBBE8 Content-Type: text/plain; name="zend-str-offs.diff.txt" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="zend-str-offs.diff.txt" LS0tIHplbmRfZXhlY3V0ZS5jCU1vbiBKdWwgMTggMTE6MjA6MTkgMjAwNQorKysgL2hvbWUv dmFsL3NyYy9waHAvcGhwNS4xL3BocC1zcmMvWmVuZC96ZW5kX2V4ZWN1dGUuYwlTYXQgSnVs IDMwIDEzOjMzOjU3IDIwMDUKQEAgLTEwOTcsNiArMTA5Nyw3IEBACiAJCQkJCXJlc3VsdC0+ c3RyX29mZnNldC5zdHIgPSBjb250YWluZXI7CiAJCQkJCVBaVkFMX0xPQ0soY29udGFpbmVy KTsKIAkJCQkJcmVzdWx0LT5zdHJfb2Zmc2V0Lm9mZnNldCA9IGRpbS0+dmFsdWUubHZhbDsK KwkJCQkJaWYgKGRpbS0+dmFsdWUubHZhbCA8IDApIHJlc3VsdC0+c3RyX29mZnNldC5vZmZz ZXQgKz0gY29udGFpbmVyLT52YWx1ZS5zdHIubGVuOwogCQkJCQlyZXN1bHQtPnZhci5wdHJf cHRyID0gTlVMTDsKIAkJCQkJaWYgKHR5cGUgPT0gQlBfVkFSX1IgfHwgdHlwZSA9PSBCUF9W QVJfSVMpIHsKIAkJCQkJCUFJX1VTRV9QVFIocmVzdWx0LT52YXIpOwo= ------------E419611F3B2DBBE8--