Exemple #1
0
static FASTQ_loaderExt new_FASTQ_loaderExt(SEXP ans, SEXP lkup)
{
	FASTQ_loaderExt loader_ext;

	loader_ext.ans_names_buf =
		new_CharAEAE(_get_XStringSet_length(ans), 0);
	loader_ext.ans_holder = hold_XVectorList(ans);
	if (lkup == R_NilValue) {
		loader_ext.lkup = NULL;
		loader_ext.lkup_length = 0;
	} else {
		loader_ext.lkup = INTEGER(lkup);
		loader_ext.lkup_length = LENGTH(lkup);
	}
	return loader_ext;
}
Exemple #2
0
/* --- .Call ENTRY POINT ---
 * Arguments are the same as for XString_match_pattern() except for:
 *   subject: XStringSet object.
 */
SEXP XStringSet_vmatch_pattern(SEXP pattern, SEXP subject,
		SEXP max_mismatch, SEXP min_mismatch,
		SEXP with_indels, SEXP fixed,
		SEXP algorithm, SEXP ms_mode)
{
	Chars_holder P, S_elt;
	XStringSet_holder S;
	int S_length, j;
	const char *algo;

	P = hold_XRaw(pattern);
	S = _hold_XStringSet(subject);
	S_length = _get_XStringSet_length(subject);
	algo = CHAR(STRING_ELT(algorithm, 0));
	_init_match_reporting(CHAR(STRING_ELT(ms_mode, 0)), S_length);
	for (j = 0; j < S_length; j++) {
		S_elt = _get_elt_from_XStringSet_holder(&S, j);
		_set_active_PSpair(j);
		_match_pattern_XString(&P, &S_elt,
			max_mismatch, min_mismatch, with_indels, fixed,
			algo);
	}
	return _MatchBuf_as_SEXP(_get_internal_match_buf(), R_NilValue);
}