felipe                                   Tue, 13 Jul 2010 15:30:30 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=301238

Log:
- Added missing tokens on ST_VAR_OFFSET state

Changed paths:
    U   php/php-src/branches/LEMON/Zend/zend_language_parser.y
    U   php/php-src/branches/LEMON/Zend/zend_language_scanner.c
    U   php/php-src/branches/LEMON/Zend/zend_language_scanner.l
    U   php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h

Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===================================================================
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y	2010-07-13 15:29:30 UTC (rev 301237)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y	2010-07-13 15:30:30 UTC (rev 301238)
@@ -36,7 +36,11 @@
 %name zend_lang_parse

 %syntax_error {
-    zend_error(E_PARSE, "syntax error, unexpected '%.*s'", LANG_SCNG(yy_leng), LANG_SCNG(yy_text));
+	if (LANG_SCNG(yy_cursor) > LANG_SCNG(yy_limit)) {
+		zend_error(E_PARSE, "syntax error, unexpected end of script");
+	} else {
+		zend_error(E_PARSE, "syntax error, unexpected '%.*s'", LANG_SCNG(yy_leng), LANG_SCNG(yy_text));
+	}
 }

 %stack_overflow {

Modified: php/php-src/branches/LEMON/Zend/zend_language_scanner.c
===================================================================
--- php/php-src/branches/LEMON/Zend/zend_language_scanner.c	2010-07-13 15:29:30 UTC (rev 301237)
+++ php/php-src/branches/LEMON/Zend/zend_language_scanner.c	2010-07-13 15:30:30 UTC (rev 301238)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Mon Jul 12 14:03:13 2010 */
+/* Generated by re2c 0.13.5 on Tue Jul 13 12:12:35 2010 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -1432,7 +1432,7 @@
 yy56:
 		YYDEBUG(56, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2191 "Zend/zend_language_scanner.l"
+#line 2207 "Zend/zend_language_scanner.l"
 		{
 	if (YYCURSOR > YYLIMIT) {
 		return 0;
@@ -1484,7 +1484,7 @@
 		++YYCURSOR;
 		YYDEBUG(59, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2135 "Zend/zend_language_scanner.l"
+#line 2151 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_IN_SCRIPTING);
 	return T_BACKQUOTE;
@@ -1499,7 +1499,7 @@
 		++YYCURSOR;
 		YYDEBUG(62, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2122 "Zend/zend_language_scanner.l"
+#line 2138 "Zend/zend_language_scanner.l"
 		{
 	zendlval->value.lval = (long) '{';
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1655,7 +1655,7 @@
 yy78:
 		YYDEBUG(78, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2141 "Zend/zend_language_scanner.l"
+#line 2157 "Zend/zend_language_scanner.l"
 		{
 	if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
 		YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1715,7 +1715,7 @@
 		++YYCURSOR;
 		YYDEBUG(81, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2130 "Zend/zend_language_scanner.l"
+#line 2146 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_IN_SCRIPTING);
 	return T_QUOTE;
@@ -1730,7 +1730,7 @@
 		++YYCURSOR;
 		YYDEBUG(84, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2122 "Zend/zend_language_scanner.l"
+#line 2138 "Zend/zend_language_scanner.l"
 		{
 	zendlval->value.lval = (long) '{';
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1829,7 +1829,7 @@
 	++YYCURSOR;
 	YYDEBUG(100, *YYCURSOR);
 	yyleng = YYCURSOR - SCNG(yy_text);
-#line 2109 "Zend/zend_language_scanner.l"
+#line 2125 "Zend/zend_language_scanner.l"
 	{
 	YYCURSOR += CG(heredoc_len) - 1;
 	yyleng = CG(heredoc_len);
@@ -1903,7 +1903,7 @@
 yy104:
 		YYDEBUG(104, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2233 "Zend/zend_language_scanner.l"
+#line 2249 "Zend/zend_language_scanner.l"
 		{
 	int newline = 0;

@@ -1989,7 +1989,7 @@
 		++YYCURSOR;
 		YYDEBUG(108, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2122 "Zend/zend_language_scanner.l"
+#line 2138 "Zend/zend_language_scanner.l"
 		{
 	zendlval->value.lval = (long) '{';
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -2269,7 +2269,7 @@
 yy126:
 		YYDEBUG(126, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1843 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
 		{
 	zend_copy_value(zendlval, yytext, yyleng);
 	zendlval->type = IS_STRING;
@@ -3056,7 +3056,7 @@
 yy205:
 		YYDEBUG(205, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1850 "Zend/zend_language_scanner.l"
+#line 1866 "Zend/zend_language_scanner.l"
 		{
 	while (YYCURSOR < YYLIMIT) {
 		switch (*YYCURSOR++) {
@@ -3097,7 +3097,7 @@
 yy207:
 		YYDEBUG(207, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1941 "Zend/zend_language_scanner.l"
+#line 1957 "Zend/zend_language_scanner.l"
 		{
 	register char *s, *t;
 	char *end;
@@ -3174,7 +3174,7 @@
 yy209:
 		YYDEBUG(209, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2012 "Zend/zend_language_scanner.l"
+#line 2028 "Zend/zend_language_scanner.l"
 		{
 	int bprefix = (yytext[0] != '"') ? 1 : 0;

@@ -3221,7 +3221,7 @@
 		++YYCURSOR;
 		YYDEBUG(211, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2103 "Zend/zend_language_scanner.l"
+#line 2119 "Zend/zend_language_scanner.l"
 		{
 	BEGIN(ST_BACKQUOTE);
 	return T_BACKQUOTE;
@@ -3232,7 +3232,7 @@
 		++YYCURSOR;
 		YYDEBUG(213, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2364 "Zend/zend_language_scanner.l"
+#line 2376 "Zend/zend_language_scanner.l"
 		{
 	if (YYCURSOR > YYLIMIT) {
 		return 0;
@@ -3492,7 +3492,7 @@
 yy247:
 		YYDEBUG(247, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1927 "Zend/zend_language_scanner.l"
+#line 1943 "Zend/zend_language_scanner.l"
 		{
 	if (CG(asp_tags)) {
 		BEGIN(INITIAL);
@@ -3533,7 +3533,7 @@
 yy253:
 		YYDEBUG(253, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1884 "Zend/zend_language_scanner.l"
+#line 1900 "Zend/zend_language_scanner.l"
 		{
 	int doc_com;

@@ -3734,7 +3734,7 @@
 yy283:
 		YYDEBUG(283, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 1918 "Zend/zend_language_scanner.l"
+#line 1934 "Zend/zend_language_scanner.l"
 		{
 	zendlval->value.str.val = yytext; /* no copying - intentional */
 	zendlval->value.str.len = yyleng;
@@ -3866,7 +3866,7 @@
 yy298:
 		YYDEBUG(298, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2054 "Zend/zend_language_scanner.l"
+#line 2070 "Zend/zend_language_scanner.l"
 		{
 	char *s;
 	int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -8383,7 +8383,7 @@
 	++YYCURSOR;
 	YYDEBUG(932, *YYCURSOR);
 	yyleng = YYCURSOR - SCNG(yy_text);
-#line 2305 "Zend/zend_language_scanner.l"
+#line 2321 "Zend/zend_language_scanner.l"
 	{
 	int newline = 0;

@@ -8479,61 +8479,60 @@
 		YYDEBUG(933, *YYCURSOR);
 		YYFILL(3);
 		yych = *YYCURSOR;
-		if (yych <= '/') {
-			if (yych <= ' ') {
+		if (yych <= '0') {
+			if (yych <= '!') {
 				if (yych <= '\f') {
-					if (yych <= 0x08) goto yy948;
+					if (yych <= 0x08) goto yy956;
 					if (yych <= '\n') goto yy944;
-					goto yy948;
+					goto yy956;
 				} else {
 					if (yych <= '\r') goto yy944;
-					if (yych <= 0x1F) goto yy948;
-					goto yy944;
+					if (yych == ' ') goto yy944;
+					goto yy956;
 				}
 			} else {
 				if (yych <= '$') {
-					if (yych <= '"') goto yy948;
+					if (yych <= '"') goto yy946;
 					if (yych <= '#') goto yy944;
 					goto yy938;
 				} else {
 					if (yych == '\'') goto yy944;
-					goto yy948;
+					if (yych <= '/') goto yy956;
 				}
 			}
 		} else {
-			if (yych <= '\\') {
-				if (yych <= '@') {
-					if (yych <= '0') goto yy935;
+			if (yych <= '^') {
+				if (yych <= 'Z') {
 					if (yych <= '9') goto yy937;
-					goto yy948;
+					if (yych <= '@') goto yy956;
+					goto yy954;
 				} else {
-					if (yych <= 'Z') goto yy946;
 					if (yych <= '[') goto yy940;
-					goto yy944;
+					if (yych <= '\\') goto yy944;
+					if (yych <= ']') goto yy942;
+					goto yy956;
 				}
 			} else {
-				if (yych <= '_') {
-					if (yych <= ']') goto yy942;
-					if (yych <= '^') goto yy948;
-					goto yy946;
+				if (yych <= '{') {
+					if (yych == '`') goto yy952;
+					if (yych <= 'z') goto yy954;
+					goto yy948;
 				} else {
-					if (yych <= '`') goto yy948;
-					if (yych <= 'z') goto yy946;
-					if (yych <= '~') goto yy948;
-					goto yy946;
+					if (yych == '}') goto yy950;
+					if (yych <= '~') goto yy956;
+					goto yy954;
 				}
 			}
 		}
-yy935:
 		YYDEBUG(935, *YYCURSOR);
 		yyaccept = 0;
 		yych = *(YYMARKER = ++YYCURSOR);
 		if (yych <= 'W') {
 			if (yych <= '/') goto yy936;
-			if (yych <= '9') goto yy958;
+			if (yych <= '9') goto yy966;
 		} else {
-			if (yych <= 'X') goto yy956;
-			if (yych == 'x') goto yy956;
+			if (yych <= 'X') goto yy964;
+			if (yych == 'x') goto yy964;
 		}
 yy936:
 		YYDEBUG(936, *YYCURSOR);
@@ -8550,27 +8549,27 @@
 	}
 	return T_NUM_STRING;
 }
-#line 8554 "Zend/zend_language_scanner.c"
+#line 8553 "Zend/zend_language_scanner.c"
 yy937:
 		YYDEBUG(937, *YYCURSOR);
 		yych = *++YYCURSOR;
-		goto yy955;
+		goto yy963;
 yy938:
 		YYDEBUG(938, *YYCURSOR);
 		++YYCURSOR;
 		if ((yych = *YYCURSOR) <= '_') {
 			if (yych <= '@') goto yy939;
-			if (yych <= 'Z') goto yy951;
-			if (yych >= '_') goto yy951;
+			if (yych <= 'Z') goto yy959;
+			if (yych >= '_') goto yy959;
 		} else {
 			if (yych <= '`') goto yy939;
-			if (yych <= 'z') goto yy951;
-			if (yych >= 0x7F) goto yy951;
+			if (yych <= 'z') goto yy959;
+			if (yych >= 0x7F) goto yy959;
 		}
 yy939:
 		YYDEBUG(939, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2364 "Zend/zend_language_scanner.l"
+#line 2376 "Zend/zend_language_scanner.l"
 		{
 	if (YYCURSOR > YYLIMIT) {
 		return 0;
@@ -8579,7 +8578,7 @@
 	zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
 	goto restart;
 }
-#line 8583 "Zend/zend_language_scanner.c"
+#line 8582 "Zend/zend_language_scanner.c"
 yy940:
 		YYDEBUG(940, *YYCURSOR);
 		++YYCURSOR;
@@ -8589,7 +8588,7 @@
 		{
 	return T_LBRACKET;
 }
-#line 8593 "Zend/zend_language_scanner.c"
+#line 8592 "Zend/zend_language_scanner.c"
 yy942:
 		YYDEBUG(942, *YYCURSOR);
 		++YYCURSOR;
@@ -8600,7 +8599,7 @@
 	yy_pop_state(TSRMLS_C);
 	return T_RBRACKET;
 }
-#line 8604 "Zend/zend_language_scanner.c"
+#line 8603 "Zend/zend_language_scanner.c"
 yy944:
 		YYDEBUG(944, *YYCURSOR);
 		++YYCURSOR;
@@ -8613,60 +8612,100 @@
 	yy_pop_state(TSRMLS_C);
 	return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 8617 "Zend/zend_language_scanner.c"
+#line 8616 "Zend/zend_language_scanner.c"
 yy946:
 		YYDEBUG(946, *YYCURSOR);
 		++YYCURSOR;
-		yych = *YYCURSOR;
-		goto yy950;
-yy947:
 		YYDEBUG(947, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
 #line 1843 "Zend/zend_language_scanner.l"
 		{
+	return T_QUOTE;
+}
+#line 8626 "Zend/zend_language_scanner.c"
+yy948:
+		YYDEBUG(948, *YYCURSOR);
+		++YYCURSOR;
+		YYDEBUG(949, *YYCURSOR);
+		yyleng = YYCURSOR - SCNG(yy_text);
+#line 1847 "Zend/zend_language_scanner.l"
+		{
+	return T_LBRACE;
+}
+#line 8636 "Zend/zend_language_scanner.c"
+yy950:
+		YYDEBUG(950, *YYCURSOR);
+		++YYCURSOR;
+		YYDEBUG(951, *YYCURSOR);
+		yyleng = YYCURSOR - SCNG(yy_text);
+#line 1851 "Zend/zend_language_scanner.l"
+		{
+	return T_RBRACE;
+}
+#line 8646 "Zend/zend_language_scanner.c"
+yy952:
+		YYDEBUG(952, *YYCURSOR);
+		++YYCURSOR;
+		YYDEBUG(953, *YYCURSOR);
+		yyleng = YYCURSOR - SCNG(yy_text);
+#line 1855 "Zend/zend_language_scanner.l"
+		{
+	return T_BACKQUOTE;
+}
+#line 8656 "Zend/zend_language_scanner.c"
+yy954:
+		YYDEBUG(954, *YYCURSOR);
+		++YYCURSOR;
+		yych = *YYCURSOR;
+		goto yy958;
+yy955:
+		YYDEBUG(955, *YYCURSOR);
+		yyleng = YYCURSOR - SCNG(yy_text);
+#line 1859 "Zend/zend_language_scanner.l"
+		{
 	zend_copy_value(zendlval, yytext, yyleng);
 	zendlval->type = IS_STRING;
 	return T_STRING;
 }
-#line 8632 "Zend/zend_language_scanner.c"
-yy948:
-		YYDEBUG(948, *YYCURSOR);
+#line 8671 "Zend/zend_language_scanner.c"
+yy956:
+		YYDEBUG(956, *YYCURSOR);
 		yych = *++YYCURSOR;
 		goto yy939;
-yy949:
-		YYDEBUG(949, *YYCURSOR);
+yy957:
+		YYDEBUG(957, *YYCURSOR);
 		++YYCURSOR;
 		YYFILL(1);
 		yych = *YYCURSOR;
-yy950:
-		YYDEBUG(950, *YYCURSOR);
+yy958:
+		YYDEBUG(958, *YYCURSOR);
 		if (yybm[0+yych] & 32) {
-			goto yy949;
+			goto yy957;
 		}
-		goto yy947;
-yy951:
-		YYDEBUG(951, *YYCURSOR);
+		goto yy955;
+yy959:
+		YYDEBUG(959, *YYCURSOR);
 		++YYCURSOR;
 		YYFILL(1);
 		yych = *YYCURSOR;
-		YYDEBUG(952, *YYCURSOR);
+		YYDEBUG(960, *YYCURSOR);
 		if (yych <= '^') {
 			if (yych <= '9') {
-				if (yych >= '0') goto yy951;
+				if (yych >= '0') goto yy959;
 			} else {
-				if (yych <= '@') goto yy953;
-				if (yych <= 'Z') goto yy951;
+				if (yych <= '@') goto yy961;
+				if (yych <= 'Z') goto yy959;
 			}
 		} else {
 			if (yych <= '`') {
-				if (yych <= '_') goto yy951;
+				if (yych <= '_') goto yy959;
 			} else {
-				if (yych <= 'z') goto yy951;
-				if (yych >= 0x7F) goto yy951;
+				if (yych <= 'z') goto yy959;
+				if (yych >= 0x7F) goto yy959;
 			}
 		}
-yy953:
-		YYDEBUG(953, *YYCURSOR);
+yy961:
+		YYDEBUG(961, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
 #line 1821 "Zend/zend_language_scanner.l"
 		{
@@ -8674,37 +8713,37 @@
 	zendlval->type = IS_STRING;
 	return T_VARIABLE;
 }
-#line 8678 "Zend/zend_language_scanner.c"
-yy954:
-		YYDEBUG(954, *YYCURSOR);
+#line 8717 "Zend/zend_language_scanner.c"
+yy962:
+		YYDEBUG(962, *YYCURSOR);
 		++YYCURSOR;
 		YYFILL(1);
 		yych = *YYCURSOR;
-yy955:
-		YYDEBUG(955, *YYCURSOR);
+yy963:
+		YYDEBUG(963, *YYCURSOR);
 		if (yybm[0+yych] & 64) {
-			goto yy954;
+			goto yy962;
 		}
 		goto yy936;
-yy956:
-		YYDEBUG(956, *YYCURSOR);
+yy964:
+		YYDEBUG(964, *YYCURSOR);
 		yych = *++YYCURSOR;
 		if (yybm[0+yych] & 128) {
-			goto yy961;
+			goto yy969;
 		}
-		YYDEBUG(957, *YYCURSOR);
+		YYDEBUG(965, *YYCURSOR);
 		YYCURSOR = YYMARKER;
 		goto yy936;
-yy958:
-		YYDEBUG(958, *YYCURSOR);
+yy966:
+		YYDEBUG(966, *YYCURSOR);
 		++YYCURSOR;
 		YYFILL(1);
 		yych = *YYCURSOR;
-		YYDEBUG(959, *YYCURSOR);
-		if (yych <= '/') goto yy960;
-		if (yych <= '9') goto yy958;
-yy960:
-		YYDEBUG(960, *YYCURSOR);
+		YYDEBUG(967, *YYCURSOR);
+		if (yych <= '/') goto yy968;
+		if (yych <= '9') goto yy966;
+yy968:
+		YYDEBUG(968, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
 #line 1534 "Zend/zend_language_scanner.l"
 		{ /* Offset must be treated as a string */
@@ -8713,19 +8752,19 @@
 	zendlval->type = IS_STRING;
 	return T_NUM_STRING;
 }
-#line 8717 "Zend/zend_language_scanner.c"
-yy961:
-		YYDEBUG(961, *YYCURSOR);
+#line 8756 "Zend/zend_language_scanner.c"
+yy969:
+		YYDEBUG(969, *YYCURSOR);
 		++YYCURSOR;
 		YYFILL(1);
 		yych = *YYCURSOR;
-		YYDEBUG(962, *YYCURSOR);
+		YYDEBUG(970, *YYCURSOR);
 		if (yybm[0+yych] & 128) {
-			goto yy961;
+			goto yy969;
 		}
-		goto yy960;
+		goto yy968;
 	}
 }
-#line 2373 "Zend/zend_language_scanner.l"
+#line 2385 "Zend/zend_language_scanner.l"

 }

Modified: php/php-src/branches/LEMON/Zend/zend_language_scanner.l
===================================================================
--- php/php-src/branches/LEMON/Zend/zend_language_scanner.l	2010-07-13 15:29:30 UTC (rev 301237)
+++ php/php-src/branches/LEMON/Zend/zend_language_scanner.l	2010-07-13 15:30:30 UTC (rev 301238)
@@ -1840,6 +1840,22 @@
 	return T_ENCAPSED_AND_WHITESPACE;
 }

+<ST_VAR_OFFSET>'"' {
+	return T_QUOTE;
+}
+
+<ST_VAR_OFFSET>'{' {
+	return T_LBRACE;
+}
+
+<ST_VAR_OFFSET>'}' {
+	return T_RBRACE;
+}
+
+<ST_VAR_OFFSET>'`' {
+	return T_BACKQUOTE;
+}
+
 <ST_IN_SCRIPTING,ST_VAR_OFFSET>{LABEL} {
 	zend_copy_value(zendlval, yytext, yyleng);
 	zendlval->type = IS_STRING;
@@ -2357,10 +2373,6 @@
 	return T_ENCAPSED_AND_WHITESPACE;
 }

-<ST_IN_SCRIPTING>'"' {
-	return T_QUOTE;
-}
-
 <ST_IN_SCRIPTING,ST_VAR_OFFSET>{ANY_CHAR} {
 	if (YYCURSOR > YYLIMIT) {
 		return 0;

Modified: php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h
===================================================================
--- php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h	2010-07-13 15:29:30 UTC (rev 301237)
+++ php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h	2010-07-13 15:30:30 UTC (rev 301238)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Mon Jul 12 16:24:11 2010 */
+/* Generated by re2c 0.13.5 on Tue Jul 13 12:12:35 2010 */
 #line 3 "Zend/zend_language_scanner_defs.h"

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

Reply via email to