#include "libbb.h"
/* Conversion table. for base 64 */
-const char bb_uuenc_tbl_base64[65 + 2] = {
+const char bb_uuenc_tbl_base64[65 + 2] ALIGN1 = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'\n', '\0' /* needed for uudecode.c */
};
-const char bb_uuenc_tbl_std[65] = {
+const char bb_uuenc_tbl_std[65] ALIGN1 = {
'`', '!', '"', '#', '$', '%', '&', '\'',
'(', ')', '*', '+', ',', '-', '.', '/',
'0', '1', '2', '3', '4', '5', '6', '7',
* buffer of at least 1+BASE64_LENGTH(length) bytes.
* where BASE64_LENGTH(len) = (4 * ((LENGTH + 2) / 3))
*/
-void bb_uuencode(char *p, const void *src, int length, const char *tbl)
+void FAST_FUNC bb_uuencode(char *p, const void *src, int length, const char *tbl)
{
const unsigned char *s = src;
/* Are s[1], s[2] valid or should be assumed 0? */
s1 = s2 = 0;
length -= 3; /* can be >=0, -1, -2 */
- if (length != -2) {
+ if (length >= -1) {
s1 = s[1];
- if (length != -1)
+ if (length >= 0)
s2 = s[2];
}
*p++ = tbl[s[0] >> 2];