I believe STRING_ELT() works even when pat is R_NilValue, so the first line "does the right thing" even if the first element does not exist. I think this is intentional and not a bug.
Other more knowledgeable people please correct me if I am wrong. [EMAIL PROTECTED] wrote: > In character.c within R 2.6.1, the function do_gsub contains the following > code: > > 1199 if (STRING_ELT(pat, 0) == NA_STRING) { > 1200 PROTECT(ans = allocVector(STRSXP, n)); > 1201 for(i = 0; i < n; i++) SET_STRING_ELT(ans, i, NA_STRING); > 1202 UNPROTECT(1); > 1203 return ans; > 1204 } > 1205 > 1206 if (length(pat) < 1 || length(rep) < 1) error(R_MSG_IA); > > Line 1206 checks that pat contains at least one element. However, line 1199 > has already attempted to access the first element. The check should surely > come first. > > Andrew Runnalls > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel