Hans Leidekker : webservices: Add support for RECORD_BYTES32_TEXT in write_text_bin().

Alexandre Julliard julliard at winehq.org
Tue Aug 31 15:40:23 CDT 2021


Module: wine
Branch: master
Commit: 7b3550fbae30a697daaa827625b26e219c02f66d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=7b3550fbae30a697daaa827625b26e219c02f66d

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Tue Aug 31 13:45:55 2021 +0200

webservices: Add support for RECORD_BYTES32_TEXT in write_text_bin().

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/webservices/writer.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c
index 68f43a7cdb4..c9e443b0e80 100644
--- a/dlls/webservices/writer.c
+++ b/dlls/webservices/writer.c
@@ -2766,6 +2766,26 @@ static HRESULT write_text_bin( struct writer *writer, const WS_XML_TEXT *text, U
         }
         return S_OK;
     }
+    case RECORD_BYTES32_TEXT:
+    {
+        const WS_XML_BASE64_TEXT *text_base64 = (const WS_XML_BASE64_TEXT *)text;
+        UINT32 rem = text_base64->length % 3, len = text_base64->length - rem;
+        if (len)
+        {
+            if ((hr = write_grow_buffer( writer, 1 + sizeof(len) + len )) != S_OK) return hr;
+            write_char( writer, rem ? RECORD_BYTES32_TEXT : RECORD_BYTES32_TEXT_WITH_ENDELEMENT );
+            write_bytes( writer, (const BYTE *)&len, sizeof(len) );
+            write_bytes( writer, text_base64->bytes, len );
+        }
+        if (rem)
+        {
+            if ((hr = write_grow_buffer( writer, 3 )) != S_OK) return hr;
+            write_char( writer, RECORD_BYTES8_TEXT_WITH_ENDELEMENT );
+            write_char( writer, rem );
+            write_bytes( writer, (const BYTE *)text_base64->bytes + len, rem );
+        }
+        return S_OK;
+    }
     case RECORD_ZERO_TEXT_WITH_ENDELEMENT:
     case RECORD_ONE_TEXT_WITH_ENDELEMENT:
     case RECORD_FALSE_TEXT_WITH_ENDELEMENT:




More information about the wine-cvs mailing list