#ifndef RINTUTIL_H
#define RINTUTIL_H

char* strsxp_elt_to_charptr(SEXP strsexp, size_t elt) {
	int n;
	size_t total_len;
	const char* temp;
	char* str;

	n = LENGTH(strsexp);
	/* TODO die unless 0 <= elt < n */
	temp = CHAR(STRING_ELT(strsexp, elt));

	total_len = strlen( temp );

	Newx(str, total_len + 1, char); /* TODO check for str != NULL */

	strncpy(str, temp, total_len);

	str[total_len] = '\0';

	return str;
}

char* strsxp_to_charptr(SEXP strsexp) {
	return strsxp_elt_to_charptr(strsexp, 0);
}

#endif /* RINTUTIL_H */