aboutsummaryrefslogtreecommitdiff
path: root/mailutils/mail.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-07-31 17:30:08 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2018-07-31 17:30:08 +0200
commit8d634a08c4164da3a0d93caa9de825384e59d27d (patch)
treecfabe15456c00a6582a3b279388128faad013f6d /mailutils/mail.c
parentf28b8857a9fa7b2b137a19ce7069077da5706d78 (diff)
downloadbusybox-8d634a08c4164da3a0d93caa9de825384e59d27d.tar.gz
sendfile: code shrink
function old new delta printstr_base64 - 22 +22 printbuf_base64 - 11 +11 printfile_base64 - 9 +9 makemime_main 305 294 -11 encode_n_base64 236 223 -13 sendmail_main 1380 1366 -14 encode_base64 36 - -36 ------------------------------------------------------------------------------ (add/remove: 3/1 grow/shrink: 0/3 up/down: 42/-74) Total: -32 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'mailutils/mail.c')
-rw-r--r--mailutils/mail.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/mailutils/mail.c b/mailutils/mail.c
index 2ad959f7d..6726654f7 100644
--- a/mailutils/mail.c
+++ b/mailutils/mail.c
@@ -107,18 +107,7 @@ static char* FAST_FUNC parse_url(char *url, char **user, char **pass)
}
*/
-void FAST_FUNC encode_base64(char *fname, const char *text, const char *eol)
-{
- size_t len = len;
- if (text) {
- // though we do not call uuencode(NULL, NULL) explicitly
- // still we do not want to break things suddenly
- len = strlen(text);
- }
- encode_n_base64(fname, text, len, eol);
-}
-
-void FAST_FUNC encode_n_base64(char *fname, const char *text, size_t len, const char *eol)
+static void encode_n_base64(const char *fname, const char *text, size_t len)
{
enum {
SRC_BUF_SIZE = 57, /* This *MUST* be a multiple of 3 */
@@ -130,10 +119,9 @@ void FAST_FUNC encode_n_base64(char *fname, const char *text, size_t len, const
char dst_buf[DST_BUF_SIZE + 1];
if (fname) {
- fp = (NOT_LONE_DASH(fname)) ? xfopen_for_read(fname) : (FILE *)text;
+ fp = (NOT_LONE_DASH(fname)) ? xfopen_for_read(fname) : stdin;
src_buf = src;
- } else if (!text)
- return;
+ }
while (1) {
size_t size;
@@ -151,7 +139,7 @@ void FAST_FUNC encode_n_base64(char *fname, const char *text, size_t len, const
// encode the buffer we just read in
bb_uuencode(dst_buf, src_buf, size, bb_uuenc_tbl_base64);
if (fname) {
- puts(eol);
+ puts("");
} else {
src_buf += size;
len -= size;
@@ -163,6 +151,21 @@ void FAST_FUNC encode_n_base64(char *fname, const char *text, size_t len, const
#undef src_buf
}
+void FAST_FUNC printstr_base64(const char *text)
+{
+ encode_n_base64(NULL, text, strlen(text));
+}
+
+void FAST_FUNC printbuf_base64(const char *text, unsigned len)
+{
+ encode_n_base64(NULL, text, len);
+}
+
+void FAST_FUNC printfile_base64(const char *fname)
+{
+ encode_n_base64(fname, NULL, 0);
+}
+
/*
* get username and password from a file descriptor
*/