Browse Source

Merge branch 'develop'

Exilon 6 years ago
parent
commit
15388d1da3
3 changed files with 25 additions and 20 deletions
  1. 4 3
      Quick.Commons.pas
  2. 17 17
      Quick.Console.pas
  3. 4 0
      Quick.JSON.Utils.pas

+ 4 - 3
Quick.Commons.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Version     : 1.7
   Created     : 14/07/2017
-  Modified    : 28/03/2019
+  Modified    : 29/03/2019
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
@@ -513,7 +513,7 @@ function HasConsoleOutput : Boolean;
   end;
 {$ELSE}
   begin
-    Result := False;
+    Result := IsConsole;
   end;
 {$ENDIF}
 
@@ -531,7 +531,7 @@ function IsService : Boolean;
 begin
   //only working with my Quick.AppService unit
   try
-    Result := (IsConsole) and (GetStdHandle(STD_OUTPUT_HANDLE) = 0);
+    Result := (IsConsole) and (not HasConsoleOutput);
   except
     Result := False;
   end;
@@ -1344,3 +1344,4 @@ initialization
 {$ENDIF}
 
 end.
+

+ 17 - 17
Quick.Console.pas

@@ -7,7 +7,7 @@
   Author      : Kike Pérez
   Version     : 1.9
   Created     : 10/05/2017
-  Modified    : 17/02/2019
+  Modified    : 29/03/2019
 
   This file is part of QuickLib: https://github.com/exilon/QuickLib
 
@@ -57,7 +57,7 @@ uses
     crt,
     {$ENDIF}
   {$ENDIF}
-  {$IFDEF DELPHILINUX}
+  {$IF Defined(DELPHILINUX) OR Defined(MACOS)}
   Quick.SyncObjs.Linux.Compatibility,
   Posix.StdDef,
   {$ENDIF}
@@ -118,8 +118,8 @@ type
   TOutputProc<T> = procedure(const aLine : T) of object;
   TExecuteProc = procedure of object;
   {$ENDIF}
-  {$IF DEFINED(FPCLINUX) OR DEFINED(DELPHILINUX)}
-    {$IFDEF DELPHILINUX}
+  {$IF DEFINED(FPCLINUX) OR DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
+    {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
     tcrtcoord = Byte;
     {$ENDIF}
   TCoord = record
@@ -192,7 +192,7 @@ type
   procedure ClearLine(Y : Integer); overload;
   procedure ShowCursor;
   procedure HideCursor;
-  {$IFDEF DELPHILINUX}
+  {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
   procedure SaveCursor;
   procedure RestoreCursor;
   procedure CursorOn;
@@ -235,7 +235,7 @@ var
 implementation
 
 
-{$IFDEF DELPHILINUX}
+{$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
 const
   AEC =chr($1B)+chr($5b);
   SAVE_CURSOR_POS = chr($1B) + '7';
@@ -326,7 +326,7 @@ begin
   cout(Format(cMsg,params),cEventType);
 end;
 
-{$IFDEF DELPHILINUX}
+{$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
 procedure SaveCursor;
 begin
   write(SAVE_CURSOR_POS);
@@ -400,7 +400,7 @@ begin
 end;
 {$ENDIF}
 
-{$IFDEF DELPHILINUX}
+{$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
 procedure GotoXY(x,y : Integer);
 begin
   Write(AEC, y, ';', x, 'H');
@@ -433,7 +433,7 @@ begin
   {$IFDEF MSWINDOWS}
   if hStdOut = 0 then Exit;
   {$ENDIF}
-  {$IFNDEF DELPHILINUX}
+  {$IF NOT DEFINED(DELPHILINUX) AND NOT DEFINED(MACOS)}
   LastCoord.X := GetCursorX;
   LastCoord.Y := GetCursorY;
   {$ELSE}
@@ -462,7 +462,7 @@ begin
   {$IFDEF MSWINDOWS}
   if hStdOut = 0 then Exit;
   {$ENDIF}
-  {$IFNDEF DELPHILINUX}
+  {$IF NOT DEFINED(DELPHILINUX) AND NOT DEFINED(MACOS)}
   LastCoord.X := GetCursorX;
   LastCoord.Y := GetCursorY;
   {$ELSE}
@@ -531,7 +531,7 @@ begin
   TextAttr := (TextAttr and $F0) or (Color and $0F);
   if TextAttr <> LastMode then SetConsoleTextAttribute(hStdOut, TextAttr);
   {$ELSE}
-    {$IFDEF DELPHILINUX}
+    {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
     write(AEC,';',Color,'m')
     {$ELSE}
     crt.TextColor(Color);
@@ -552,7 +552,7 @@ begin
   TextAttr := (TextAttr and $0F) or ((Color shl 4) and $F0);
   if TextAttr <> LastMode then SetConsoleTextAttribute(hStdOut, TextAttr);
   {$ELSE}
-    {$IFDEF DELPHILINUX}
+    {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
     write(AEC,0,';',Color+10*10);
     {$ELSE}
     crt.TextBackground(Color);
@@ -611,7 +611,7 @@ begin
 end;
 {$ELSE}
 begin
-  {$IFDEF DELPHILINUX}
+  {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
   write(AEC,2,'J');
   {$ELSE}
   ClrScr;
@@ -621,7 +621,7 @@ end;
 
 procedure ClearLine;
 begin
-  {$IFNDEF DELPHILINUX}
+  {$IF NOT DEFINED(DELPHILINUX) AND NOT DEFINED(MACOS)}
   ClearLine(GetCursorY);
   {$ELSE}
   write(AEC,'K');
@@ -644,7 +644,7 @@ end;
 {$ELSE}
 begin
   GotoXY(1,Y);
-  {$IFDEF DELPHILINUX}
+  {$IF DEFINED(DELPHILINUX) OR DEFINED(MACOS)}
   write(AEC,'K');
   {$ELSE}
   DelLine;
@@ -1061,11 +1061,11 @@ Console.LogVerbose := LOG_ALL;
 {$IF DEFINED(FPC) AND DEFINED(LINUX)}
 InitCriticalSection(CSConsole);
 {$ELSE}
-  {$IFNDEF DELPHILINUX}
+  {$IF NOT DEFINED(DELPHILINUX) AND NOT DEFINED(MACOS)}
   InitializeCriticalSection(CSConsole);
   //init stdout if not a service
   try
-    if GetStdHandle(STD_OUTPUT_HANDLE) <> 0 then InitConsole;
+    if HasConsoleOutput then InitConsole;
   except
     //avoid raise exception
   end;

+ 4 - 0
Quick.JSON.Utils.pas

@@ -77,7 +77,11 @@ begin
   isEOL := True;
   isIntoString := False;
   isEscape := False;
+  {$IFNDEF NEXTGEN}
   for i := 1 to json.Length do
+  {$ELSE}
+  for i := 0 to json.Length - 1 do
+  {$ENDIF}
   begin
     c := json[i];
     if isIntoString then