Browse Source

--- Merging r22800 into '.':
U packages/winunits-jedi/src/jwawindns.pas
--- Merging r22945 into '.':
U rtl/objpas/classes/streams.inc
--- Merging r22952 into '.':
U rtl/win/sysutils.pp
--- Merging r23038 into '.':
U rtl/inc/variants.pp

# revisions: 22800,22945,22952,23038
r22800 | florian | 2012-10-21 16:47:59 +0200 (Sun, 21 Oct 2012) | 1 line
Changed paths:
M /trunk/packages/winunits-jedi/src/jwawindns.pas

- remove definition of QWord as suggested by Simon Ameis in #22465
r22945 | michael | 2012-11-07 00:41:49 +0100 (Wed, 07 Nov 2012) | 1 line
Changed paths:
M /trunk/rtl/objpas/classes/streams.inc

* Avoid overflow when reading from streams > 2gb
r22952 | michael | 2012-11-08 15:25:15 +0100 (Thu, 08 Nov 2012) | 1 line
Changed paths:
M /trunk/rtl/win/sysutils.pp

* Need FILE_WRITE_ATTRIBUTES for setfiledate
r23038 | florian | 2012-11-20 21:30:08 +0100 (Tue, 20 Nov 2012) | 1 line
Changed paths:
M /trunk/rtl/inc/variants.pp

+ VarIsBool function by Alexander Strokach, resolves #23358

git-svn-id: branches/fixes_2_6@23818 -

marco 12 years ago
parent
commit
e44740bea4

+ 1 - 9
packages/winunits-jedi/src/jwawindns.pas

@@ -79,14 +79,6 @@ type
   IN6_ADDR = Pointer; // todo
   IN6_ADDR = Pointer; // todo
 {$ENDIF JWA_INCLUDEMODE}
 {$ENDIF JWA_INCLUDEMODE}
 
 
-//
-//  Define QWORD -- not yet defined globally 
-//
-
-type
-  QWORD = Int64;
-  {$EXTERNALSYM QWORD}
-
 //
 //
 //  DNS public types
 //  DNS public types
 //
 //
@@ -167,7 +159,7 @@ type
 //  IP6 string max is 45 bytes
 //  IP6 string max is 45 bytes
 //      - 6 WORDs in colon+hex (5 chars)
 //      - 6 WORDs in colon+hex (5 chars)
 //      - last DWORD as IP4 (15 chars)
 //      - last DWORD as IP4 (15 chars)
-//  
+//
 
 
 const
 const
   IP6_ADDRESS_STRING_LENGTH        = 47;
   IP6_ADDRESS_STRING_LENGTH        = 47;

+ 6 - 0
rtl/inc/variants.pp

@@ -81,6 +81,7 @@ function VarIsOrdinal(const V: Variant): Boolean; inline;
 function VarIsFloat(const V: Variant): Boolean; inline;
 function VarIsFloat(const V: Variant): Boolean; inline;
 function VarIsNumeric(const V: Variant): Boolean; inline;
 function VarIsNumeric(const V: Variant): Boolean; inline;
 function VarIsStr(const V: Variant): Boolean;
 function VarIsStr(const V: Variant): Boolean;
+function VarIsBool(const V: Variant): Boolean; inline;
 
 
 function VarToStr(const V: Variant): string;
 function VarToStr(const V: Variant): string;
 function VarToStrDef(const V: Variant; const ADefault: string): string;
 function VarToStrDef(const V: Variant; const ADefault: string): string;
@@ -2993,6 +2994,11 @@ begin
   end;
   end;
 end;
 end;
 
 
+function VarIsBool(const V: Variant): Boolean;
+begin
+  Result := (TVarData(V).vType and varTypeMask) = varboolean;
+end;
+
 
 
 function VarToStr(const V: Variant): string;
 function VarToStr(const V: Variant): string;
 
 

+ 3 - 2
rtl/objpas/classes/streams.inc

@@ -592,8 +592,9 @@ begin
   Result:=0;
   Result:=0;
   If (FSize>0) and (FPosition<Fsize) and (FPosition>=0) then
   If (FSize>0) and (FPosition<Fsize) and (FPosition>=0) then
     begin
     begin
-    Result:=FSize-FPosition;
-    If Result>Count then Result:=Count;
+    Result:=Count;
+    If (Result>(FSize-FPosition)) then
+      Result:=(FSize-FPosition);
     Move ((FMemory+FPosition)^,Buffer,Result);
     Move ((FMemory+FPosition)^,Buffer,Result);
     FPosition:=Fposition+Result;
     FPosition:=Fposition+Result;
     end;
     end;

+ 1 - 1
rtl/win/sysutils.pp

@@ -217,7 +217,7 @@ const
   AccessMode: array[0..2] of Cardinal  = (
   AccessMode: array[0..2] of Cardinal  = (
     GENERIC_READ,
     GENERIC_READ,
     GENERIC_WRITE,
     GENERIC_WRITE,
-    GENERIC_READ or GENERIC_WRITE);
+    GENERIC_READ or GENERIC_WRITE or FILE_WRITE_ATTRIBUTES);
   ShareModes: array[0..4] of Integer = (
   ShareModes: array[0..4] of Integer = (
                0,
                0,
                0,
                0,