Merge branch 'master' into bigmerge

avinationmerge
Melanie 2011-11-10 23:03:50 +00:00
commit 4939d99b57
4 changed files with 58 additions and 19 deletions

View File

@ -31,6 +31,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using System.Timers; using System.Timers;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
@ -56,7 +57,16 @@ namespace OpenSim
protected bool m_gui = false; protected bool m_gui = false;
protected string m_consoleType = "local"; protected string m_consoleType = "local";
protected uint m_consolePort = 0; protected uint m_consolePort = 0;
protected string m_custom_prompt;
/// <summary>
/// Prompt to use for simulator command line.
/// </summary>
private string m_consolePrompt;
/// <summary>
/// Regex for parsing out special characters in the prompt.
/// </summary>
private Regex m_consolePromptRegex = new Regex(@"([^\\])\\(\w)", RegexOptions.Compiled);
private string m_timedScript = "disabled"; private string m_timedScript = "disabled";
private Timer m_scriptTimer; private Timer m_scriptTimer;
@ -111,7 +121,7 @@ namespace OpenSim
Util.FireAndForgetMethod = asyncCallMethod; Util.FireAndForgetMethod = asyncCallMethod;
stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 15); stpMaxThreads = startupConfig.GetInt("MaxPoolThreads", 15);
m_custom_prompt = startupConfig.GetString("custom_prompt", "Region"); m_consolePrompt = startupConfig.GetString("console_prompt", @"Region (\R) ");
} }
if (Util.FireAndForgetMethod == FireAndForgetMethod.SmartThreadPool) if (Util.FireAndForgetMethod == FireAndForgetMethod.SmartThreadPool)
@ -835,7 +845,22 @@ namespace OpenSim
string regionName = (m_sceneManager.CurrentScene == null ? "root" : m_sceneManager.CurrentScene.RegionInfo.RegionName); string regionName = (m_sceneManager.CurrentScene == null ? "root" : m_sceneManager.CurrentScene.RegionInfo.RegionName);
MainConsole.Instance.Output(String.Format("Currently selected region is {0}", regionName)); MainConsole.Instance.Output(String.Format("Currently selected region is {0}", regionName));
m_console.DefaultPrompt = String.Format("{0} ({1}) ", m_custom_prompt, regionName);
// m_log.DebugFormat("Original prompt is {0}", m_consolePrompt);
string prompt = m_consolePrompt;
// Replace "\R" with the region name
// Replace "\\" with "\"
prompt = m_consolePromptRegex.Replace(prompt, m =>
{
// m_log.DebugFormat("Matched {0}", m.Groups[2].Value);
if (m.Groups[2].Value == "R")
return m.Groups[1].Value + regionName;
else
return m.Groups[0].Value;
});
m_console.DefaultPrompt = prompt;
m_console.ConsoleScene = m_sceneManager.CurrentScene; m_console.ConsoleScene = m_sceneManager.CurrentScene;
} }

View File

@ -2119,6 +2119,10 @@ namespace OpenSim.Region.Framework.Scenes
//if ((RootPart.Flags & PrimFlags.TemporaryOnRez) != 0) //if ((RootPart.Flags & PrimFlags.TemporaryOnRez) != 0)
// return; // return;
// If we somehow got here to updating the SOG and its root part is not scheduled for update,
// check to see if the physical position or rotation warrant an update.
if (m_rootPart.UpdateFlag == UpdateRequired.NONE)
{
bool UsePhysics = ((RootPart.Flags & PrimFlags.Physics) != 0); bool UsePhysics = ((RootPart.Flags & PrimFlags.Physics) != 0);
if (UsePhysics && !AbsolutePosition.ApproxEquals(lastPhysGroupPos, 0.02f)) if (UsePhysics && !AbsolutePosition.ApproxEquals(lastPhysGroupPos, 0.02f))
@ -2132,6 +2136,7 @@ namespace OpenSim.Region.Framework.Scenes
m_rootPart.UpdateFlag = UpdateRequired.TERSE; m_rootPart.UpdateFlag = UpdateRequired.TERSE;
lastPhysGroupRot = GroupRotation; lastPhysGroupRot = GroupRotation;
} }
}
SceneObjectPart[] parts = m_parts.GetArray(); SceneObjectPart[] parts = m_parts.GetArray();
for (int i = 0; i < parts.Length; i++) for (int i = 0; i < parts.Length; i++)

View File

@ -36,6 +36,14 @@
[Startup] [Startup]
;# {ConsolePrompt} {} {ConsolePrompt} {} "Region (\R) "
;; Console prompt
;; Certain special characters can be used to customize the prompt
;; Currently, these are
;; \R - substitute region name
;; \\ - substitute \
; ConsolePrompt = "Region (\R) "
;# {save_crashes} {} {Save crashes to disk?} {true false} false ;# {save_crashes} {} {Save crashes to disk?} {true false} false
;; Set this to true if you want to log crashes to disk ;; Set this to true if you want to log crashes to disk
;; this can be useful when submitting bug reports. ;; this can be useful when submitting bug reports.
@ -230,12 +238,6 @@
;; by scripts have changed. ;; by scripts have changed.
; DeleteScriptsOnStartup = true ; DeleteScriptsOnStartup = true
;; Custom prompt
;; This value replaces the word "Region" in console prompt
;; (usualy "Region (regionName) # "
;; Useful only if you have to monitor serveral servers
; custom_prompt = "MyServer1"
[SMTP] [SMTP]
;; The SMTP server enabled the email module to send email to external ;; The SMTP server enabled the email module to send email to external
;; destinations. ;; destinations.

View File

@ -3,6 +3,13 @@
[Startup] [Startup]
; Console prompt
; Certain special characters can be used to customize the prompt
; Currently, these are
; \R - substitute region name
; \\ - substtitue \
ConsolePrompt = "Region (\R) "
; Set this to true if you want to log crashes to disk ; Set this to true if you want to log crashes to disk
; this can be useful when submitting bug reports. ; this can be useful when submitting bug reports.
; However, this will only log crashes within OpenSimulator that cause the entire program to exit ; However, this will only log crashes within OpenSimulator that cause the entire program to exit