Kouhei Sutou
null+****@clear*****
Thu May 12 15:22:37 JST 2016
Kouhei Sutou 2016-05-12 15:22:37 +0900 (Thu, 12 May 2016) New Revision: ac0555ade34927250e7a84b35b5132b502cd02e5 https://github.com/groonga/groonga/commit/ac0555ade34927250e7a84b35b5132b502cd02e5 Message: Support using ctx->errbuf in error message format It helps wrapping error message. Modified files: lib/ctx.c lib/proc.c lib/proc/proc_select.c Modified: lib/ctx.c (+3 -1) =================================================================== --- lib/ctx.c 2016-05-12 15:21:51 +0900 (2d87b71) +++ lib/ctx.c 2016-05-12 15:22:37 +0900 (42b1324) @@ -1503,7 +1503,9 @@ grn_ctx_log(grn_ctx *ctx, const char *fmt, ...) void grn_ctx_logv(grn_ctx *ctx, const char *fmt, va_list ap) { - grn_vsnprintf(ctx->errbuf, GRN_CTX_MSGSIZE, fmt, ap); + char buffer[GRN_CTX_MSGSIZE]; + grn_vsnprintf(buffer, GRN_CTX_MSGSIZE, fmt, ap); + grn_strcpy(ctx->errbuf, GRN_CTX_MSGSIZE, buffer); } void Modified: lib/proc.c (+1 -3) =================================================================== --- lib/proc.c 2016-05-12 15:21:51 +0900 (43497e6) +++ lib/proc.c 2016-05-12 15:22:37 +0900 (83f193d) @@ -532,15 +532,13 @@ proc_delete(grn_ctx *ctx, int nargs, grn_obj **args, grn_user_data *user_data) NULL, GRN_OP_MATCH, GRN_OP_AND, GRN_EXPR_SYNTAX_SCRIPT); if (ctx->rc) { - char original_error_message[GRN_CTX_MSGSIZE]; - grn_strcpy(original_error_message, GRN_CTX_MSGSIZE, ctx->errbuf); rc = ctx->rc; ERR(rc, "[table][record][delete] failed to parse filter: " "table: <%.*s>, filter: <%.*s>, detail: <%s>", (int)GRN_TEXT_LEN(table_name), GRN_TEXT_VALUE(table_name), (int)GRN_TEXT_LEN(filter), GRN_TEXT_VALUE(filter), - original_error_message); + ctx->errbuf); } else { grn_obj *records; Modified: lib/proc/proc_select.c (+9 -27) =================================================================== --- lib/proc/proc_select.c 2016-05-12 15:21:51 +0900 (00222bf) +++ lib/proc/proc_select.c 2016-05-12 15:22:37 +0900 (2628de0) @@ -358,15 +358,13 @@ grn_select_apply_columns(grn_ctx *ctx, column_data->flags, column_data->type); if (!column) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); GRN_PLUGIN_ERROR(ctx, GRN_INVALID_ARGUMENT, "[select][column][%s][%.*s] failed to create column: %s", grn_column_stage_name(column_data->stage), (int)(column_data->label.length), column_data->label.value, - error_message); + ctx->errbuf); break; } @@ -378,8 +376,6 @@ grn_select_apply_columns(grn_ctx *ctx, column_data->sortby.length, table, &n_sort_keys); if (!sort_keys) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); grn_obj_close(ctx, column); GRN_PLUGIN_ERROR(ctx, GRN_INVALID_ARGUMENT, @@ -387,15 +383,13 @@ grn_select_apply_columns(grn_ctx *ctx, grn_column_stage_name(column_data->stage), (int)(column_data->label.length), column_data->label.value, - error_message); + ctx->errbuf); break; } target_table = grn_table_create(ctx, NULL, 0, NULL, GRN_OBJ_TABLE_NO_KEY, NULL, table); if (!target_table) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); grn_obj_close(ctx, column); grn_table_sort_key_close(ctx, sort_keys, n_sort_keys); GRN_PLUGIN_ERROR(ctx, @@ -404,7 +398,7 @@ grn_select_apply_columns(grn_ctx *ctx, grn_column_stage_name(column_data->stage), (int)(column_data->label.length), column_data->label.value, - error_message); + ctx->errbuf); break; } grn_table_sort(ctx, table, 0, -1, @@ -414,8 +408,6 @@ grn_select_apply_columns(grn_ctx *ctx, GRN_EXPR_CREATE_FOR_QUERY(ctx, target_table, expression, record); if (!expression) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); grn_obj_close(ctx, column); if (column_data->sortby.length > 0) { grn_obj_unlink(ctx, target_table); @@ -427,7 +419,7 @@ grn_select_apply_columns(grn_ctx *ctx, grn_column_stage_name(column_data->stage), (int)(column_data->label.length), column_data->label.value, - error_message); + ctx->errbuf); break; } grn_expr_parse(ctx, @@ -439,8 +431,6 @@ grn_select_apply_columns(grn_ctx *ctx, GRN_OP_AND, GRN_EXPR_SYNTAX_SCRIPT); if (ctx->rc != GRN_SUCCESS) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); grn_obj_close(ctx, expression); grn_obj_close(ctx, column); if (column_data->sortby.length > 0) { @@ -455,7 +445,7 @@ grn_select_apply_columns(grn_ctx *ctx, column_data->label.value, (int)(column_data->value.length), column_data->value.value, - error_message); + ctx->errbuf); break; } grn_select_expression_set_condition(ctx, expression, condition); @@ -465,8 +455,6 @@ grn_select_apply_columns(grn_ctx *ctx, NULL, 0, 0, -1, GRN_CURSOR_BY_ID); if (!table_cursor) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); grn_obj_close(ctx, expression); grn_obj_close(ctx, column); if (column_data->sortby.length > 0) { @@ -479,7 +467,7 @@ grn_select_apply_columns(grn_ctx *ctx, grn_column_stage_name(column_data->stage), (int)(column_data->label.length), column_data->label.value, - error_message); + ctx->errbuf); break; } @@ -634,14 +622,12 @@ grn_select_drilldown(grn_ctx *ctx, grn_obj *table, grn_obj *record; GRN_EXPR_CREATE_FOR_QUERY(ctx, g.table, expression, record); if (!expression) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); grn_obj_close(ctx, g.table); GRN_PLUGIN_ERROR(ctx, GRN_INVALID_ARGUMENT, "[select][drilldown][filter] " "failed to create expression for filter: %s", - error_message); + ctx->errbuf); break; } grn_expr_parse(ctx, @@ -653,8 +639,6 @@ grn_select_drilldown(grn_ctx *ctx, grn_obj *table, GRN_OP_AND, GRN_EXPR_SYNTAX_SCRIPT); if (ctx->rc != GRN_SUCCESS) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); grn_obj_close(ctx, expression); grn_obj_close(ctx, g.table); GRN_PLUGIN_ERROR(ctx, @@ -663,13 +647,11 @@ grn_select_drilldown(grn_ctx *ctx, grn_obj *table, "failed to parse filter: <%.*s>: %s", (int)(drilldown->filter.length), drilldown->filter.value, - error_message); + ctx->errbuf); break; } target_table = grn_table_select(ctx, g.table, expression, NULL, GRN_OP_OR); if (ctx->rc != GRN_SUCCESS) { - char error_message[GRN_CTX_MSGSIZE]; - grn_memcpy(error_message, ctx->errbuf, GRN_CTX_MSGSIZE); grn_obj_close(ctx, expression); if (target_table) { grn_obj_close(ctx, target_table); @@ -681,7 +663,7 @@ grn_select_drilldown(grn_ctx *ctx, grn_obj *table, "failed to execute filter: <%.*s>: %s", (int)(drilldown->filter.length), drilldown->filter.value, - error_message); + ctx->errbuf); break; } } else { -------------- next part -------------- HTML����������������������������...下载