# R-alpha: plot(1); axis(1, at=10) >>> Seg.fault -- and a patch

Martin Maechler Martin Maechler <maechler@stat.math.ethz.ch>
Wed, 21 May 97 13:00:00 +0200

```This problem has been mentioned  by Arne Kovac <maak@stats.bris.ac.uk>  on May 9-10.
The patch is really a replacement of 'axis' in  RHOME/src/library/base/funs/

It contains the fixes which where proposed Arne Kovac
and fixes (all?) the errors he/she (?) reported on May 9.

"axis" <-
function (which, at, labels = TRUE, ...)
{
if (which%%2 == 1) {
axp <- par("xaxp")
usr <- par("usr")[1:2]
log <- par("xlog")
}
else {
axp <- par("yaxp")
usr <- par("usr")[3:4]
log <- par("ylog")
}
if (missing(at)) {
if (log) {
if (usr[2] < usr[1] + 1) {
at <- seq(axp[1], axp[2], length = axp[3] + 1)
}
else {
p1 <- ceiling(min(usr))
p2 <- floor(max(usr))
if (p2 - p1 < 2) {
at <- c(1, 2, 5) * 10^rep(p1:p2, rep(3, p2 - p1 + 1))
at <- at[10^usr[1] <= at & at < 10^usr[2]]
}
else at <- 10^seq(p1, p2, by = 1)
}
}
else at <- seq(axp[1], axp[2], length = axp[3] + 1)
ind <- rep(TRUE, length(at))
}
else {
ind <- (usr[1] <= at & at <= usr[2])
}
if (is.logical(labels)) {
if (labels) {
if (!log)
at[abs(at/(max(at) - min(at))) < 0.001] <- 0
labels <- format(at, trim = T)
}
else labels <- rep("", length(at))
}
else labels <- format(labels, trim = T)
.Internal(axis(which, as.double(at[ind]), labels[ind], ...))
}

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

```