src/buffer.c

changeset 538
2cfbcbe86a7c
parent 536
cb9b9739055e
child 539
9cd98da9ee17
equal deleted inserted replaced
537:16219eba3a0a 538:2cfbcbe86a7c
167 } 167 }
168 168
169 return len / size; 169 return len / size;
170 } 170 }
171 171
172 int cxBufferPut(
173 CxBuffer *buffer,
174 int c
175 ) {
176 c &= 0xFF;
177 unsigned char const ch = c;
178 if (cxBufferWrite(&ch, 1, 1, buffer) == 1) {
179 return c;
180 } else {
181 return EOF;
182 }
183 }
184
185 size_t cxBufferPutString(
186 CxBuffer *buffer,
187 const char *str
188 ) {
189 return cxBufferWrite(str, 1, strlen(str), buffer);
190 }
191
172 size_t cxBufferRead( 192 size_t cxBufferRead(
173 void *ptr, 193 void *ptr,
174 size_t size, 194 size_t size,
175 size_t nitems, 195 size_t nitems,
176 CxBuffer *buffer 196 CxBuffer *buffer
192 buffer->pos += len; 212 buffer->pos += len;
193 213
194 return len / size; 214 return len / size;
195 } 215 }
196 216
197 int cxBufferPut(
198 CxBuffer *buffer,
199 int c
200 ) {
201 if (buffer->pos >= buffer->capacity) {
202 if ((buffer->flags & CX_BUFFER_AUTO_EXTEND) == CX_BUFFER_AUTO_EXTEND) {
203 if (cxBufferMinimumCapacity(buffer, buffer->capacity + 1)) {
204 return EOF;
205 }
206 } else {
207 return EOF;
208 }
209 }
210
211 c &= 0xFF;
212 buffer->bytes[buffer->pos] = (unsigned char) c;
213 buffer->pos++;
214 if (buffer->pos > buffer->size) {
215 buffer->size = buffer->pos;
216 }
217 return c;
218 }
219
220 int cxBufferGet(CxBuffer *buffer) { 217 int cxBufferGet(CxBuffer *buffer) {
221 if (cxBufferEof(buffer)) { 218 if (cxBufferEof(buffer)) {
222 return EOF; 219 return EOF;
223 } else { 220 } else {
224 int c = buffer->bytes[buffer->pos]; 221 int c = buffer->bytes[buffer->pos];
225 buffer->pos++; 222 buffer->pos++;
226 return c; 223 return c;
227 } 224 }
228 }
229
230 size_t cxBufferPutString(
231 CxBuffer *buffer,
232 const char *str
233 ) {
234 return cxBufferWrite(str, 1, strlen(str), buffer);
235 } 225 }
236 226
237 int cxBufferShiftLeft( 227 int cxBufferShiftLeft(
238 CxBuffer *buffer, 228 CxBuffer *buffer,
239 size_t shift 229 size_t shift

mercurial