cvs: ZendEngine2(PHP_5_2) / zend_language_scanner.l

[email protected] ("Marcus Boerger")
Newsgroups php.zend-engine.cvs
Message-ID <cvshelly1206211988@cvsserver>
helly		Sat Mar 22 18:53:08 2008 UTC

  Modified files:              (Branch: PHP_5_2)
    /ZendEngine2	zend_language_scanner.l 
  Log:
  - Make multibyte a tad bit less crappy
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner.l?r1=1.131.2.11.2.13&r2=1.131.2.11.2.14&diff_format=u
Index: ZendEngine2/zend_language_scanner.l
diff -u ZendEngine2/zend_language_scanner.l:1.131.2.11.2.13 ZendEngine2/zend_language_scanner.l:1.131.2.11.2.14
--- ZendEngine2/zend_language_scanner.l:1.131.2.11.2.13	Sun Sep  9 16:33:34 2007
+++ ZendEngine2/zend_language_scanner.l	Sat Mar 22 18:53:08 2008
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_language_scanner.l,v 1.131.2.11.2.13 2007/09/09 16:33:34 iliaa Exp $ */
+/* $Id: zend_language_scanner.l,v 1.131.2.11.2.14 2008/03/22 18:53:08 helly Exp $ */
 
 #define yyleng SCNG(yy_leng)
 #define yytext SCNG(yy_text)
@@ -723,7 +723,7 @@
 
 	/* TODO: support widechars */
 
-	for (n = 0; n < sizeof(buf) && (c = zend_stream_getc(yyin TSRMLS_CC)) != EOF && c != '\n'; ++n) {
+	for (n = 0; n < len && (c = zend_stream_getc(yyin TSRMLS_CC)) != EOF && c != '\n'; ++n) {
 		buf[n] = (char)c;
 	}
 	if (c == '\n') {
@@ -731,8 +731,8 @@
 	}
 
 	SCNG(script_org_size) = n;
-	SCNG(script_org) = (char*)emalloc(SCNG(script_org_size)+1);
-	memcpy(SCNG(script_org)+SCNG(script_org_size)-n, buf, n);
+	SCNG(script_org) = (char*)emalloc(SCNG(script_org_size) + 1);
+	memcpy(SCNG(script_org), buf, n);
 
 	return n;
 }
@@ -749,29 +749,18 @@
 	SCNG(script_org) = NULL;
 	SCNG(script_org_size) = 0;
 
-	for (;;) {
-		n = zend_stream_read(yyin, buf, sizeof(buf) TSRMLS_CC);
-		if (n <= 0) {
-			break;
-		}
-
+	for (; (n = zend_stream_read(yyin, buf, sizeof(buf) TSRMLS_CC)) > 0; ) {
 		SCNG(script_org_size) += n;
-		if (SCNG(script_org)) {
-			SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size)+1);
-		} else {
-			SCNG(script_org) = (char*)emalloc(SCNG(script_org_size)+1);
-		}
-		memcpy(SCNG(script_org)+SCNG(script_org_size)-n, buf, n);
+		SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size));
+		memcpy(SCNG(script_org) + SCNG(script_org_size) - n, buf, n);
 	}
 
 	if (n < 0) {
 		return -1;
 	}
 
-	if (!SCNG(script_org)) {
-		SCNG(script_org) = emalloc(SCNG(script_org_size)+1);
-	}
-	*(SCNG(script_org)+SCNG(script_org_size)) = (char)NULL;
+	SCNG(script_org) = (char*)erealloc(SCNG(script_org), SCNG(script_org_size) + 1);
+	*(SCNG(script_org)+SCNG(script_org_size)) = '\0';
 
 	return 0;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.