AltaVista-SDKLinguistics

 view release on metacpan or  search on metacpan

SDKLinguistics.xs  view on Meta::CPAN

#ifdef __cplusplus
extern "C" {
#endif
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#ifdef __cplusplus
}
#endif

#include <avsl.h>

MODULE = AltaVista::SDKLinguistics		PACKAGE = AltaVista::SDKLinguistics		


void *
avsl_thesaurus_init(config)
	char *config
	CODE:
	{
	void *hdl = 0;
	if (avsl_thesaurus_init(config, &hdl) != 0)
		{
		printf("avsl_thesaurus_init(config = %s) FAILED with error = \"%s\"\n",
			config, avsl_thesaurus_getlasterr());
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		RETVAL = hdl;
		}
	}
	OUTPUT:
	RETVAL

char *
avsl_thesaurus_get(hdl, word, language, separator = ' ')
	void *hdl
	char *word
	char *language
	char separator
	
	CODE:
	{
	char results[5000];
	int found;
	int returned;
	int totalbytes = 0;
	int i;
	char *p, *returnbuf;
	int len;
	int err;
	
	err = avsl_thesaurus_get(hdl, word, language, results, sizeof(results), &found, &returned);
	if (err != AVSL_OK)
		{
		printf("avsl_thesaurus_get(word=%s, language = %s) FAILED, error = %s\n", word, language, avs_errmsg(err));
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		if (returned != 0)
			{
			for (i = 0, p = results ; i < returned ; i++)
				{
				len = strlen(p) + 1;
				p += len;
				totalbytes += len;
				}
	
			returnbuf = calloc(totalbytes, 1);
			memcpy(returnbuf, results, totalbytes);
			for (i = 0 ; i < totalbytes - 1 ; i++)
				if (returnbuf[i] == '\0') returnbuf[i] = separator;

			RETVAL = returnbuf;
			}
		else
			{
			RETVAL = 0;
			}
		}
	}
	
	OUTPUT:
	RETVAL


int
avsl_thesaurus_close(hdl)
	void *hdl
	CODE:
	{
	int err;

	err = avsl_thesaurus_close(hdl);
	if (err != AVSL_OK)
		{
		printf("avsl_thesaurus_close() FAILED, error = %s\n", avs_errmsg(err));
		fflush(stdout);
		}

	RETVAL = err;
	}
	
	OUTPUT:
	RETVAL







void *
avsl_phrase_init(config)
	char *config
	CODE:
	{
	void *hdl = 0;
	if (avsl_phrase_init(config, &hdl) != 0)
		{
		printf("avsl_phrase_init(config = %s) FAILED with error = \"%s\"\n",
			config, avsl_phrase_getlasterr());
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		RETVAL = hdl;
		}
	}
	OUTPUT:
	RETVAL

char *
avsl_phrase_get(hdl, word, language, separator = ':')
	void *hdl
	char *word
	char *language
	char separator

	CODE:
	{
	char results[5000];
	int found;
	int returned;
	int totalbytes = 0;
	int i;
	char *p, *returnbuf;
	int len;
	int err;
	
	err = avsl_phrase_get(hdl, word, language, results, sizeof(results), &found, &returned);
	if (err != AVSL_OK)
		{
		printf("avsl_phrase_get(word=%s, language = %s) FAILED, error = %s\n",
			word, language, avs_errmsg(err));
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		if (returned != 0)
			{
			for (i = 0, p = results ; i < returned ; i++)
				{
				len = strlen(p) + 1;
				p += len;
				totalbytes += len;
				}
	
			returnbuf = calloc(totalbytes, 1);
			memcpy(returnbuf, results, totalbytes);
			for (i = 0 ; i < totalbytes - 1 ; i++)
				if (returnbuf[i] == '\0') returnbuf[i] = separator;

			RETVAL = returnbuf;
			}
		else
			{
			RETVAL = 0;
			}
		}
	}
	
	OUTPUT:
	RETVAL


int
avsl_phrase_close(hdl)
	void *hdl
	CODE:
	{
	int err;

	err = avsl_phrase_close(hdl);
	if (err != AVSL_OK)
		{
		printf("avsl_phrase_close() FAILED, error = %s\n", avs_errmsg(err));
		fflush(stdout);
		}

	RETVAL = err;
	}
	
	OUTPUT:
	RETVAL



void *
avsl_stem_init(package, tags)
	char *package
	char *tags
	CODE:
	{
	void *hdl = 0;
	if (avsl_stem_init(package, tags, &hdl) != 0)
		{
		printf("avsl_stem_init(package = %s, tags = %s) FAILED with error = \"%s\"\n",
			package, tags, avsl_stem_getlasterr());
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		RETVAL = hdl;
		}
	}
	OUTPUT:
	RETVAL

