public string[] GetCurrentlyLoadedPackages()
{
string commandstring = "tmp <- search()";
_journal.WriteLine(commandstring);
_dispatcher.EvaluateToObject(commandstring, false);
// tmp contains packages and .GlbalEnv etc..
object o = _dispatcher.EvaluateToObject("tmp", true);
string[] allstuff = this.ObjectToStringArray(o);
int count = 0;
foreach (string s in allstuff) // counting packages in all the strings returned by search()
{
if (s.StartsWith("package:"))
count++;
}
string[] pkgs = new string[count];
int i = 0;
foreach (string s in allstuff)
{
if (s.StartsWith("package:"))
{
pkgs[i] = s.Replace("package:", string.Empty).Trim();
i++;
}
}
return pkgs;
}