Juan Lang : crypt32: Use an empty string as a separator when no separator is desired to avoid special cases for NULL .

Alexandre Julliard julliard at winehq.org
Wed Mar 24 15:54:45 CDT 2010


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Wed Mar 24 11:51:23 2010 -0700

crypt32: Use an empty string as a separator when no separator is desired to avoid special cases for NULL.

---

 dlls/crypt32/base64.c |   50 ++++++++++++++++--------------------------------
 1 files changed, 17 insertions(+), 33 deletions(-)

diff --git a/dlls/crypt32/base64.c b/dlls/crypt32/base64.c
index 2a91372..2996ba3 100644
--- a/dlls/crypt32/base64.c
+++ b/dlls/crypt32/base64.c
@@ -99,8 +99,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
 
     TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
     needed = bytes + pad_bytes + 1;
-    if (sep)
-        needed += (needed / 64 + 1) * strlen(sep);
+    needed += (needed / 64 + 1) * strlen(sep);
 
     if (needed > *out_len)
     {
@@ -117,7 +116,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
     i = 0;
     while (div > 0)
     {
-        if (sep && i && i % 64 == 0)
+        if (i && i % 64 == 0)
         {
             strcpy(ptr, sep);
             ptr += strlen(sep);
@@ -163,8 +162,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
             *ptr++ = '=';
             break;
     }
-    if (sep)
-        strcpy(ptr, sep);
+    strcpy(ptr, sep);
 
     return ERROR_SUCCESS;
 }
@@ -180,7 +178,7 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
     if (dwFlags & CRYPT_STRING_NOCR)
         sep = lf;
     else if (dwFlags & CRYPT_STRING_NOCRLF)
-        sep = NULL;
+        sep = "";
     else
         sep = crlf;
     switch (dwFlags & 0x0fffffff)
@@ -217,11 +215,8 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
         {
             strcpy(ptr, header);
             ptr += strlen(ptr);
-            if (sep)
-            {
-                strcpy(ptr, sep);
-                ptr += strlen(sep);
-            }
+            strcpy(ptr, sep);
+            ptr += strlen(sep);
         }
         encodeBase64A(pbBinary, cbBinary, sep, ptr, &size);
         ptr += size - 1;
@@ -229,11 +224,8 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
         {
             strcpy(ptr, trailer);
             ptr += strlen(ptr);
-            if (sep)
-            {
-                strcpy(ptr, sep);
-                ptr += strlen(sep);
-            }
+            strcpy(ptr, sep);
+            ptr += strlen(sep);
         }
         *pcchString = charsNeeded - 1;
     }
@@ -302,8 +294,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
 
     TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
     needed = bytes + pad_bytes + 1;
-    if (sep)
-        needed += (needed / 64 + 1) * strlenW(sep);
+    needed += (needed / 64 + 1) * strlenW(sep);
 
     if (needed > *out_len)
     {
@@ -320,7 +311,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
     i = 0;
     while (div > 0)
     {
-        if (sep && i && i % 64 == 0)
+        if (i && i % 64 == 0)
         {
             strcpyW(ptr, sep);
             ptr += strlenW(sep);
@@ -366,8 +357,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
             *ptr++ = '=';
             break;
     }
-    if (sep)
-        strcpyW(ptr, sep);
+    strcpyW(ptr, sep);
 
     return ERROR_SUCCESS;
 }
@@ -375,7 +365,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
 static BOOL BinaryToBase64W(const BYTE *pbBinary,
  DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
 {
-    static const WCHAR crlf[] = { '\r','\n',0 }, lf[] = { '\n',0 };
+    static const WCHAR crlf[] = { '\r','\n',0 }, lf[] = { '\n',0 }, empty = {0};
     BOOL ret = TRUE;
     LPCWSTR header = NULL, trailer = NULL, sep;
     DWORD charsNeeded;
@@ -383,7 +373,7 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
     if (dwFlags & CRYPT_STRING_NOCR)
         sep = lf;
     else if (dwFlags & CRYPT_STRING_NOCRLF)
-        sep = NULL;
+        sep = empty;
     else
         sep = crlf;
     switch (dwFlags & 0x0fffffff)
@@ -420,11 +410,8 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
         {
             strcpyW(ptr, header);
             ptr += strlenW(ptr);
-            if (sep)
-            {
-                strcpyW(ptr, sep);
-                ptr += strlenW(sep);
-            }
+            strcpyW(ptr, sep);
+            ptr += strlenW(sep);
         }
         encodeBase64W(pbBinary, cbBinary, sep, ptr, &size);
         ptr += size - 1;
@@ -432,11 +419,8 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
         {
             strcpyW(ptr, trailer);
             ptr += strlenW(ptr);
-            if (sep)
-            {
-                strcpyW(ptr, sep);
-                ptr += strlenW(sep);
-            }
+            strcpyW(ptr, sep);
+            ptr += strlenW(sep);
         }
         *pcchString = charsNeeded - 1;
     }




More information about the wine-cvs mailing list