8383#include "n_lib.h"
8484
8585/* aaaack but it's fast and const should make it shared text page. */
86- static const unsigned char pr2six [256 ] =
87- {
86+ static const unsigned char pr2six [256 ] = {
8887 /* ASCII table */
8988 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 ,
9089 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 , 64 ,
@@ -135,28 +134,28 @@ int JB64Decode(char *bufplain, const char *bufcoded)
135134 bufin = (const unsigned char * ) bufcoded ;
136135
137136 while (nprbytes > 4 ) {
138- * (bufout ++ ) =
139- (unsigned char ) (pr2six [* bufin ] << 2 | pr2six [bufin [1 ]] >> 4 );
140- * (bufout ++ ) =
141- (unsigned char ) (pr2six [bufin [1 ]] << 4 | pr2six [bufin [2 ]] >> 2 );
142- * (bufout ++ ) =
143- (unsigned char ) (pr2six [bufin [2 ]] << 6 | pr2six [bufin [3 ]]);
144- bufin += 4 ;
145- nprbytes -= 4 ;
137+ * (bufout ++ ) =
138+ (unsigned char ) (pr2six [* bufin ] << 2 | pr2six [bufin [1 ]] >> 4 );
139+ * (bufout ++ ) =
140+ (unsigned char ) (pr2six [bufin [1 ]] << 4 | pr2six [bufin [2 ]] >> 2 );
141+ * (bufout ++ ) =
142+ (unsigned char ) (pr2six [bufin [2 ]] << 6 | pr2six [bufin [3 ]]);
143+ bufin += 4 ;
144+ nprbytes -= 4 ;
146145 }
147146
148147 /* Note: (nprbytes == 1) would be an error, so just ingore that case */
149148 if (nprbytes > 1 ) {
150- * (bufout ++ ) =
151- (unsigned char ) (pr2six [* bufin ] << 2 | pr2six [bufin [1 ]] >> 4 );
149+ * (bufout ++ ) =
150+ (unsigned char ) (pr2six [* bufin ] << 2 | pr2six [bufin [1 ]] >> 4 );
152151 }
153152 if (nprbytes > 2 ) {
154- * (bufout ++ ) =
155- (unsigned char ) (pr2six [bufin [1 ]] << 4 | pr2six [bufin [2 ]] >> 2 );
153+ * (bufout ++ ) =
154+ (unsigned char ) (pr2six [bufin [1 ]] << 4 | pr2six [bufin [2 ]] >> 2 );
156155 }
157156 if (nprbytes > 3 ) {
158- * (bufout ++ ) =
159- (unsigned char ) (pr2six [bufin [2 ]] << 6 | pr2six [bufin [3 ]]);
157+ * (bufout ++ ) =
158+ (unsigned char ) (pr2six [bufin [2 ]] << 6 | pr2six [bufin [3 ]]);
160159 }
161160
162161 * (bufout ++ ) = '\0' ;
@@ -179,26 +178,22 @@ int JB64Encode(char *encoded, const char *string, int len)
179178
180179 p = encoded ;
181180 for (i = 0 ; i < len - 2 ; i += 3 ) {
182- * p ++ = basis_64 [(string [i ] >> 2 ) & 0x3F ];
183- * p ++ = basis_64 [((string [i ] & 0x3 ) << 4 ) |
184- ((int ) (string [i + 1 ] & 0xF0 ) >> 4 )];
185- * p ++ = basis_64 [((string [i + 1 ] & 0xF ) << 2 ) |
186- ((int ) (string [i + 2 ] & 0xC0 ) >> 6 )];
187- * p ++ = basis_64 [string [i + 2 ] & 0x3F ];
181+ * p ++ = basis_64 [(string [i ] >> 2 ) & 0x3F ];
182+ * p ++ = basis_64 [((string [i ] & 0x3 ) << 4 ) | ((int ) (string [i + 1 ] & 0xF0 ) >> 4 )];
183+ * p ++ = basis_64 [((string [i + 1 ] & 0xF ) << 2 ) | ((int ) (string [i + 2 ] & 0xC0 ) >> 6 )];
184+ * p ++ = basis_64 [string [i + 2 ] & 0x3F ];
188185 }
189186 if (i < len ) {
190- * p ++ = basis_64 [(string [i ] >> 2 ) & 0x3F ];
191- if (i == (len - 1 )) {
192- * p ++ = basis_64 [((string [i ] & 0x3 ) << 4 )];
187+ * p ++ = basis_64 [(string [i ] >> 2 ) & 0x3F ];
188+ if (i == (len - 1 )) {
189+ * p ++ = basis_64 [((string [i ] & 0x3 ) << 4 )];
190+ * p ++ = '=' ;
191+ } else {
192+ * p ++ = basis_64 [((string [i ] & 0x3 ) << 4 ) | ((int ) (string [i + 1 ] & 0xF0 ) >> 4 )];
193+ * p ++ = basis_64 [((string [i + 1 ] & 0xF ) << 2 )];
194+ }
193195 * p ++ = '=' ;
194196 }
195- else {
196- * p ++ = basis_64 [((string [i ] & 0x3 ) << 4 ) |
197- ((int ) (string [i + 1 ] & 0xF0 ) >> 4 )];
198- * p ++ = basis_64 [((string [i + 1 ] & 0xF ) << 2 )];
199- }
200- * p ++ = '=' ;
201- }
202197
203198 * p ++ = '\0' ;
204199 return p - encoded ;
0 commit comments