diff --git a/OpenSim/Framework/Console/ConsoleBase.cs b/OpenSim/Framework/Console/ConsoleBase.cs index bd19800aa0..1f880625f2 100644 --- a/OpenSim/Framework/Console/ConsoleBase.cs +++ b/OpenSim/Framework/Console/ConsoleBase.cs @@ -799,16 +799,25 @@ namespace OpenSim.Framework.Console } } - private void ContextHelp() + private bool ContextHelp() { string[] words = Parser.Parse(cmdline.ToString()); - string[] opts = Commands.FindNextOption(words, cmdline.ToString().EndsWith(" ")); + bool trailingSpace = cmdline.ToString().EndsWith(" "); + + // Allow ? through while typing a URI + // + if (words.Length > 0 && words[words.Length-1].StartsWith("http") && !trailingSpace) + return false; + + string[] opts = Commands.FindNextOption(words, trailingSpace); if (opts[0].StartsWith("Command help:")) Output(opts[0]); else Output(String.Format("Options: {0}", String.Join(" ", opts))); + + return true; } public void Prompt() @@ -923,8 +932,8 @@ namespace OpenSim.Framework.Console if (c == '?' && isCommand) { - ContextHelp(); - continue; + if (ContextHelp()) + continue; } cmdline.Insert(cp, c);