[comp.sys.ibm.pc] Enclosed are binary and source for uudecode and uuencode for the PC

tr@wind.bellcore.com (tom reingold) (10/26/87)

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	uudecode.c
#	uuencode.c
#	uu.uue
# This archive created: Mon Oct 26 08:19:58 1987
# By:	tom reingold (Bellcore, Morristown, Noo Joizy)
export PATH; PATH=/bin:$PATH
if test -f 'uudecode.c'
then
	echo shar: will not over-write existing file "'uudecode.c'"
else
cat << \SHAR_EOF > 'uudecode.c'
/* uudecode.c */

#ifndef lint
static char sccsid[] = "@(#)uudecode.c	5.1 (Berkeley) 7/2/83";
#endif

/*
 * uudecode [input]
 *
 * create the specified file, decoding as you go.
 * used with uuencode.
 */
#include <stdio.h>
#ifndef MSDOS
#include <pwd.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>

/* single character decode */
#define DEC(c)	(((c) - ' ') & 077)

main(argc, argv)
char **argv;
{
	FILE *in, *out;
	struct stat sbuf;
	int mode;
	char dest[128];
	char buf[80];

	/* optional input arg */
	if (argc > 1) {
		if ((in = fopen(argv[1], "r")) == NULL) {
			perror(argv[1]);
			exit(1);
		}
		argv++; argc--;
	} else
		in = stdin;

	if (argc != 1) {
		printf("Usage: uudecode [infile]\n");
		exit(2);
	}

	/* search for header line */
	for (;;) {
		if (fgets(buf, sizeof buf, in) == NULL) {
			fprintf(stderr, "No begin line\n");
			exit(3);
		}
		if (strncmp(buf, "begin ", 6) == 0)
			break;
	}
	sscanf(buf, "begin %o %s", &mode, dest);

	/* handle ~user/file format */
#ifndef MSDOS
	if (dest[0] == '~') {
		char *sl;
		struct passwd *getpwnam();
		char *index();
		struct passwd *user;
		char dnbuf[100];

		sl = index(dest, '/');
		if (sl == NULL) {
			fprintf(stderr, "Illegal ~user\n");
			exit(3);
		}
		*sl++ = 0;
		user = getpwnam(dest+1);
		if (user == NULL) {
			fprintf(stderr, "No such user as %s\n", dest);
			exit(4);
		}
		strcpy(dnbuf, user->pw_dir);
		strcat(dnbuf, "/");
		strcat(dnbuf, sl);
		strcpy(dest, dnbuf);
	}
#endif

	/* create output file */
#ifdef MSDOS
	/* binary output file */
	out = fopen(dest, "wb");
#else
	out = fopen(dest, "w");
#endif
	if (out == NULL) {
		perror(dest);
		exit(4);
	}
	chmod(dest, mode);

	decode(in, out);

	if (fgets(buf, sizeof buf, in) == NULL || strcmp(buf, "end\n")) {
		fprintf(stderr, "No end line\n");
		exit(5);
	}
	exit(0);
}

/*
 * copy from in to out, decoding as you go along.
 */
decode(in, out)
FILE *in;
FILE *out;
{
	char buf[80];
	char *bp;
	int n;

	for (;;) {
		/* for each input line */
		if (fgets(buf, sizeof buf, in) == NULL) {
			printf("Short file\n");
			exit(10);
		}
		n = DEC(buf[0]);
		if (n <= 0)
			break;

		bp = &buf[1];
		while (n > 0) {
			outdec(bp, out, n);
			bp += 4;
			n -= 3;
		}
	}
}

/*
 * output a group of 3 bytes (4 input characters).
 * the input chars are pointed to by p, they are to
 * be output to file f.  n is used to tell us not to
 * output all of them at the end of the file.
 */
outdec(p, f, n)
char *p;
FILE *f;
{
	int c1, c2, c3;

	c1 = DEC(*p) << 2 | DEC(p[1]) >> 4;
	c2 = DEC(p[1]) << 4 | DEC(p[2]) >> 2;
	c3 = DEC(p[2]) << 6 | DEC(p[3]);
	if (n >= 1)
		putc(c1, f);
	if (n >= 2)
		putc(c2, f);
	if (n >= 3)
		putc(c3, f);
}


/* fr: like read but stdio */
int
fr(fd, buf, cnt)
FILE *fd;
char *buf;
int cnt;
{
	int c, i;

	for (i=0; i<cnt; i++) {
		c = getc(fd);
		if (c == EOF)
			return(i);
		buf[i] = c;
	}
	return (cnt);
}

/*
 * Return the ptr in sp at which the character c appears;
 * NULL if not found
 */

#define	NULL	0

char *
index(sp, c)
register char *sp, c;
{
	do {
		if (*sp == c)
			return(sp);
	} while (*sp++);
	return(NULL);
}


SHAR_EOF
if test 3089 -ne "`wc -c < 'uudecode.c'`"
then
	echo shar: error transmitting "'uudecode.c'" '(should have been 3089 characters)'
fi
fi # end of overwriting check
if test -f 'uuencode.c'
then
	echo shar: will not over-write existing file "'uuencode.c'"
else
cat << \SHAR_EOF > 'uuencode.c'
/* uuencode.c */
     
