#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void chomp(char *buffer, int length) {
	char *ref = buffer;
	for (ref += length; ref != buffer; ref--) {
	       	if ((*ref) == '\n' || (*ref) == '\r') {
			(*ref) = '\0';
		} else if ((*ref) != '\0') {
			break;
		}
	}
}

/* FIXME: please rewrite this routine, its bad! */
int contains(char *buffer, char *pattern) {
	int length = strlen(buffer);
	int patlen = strlen(pattern);
	int pos = 0;
	while((*(buffer + pos)) != '\0' && pos < (length + 1)) {
		if(tolower(*(buffer + pos)) == tolower((*pattern))) {
			if(strncasecmp((buffer + pos),pattern,patlen) == 0) {
				return 1;
			} else {
				++pos;
			}
		} else {
			++pos;
		}
	}
	return 0;
}

char *word(char *data, int pos) {
	char *begin;
	char *end;
	char *nword;
	int i;
	for (i = 1; i < pos; ++i) {
		while(isspace(*data) && (*data) != '\0') {
			++data;
		}
		while(!isspace(*data) && (*data) != '\0') {
			++data;
		}
	}
	while(isspace(*data) && (*data) != '\0') {
		++data;
	}
	begin = data;
	while(!isspace(*data) && (*data) != '\0') {
		++data;
	}
	end = data;
	i = (end - begin);
	nword = malloc(i + 1);
	if (i > 0) {
		strncpy(nword, begin, i);
	}
	(*(nword + i)) = '\0';
	fprintf(stderr,"\tWord:%s\n",nword);
	return nword;
}
