summaryrefslogtreecommitdiff
path: root/packages/fcl-base
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-11-26 16:19:26 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-11-26 16:19:26 +0000
commit6d17aaeec22b6f0c27967c40b7899b6e00dffb19 (patch)
tree56d2a463765218dc36befe5d71d301c3be1b9f4c /packages/fcl-base
parent31bf696d6737ff61f2f0afce3c6ab1b8b95b414f (diff)
downloadfpc-6d17aaeec22b6f0c27967c40b7899b6e00dffb19.tar.gz
* Added flush to TBase64Encoder
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16450 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-base')
-rw-r--r--packages/fcl-base/src/base64.pp16
1 files changed, 14 insertions, 2 deletions
diff --git a/packages/fcl-base/src/base64.pp b/packages/fcl-base/src/base64.pp
index 1894c4a262..3498b08e41 100644
--- a/packages/fcl-base/src/base64.pp
+++ b/packages/fcl-base/src/base64.pp
@@ -38,7 +38,7 @@ type
public
constructor Create(ASource: TStream);
destructor Destroy; override;
-
+ Function Flush : Boolean;
function Write(const Buffer; Count: Longint): Longint; override;
function Seek(Offset: Longint; Origin: Word): Longint; override;
end;
@@ -129,7 +129,8 @@ begin
inherited Create(ASource);
end;
-destructor TBase64EncodingStream.Destroy;
+function TBase64EncodingStream.Flush : Boolean;
+
var
WriteBuf: array[0..3] of Char;
begin
@@ -141,6 +142,8 @@ begin
WriteBuf[2] := '=';
WriteBuf[3] := '=';
Source.Write(WriteBuf, 4);
+ Result:=True;
+ Inc(TotalBytesProcessed,2);
end;
2: begin
WriteBuf[0] := EncodingTable[Buf[0] shr 2];
@@ -148,8 +151,17 @@ begin
WriteBuf[2] := EncodingTable[(Buf[1] and 15) shl 2];
WriteBuf[3] := '=';
Source.Write(WriteBuf, 4);
+ Result:=True;
+ Inc(TotalBytesProcessed,1);
end;
+ else
+ Result:=False;
end;
+end;
+
+destructor TBase64EncodingStream.Destroy;
+begin
+ Flush;
inherited Destroy;
end;