Fix http://opensimulator.org/mantis/view.php?id=4657 where OpenSim.Grid.UserServer.exe fails on startup if no previous config
probably appears to occur because mono 2.4.2.3 (and possibly later) erroneously returns a value of 0 for BufferWidth and BufferHeight in some circumstances0.6.9
parent
54cedfe432
commit
c77444a821
|
@ -105,14 +105,30 @@ namespace OpenSim.Framework.Console
|
||||||
int left = System.Console.CursorLeft;
|
int left = System.Console.CursorLeft;
|
||||||
|
|
||||||
if (left < 0)
|
if (left < 0)
|
||||||
|
{
|
||||||
System.Console.CursorLeft = 0;
|
System.Console.CursorLeft = 0;
|
||||||
else if (left >= System.Console.BufferWidth)
|
}
|
||||||
System.Console.CursorLeft = System.Console.BufferWidth - 1;
|
else
|
||||||
|
{
|
||||||
|
int bw = System.Console.BufferWidth;
|
||||||
|
|
||||||
|
// On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657)
|
||||||
|
if (bw > 0 && left >= bw)
|
||||||
|
System.Console.CursorLeft = bw - 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (top < 0)
|
if (top < 0)
|
||||||
|
{
|
||||||
top = 0;
|
top = 0;
|
||||||
if (top >= System.Console.BufferHeight)
|
}
|
||||||
top = System.Console.BufferHeight - 1;
|
else
|
||||||
|
{
|
||||||
|
int bh = System.Console.BufferHeight;
|
||||||
|
|
||||||
|
// On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657)
|
||||||
|
if (bh > 0 && top >= bh)
|
||||||
|
top = bh - 1;
|
||||||
|
}
|
||||||
|
|
||||||
System.Console.CursorTop = top;
|
System.Console.CursorTop = top;
|
||||||
|
|
||||||
|
@ -138,14 +154,29 @@ namespace OpenSim.Framework.Console
|
||||||
int top = System.Console.CursorTop;
|
int top = System.Console.CursorTop;
|
||||||
|
|
||||||
if (top < 0)
|
if (top < 0)
|
||||||
|
{
|
||||||
System.Console.CursorTop = 0;
|
System.Console.CursorTop = 0;
|
||||||
else if (top >= System.Console.BufferHeight)
|
}
|
||||||
System.Console.CursorTop = System.Console.BufferHeight - 1;
|
else
|
||||||
|
{
|
||||||
|
int bh = System.Console.BufferHeight;
|
||||||
|
// On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657)
|
||||||
|
if (bh > 0 && top >= bh)
|
||||||
|
System.Console.CursorTop = bh - 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (left < 0)
|
if (left < 0)
|
||||||
|
{
|
||||||
left = 0;
|
left = 0;
|
||||||
if (left >= System.Console.BufferWidth)
|
}
|
||||||
left = System.Console.BufferWidth - 1;
|
else
|
||||||
|
{
|
||||||
|
int bw = System.Console.BufferWidth;
|
||||||
|
|
||||||
|
// On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657)
|
||||||
|
if (bw > 0 && left >= bw)
|
||||||
|
left = bw - 1;
|
||||||
|
}
|
||||||
|
|
||||||
System.Console.CursorLeft = left;
|
System.Console.CursorLeft = left;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue