Wolfram Fischer - Z/I/M
2003-Feb-04 17:38 UTC
[Rd] traceback {base}: new arguments: file, strip, width
I propose to add to traceback three new arguments: - file : filename for output - strip: strip each line of backtraced code to ``width'' characters - width: the length of the stripped output text (default 76) Below you find a proposal for the code changes. Wolfram traceback <- function( #--- NEW --- file = "", strip = FALSE, width = 76 #--- ){ if (exists(".Traceback", env = .GlobalEnv)) .Traceback <- get(".Traceback", env = .GlobalEnv) else .Traceback <- NULL if (is.null(.Traceback) || length(.Traceback) == 0) cat("No traceback available\n") else{ vib.append <- F n <- length(.Traceback) for (i in 1:n) { label <- paste(n - i + 1, ": ", sep = "") #--- NEW --- if( strip ){ cat( file=file, paste(label, substr( .Traceback[[i]][1] , 1, width), sep = "" ) , sep = "\n", append=vib.append ) }else{ #--- if ((m <- length(.Traceback[[i]])) > 1) label <- c(label, rep(substr(" ", 1, nchar(label)), m - 1)) cat( #--- NEW --- file=file, #--- paste(label, .Traceback[[i]], sep = ""), sep = "\n",append=vib.append) #--- NEW --- } #--- vib.append <- T } } invisible() }