summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2019-10-07 20:23:43 -0400
committerJakob Kaivo <jkk@ung.org>2019-10-07 20:23:43 -0400
commit62f5154aebe5a267d815b2f0312c0bef5e923127 (patch)
tree1673124a372742f9d1603e9d57fa87b025fc074f
parent433ab4d6df076846d84e19e8764960204532c5e0 (diff)
formatting
-rw-r--r--uuencode.c155
1 files changed, 77 insertions, 78 deletions
diff --git a/uuencode.c b/uuencode.c
index 91b67c5..9b1965c 100644
--- a/uuencode.c
+++ b/uuencode.c
@@ -22,93 +22,92 @@
* SOFTWARE.
*/
+#define _XOPEN_SOURCE 700
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
-const char *uuencode_desc = "encode a binary file";
-const char *uuencode_inv = "uuencode [-m] [file] decode_pathname";
-
static const char *b64s =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static int encode (FILE *in, char *out, int mode, int b64)
+static int encode(FILE * in, char *out, int mode, int b64)
{
- char bin[3], bout[76];
- int nread = 0, lread = 0, lpos = 0;
- int linelength = b64 ? 54 : 43;
- int i;
-
- printf ("begin%s %03o %s\n", b64 ? "-base64" : "", mode, out);
-
- while (!feof(in)) {
- nread = fread (bin, sizeof(char), 3, in);
- if (nread > 0) {
- bout[lpos++] = (bin[0] >> 2) & 0x3f;
- bout[lpos++] = ((bin[0] << 4) | ((bin[1] >> 4) & 0xf)) & 0x3f;
- bout[lpos++] = ((bin[1] << 2) | ((bin[2] >> 6) & 0x3)) & 0x3f;
- bout[lpos++] = (bin[2]) & 0x3f;
- bin[0] = bin[1] = bin[2] = 0;
- lread += nread;
- }
-
- if (feof (in) || nread == 0 || lread > linelength) {
- for (i = 0; i < lpos; i++)
- bout[i] = b64 ? b64s[bout[i]] : bout[i] + 0x20;
-
- if (b64) {
- if (nread == 1)
- bout[lpos-2] = '=';
- if (nread == 1 || nread == 2)
- bout[lpos-1] = '=';
- }
-
- if (!b64)
- putchar (0x20 + lread);
- fwrite (bout, sizeof (char), lpos, stdout);
- fputc ('\n', stdout);
- lread = 0;
- lpos = 0;
- }
- }
-
- if (b64)
- printf ("====\n");
- else
- printf ("%c\nend\n", 0x20);
-
- return 0;
+ char bin[3], bout[76];
+ int nread = 0, lread = 0, lpos = 0;
+ int linelength = b64 ? 54 : 43;
+ int i;
+
+ printf("begin%s %03o %s\n", b64 ? "-base64" : "", mode, out);
+
+ while (!feof(in)) {
+ nread = fread(bin, sizeof(char), 3, in);
+ if (nread > 0) {
+ bout[lpos++] = (bin[0] >> 2) & 0x3f;
+ bout[lpos++] =
+ ((bin[0] << 4) | ((bin[1] >> 4) & 0xf)) & 0x3f;
+ bout[lpos++] =
+ ((bin[1] << 2) | ((bin[2] >> 6) & 0x3)) & 0x3f;
+ bout[lpos++] = (bin[2]) & 0x3f;
+ bin[0] = bin[1] = bin[2] = 0;
+ lread += nread;
+ }
+
+ if (feof(in) || nread == 0 || lread > linelength) {
+ for (i = 0; i < lpos; i++)
+ bout[i] = b64 ? b64s[bout[i]] : bout[i] + 0x20;
+
+ if (b64) {
+ if (nread == 1)
+ bout[lpos - 2] = '=';
+ if (nread == 1 || nread == 2)
+ bout[lpos - 1] = '=';
+ }
+
+ if (!b64)
+ putchar(0x20 + lread);
+ fwrite(bout, sizeof(char), lpos, stdout);
+ fputc('\n', stdout);
+ lread = 0;
+ lpos = 0;
+ }
+ }
+
+ if (b64)
+ printf("====\n");
+ else
+ printf("%c\nend\n", 0x20);
+
+ return 0;
}
-int
-main(int argc, char **argv)
+int main(int argc, char *argv[])
{
- int b64 = 0, mode = 0644, c;
- FILE *input;
- struct stat st;
-
- while ((c = getopt(argc, argv, ":m")) != -1) {
- switch (c) {
- case 'm':
- b64 = 1;
- break;
- default:
- return 1;
- }
- }
-
- if (argc - optind == 2) {
- input = fopen (argv[optind++], "r");
- if (fstat (fileno(input), &st) == 0)
- mode = st.st_mode & 0777;
- } else if (argc - optind == 1)
- input = stdin;
- else
- return 1;
-
- if (input == NULL)
- return 1; // File I/O error
-
- return encode (input, argv[optind], mode, b64);
+ int b64 = 0, mode = 0644, c;
+ FILE *input;
+ struct stat st;
+
+ while ((c = getopt(argc, argv, ":m")) != -1) {
+ switch (c) {
+ case 'm':
+ b64 = 1;
+ break;
+ default:
+ return 1;
+ }
+ }
+
+ if (argc - optind == 2) {
+ input = fopen(argv[optind++], "r");
+ if (fstat(fileno(input), &st) == 0)
+ mode = st.st_mode & 0777;
+ } else if (argc - optind == 1)
+ input = stdin;
+ else
+ return 1;
+
+ if (input == NULL)
+ return 1; // File I/O error
+
+ return encode(input, argv[optind], mode, b64);
}