Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Apr 2016 11:45:52 +0000 (UTC)
From:      Pietro Cerutti <gahr@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r297960 - stable/10/usr.bin/uuencode
Message-ID:  <201604141145.u3EBjqGg062735@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gahr (ports committer)
Date: Thu Apr 14 11:45:52 2016
New Revision: 297960
URL: https://svnweb.freebsd.org/changeset/base/297960

Log:
  MFC 297678: Enhance uuencode with a -r option to produce raw output.
  
  This matches with uudecode's -r option to decode raw data without initial and
  final framing lines.
  
  $ echo Test | uuencode -mr - | uudecode -mr
  Test
  
  Approved by:	cognet

Modified:
  stable/10/usr.bin/uuencode/uuencode.1
  stable/10/usr.bin/uuencode/uuencode.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/uuencode/uuencode.1
==============================================================================
--- stable/10/usr.bin/uuencode/uuencode.1	Thu Apr 14 11:41:30 2016	(r297959)
+++ stable/10/usr.bin/uuencode/uuencode.1	Thu Apr 14 11:45:52 2016	(r297960)
@@ -40,6 +40,7 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl m
+.Op Fl r 
 .Op Fl o Ar output_file
 .Op Ar file
 .Ar name
@@ -50,6 +51,7 @@
 .Op Fl i
 .Fl o Ar output_file
 .Nm b64encode
+.Op Fl r
 .Op Fl o Ar output_file
 .Op Ar file
 .Ar name
@@ -123,6 +125,8 @@ The following options are available for
 Use the Base64 method of encoding, rather than the traditional
 .Nm
 algorithm.
+.It Fl r
+Produce raw output by excluding the initial and final framing lines.
 .It Fl o Ar output_file
 Output to
 .Ar output_file

Modified: stable/10/usr.bin/uuencode/uuencode.c
==============================================================================
--- stable/10/usr.bin/uuencode/uuencode.c	Thu Apr 14 11:41:30 2016	(r297959)
+++ stable/10/usr.bin/uuencode/uuencode.c	Thu Apr 14 11:45:52 2016	(r297960)
@@ -66,6 +66,7 @@ static void usage(void);
 
 static FILE *output;
 static int mode;
+static char raw = 0;
 static char **av;
 
 int
@@ -82,7 +83,7 @@ main(int argc, char *argv[])
 	if (strcmp(basename(argv[0]), "b64encode") == 0)
 		base64 = 1;
 
-	while ((ch = getopt(argc, argv, "mo:")) != -1) {
+	while ((ch = getopt(argc, argv, "mo:r")) != -1) {
 		switch (ch) {
 		case 'm':
 			base64 = 1;
@@ -90,6 +91,9 @@ main(int argc, char *argv[])
 		case 'o':
 			outfile = optarg;
 			break;
+		case 'r':
+			raw = 1;
+			break;
 		case '?':
 		default:
 			usage();
@@ -152,7 +156,8 @@ base64_encode(void)
 
 	sequence = 0;
 
-	fprintf(output, "begin-base64 %o %s\n", mode, *av);
+	if (!raw)
+		fprintf(output, "begin-base64 %o %s\n", mode, *av);
 	while ((n = fread(buf, 1, sizeof(buf), stdin))) {
 		++sequence;
 		rv = b64_ntop(buf, n, buf2, (sizeof(buf2) / sizeof(buf2[0])));
@@ -162,7 +167,8 @@ base64_encode(void)
 	}
 	if (sequence % GROUPS)
 		fprintf(output, "\n");
-	fprintf(output, "====\n");
+	if (!raw)
+		fprintf(output, "====\n");
 }
 
 /*
@@ -175,7 +181,8 @@ encode(void)
 	register char *p;
 	char buf[80];
 
-	(void)fprintf(output, "begin %o %s\n", mode, *av);
+	if (!raw)
+		(void)fprintf(output, "begin %o %s\n", mode, *av);
 	while ((n = fread(buf, 1, 45, stdin))) {
 		ch = ENC(n);
 		if (fputc(ch, output) == EOF)
@@ -209,7 +216,8 @@ encode(void)
 	}
 	if (ferror(stdin))
 		errx(1, "read error");
-	(void)fprintf(output, "%c\nend\n", ENC('\0'));
+	if (!raw)
+		(void)fprintf(output, "%c\nend\n", ENC('\0'));
 }
 
 static void



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201604141145.u3EBjqGg062735>