| 125 |
125 |
| 126 // create a buffer using the memory pool for destruction |
126 // create a buffer using the memory pool for destruction |
| 127 CxBuffer *content = cxBufferCreate(NULL, 256, pool->allocator, CX_BUFFER_AUTO_EXTEND); |
127 CxBuffer *content = cxBufferCreate(NULL, 256, pool->allocator, CX_BUFFER_AUTO_EXTEND); |
| 128 |
128 |
| 129 // read the file into the buffer and turn it into a string |
129 // read the file into the buffer and turn it into a string |
| 130 cx_stream_copy(f, content, (cx_read_func) fread, (cx_write_func) cxBufferWrite); |
130 cx_stream_copy(f, content, (cx_read_func) fread, cxBufferWriteFunc); |
| 131 fclose(f); |
131 fclose(f); |
| 132 cxstring contentstr = cx_strn(content->space, content->size); |
132 cxstring contentstr = cx_strn(content->space, content->size); |
| 133 |
133 |
| 134 // split the string into lines - use the mempool for allocating the target array |
134 // split the string into lines - use the mempool for allocating the target array |
| 135 cxstring* lines; |
135 cxstring* lines; |
| 361 if (inputfile) { |
361 if (inputfile) { |
| 362 CxBuffer fbuf; |
362 CxBuffer fbuf; |
| 363 cxBufferInit(&fbuf, NULL, 4096, NULL, CX_BUFFER_AUTO_EXTEND); |
363 cxBufferInit(&fbuf, NULL, 4096, NULL, CX_BUFFER_AUTO_EXTEND); |
| 364 cx_stream_copy(inputfile, &fbuf, |
364 cx_stream_copy(inputfile, &fbuf, |
| 365 (cx_read_func) fread, |
365 (cx_read_func) fread, |
| 366 (cx_write_func) cxBufferWrite); |
366 cxBufferWriteFunc); |
| 367 fclose(inputfile); |
367 fclose(inputfile); |
| 368 |
368 |
| 369 // ... do something meaningful with the contents ... |
369 // ... do something meaningful with the contents ... |
| 370 |
370 |
| 371 cxBufferDestroy(&fbuf); |
371 cxBufferDestroy(&fbuf); |