DEADSOFTWARE

"--log" cli arg; fixed bug with console output (endless loop)
authorKetmar Dark <ketmar@ketmar.no-ip.org>
Mon, 25 Apr 2016 19:31:16 +0000 (22:31 +0300)
committerKetmar Dark <ketmar@ketmar.no-ip.org>
Mon, 25 Apr 2016 19:31:16 +0000 (22:31 +0300)
src/game/Doom2DF.dpr
src/game/g_console.pas
src/game/g_main.pas
src/game/g_netmaster.pas
src/shared/conbuf.pas

index a9044fb9d614cff917282b7baa15a337246458a7..3fbd82967e4ab008d93e2f75585f3aad9b4ddc49 100644 (file)
@@ -117,7 +117,11 @@ var
   f: Integer;
   noct: Boolean = false;
 begin
-  for f := 1 to ParamCount do if ParamStr(f) = '--gdb' then noct := true;
+  for f := 1 to ParamCount do
+  begin
+         if ParamStr(f) = '--gdb' then noct := true
+    else if ParamStr(f) = '--log' then conbufDumpToStdOut := true;
+  end;
   if noct then
     Main()
   else
index df45e6ab722df26f38a9fde510ed1078c3e12c49..fcabed7ba667ec84613f3e80cb698ddcfbaac5f5 100644 (file)
@@ -915,7 +915,7 @@ begin
     while length(L) > 0 do
     begin
       f := Pos(#10, L);
-      if f < 0 then f := length(L)+1;
+      if f <= 0 then f := length(L)+1;
       conmsg(Copy(L, 1, f-1));
       Delete(L, 1, f);
     end;
index e1e21d8d3de2ea5563dd89df7c88776272646775..0d84cf24a1bb27ef60c9e0456f76f4e8b0c9abda 100644 (file)
@@ -62,6 +62,9 @@ begin
   e_WriteLog('Read config file', MSG_NOTIFY);
   g_Options_Read(GameDir + '/' + CONFIG_FILENAME);
 
+{$IFDEF HEADLESS}
+  conbufDumpToStdOut := true;
+{$ENDIF}
   e_WriteToStdOut := False; //{$IFDEF HEADLESS}True;{$ELSE}False;{$ENDIF}
 
   //GetSystemDefaultLCID()
index adc285cb1c5b23030d40eed3366d3ec45a4d2d12..1f7ddf1e787877483b48dce108eaa7ddd01de0bc 100644 (file)
@@ -147,6 +147,7 @@ begin
       Cnt := e_Raw_Read_Byte(NetMEvent.packet^.data);
       e_WriteLog('Retrieved ' + IntToStr(Cnt) + ' server(s).', MSG_NOTIFY);
       g_Console_Add(_lc[I_NET_MSG] + Format(_lc[I_NET_SLIST_RETRIEVED], [Cnt]), True);
+      //writeln('BOO!');
 
       if Cnt > 0 then
       begin
index 57ed64431cab091c167ee4052c82f239446909ff..1be01b2f80df2eb36fffd90ec3d380828a97ea5d 100644 (file)
@@ -38,6 +38,9 @@ function cbufLineUp (var sp: LongWord; var ep: LongWord): Boolean;
 
 procedure cbufClear ();
 
+var
+  conbufDumpToStdOut: Boolean = false;
+
 
 implementation
 
@@ -60,10 +63,9 @@ function cbufLastChange (): LongWord; begin result := changeCount; end;
 
 
 // ////////////////////////////////////////////////////////////////////////// //
-{$IFDEF HEADLESS}
 var
   needCon: Boolean = true;
-{$ENDIF}
+
 procedure cbufPutChars (buf: PChar; count: Integer);
 var
   np: LongWord;
@@ -71,15 +73,15 @@ var
 begin
   if count > 0 then
   begin
-{$IFDEF HEADLESS}
-    //write(stderr, 'CON: ');
-    for np := 0 to count-1 do
+    if conbufDumpToStdOut then
     begin
-      if needCon then begin write(stdout, 'CON: '); needCon := false; end;
-      write(stdout, buf[np]);
-      needCon := (buf[np] = #10);
+      for np := 0 to count-1 do
+      begin
+        if needCon then begin write(stdout, 'CON: '); needCon := false; end;
+        write(stdout, buf[np]);
+        needCon := (buf[np] = #10);
+      end;
     end;
-{$ENDIF}
     Inc(changeCount);
     if changeCount = 0 then changeCount := 1;
     while count > 0 do