| 470 | /* text files */ |
| 471 | |
| 472 | apr_status_t md_text_fread8k(const char **ptext, apr_pool_t *p, const char *fpath) |
| 473 | { |
| 474 | apr_status_t rv; |
| 475 | apr_file_t *f; |
| 476 | char buffer[8 * 1024]; |
| 477 | |
| 478 | *ptext = NULL; |
| 479 | if (APR_SUCCESS == (rv = apr_file_open(&f, fpath, APR_FOPEN_READ, 0, p))) { |
| 480 | apr_size_t blen = sizeof(buffer)/sizeof(buffer[0]) - 1; |
| 481 | rv = apr_file_read_full(f, buffer, blen, &blen); |
| 482 | if (APR_SUCCESS == rv || APR_STATUS_IS_EOF(rv)) { |
| 483 | *ptext = apr_pstrndup(p, buffer, blen); |
| 484 | rv = APR_SUCCESS; |
| 485 | } |
| 486 | apr_file_close(f); |
| 487 | } |
| 488 | return rv; |
| 489 | } |
| 490 | |
| 491 | static apr_status_t write_text(void *baton, struct apr_file_t *f, apr_pool_t *p) |
| 492 | { |