/* 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') {
}
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;
}
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;
}