On Mon, 12 Feb 2007, [EMAIL PROTECTED] wrote: > In package A I have askForString(), which asks the user for a string. > Also in package A I have defined ssh(), which calls askForString(). > > Package B has package A as a prerequisite. > > In package B I redefine askForString() to take advantage of a nicer user > interface made available by B, namely the Emacs mini-buffer prompt. > > Packages B and A are both on the search path, with B ahead of A. If I > call askForString() at the command prompt, I get the version from B. > But the version used by ssh() depends on whether or not package A has a > namespace. If so, ssh() (defined in A) always uses the A version of > askForString(). How can I get ssh() to use the B version of > askForString()? Or am I going about this all wrong?
That is one of the main purposes of a namespace, but you can defeat it. In the scenario you paint, B::askForString() should work (whether or not B has a namespace). If (I am guessing) you want the version that would be gotten at the top level (the > prompt) whether or not B is in use, use get("askForString", pos=1)(). -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel