hush: get rid of charmap[]
[oweals/busybox.git] / libbb / uuencode.c
index 57d1cbfd2c05f5af4ccfb02da6bf3875269029bf..67d98d598add4c42b4ba3285bf7beeb3c98a95de 100644 (file)
@@ -8,7 +8,7 @@
 #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',
@@ -21,7 +21,7 @@ const char bb_uuenc_tbl_base64[65 + 2] = {
        '\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',
@@ -39,7 +39,7 @@ const char bb_uuenc_tbl_std[65] = {
  * 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;
 
@@ -50,9 +50,9 @@ void bb_uuencode(char *p, const void *src, int length, const char *tbl)
                /* 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];