| 101 | * if needed. */ |
| 102 | |
| 103 | static inline size_t rioWrite(rio *r, const void *buf, size_t len) { |
| 104 | if (r->flags & RIO_FLAG_WRITE_ERROR) return 0; |
| 105 | while (len) { |
| 106 | size_t bytes_to_write = (r->max_processing_chunk && r->max_processing_chunk < len) ? r->max_processing_chunk : len; |
| 107 | if (r->update_cksum) r->update_cksum(r,buf,bytes_to_write); |
| 108 | if (r->write(r,buf,bytes_to_write) == 0) { |
| 109 | r->flags |= RIO_FLAG_WRITE_ERROR; |
| 110 | return 0; |
| 111 | } |
| 112 | buf = (char*)buf + bytes_to_write; |
| 113 | len -= bytes_to_write; |
| 114 | r->processed_bytes += bytes_to_write; |
| 115 | } |
| 116 | return 1; |
| 117 | } |
| 118 | |
| 119 | static inline size_t rioRead(rio *r, void *buf, size_t len) { |
| 120 | if (r->flags & RIO_FLAG_READ_ERROR) return 0; |
no test coverage detected