Пример #1
0
void test_plat_path_cannot_find()
{
	int ret;
	char output[ PATH_MAX ];

	ret = find_path_by_files(
			CHEWING_DATA_PREFIX "_no_such_path_1" SEARCH_PATH_SEP
			CHEWING_DATA_PREFIX "_no_such_path_2",
			FILES, output, sizeof( output ) );

	ok( ret != 0, "find_path_by_files shall not return 0" );
}
Пример #2
0
void test_plat_path_found()
{
	int ret;
	char output[ PATH_MAX ];

	ret = find_path_by_files(
		CHEWING_DATA_PREFIX "_no_such_path" SEARCH_PATH_SEP
		CHEWING_DATA_PREFIX,
		FILES, output, sizeof( output ) );

	ok( ret == 0, "find_path_by_files shall return 0" );
	ok( strcmp( output, CHEWING_DATA_PREFIX ) == 0,
		"output shall be " CHEWING_DATA_PREFIX );
}
Пример #3
0
CHEWING_API ChewingContext *chewing_new()
{
	ChewingContext *ctx;
	int ret;
	char search_path[PATH_MAX];
	char path[PATH_MAX];

	ctx = ALC( ChewingContext, 1 );
	if ( !ctx )
		goto error;

	ctx->output = ALC ( ChewingOutput, 1 );
	if ( !ctx->output )
		goto error;

	ctx->data = allocate_ChewingData();
	if ( !ctx->data )
		goto error;

	chewing_Reset( ctx );

	ret = get_search_path( search_path, sizeof( search_path ) );
	if ( ret )
		goto error;

	ret = find_path_by_files(
		search_path, DICT_FILES, path, sizeof( path ) );
	if ( ret )
		goto error;
	ret = InitDict( ctx->data, path );
	if ( ret )
		goto error;
	ret = InitTree( ctx->data, path );
	if ( ret )
		goto error;

	ret = InitHash( ctx->data );
	if ( !ret )
		goto error;

	ctx->cand_no = 0;

	ret = find_path_by_files(
		search_path, SYMBOL_TABLE_FILES, path, sizeof( path ) );
	if ( ret )
		goto error;
	ret = InitSymbolTable( ctx->data, path );
	if ( ret )
		goto error;

	ret = find_path_by_files(
		search_path, EASY_SYMBOL_FILES, path, sizeof( path ) );
	if ( ret )
		goto error;
	ret = InitEasySymbolInput( ctx->data, path );
	if ( ret )
		goto error;

	ret = find_path_by_files(
		search_path, PINYIN_FILES, path, sizeof( path ) );
	if ( ret )
		goto error;
	ret = InitPinyin( ctx->data, path );
	if ( !ret )
		goto error;

	return ctx;
error:
	chewing_delete( ctx );
	return NULL;
}