/* It's possible that we have a readbuf, but that it's only half of a surrogate pair */
if (!stream->readbuf.head ||
- (stream->readbuf.head == stream->readbuf.tail && stream->readbuf.head->is_unicode &&
- (stream->readbuf.head->buf.ustr.len - stream->readbuf_ofs) == 1 &&
- U16_IS_SURROGATE(stream->readbuf.head->buf.ustr.val[stream->readbuf.head->buf.ustr.len-1]))) {
+ (stream->readbuf.head == stream->readbuf.tail && stream->readbuf.head->is_unicode &&
+ (stream->readbuf.head->buf.ustr.len - stream->readbuf_ofs) == 1 &&
+ U16_IS_SURROGATE(stream->readbuf.head->buf.ustr.val[stream->readbuf.head->buf.ustr.len-1]))) {
php_stream_fill_read_buffer(stream, max_bytes ? max_bytes : (max_chars ? max_chars : stream->chunk_size) TSRMLS_CC);
}
if (!stream->readbuf.head ||
- (stream->readbuf.head == stream->readbuf.tail && stream->readbuf.head->is_unicode &&
- (stream->readbuf.head->buf.ustr.len - stream->readbuf_ofs) == 1 &&
- U16_IS_SURROGATE(stream->readbuf.head->buf.ustr.val[stream->readbuf.head->buf.ustr.len-1]))) {
+ (stream->readbuf.head == stream->readbuf.tail && stream->readbuf.head->is_unicode &&
+ (stream->readbuf.head->buf.ustr.len - stream->readbuf_ofs) == 1 &&
+ U16_IS_SURROGATE(stream->readbuf.head->buf.ustr.val[stream->readbuf.head->buf.ustr.len-1]))) {
/* Nothing to return */
*pnum_bytes = 0;
*pnum_chars = 0;
if ((bucket = stream->readbuf.head)) {
if ((bucket->is_unicode && !is_unicode) ||
- (!bucket->is_unicode && is_unicode)) {
+ (!bucket->is_unicode && is_unicode)) {
/* data type swap, exit now */
break;
}
php_stream_bucket_delref(bucket TSRMLS_CC);
stream->readbuf_ofs = 0;
} else if (stream->readbuf_ofs == (bucket->buf.ustr.len - 1) &&
- U16_IS_SURROGATE(bucket->buf.ustr.val[bucket->buf.ustr.len - 1]) &&
- bucket->next && bucket->next->is_unicode) {
+ U16_IS_SURROGATE(bucket->buf.ustr.val[bucket->buf.ustr.len - 1]) &&
+ bucket->next && bucket->next->is_unicode) {
/* Only one char left in the bucket, avoid already split surrogates getting "stuck" -- Should never happen thanks to fill_read_buffer */
php_stream_bucket *next_bucket = bucket->next;
}
if ((max_bytes >= 0 && num_bytes >= max_bytes) ||
- (max_chars >= 0 && num_chars >= max_chars)) {
+ (max_chars >= 0 && num_chars >= max_chars)) {
goto exit_ugetline;
}