/* Copyright (c) 2014-2018 Dovecot authors, see the included COPYING file */
#include "lib.h"
#include "array.h"
#include "istream.h"
#include "str.h"
#include "strfuncs.h"
#include "fts-tokenizer.h"
#include "fts-tokenizer-private.h"
void fts_tokenizers_init(void)
{
if (!array_is_created(&fts_tokenizer_classes)) {
}
}
void fts_tokenizers_deinit(void)
{
}
/* private */
{
}
/* private */
{
unsigned int idx;
if (array_count(&fts_tokenizer_classes) == 0)
return;
}
}
i_unreached();
}
{
return *tp;
}
return NULL;
}
{
}
{
}
struct fts_tokenizer *parent,
const char *const *settings,
struct fts_tokenizer **tokenizer_r,
const char **error_r)
{
*tokenizer_r = NULL;
return -1;
}
}
*tokenizer_r = tok;
return 0;
}
{
}
{
return;
}
static int
{
int ret = 0;
if (tok->prev_reply_finished) {
/* whole new data */
} else {
/* continuing previous data */
}
if (ret > 0) {
} else if (ret == 0) {
/* we need a new data block */
}
return ret;
}
{
}
{
int ret;
switch (tok->parent_state) {
break;
tok->parent_state++;
/* fall through */
if (ret != 0)
break;
tok->parent_state++;
/* fall through */
if (ret != 0)
break;
/* we're finished sending this token to parent tokenizer.
see if our own tokenizer has more tokens available */
default:
i_unreached();
}
/* we must not be returning empty tokens */
return ret;
}
const char **error_r)
{
}