/*
uudecode and uuencode are easily implemented under MSDOS as well.  Here
are the sources for Microsoft C v3.0, but if you have another kind of C
compiler, there should be perhaps only 1 change -- the output file of
uudecode and the input file of uuencode must be in binary format.
(ie.  binary files, like .EXE files may have byte patterns that are the
same as ^Z, which signals end-of-file in non-binary (text) mode).

	Don Kneller
UUCP:	...ucbvax!ucsfcgl!kneller
ARPA:	kneller@ucsf-cgl.ARPA
BITNET:	kneller@ucsfcgl.BITNET
*/

#ifndef lint
static char sccsid[] = "@(#)uuencode.c	5.1 (Berkeley) 7/2/83";
#endif

/*
 * uuencode [input] output
 *
 * Encode a file so it can be mailed to a remote system.
 */
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>

/* ENC is the basic 1 character encoding function to make a char printing */
#define ENC(c) (((c) & 077) + ' ')

main(argc, argv)
char **argv;
{
	FILE *in;
	struct stat sbuf;
	int mode;

	/* optional 1st argument */
	if (argc > 2) {
#ifdef MSDOS
		/* Use binary mode */
		if ((in = fopen(argv[1], "rb")) == NULL) {
#else
		if ((in = fopen(argv[1], "r")) == NULL) {
#endif
			perror(argv[1]);
			exit(1);
		}
		argv++; argc--;
	} else
		in = stdin;

	if (argc != 2) {
		printf("Usage: uuencode [infile] remotefile\n");
		exit(2);
	}

	/* figure out the input file mode */
	fstat(fileno(in), &sbuf);
	mode = sbuf.st_mode & 0777;
	printf("begin %o %s\n", mode, argv[1]);

	encode(in, stdout);

	printf("end\n");
	exit(0);
}

/*
 * copy from in to out, encoding as you go along.
 */
encode(in, out)
FILE *in;
FILE *out;
{
	char buf[80];
	int i, n;

	for (;;) {
		/* 1 (up to) 45 character line */
		n = fr(in, buf, 45);
		putc(ENC(n), out);

		for (i=0; i<n; i += 3)
			outdec(&buf[i], out);

		putc('\n', out);
		if (n <= 0)
			break;
	}
}

/*
 * output one group of 3 bytes, pointed at by p, on file f.
 */
outdec(p, f)
char *p;
FILE *f;
{
	int c1, c2, c3, c4;

	c1 = *p >> 2;
	c2 = (*p << 4) & 060 | (p[1] >> 4) & 017;
	c3 = (p[1] << 2) & 074 | (p[2] >> 6) & 03;
	c4 = p[2] & 077;
	putc(ENC(c1), f);
	putc(ENC(c2), f);
	putc(ENC(c3), f);
	putc(ENC(c4), f);
}

/* fr: like read but stdio */
int
fr(fd, buf, cnt)
FILE *fd;
char *buf;
int cnt;
{
	int c, i;

	for (i=0; i<cnt; i++) {
		c = getc(fd);
		if (c == EOF)
			return(i);
		buf[i] = c;
	}
	return (cnt);
}
SHAR_EOF
if test 2355 -ne "`wc -c < 'uuencode.c'`"
then
	echo shar: error transmitting "'uuencode.c'" '(should have been 2355 characters)'
fi
fi # end of overwriting check
if test -f 'uu.uue'
then
	echo shar: will not over-write existing file "'uu.uue'"
else
cat << \SHAR_EOF > 'uu.uue'
begin 664 uu.arc
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
7%``!D&``@@`)90$)%``!D+`=&1$)&@`!
`
end
SHAR_EOF
if test 22873 -ne "`wc -c < 'uu.uue'`"
then
	echo shar: error transmitting "'uu.uue'" '(should have been 22873 characters)'
fi
fi # end of overwriting check
#	End of shell archive
exit 0
Tom Reingold 			INTERNET:       tr@bellcore.bellcore.com
Bell Communications Research	UUCP: 		<backbone>!bellcore!tr
435 South St room 2L350		SOUNDNET:	(201) 829-5119 [work]
Morristown, NJ 07960				(201) 287-2345 [home]

darrylo@hpsrlc.UUCP (10/27/87)

In comp.sys.ibm.pc, tr@wind.bellcore.com (tom reingold) writes:

> #! /bin/sh
> # This is a shell archive, meaning:
> # 1. Remove everything above the #! /bin/sh line.
> # 2. Save the resulting text in a file.
> # 3. Execute the file with /bin/sh (not csh) to create the files:
> #	uudecode.c
> #	uuencode.c
> #	uu.uue
> # This archive created: Mon Oct 26 08:19:58 1987
> # By:	tom reingold (Bellcore, Morristown, Noo Joizy)
     [ ... ]
> #ifndef lint
> static char sccsid[] = "@(#)uudecode.c	5.1 (Berkeley) 7/2/83";
                                                     ^^^^^^^^
     Is this kosher?  Doesn't Berkeley have a copyright on their code?

     [ ... ]
> Tom Reingold 			INTERNET:       tr@bellcore.bellcore.com
> Bell Communications Research	UUCP: 		<backbone>!bellcore!tr
> 435 South St room 2L350		SOUNDNET:	(201) 829-5119 [work]
> Morristown, NJ 07960				(201) 287-2345 [home]
> ----------

     -- Darryl Okahata
	{hplabs!hpccc!, hpfcla!} hpsrla!darrylo
	CompuServe: 75206,3074

Disclaimer: the above is the author's personal opinion and is not the
opinion or policy of his employer or of the little green men that
have been following him all day.