Update the lash shell (hopefully the last time...) so things like
[oweals/busybox.git] / tr.c
diff --git a/tr.c b/tr.c
index d21e672fe0a864c7b294fdb861cadcc87ba02ac4..b7a6009c825dd0c1340fc7932648ccfd921b72d4 100644 (file)
--- a/tr.c
+++ b/tr.c
  * Original copyright notice is retained at the end of this file.
  */
 
-#include "busybox.h"
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <sys/types.h>
+#include "busybox.h"
 #define BB_DECLARE_EXTERN
 #define bb_need_write_error
 #include "messages.c"
@@ -144,10 +144,11 @@ extern int tr_main(int argc, char **argv)
        int output_length=0, input_length;
        int index = 1;
        int i;
-       /* set up big arrays here (better than making a bunch of static arrays up top) */
-       unsigned char output[BUFSIZ], input[BUFSIZ];
-       unsigned char vector[ASCII + 1];
-       char invec[ASCII + 1], outvec[ASCII + 1];
+       RESERVE_BB_BUFFER(output, BUFSIZ);
+       RESERVE_BB_BUFFER(input,  BUFSIZ);
+       RESERVE_BB_UBUFFER(vector, ASCII+1);
+       RESERVE_BB_BUFFER(invec,  ASCII+1);
+       RESERVE_BB_BUFFER(outvec, ASCII+1);
 
        /* ... but make them available globally */
        poutput = output;
@@ -169,7 +170,7 @@ extern int tr_main(int argc, char **argv)
                                sq_fl = TRUE;
                                break;
                        default:
-                               usage(tr_usage);
+                               show_usage();
                        }
                }
                index++;
@@ -185,14 +186,14 @@ extern int tr_main(int argc, char **argv)
                        input_length = complement(input, input_length);
                if (argv[index] != NULL) {
                        if (*argv[index] == '\0')
-                               error_msg_and_die("STRING2 cannot be empty\n");
+                               error_msg_and_die("STRING2 cannot be empty");
                        output_length = expand(argv[index], output);
                        map(input, input_length, output, output_length);
                }
                for (i = 0; i < input_length; i++)
-                       invec[input[i]] = TRUE;
+                       invec[(int)input[i]] = TRUE;
                for (i = 0; i < output_length; i++)
-                       outvec[output[i]] = TRUE;
+                       outvec[(int)output[i]] = TRUE;
        }
        convert();
        return (0);