va_start(vlist, fmt); n = ap_vbprintf(r->connection->client, fmt, vlist); va_end(vlist);
va_start(args, r); for (k = 0;;) { x = va_arg(args, const char *); if (x == NULL) break; j = strlen(x); i = ap_bwrite(fb, x, j); if (i != j) { va_end(args); if (!r->connection->aborted) { ap_log_rerror(APLOG_MARK, APLOG_INFO, r, "client stopped connection before rvputs completed"); ap_bsetflag(r->connection->client, B_EOUT, 1); r->connection->aborted = 1; } return EOF; } k += i; } va_end(args);
API_EXPORT_NONSTD(int) ap_rprintf(request_rec *r, const char *fmt,...){    va_list vlist;    int n;    if (r->connection->aborted)        return -1;    va_start(vlist, fmt);    n = ap_vbprintf(r->connection->client, fmt, vlist);    va_end(vlist);    if (n < 0) {        if (!r->connection->aborted) {            ap_log_rerror(APLOG_MARK, APLOG_INFO, r,                "client stopped connection before rprintf completed");            ap_bsetflag(r->connection->client, B_EOUT, 1);            r->connection->aborted = 1;        }        return -1;    }    SET_BYTES_SENT(r);    return n;}