diff options
author | Justin Clark-Casey (justincc) | 2011-11-10 22:56:13 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2011-11-10 22:56:13 +0000 |
commit | 2d4ac6288dab1b12997c54cdc93d71ac5d0be8fc (patch) | |
tree | fd5b0c45ffaa0405d4682a6a63609a14984f37d4 /OpenSim/Region/Application | |
parent | convert tabs from commit 3758306 to spaces (diff) | |
download | opensim-SC-2d4ac6288dab1b12997c54cdc93d71ac5d0be8fc.zip opensim-SC-2d4ac6288dab1b12997c54cdc93d71ac5d0be8fc.tar.gz opensim-SC-2d4ac6288dab1b12997c54cdc93d71ac5d0be8fc.tar.bz2 opensim-SC-2d4ac6288dab1b12997c54cdc93d71ac5d0be8fc.tar.xz |
Alter commit 3758306 to allow region name to be substituted within a region console prompt
This is to allow broader subsitution in the future. Currently, the only substitions are \R (for region name) and \\ (for a single backslash)
e.g. "Region (\R) " is the current and continuing default prompt
This renames custom_prompt in [Startup] to ConsolePrompt
Diffstat (limited to 'OpenSim/Region/Application')
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 9fe284f..beb75a8 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -31,6 +31,7 @@ using System.Collections.Generic; | |||
31 | using System.IO; | 31 | using System.IO; |
32 | using System.Reflection; | 32 | using System.Reflection; |
33 | using System.Text; | 33 | using System.Text; |
34 | using System.Text.RegularExpressions; | ||
34 | using System.Timers; | 35 | using System.Timers; |
35 | using log4net; | 36 | using log4net; |
36 | using Nini.Config; | 37 | using Nini.Config; |
@@ -56,7 +57,16 @@ namespace OpenSim | |||
56 | protected bool m_gui = false; | 57 | protected bool m_gui = false; |
57 | protected string m_consoleType = "local"; | 58 | protected string m_consoleType = "local"; |
58 | protected uint m_consolePort = 0; | 59 | protected uint m_consolePort = 0; |
59 | protected string m_custom_prompt; | 60 | |
61 | /// <summary> | ||
62 | /// Prompt to use for simulator command line. | ||
63 | /// </summary> | ||
64 | private string m_consolePrompt; | ||
65 | |||
66 | /// <summary> | ||
67 | /// Regex for parsing out special characters in the prompt. | ||
68 | /// </summary> | ||
69 | private Regex m_consolePromptRegex = new Regex(@"([^\\])\\(\w)", RegexOptions.Compiled); | ||
60 | 70 | ||
61 | private string m_timedScript = "disabled"; | 71 | private string m_timedScript = "disabled"; |
62 | private Timer m_scriptTimer; | 72 | private Timer m_scriptTimer; |
@@ -111,7 +121,7 @@ namespace OpenSim | |||
111 | Util.FireAndForgetMethod = asyncCallMethod; | 121 | Util.FireAndForgetMethod = asyncCallMethod; |
112 | 122 | ||
113 | stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 15); | 123 | stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 15); |
114 | m_custom_prompt = startupConfig.GetString("custom_prompt", "Region"); | 124 | m_consolePrompt = startupConfig.GetString("console_prompt", @"Region (\R) "); |
115 | } | 125 | } |
116 | 126 | ||
117 | if (Util.FireAndForgetMethod == FireAndForgetMethod.SmartThreadPool) | 127 | if (Util.FireAndForgetMethod == FireAndForgetMethod.SmartThreadPool) |
@@ -835,7 +845,22 @@ namespace OpenSim | |||
835 | 845 | ||
836 | string regionName = (m_sceneManager.CurrentScene == null ? "root" : m_sceneManager.CurrentScene.RegionInfo.RegionName); | 846 | string regionName = (m_sceneManager.CurrentScene == null ? "root" : m_sceneManager.CurrentScene.RegionInfo.RegionName); |
837 | MainConsole.Instance.Output(String.Format("Currently selected region is {0}", regionName)); | 847 | MainConsole.Instance.Output(String.Format("Currently selected region is {0}", regionName)); |
838 | m_console.DefaultPrompt = String.Format("{0} ({1}) ", m_custom_prompt, regionName); | 848 | |
849 | // m_log.DebugFormat("Original prompt is {0}", m_consolePrompt); | ||
850 | string prompt = m_consolePrompt; | ||
851 | |||
852 | // Replace "\R" with the region name | ||
853 | // Replace "\\" with "\" | ||
854 | prompt = m_consolePromptRegex.Replace(prompt, m => | ||
855 | { | ||
856 | // m_log.DebugFormat("Matched {0}", m.Groups[2].Value); | ||
857 | if (m.Groups[2].Value == "R") | ||
858 | return m.Groups[1].Value + regionName; | ||
859 | else | ||
860 | return m.Groups[0].Value; | ||
861 | }); | ||
862 | |||
863 | m_console.DefaultPrompt = prompt; | ||
839 | m_console.ConsoleScene = m_sceneManager.CurrentScene; | 864 | m_console.ConsoleScene = m_sceneManager.CurrentScene; |
840 | } | 865 | } |
841 | 866 | ||