char *
avsl_stem_get(hdl, word, language, separator = ' ')
	void *hdl
	char *word
	char *language
	char separator

	CODE:
	{
	char results[5000];
	int found;
	int returned;
	int totalbytes = 0;
	int i;
	char *p, *returnbuf;
	int len;
	int err;
	
	err = avsl_stem_get(hdl, word, language, results, sizeof(results), &found, &returned);
	if (err != AVSL_OK)
		{
		printf("avsl_stem_get(word=%s, language = %s) FAILED, err = %s\n",
			word, language, avs_errmsg(err));
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		if (returned != 0)
			{
			for (i = 0, p = results ; i < returned ; i++)
				{
				len = strlen(p) + 1;
				p += len;
				totalbytes += len;
				}
	
			returnbuf = calloc(totalbytes, 1);
			memcpy(returnbuf, results, totalbytes);
			for (i = 0 ; i < totalbytes - 1 ; i++)
				if (returnbuf[i] == '\0') returnbuf[i] = separator;

			RETVAL = returnbuf;
			}
		else
			{
			RETVAL = 0;
			}
		}
	}
	
	OUTPUT:
	RETVAL


int
avsl_stem_close(hdl)
	void *hdl
	CODE:
	{
	int err;

	err = avsl_stem_close(hdl);
	if (err != AVSL_OK)
		{
		printf("avsl_stem_close() FAILED, error = %s\n", avs_errmsg(err));
		fflush(stdout);
		}

	RETVAL = err;
	}
	
	OUTPUT:
	RETVAL


void *
avsl_spell_init(config)
	char *config
	CODE:
	{
	void *hdl = 0;
	if (avsl_spell_init(config, &hdl) != 0)
		{
		printf("avsl_spell_init(config = %s) FAILED with error = \"%s\"\n",
			config, avsl_spell_getlasterr());
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		RETVAL = hdl;
		}
	}
	OUTPUT:
	RETVAL


char *
avsl_spellcheck_get(hdl, word, language, separator = ' ')
	void *hdl
	char *word
	char *language
	char separator

	CODE:
	{
	char results[5000];
	int found;
	int returned;
	int totalbytes = 0;
	int i;
	char *p, *returnbuf;
	int len;
	int err;
	
	err = avsl_spellcheck_get(hdl, word, language, results, sizeof(results), &found, &returned);
	if (err != AVSL_OK)
		{
		printf("avsl_spellcheck_get(word=%s, language = %s) FAILED, error = %s\n",
			word, language, avs_errmsg(err));
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		if (returned != 0)
			{
			for (i = 0, p = results ; i < returned ; i++)
				{
				len = strlen(p) + 1;
				p += len;
				totalbytes += len;
				}
	
			returnbuf = calloc(totalbytes, 1);
			memcpy(returnbuf, results, totalbytes);
			for (i = 0 ; i < totalbytes - 1 ; i++)
				if (returnbuf[i] == '\0') returnbuf[i] = separator;

			RETVAL = returnbuf;
			}
		else
			{
			RETVAL = 0;
			}
		}
	}
	
	OUTPUT:
	RETVAL

char *
avsl_spellcorrection_get(hdl, word, language, separator = ' ')
	void *hdl
	char *word
	char *language
	char separator

	CODE:
	{
	char results[5000];
	int found;
	int returned;
	int totalbytes = 0;
	int i;
	char *p, *returnbuf;
	int len;
	int err;
	
	err = avsl_spellcorrection_get(hdl, word, language, results, sizeof(results), &found, &returned);
	if (err != AVSL_OK)
		{
		printf("avsl_spellcorrection_get(word=%s, language = %s) FAILED, error = %s\n",
			word, language, avs_errmsg(err));
		fflush(stdout);
		RETVAL = 0;
		}
	else
		{
		if (returned != 0)
			{
			for (i = 0, p = results ; i < returned ; i++)
				{
				len = strlen(p) + 1;
				p += len;
				totalbytes += len;
				}
	
			returnbuf = calloc(totalbytes, 1);
			memcpy(returnbuf, results, totalbytes);
			for (i = 0 ; i < totalbytes - 1 ; i++)
				if (returnbuf[i] == '\0') returnbuf[i] = separator;

			RETVAL = returnbuf;
			}
		else
			{
			RETVAL = 0;
			}
		}
	}
	
	OUTPUT:
	RETVAL


int
avsl_spell_close(hdl)
	void *hdl
	CODE:
	{
	int err;

	err = avsl_spell_close(hdl);
	if (err != AVSL_OK)
		{
		printf("avsl_spell_close() FAILED, error = %s\n", avs_errmsg(err));
		fflush(stdout);
		}

	RETVAL = err;
	}
	
	OUTPUT:
	RETVAL










( run in 1.976 second using v1.01-cache-2.11-cpan-a49fcb8fa48 )