libbb: merge mail and uudecode's base64 decoders
function old new delta
read_base64 - 378 +378
uudecode_main 306 315 +9
parse 953 958 +5
read_stduu 250 254 +4
base64_main 217 219 +2
read_base64 358 - -358
decode_base64 371 - -371
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 4/0 up/down: 398/-729) Total: -331 bytes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
diff --git a/include/libbb.h b/include/libbb.h
index d5580b4..8d7beff 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1505,6 +1505,12 @@
extern const char bb_uuenc_tbl_base64[];
extern const char bb_uuenc_tbl_std[];
void bb_uuencode(char *store, const void *s, int length, const char *tbl) FAST_FUNC;
+enum {
+ BASE64_FLAG_UU_STOP = 0x100,
+ /* Sign-extends to a value which never matches fgetc result: */
+ BASE64_FLAG_NO_STOP_CHAR = 0x80,
+};
+void FAST_FUNC read_base64(FILE *src_stream, FILE *dst_stream, int flags);
typedef struct sha1_ctx_t {
uint32_t hash[8]; /* 5, +3 elements for sha256 */