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);