| line | true | false | branch | 
 
| 386 | 0 | 44 | if ( inn != BUFCHAIN ) { | 
 
| 398 | 0 | 44 | if (rc != ieb->length) { | 
 
| 426 | 369 | 361 | if (ig->destroycb) | 
 
| 429 | 648 | 82 | if (ig->buffer) | 
 
| 450 | 1 | 20074 | if (ig->write_ptr) | 
 
| 453 | 20074 | 0 | if (ig->error || ig->buf_eof) | 
 
|  | 4 | 20070 | if (ig->error || ig->buf_eof) | 
 
| 456 | 20004 | 66 | if (!ig->buffered) { | 
 
| 459 | 20002 | 2 | if (rc > 0) { | 
 
| 462 | 1 | 1 | else if (rc == 0) { | 
 
| 472 | 59 | 7 | if (!ig->buffer) | 
 
| 475 | 5 | 61 | if (!ig->read_ptr || ig->read_ptr == ig->read_end) { | 
 
|  | 5 | 0 | if (!ig->read_ptr || ig->read_ptr == ig->read_end) { | 
 
| 476 | 4 | 62 | if (!i_io_read_fill(ig, 1)) | 
 
| 498 | 1 | 22 | if (ig->write_ptr) | 
 
| 501 | 6 | 16 | if (!ig->buffer) | 
 
| 504 | 5 | 17 | if (!ig->buffered) { | 
 
| 506 | 1 | 4 | if (rc > 0) { | 
 
| 511 | 2 | 2 | else if (rc == 0) { | 
 
| 521 | 12 | 5 | if (!ig->read_ptr || ig->read_ptr == ig->read_end) { | 
 
|  | 12 | 0 | if (!ig->read_ptr || ig->read_ptr == ig->read_end) { | 
 
| 522 | 16 | 1 | if (ig->error || ig->buf_eof) | 
 
|  | 5 | 11 | if (ig->error || ig->buf_eof) | 
 
| 525 | 10 | 1 | if (!i_io_read_fill(ig, 1)) | 
 
| 558 | 1 | 214 | if (size == 0) { | 
 
| 565 | 1 | 213 | if (ig->write_ptr) { | 
 
| 570 | 202 | 11 | if (!ig->buffer) | 
 
| 573 | 11 | 202 | if ((!ig->read_ptr || size > ig->read_end - ig->read_ptr) | 
 
|  | 8 | 3 | if ((!ig->read_ptr || size > ig->read_end - ig->read_ptr) | 
 
| 574 | 209 | 1 | && !(ig->buf_eof || ig->error)) { | 
 
|  | 207 | 2 | && !(ig->buf_eof || ig->error)) { | 
 
| 578 | 211 | 2 | if (ig->read_ptr && ig->read_end != ig->read_ptr) { | 
 
|  | 209 | 2 | if (ig->read_ptr && ig->read_end != ig->read_ptr) { | 
 
| 579 | 13 | 196 | if (size > ig->read_end - ig->read_ptr) | 
 
| 582 | 209 | 0 | if (size) | 
 
| 585 | 1 | 3 | else if (ig->buf_eof) { | 
 
| 589 | 3 | 0 | else if (ig->error) { | 
 
| 618 | 3 | 9 | if (!ig->buffered) { | 
 
| 623 | 1 | 2 | if (ig->error) | 
 
| 627 | 1 | 1 | if (write_result != 1) { | 
 
| 637 | 1 | 8 | if (ig->read_ptr) | 
 
| 640 | 2 | 6 | if (ig->error) | 
 
| 643 | 5 | 1 | if (!ig->buffer) | 
 
| 646 | 1 | 5 | if (ig->write_ptr && ig->write_ptr == ig->write_end) { | 
 
|  | 1 | 0 | if (ig->write_ptr && ig->write_ptr == ig->write_end) { | 
 
| 647 | 1 | 0 | if (!i_io_flush(ig)) | 
 
| 677 | 1 | 630751 | if (ig->write_ptr) { | 
 
| 682 | 150 | 630601 | if (!ig->buffer && ig->buffered) | 
 
|  | 149 | 1 | if (!ig->buffer && ig->buffered) | 
 
| 685 | 628032 | 2719 | if (ig->read_ptr && ig->read_ptr < ig->read_end) { | 
 
|  | 627979 | 53 | if (ig->read_ptr && ig->read_ptr < ig->read_end) { | 
 
| 688 | 627122 | 857 | if (alloc > size) | 
 
| 698 | 3392 | 627359 | if (size > 0 && !(ig->error || ig->buf_eof)) { | 
 
|  | 3392 | 0 | if (size > 0 && !(ig->error || ig->buf_eof)) { | 
 
|  | 3388 | 4 | if (size > 0 && !(ig->error || ig->buf_eof)) { | 
 
| 699 | 3387 | 1 | if (!ig->buffered || size > ig->buf_size) { | 
 
|  | 4 | 3383 | if (!ig->buffered || size > ig->buf_size) { | 
 
| 702 | 6 | 3 | while (size > 0 && (rc = i_io_raw_read(ig, pbuf, size)) > 0) { | 
 
|  | 4 | 2 | while (size > 0 && (rc = i_io_raw_read(ig, pbuf, size)) > 0) { | 
 
| 710 | 1 | 4 | if (rc < 0) | 
 
| 712 | 1 | 3 | else if (rc == 0) | 
 
| 715 | 1 | 4 | if (!read_total) | 
 
| 719 | 3330 | 53 | if (i_io_read_fill(ig, size)) { | 
 
| 721 | 3296 | 34 | if (alloc > size) | 
 
| 731 | 18 | 35 | if (!read_total && ig->error) { | 
 
|  | 3 | 15 | if (!read_total && ig->error) { | 
 
| 739 | 19 | 630728 | if (!read_total && ig->error) | 
 
|  | 0 | 19 | if (!read_total && ig->error) | 
 
| 766 | 4860 | 497008 | if (!ig->buffered) { | 
 
| 769 | 1 | 4859 | if (ig->error) { | 
 
| 776 | 42 | 4817 | if (result != size) { | 
 
| 786 | 1 | 497007 | if (ig->read_ptr) { | 
 
| 791 | 1 | 497006 | if (ig->error) { | 
 
| 796 | 227 | 496779 | if (!ig->buffer) | 
 
| 799 | 232 | 496774 | if (!ig->write_ptr) | 
 
| 802 | 497006 | 0 | if (ig->write_ptr && ig->write_ptr + size <= ig->write_end) { | 
 
|  | 496330 | 676 | if (ig->write_ptr && ig->write_ptr + size <= ig->write_end) { | 
 
| 804 | 496215 | 115 | if (alloc > size) | 
 
| 813 | 676 | 496330 | if (size) { | 
 
| 814 | 1 | 675 | if (!i_io_flush(ig)) { | 
 
| 816 | 0 | 1 | return write_count ? write_count : -1; | 
 
| 821 | 103 | 572 | if (size > ig->buf_size) { | 
 
| 823 | 103 | 102 | while (size > 0 && (rc = i_io_raw_write(ig, pbuf, size)) > 0) { | 
 
|  | 102 | 1 | while (size > 0 && (rc = i_io_raw_write(ig, pbuf, size)) > 0) { | 
 
| 828 | 1 | 102 | if (rc <= 0) { | 
 
| 830 | 1 | 0 | if (!write_count) { | 
 
| 865 | 8 | 2576 | if (ig->write_ptr && ig->write_ptr != ig->write_end) { | 
 
|  | 8 | 0 | if (ig->write_ptr && ig->write_ptr != ig->write_end) { | 
 
| 866 | 1 | 7 | if (!i_io_flush(ig)) | 
 
| 870 | 1 | 2582 | if (whence == SEEK_CUR && ig->read_ptr && ig->read_ptr != ig->read_end) | 
 
|  | 1 | 0 | if (whence == SEEK_CUR && ig->read_ptr && ig->read_ptr != ig->read_end) | 
 
|  | 1 | 0 | if (whence == SEEK_CUR && ig->read_ptr && ig->read_ptr != ig->read_end) | 
 
| 879 | 5 | 2578 | if (new_off < 0) | 
 
| 904 | 1 | 911 | if (ig->error) { | 
 
| 910 | 1 | 910 | if (!ig->write_ptr) | 
 
| 914 | 798 | 901 | while (bufp < ig->write_ptr) { | 
 
| 916 | 9 | 789 | if (rc <= 0) { | 
 
| 948 | 2 | 280 | if (ig->error) | 
 
| 951 | 225 | 57 | if (ig->write_ptr && !i_io_flush(ig)) | 
 
|  | 6 | 219 | if (ig->write_ptr && !i_io_flush(ig)) | 
 
| 954 | 13 | 269 | if (i_io_raw_close(ig)) | 
 
| 982 | 0 | 7 | if (size < 2) | 
 
| 985 | 35 | 1 | while (size > 0) { | 
 
| 986 | 32 | 3 | int byte = i_io_getc(ig); | 
 
| 987 | 1 | 34 | if (byte == EOF) | 
 
| 991 | 5 | 29 | if (byte == eol) | 
 
| 1061 | 55 | 1 | if (!buffered && ig->write_ptr) { | 
 
|  | 0 | 55 | if (!buffered && ig->write_ptr) { | 
 
| 1062 | 0 | 0 | if (!i_io_flush(ig)) { | 
 
| 1084 | 0 | 0 | if (flags & I_IO_DUMP_CALLBACKS) { | 
 
| 1091 | 0 | 0 | if (flags & I_IO_DUMP_BUFFER) { | 
 
| 1094 | 0 | 0 | if (ig->read_ptr) { | 
 
| 1101 | 0 | 0 | if (ig->write_ptr) { | 
 
| 1109 | 0 | 0 | if (flags & I_IO_DUMP_STATUS) { | 
 
| 1137 | 0 | 3 | if (!result) | 
 
| 1165 | 3667 | 0 | if (ig->error || ig->buf_eof) | 
 
|  | 0 | 3667 | if (ig->error || ig->buf_eof) | 
 
| 1168 | 1 | 3666 | if (needed > ig->buf_size) | 
 
| 1171 | 683 | 2984 | if (ig->read_ptr && ig->read_ptr < ig->read_end) { | 
 
|  | 5 | 678 | if (ig->read_ptr && ig->read_ptr < ig->read_end) { | 
 
| 1174 | 0 | 5 | if (needed < kept) { | 
 
| 1179 | 1 | 4 | if (ig->read_ptr != ig->buffer) | 
 
| 1193 | 3714 | 1 | while (work < buf_end && (rc = i_io_raw_read(ig, work, buf_end - work)) > 0) { | 
 
|  | 3600 | 114 | while (work < buf_end && (rc = i_io_raw_read(ig, work, buf_end - work)) > 0) { | 
 
| 1196 | 3552 | 48 | if (needed < rc) | 
 
| 1202 | 8 | 3659 | if (rc < 0) { | 
 
| 1207 | 106 | 3553 | else if (rc == 0) { | 
 
| 1212 | 3598 | 69 | if (good) { | 
 
| 1238 | 0 | 0 | if (start == end) { | 
 
| 1243 | 0 | 0 | if (count > 15) { | 
 
| 1244 | 0 | 0 | if (bias) { | 
 
| 1252 | 0 | 0 | for (p = start; p < end; ++p) { | 
 
| 1257 | 0 | 0 | for (p = start; p < end; ++p) { | 
 
| 1258 | 0 | 0 | if (*p < ' ' || *p > '~') | 
 
|  | 0 | 0 | if (*p < ' ' || *p > '~') | 
 
| 1264 | 0 | 0 | if (!bias) | 
 
| 1268 | 0 | 0 | for (p = start; p < end; ++p) { | 
 
| 1272 | 0 | 0 | for (p = start; p < end; ++p) { | 
 
| 1273 | 0 | 0 | if (*p < ' ' || *p > '~') | 
 
|  | 0 | 0 | if (*p < ' ' || *p > '~') | 
 
| 1344 | 4983 | 4927 | while( count!=bc && (rc = ig->writecb(p,cbuf+bc,count-bc))>0 ) { | 
 
|  | 4927 | 56 | while( count!=bc && (rc = ig->writecb(p,cbuf+bc,count-bc))>0 ) { | 
 
| 1349 | 55 | 4928 | return rc < 0 ? rc : bc; | 
 
| 1371 | 38 | 0 | if (ig->closecb) | 
 
| 1410 | 129 | 0 | if (ig->destroycb) | 
 
| 1437 | 775 | 21033 | if ( ig->cpos+count > ig->len ) { | 
 
| 1508 | 4 | 1351 | off_t reqpos = | 
 
|  | 3 | 1 | off_t reqpos = | 
 
|  | 1 | 0 | off_t reqpos = | 
 
| 1511 | 4 | 1351 | if (reqpos > ig->len) { | 
 
| 1516 | 0 | 1351 | if (reqpos < 0) { | 
 
| 1534 | 187 | 0 | if (ig->closecb) { | 
 
| 1587 | 133 | 0 | if (ieb->cp->next == NULL) { | 
 
| 1616 | 186 | 53 | while(cp) { | 
 
| 1748 | 180 | 45 | while( scount ) { | 
 
| 1749 | 28 | 152 | int clen = (ieb->cp == ieb->tail) ? ieb->tfill : ieb->cp->len; | 
 
| 1750 | 134 | 46 | if (clen == ieb->cpos) { | 
 
| 1751 | 1 | 133 | if (ieb->cp == ieb->tail) break; /* EOF */ | 
 
| 1754 | 19 | 114 | clen = (ieb->cp == ieb->tail) ? ieb->tfill : ieb->cp->len; | 
 
| 1799 | 375 | 254 | while(count) { | 
 
| 1801 | 133 | 242 | if (ieb->cp->len == ieb->cpos) { | 
 
| 1810 | 374 | 1 | if (ieb->cp == ieb->tail) { | 
 
| 1813 | 374 | 0 | if (extend > 0) { | 
 
| 1867 | 3 | 46 | off_t scount = calc_seek_offset(ieb->gpos, ieb->length, offset, whence); | 
 
|  | 2 | 1 | off_t scount = calc_seek_offset(ieb->gpos, ieb->length, offset, whence); | 
 
|  | 1 | 0 | off_t scount = calc_seek_offset(ieb->gpos, ieb->length, offset, whence); | 
 
| 1873 | 0 | 49 | if (scount < 0) { | 
 
| 1882 | 4 | 49 | while( scount ) { | 
 
| 1883 | 3 | 1 | int clen = (ieb->cp == ieb->tail) ? ieb->tfill : ieb->cp->len; | 
 
| 1884 | 0 | 4 | if (clen == ieb->cpos) { | 
 
| 1885 | 0 | 0 | if (ieb->cp == ieb->tail) break; /* EOF */ | 
 
| 1888 | 0 | 0 | clen = (ieb->cp == ieb->tail) ? ieb->tfill : ieb->cp->len; | 
 
| 1901 | 0 | 49 | if (wrlen > 0) { | 
 
| 1911 | 0 | 0 | while(wrlen > 0) { | 
 
| 1915 | 0 | 0 | if (rc != wl) im_fatal(aIMCTX, 0, "bufchain_seek: Unable to extend file\n"); | 
 
| 1954 | 1 | 1778 | if (result < 0) { | 
 
| 1974 | 1 | 531 | if (result <= 0) { | 
 
| 1991 | 1 | 1223 | if (result == (off_t)-1) { |