Signed-off-by: Hans Leidekker hans@codeweavers.com --- dlls/msado15/stream.c | 32 ++++++++++++++++++++------------ dlls/msado15/tests/msado15.c | 9 +++++++++ 2 files changed, 29 insertions(+), 12 deletions(-)
diff --git a/dlls/msado15/stream.c b/dlls/msado15/stream.c index 9fb6007b57..07027f3829 100644 --- a/dlls/msado15/stream.c +++ b/dlls/msado15/stream.c @@ -32,14 +32,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(msado15);
struct stream { - _Stream Stream_iface; - LONG refs; - ObjectStateEnum state; - StreamTypeEnum type; - LONG size; - LONG allocated; - LONG pos; - BYTE *buf; + _Stream Stream_iface; + LONG refs; + ObjectStateEnum state; + StreamTypeEnum type; + LineSeparatorEnum sep; + LONG size; + LONG allocated; + LONG pos; + BYTE *buf; };
static inline struct stream *impl_from_Stream( _Stream *iface ) @@ -193,14 +194,20 @@ static HRESULT WINAPI stream_put_Type( _Stream *iface, StreamTypeEnum type )
static HRESULT WINAPI stream_get_LineSeparator( _Stream *iface, LineSeparatorEnum *sep ) { - FIXME( "%p, %p\n", iface, sep ); - return E_NOTIMPL; + struct stream *stream = impl_from_Stream( iface ); + TRACE( "%p, %p\n", stream, sep ); + + *sep = stream->sep; + return S_OK; }
static HRESULT WINAPI stream_put_LineSeparator( _Stream *iface, LineSeparatorEnum sep ) { - FIXME( "%p, %d\n", iface, sep ); - return E_NOTIMPL; + struct stream *stream = impl_from_Stream( iface ); + TRACE( "%p, %d\n", stream, sep ); + + stream->sep = sep; + return S_OK; }
static HRESULT WINAPI stream_get_State( _Stream *iface, ObjectStateEnum *state ) @@ -431,6 +438,7 @@ HRESULT Stream_create( void **obj ) stream->Stream_iface.lpVtbl = &stream_vtbl; stream->refs = 1; stream->type = adTypeText; + stream->sep = adCRLF;
*obj = &stream->Stream_iface; TRACE( "returning iface %p\n", *obj ); diff --git a/dlls/msado15/tests/msado15.c b/dlls/msado15/tests/msado15.c index 0b10579905..a4de15932d 100644 --- a/dlls/msado15/tests/msado15.c +++ b/dlls/msado15/tests/msado15.c @@ -51,6 +51,7 @@ static void test_Stream(void) _Stream *stream; VARIANT_BOOL eos; StreamTypeEnum type; + LineSeparatorEnum sep; LONG refs, size, pos; ObjectStateEnum state; VARIANT missing, val; @@ -89,6 +90,14 @@ static void test_Stream(void) hr = _Stream_put_Type( stream, adTypeText ); ok( hr == S_OK, "got %08x\n", hr );
+ sep = 0; + hr = _Stream_get_LineSeparator( stream, &sep ); + ok( hr == S_OK, "got %08x\n", hr ); + ok( sep == adCRLF, "got %d\n", sep ); + + hr = _Stream_put_LineSeparator( stream, adLF ); + ok( hr == S_OK, "got %08x\n", hr ); + state = 0xdeadbeef; hr = _Stream_get_State( stream, &state ); ok( hr == S_OK, "got %08x\n", hr );
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=61778
Your paranoid android.
=== w864 (task log) ===
Task errors: TestBot process got stuck or died unexpectedly The previous 1 run(s) terminated abnormally