--- a/hedgewars/hwengine.pas Fri Jan 25 22:33:26 2013 +0400
+++ b/hedgewars/hwengine.pas Sat Jan 26 19:28:37 2013 +0100
@@ -439,7 +439,6 @@
begin
uUtils.initModule(complete); // opens the debug file, must be the first
uVariables.initModule; // inits all global variables
- uConsole.initModule; // opens stdout
uCommands.initModule; // helps below
uCommandHandlers.initModule; // registers all messages from frontend
@@ -510,7 +509,6 @@
uCommandHandlers.freeModule;
uCommands.freeModule;
- uConsole.freeModule; // closes stdout
uVariables.freeModule;
uUtils.freeModule; // closes debug file
end;
--- a/hedgewars/uConsole.pas Fri Jan 25 22:33:26 2013 +0400
+++ b/hedgewars/uConsole.pas Sat Jan 26 19:28:37 2013 +0100
@@ -21,61 +21,26 @@
unit uConsole;
interface
-procedure initModule;
-procedure freeModule;
-procedure WriteToConsole(s: shortstring);
-procedure WriteLnToConsole(s: shortstring);
-function GetLastConsoleLine: shortstring;
-function ShortStringAsPChar(s: shortstring): PChar;
-
-implementation
-uses Types, uVariables, uUtils {$IFDEF ANDROID}, log in 'log.pas'{$ENDIF};
-
-const cLinesCount = 8;
-var cLineWidth: LongInt;
-
-type
- TTextLine = record
- s: shortstring
- end;
-
-var ConsoleLines: array[byte] of TTextLine;
- CurrLine: LongInt;
-
-procedure SetLine(var tl: TTextLine; str: shortstring);
-begin
-with tl do
- s:= str;
-end;
procedure WriteToConsole(s: shortstring);
-{$IFNDEF NOCONSOLE}
-var Len: LongInt;
- done: boolean;
-{$ENDIF}
+procedure WriteLnToConsole(s: shortstring);
+function ShortStringAsPChar(s: shortstring): PChar;
+
+var lastConsoleline : shortstring;
+
+implementation
+uses Types, uUtils {$IFDEF ANDROID}, log in 'log.pas'{$ENDIF};
+
+
+procedure WriteToConsole(s: shortstring);
begin
{$IFNDEF NOCONSOLE}
-AddFileLog('[Con] ' + s);
+ AddFileLog('[Con] ' + s);
{$IFDEF ANDROID}
+ //TODO integrate this function in the uMobile record
Log.__android_log_write(Log.Android_LOG_DEBUG, 'HW_Engine', ShortStringAsPChar('[Con]' + s));
{$ELSE}
-Write(stderr, s);
-done:= false;
-
-while not done do
- begin
- Len:= cLineWidth - Length(ConsoleLines[CurrLine].s);
- SetLine(ConsoleLines[CurrLine], ConsoleLines[CurrLine].s + copy(s, 1, Len));
- Delete(s, 1, Len);
- if byte(ConsoleLines[CurrLine].s[0]) = cLineWidth then
- begin
- inc(CurrLine);
- if CurrLine = cLinesCount then
- CurrLine:= 0;
- PByte(@ConsoleLines[CurrLine].s)^:= 0
- end;
- done:= (Length(s) = 0);
- end;
+ Write(stderr, s);
{$ENDIF}
{$ENDIF}
end;
@@ -83,13 +48,10 @@
procedure WriteLnToConsole(s: shortstring);
begin
{$IFNDEF NOCONSOLE}
-WriteToConsole(s);
+ WriteToConsole(s);
+ lastConsoleline:= s;
{$IFNDEF ANDROID}
-WriteLn(stderr, '');
-inc(CurrLine);
-if CurrLine = cLinesCount then
- CurrLine:= 0;
-PByte(@ConsoleLines[CurrLine].s)^:= 0
+ WriteLn(stderr, '');
{$ENDIF}
{$ENDIF}
end;
@@ -102,37 +64,5 @@
ShortStringAsPChar:= @s[1];
end;
-function GetLastConsoleLine: shortstring;
-var valueStr: shortstring;
- i: LongWord;
-begin
-i:= (CurrLine + cLinesCount - 2) mod cLinesCount;
-valueStr:= ConsoleLines[i].s;
-
-valueStr:= valueStr + #10;
-
-i:= (CurrLine + cLinesCount - 1) mod cLinesCount;
-valueStr:= valueStr + ConsoleLines[i].s;
-
-GetLastConsoleLine:= valueStr;
-end;
-
-procedure initModule;
-var i: LongInt;
-begin
- CurrLine:= 0;
-
- // initConsole
- cLineWidth:= cScreenWidth div 10;
- if cLineWidth > 255 then
- cLineWidth:= 255;
- for i:= 0 to Pred(cLinesCount) do
- PByte(@ConsoleLines[i])^:= 0;
-end;
-
-procedure freeModule;
-begin
-
-end;
end.
--- a/hedgewars/uDebug.pas Fri Jan 25 22:33:26 2013 +0400
+++ b/hedgewars/uDebug.pas Sat Jan 26 19:28:37 2013 +0100
@@ -34,7 +34,7 @@
WriteLnToConsole(Msg);
if isFatalError then
begin
- ParseCommand('fatal ' + GetLastConsoleLine, true);
+ ParseCommand('fatal ' + lastConsoleline, true);
SDL_Quit;
halt(1)
end