List    history = GrouperShell.getHistory(i);  if (idx == -2) { idx = history.size() - 2;
GrouperShell.setOurCommand(i, false); Object obj = i.eval(cmd);  if (!GrouperShell.isDevel(i)) { p.pp(i, obj);
  protected static boolean eval(Interpreter i, int idx)     throws  GrouperShellException  {    try {      List    history = GrouperShell.getHistory(i);      // An ugly way of getting the last command      if (idx == -2) {          idx = history.size() - 2;      }      String cmd = (String) history.get(idx);      i.eval(cmd);      return true;    }    catch (ArrayIndexOutOfBoundsException eAIOOB) {      GrouperShell.error(i, eAIOOB, E.OUTOFBOUNDS);    }    catch (bsh.EvalError eBEE)                    {      GrouperShell.error(i, eBEE);    }    catch (IndexOutOfBoundsException eIOOB) {      GrouperShell.error(i, eIOOB, E.OUTOFBOUNDS);    }    return false;  } // protected static boolean eval(i, idx)