Skip to content

Commit

Permalink
Export grn_inspect_limited()
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Feb 3, 2017
1 parent 438d3f3 commit 10a3836
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 3 deletions.
5 changes: 4 additions & 1 deletion include/groonga/util.h
@@ -1,5 +1,5 @@
/*
Copyright(C) 2010-2016 Brazil
Copyright(C) 2010-2017 Brazil
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
Expand All @@ -25,6 +25,9 @@ extern "C" {
GRN_API grn_obj *grn_inspect(grn_ctx *ctx, grn_obj *buffer, grn_obj *obj);
GRN_API grn_obj *grn_inspect_indented(grn_ctx *ctx, grn_obj *buffer,
grn_obj *obj, const char *indent);
GRN_API grn_obj *grn_inspect_limited(grn_ctx *ctx,
grn_obj *buffer,
grn_obj *obj);
GRN_API grn_obj *grn_inspect_name(grn_ctx *ctx, grn_obj *buffer, grn_obj *obj);
GRN_API grn_obj *grn_inspect_encoding(grn_ctx *ctx, grn_obj *buffer, grn_encoding encoding);
GRN_API grn_obj *grn_inspect_type(grn_ctx *ctx, grn_obj *buffer, unsigned char type);
Expand Down
4 changes: 2 additions & 2 deletions lib/db.c
@@ -1,6 +1,6 @@
/* -*- c-basic-offset: 2 -*- */
/*
Copyright(C) 2009-2016 Brazil
Copyright(C) 2009-2017 Brazil
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
Expand Down Expand Up @@ -11049,7 +11049,7 @@ grn_obj_reinit_for(grn_ctx *ctx, grn_obj *obj, grn_obj *domain_obj)
if (!GRN_DB_OBJP(domain_obj) && domain_obj->header.type != GRN_ACCESSOR) {
grn_obj inspected;
GRN_TEXT_INIT(&inspected, 0);
limited_size_inspect(ctx, &inspected, domain_obj);
grn_inspect_limited(ctx, &inspected, domain_obj);
ERR(GRN_INVALID_ARGUMENT,
"[reinit] invalid domain object: <%.*s>",
(int)GRN_TEXT_LEN(&inspected), GRN_TEXT_VALUE(&inspected));
Expand Down
24 changes: 24 additions & 0 deletions lib/util.c
Expand Up @@ -1449,6 +1449,30 @@ grn_inspect_indented(grn_ctx *ctx, grn_obj *buffer, grn_obj *obj,
return buffer;
}

grn_obj *
grn_inspect_limited(grn_ctx *ctx, grn_obj *buffer, grn_obj *obj)
{
grn_obj sub_buffer;
unsigned int max_size = GRN_CTX_MSGSIZE / 2;

GRN_TEXT_INIT(&sub_buffer, 0);
grn_inspect(ctx, &sub_buffer, obj);
if (GRN_TEXT_LEN(&sub_buffer) > max_size) {
GRN_TEXT_PUT(ctx, buffer, GRN_TEXT_VALUE(&sub_buffer), max_size);
GRN_TEXT_PUTS(ctx, buffer, "...(");
grn_text_lltoa(ctx, buffer, GRN_TEXT_LEN(&sub_buffer));
GRN_TEXT_PUTS(ctx, buffer, ")");
} else {
GRN_TEXT_PUT(ctx,
buffer,
GRN_TEXT_VALUE(&sub_buffer),
GRN_TEXT_LEN(&sub_buffer));
}
GRN_OBJ_FIN(ctx, &sub_buffer);

return buffer;
}

void
grn_p(grn_ctx *ctx, grn_obj *obj)
{
Expand Down

0 comments on commit 10a3836

Please sign in to comment.