The R Project SVN R

Rev

Rev 41894 | Rev 41944 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 41894 Rev 41928
Line 1437... Line 1437...
1437
    findcontext(CTXT_FUNCTION, rho, result);
1437
    findcontext(CTXT_FUNCTION, rho, result);
1438
}
1438
}
1439
 
1439
 
1440
static void vsignalError(SEXP call, const char *format, va_list ap)
1440
static void vsignalError(SEXP call, const char *format, va_list ap)
1441
{
1441
{
-
 
1442
    char localbuf[BUFSIZE];
1442
    SEXP list, oldstack;
1443
    SEXP list, oldstack;
1443
 
1444
 
1444
    oldstack = R_HandlerStack;
1445
    oldstack = R_HandlerStack;
-
 
1446
    Rvsnprintf(localbuf, BUFSIZE - 1, format, ap);
1445
    while ((list = findSimpleErrorHandler()) != R_NilValue) {
1447
    while ((list = findSimpleErrorHandler()) != R_NilValue) {
1446
	char *buf = errbuf;
1448
	char *buf = errbuf;
1447
	SEXP entry = CAR(list);
1449
	SEXP entry = CAR(list);
1448
	R_HandlerStack = CDR(list);
1450
	R_HandlerStack = CDR(list);
-
 
1451
	strncpy(buf, localbuf, BUFSIZE - 1);
1449
	Rvsnprintf(buf, BUFSIZE - 1, format, ap);
1452
	/*	Rvsnprintf(buf, BUFSIZE - 1, format, ap);*/
1450
	buf[BUFSIZE - 1] = 0;
1453
	buf[BUFSIZE - 1] = 0;
1451
	if (IS_CALLING_ENTRY(entry)) {
1454
	if (IS_CALLING_ENTRY(entry)) {
1452
	    if (ENTRY_HANDLER(entry) == R_RestartToken)
1455
	    if (ENTRY_HANDLER(entry) == R_RestartToken)
1453
		return; /* go to default error handling; do not reset stack */
1456
		return; /* go to default error handling; do not reset stack */
1454
	    else {
1457
	    else {