\HeaderA{fixPre1.8}{Fix Objects Saved from R Versions Previous to 1.8}{fixPre1.8}
\keyword{classes}{fixPre1.8}
\keyword{programming}{fixPre1.8}
\begin{Description}\relax
Beginning with R version 1.8.0, the class of an object contains the
identification of the package in which the class is defined.  The
function \code{fixPre1.8} fixes and re-assigns objects missing that information
(typically because they were loaded from a file saved with a previous
version of R.)
\end{Description}
\begin{Usage}
\begin{verbatim}
fixPre1.8(names, where)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{names}] Character vector of the names of all the objects to be
fixed and re-assigned.
\item[\code{where}] The environment from which to look for the objects, and
for class definitions.  Defaults to the top environment of the
call to \code{fixPre1.8}, the global environment if the function
is used interactively.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
The named object will be saved where it was found.  Its class
attribute will be changed to the full form required by R 1.8;
otherwise, the contents of the object should be unchanged.

Objects will be fixed and re-assigned only if all the following
conditions hold:
\Enumerate{
\item The named object exists.
\item It is from a defined class (not a basic datatype which
has no actual class attribute).
\item The object appears to be from an earlier version of R.
\item The class is currently defined.
\item The object is consistent with the current class definition.
}
If any condition except the second fails, a warning message is
generated.

Note that \code{fixPre1.8} currently fixes \emph{only} the change in
class attributes.  In particular, it will not fix binary versions of
packages installed with earlier versions of R if these use
incompatible features.  Such packages must be re-installed from
source, which is the wise approach always when major version changes
occur in R.
\end{Details}
\begin{Value}
The names of all the objects that were in fact re-assigned.
\end{Value}

