anchor.diff:  end;
   
   procedure TDStringBuilder.SaveToStream(pvStream:TStream);
  -begin
  -  if self.Length <> 0 then pvStream.WriteBuffer(FData[0], self.Length);
  +var
  +  l:Integer;
  +begin
  +  l := self.Length;
  +{$IFDEF UNICODE}
  +  l := l shl 1;
  +{$ENDIF}
  +
  +  if l <> 0 then pvStream.WriteBuffer(FData[0], l);
   end;
   
   function TDStringBuilder.ToString: string;
  
positive.code:   Move(pvBuffer^, PDCharW(Result)^, pvBufLength);
  end;
  
  
  
  
  
  initialization
  
  
negative.code:   end;
  end;
  
  procedure WriteStringToUtf8NoBOMFile(const pvFile: String; const pvData:
      DStringW);
  var
    lvStream: TMemoryStream;
    lvBytes:TBytes;
  
  begin
    lvStream := TMemoryStream.Create;
    try
      lvBytes := StringWToUtf8Bytes(pvData);
  
      lvStream.Write(lvBytes[0], Length(lvBytes));
  
      lvStream.SaveToFile(pvFile);
    finally
      lvStream.Free;
  