null+****@clear*****
null+****@clear*****
2011年 6月 8日 (水) 22:56:06 JST
Kouhei Sutou 2011-06-08 13:56:06 +0000 (Wed, 08 Jun 2011)
New Revision: 6d59fe7e891029bf740295c1d38842028e3ab4b6
Log:
[groonga] re-support non-newline end input.
Modified files:
src/groonga.c
Modified: src/groonga.c (+11 -4)
===================================================================
--- src/groonga.c 2011-06-08 11:49:00 +0000 (1586856)
+++ src/groonga.c 2011-06-08 13:56:06 +0000 (e653e68)
@@ -227,6 +227,14 @@ prompt(grn_ctx *ctx, grn_obj *buf)
}
the_first_read = GRN_FALSE;
}
+ if (GRN_TEXT_LEN(buf) > 0 &&
+ GRN_TEXT_VALUE(buf)[GRN_TEXT_LEN(buf) - 1] == '\n') {
+ grn_bulk_truncate(ctx, buf, GRN_TEXT_LEN(buf) - 1);
+ }
+ if (GRN_TEXT_LEN(buf) > 0 &&
+ GRN_TEXT_VALUE(buf)[GRN_TEXT_LEN(buf) - 1] == '\r') {
+ grn_bulk_truncate(ctx, buf, GRN_TEXT_LEN(buf) - 1);
+ }
return rc;
}
@@ -671,9 +679,8 @@ do_alone(int argc, char **argv)
grn_obj text;
GRN_TEXT_INIT(&text, 0);
while (prompt(ctx, &text) != GRN_END_OF_DATA) {
- GRN_TEXT_PUT(ctx, &command,
- GRN_TEXT_VALUE(&text), GRN_TEXT_LEN(&text) - 1);
- grn_ctx_send(ctx, GRN_TEXT_VALUE(&text), GRN_TEXT_LEN(&text) - 1, 0);
+ GRN_TEXT_PUT(ctx, &command, GRN_TEXT_VALUE(&text), GRN_TEXT_LEN(&text));
+ grn_ctx_send(ctx, GRN_TEXT_VALUE(&text), GRN_TEXT_LEN(&text), 0);
GRN_BULK_REWIND(&text);
if (ctx->stat == GRN_CTX_QUIT) { break; }
}
@@ -738,7 +745,7 @@ g_client(int argc, char **argv)
grn_obj text;
GRN_TEXT_INIT(&text, 0);
while (prompt(ctx, &text) != GRN_END_OF_DATA) {
- grn_ctx_send(ctx, GRN_TEXT_VALUE(&text), GRN_TEXT_LEN(&text) - 1, 0);
+ grn_ctx_send(ctx, GRN_TEXT_VALUE(&text), GRN_TEXT_LEN(&text), 0);
GRN_BULK_REWIND(&text);
rc = ctx->rc;
if (rc) { break; }