jbrzusto at fastmail.fm
2009-Apr-09 17:40 UTC
[Rd] corrected patch: debugger should respect deparse.max.lines (PR#13648)
Full_Name: John Brzustowski Version: 2.8.1 OS: linux Submission from: (NULL) (67.71.250.146) My apologies - there was a bug in the patch I submitted on this topic earlier today. diff -cr R-2.8.1/src/library/base/man/options.Rd R-2.8.1-patched/src/library/base/man/options.Rd *** R-2.8.1/src/library/base/man/options.Rd 2008-11-12 04:23:36.000000000 -0500 --- R-2.8.1-patched/src/library/base/man/options.Rd 2009-04-09 10:12:31.000000000 -0400 *************** *** 77,84 **** initialized (see \code{\link{Startup}}).} \item{\code{deparse.max.lines}:}{controls the number of lines used ! when deparsing in \code{\link{traceback}} and ! \code{\link{browser}}. Initially unset, and only used if set to a positive integer.} \item{\code{digits}:}{controls the number of digits to print when --- 77,85 ---- initialized (see \code{\link{Startup}}).} \item{\code{deparse.max.lines}:}{controls the number of lines used ! when deparsing in \code{\link{traceback}}, \code{\link{browser}}, ! and upon entry to a function whose debugging flag is set. ! Initially unset, and only used if set to a positive integer.} \item{\code{digits}:}{controls the number of digits to print when diff -cr R-2.8.1/src/main/eval.c R-2.8.1-patched/src/main/eval.c *** R-2.8.1/src/main/eval.c 2008-10-05 18:05:02.000000000 -0400 --- R-2.8.1-patched/src/main/eval.c 2009-04-09 09:45:03.000000000 -0400 *************** *** 526,531 **** --- 526,532 ---- volatile SEXP newrho; SEXP f, a, tmp; RCNTXT cntxt; + int itmp; /* formals = list of formal parameters */ /* actuals = values to be bound to formals */ *************** *** 609,615 **** --- 610,621 ---- SET_DEBUG(newrho, DEBUG(op)); if (DEBUG(op)) { Rprintf("debugging in: "); + + itmp = asInteger(GetOption(install("deparse.max.lines"), R_BaseEnv)); + if(itmp != NA_INTEGER && itmp > 0) R_BrowseLines = itmp; PrintValueRec(call,rho); + R_BrowseLines = 0; + /* Is the body a bare symbol (PR#6804) */ if (!isSymbol(body) & !isVectorAtomic(body)){ /* Find out if the body is function with only one statement. */