null+****@clear*****
null+****@clear*****
2010年 6月 24日 (木) 09:18:03 JST
Daijiro MORI 2010-06-24 00:18:03 +0000 (Thu, 24 Jun 2010) New Revision: 8f553a26e9d7fdd030b08d3293867fbb058be00e Log: Output header info in tsv format when requested in h_server() Modified files: src/groonga.c Modified: src/groonga.c (+29 -0) =================================================================== --- src/groonga.c 2010-06-23 05:57:21 +0000 (c18cba7) +++ src/groonga.c 2010-06-24 00:18:03 +0000 (53f3d1c) @@ -350,6 +350,35 @@ print_return_code(grn_ctx *ctx, grn_rc rc, grn_obj *head, grn_obj *body, grn_obj GRN_TEXT_PUTC(ctx, foot, ']'); break; case GRN_CONTENT_TSV: + grn_text_itoa(ctx, head, rc); + GRN_TEXT_PUTC(ctx, head, '\t'); + { + double dv; + grn_timeval tv; + grn_timeval_now(ctx, &tv); + dv = ctx->impl->tv.tv_sec; + dv += ctx->impl->tv.tv_usec / 1000000.0; + grn_text_ftoa(ctx, head, dv); + dv = (tv.tv_sec - ctx->impl->tv.tv_sec); + dv += (tv.tv_usec - ctx->impl->tv.tv_usec) / 1000000.0; + GRN_TEXT_PUTC(ctx, head, '\t'); + grn_text_ftoa(ctx, head, dv); + } + if (rc != GRN_SUCCESS) { + GRN_TEXT_PUTC(ctx, head, '\t'); + grn_text_esc(ctx, head, ctx->errbuf, strlen(ctx->errbuf)); + if (ctx->errfunc && ctx->errfile) { + /* TODO: output backtrace */ + GRN_TEXT_PUTC(ctx, head, '\t'); + grn_text_esc(ctx, head, ctx->errfunc, strlen(ctx->errfunc)); + GRN_TEXT_PUTC(ctx, head, '\t'); + grn_text_esc(ctx, head, ctx->errfile, strlen(ctx->errfile)); + GRN_TEXT_PUTC(ctx, head, '\t'); + grn_text_itoa(ctx, head, ctx->errline); + } + } + GRN_TEXT_PUTC(ctx, head, '\n'); + break; case GRN_CONTENT_XML: GRN_TEXT_PUTS(ctx, head, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RESULT CODE=\""); grn_text_itoa(ctx, head, rc);