susumu.yata
null+****@clear*****
Wed Sep 16 21:53:45 JST 2015
susumu.yata 2015-09-16 21:53:45 +0900 (Wed, 16 Sep 2015) New Revision: eb4676c70bdd752768de17ef3774c4e52c8681cb https://github.com/groonga/groonga/commit/eb4676c70bdd752768de17ef3774c4e52c8681cb Message: grn_ts: remove an unused function grn_ts_split_output_columns() GitHub: #402 Modified files: lib/ts.c Modified: lib/ts.c (+0 -110) =================================================================== --- lib/ts.c 2015-09-16 21:53:05 +0900 (0726c57) +++ lib/ts.c 2015-09-16 21:53:45 +0900 (54bf4fb) @@ -5565,116 +5565,6 @@ grn_ts_tokenize_output_columns(grn_ctx *ctx, grn_ts_str in, return rc; } -/* - * grn_ts_split_output_columns() splits an --output_columns option string which - * is separated by commas. - */ -static grn_rc -grn_ts_split_output_columns(grn_ctx *ctx, grn_ts_str str, - grn_ts_str **out, size_t *n_out) { - grn_rc rc = GRN_SUCCESS; - grn_ts_str rest = str; - grn_ts_buf stack; - grn_ts_str *tokens = NULL; - size_t n_tokens = 0, max_n_tokens = 0; - - grn_ts_buf_init(ctx, &stack); - while (rest.size) { - size_t i, token_size, next_offset; - char stack_top = '\0'; - rest = grn_ts_str_trim_left(rest); - if (!rest.size) { - break; - } - /* Find the end of the current token. */ - for (i = 0; i < rest.size; i++) { - if (stack.pos) { - if (rest.ptr[i] == stack_top) { - stack.pos--; - stack_top = stack.pos ? ((char *)stack.ptr)[stack.pos - 1] : '\0'; - continue; - } - if (stack_top == '"') { - /* '\' works as an escape character in a string. */ - if (rest.ptr[i] == '\\') { - /* Skip the next byte if exists. */ - if (i < (rest.size - 1)) { - i++; - } - } - continue; - } - } else if (rest.ptr[i] == ',') { - break; - } - switch (rest.ptr[i]) { - case '(': { - stack_top = ')'; - rc = grn_ts_buf_write(ctx, &stack, &stack_top, 1); - break; - } - case '[': { - stack_top = ']'; - rc = grn_ts_buf_write(ctx, &stack, &stack_top, 1); - break; - } - case '{': { - stack_top = '}'; - rc = grn_ts_buf_write(ctx, &stack, &stack_top, 1); - break; - } - case '"': { - stack_top = '"'; - rc = grn_ts_buf_write(ctx, &stack, &stack_top, 1); - break; - } - } - if (rc != GRN_SUCCESS) { - break; - } - } - if (rc != GRN_SUCCESS) { - break; - } - - /* Append the current token. */ - token_size = i; - if (token_size) { - grn_ts_str new_token = { rest.ptr, token_size }; - if (n_tokens == max_n_tokens) { - size_t new_max_n_tokens = n_tokens ? (n_tokens * 2) : 1; - size_t n_bytes = sizeof(grn_ts_str) * new_max_n_tokens; - grn_ts_str *new_tokens = (grn_ts_str *)GRN_REALLOC(tokens, n_bytes); - if (!new_tokens) { - rc = GRN_NO_MEMORY_AVAILABLE; - break; - } - tokens = new_tokens; - max_n_tokens = new_max_n_tokens; - } - tokens[n_tokens++] = new_token; - } - - /* Update the rest. */ - next_offset = token_size; - if (token_size != rest.size) { - next_offset++; - } - rest.ptr = (char *)rest.ptr + next_offset; - rest.size -= next_offset; - } - - grn_ts_buf_fin(ctx, &stack); - if (rc == GRN_SUCCESS) { - *out = tokens; - *n_out = n_tokens; - } else if (tokens) { - GRN_FREE(tokens); - } - return rc; -} - - /* grn_ts_select_output_parse() parses an output_columns option. */ static grn_rc grn_ts_select_output_parse(grn_ctx *ctx, grn_obj *table, -------------- next part -------------- HTML����������������������������...Download