Module Name:    othersrc
Committed By:   agc
Date:           Thu Mar 17 03:21:11 UTC 2011

Modified Files:
        othersrc/external/bsd/rs/dist: main.c rs.1

Log Message:
rework the data/parity bytes command line specification to be more natural,
especially for this area of erasure codes.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 othersrc/external/bsd/rs/dist/main.c
cvs rdiff -u -r1.2 -r1.3 othersrc/external/bsd/rs/dist/rs.1

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: othersrc/external/bsd/rs/dist/main.c
diff -u othersrc/external/bsd/rs/dist/main.c:1.1.1.1 othersrc/external/bsd/rs/dist/main.c:1.2
--- othersrc/external/bsd/rs/dist/main.c:1.1.1.1	Sat Mar 12 08:08:29 2011
+++ othersrc/external/bsd/rs/dist/main.c	Thu Mar 17 03:21:11 2011
@@ -93,8 +93,11 @@
 	unsigned	 poly;
 	uint8_t		 databytes;
 	uint8_t		 parity;
+	uint8_t		 data2;
+	uint8_t		 par2;
 	rs_t		 rs;
 	char		*out;
+	char		*s;
 	int		 encoding;
 	int		 i;
 
@@ -108,17 +111,24 @@
 		case 'P':
 			poly = (unsigned)strtol(optarg, NULL, 16);
 			break;
-		case 'b':
-			databytes = atoi(optarg) & 0xff;
-			break;
 		case 'd':
 			encoding = 0;
 			break;
 		case 'o':
 			out = optarg;
 			break;
+		case 'b':
 		case 'p':
-			parity = atoi(optarg) & 0xff;
+			for (s = optarg, data2 = 0 ; *s && *s != '/' ; s++) {
+				data2 = (data2 * 10) + (*s - '0');
+			}
+			if (*s == ',') {
+				for (s++, par2 = 0 ; *s ; s++) {
+					par2 = (par2 * 10) + (*s - '0');
+				}
+				parity = data2 - par2;
+				databytes = par2;
+			}
 			break;
 		case 'v':
 			printf("Version: %u\n", PKG_VERSION);
@@ -130,6 +140,8 @@
 	}
 	(void) memset(&rs, 0x0, sizeof(rs));
 	/* Initialization of the ECC library */
+/* databytes: def 224, should be 255 */
+/* parity: def 32, should be 223 */
 	if (!rs_init(&rs, poly, databytes, parity)) {
 		exit(EXIT_FAILURE);
 	}

Index: othersrc/external/bsd/rs/dist/rs.1
diff -u othersrc/external/bsd/rs/dist/rs.1:1.2 othersrc/external/bsd/rs/dist/rs.1:1.3
--- othersrc/external/bsd/rs/dist/rs.1:1.2	Sat Mar 12 13:20:00 2011
+++ othersrc/external/bsd/rs/dist/rs.1	Thu Mar 17 03:21:11 2011
@@ -1,4 +1,4 @@
-.\" $NetBSD: rs.1,v 1.2 2011/03/12 13:20:00 wiz Exp $
+.\" $NetBSD: rs.1,v 1.3 2011/03/17 03:21:11 agc Exp $
 .\"
 .\" Copyright (c) 2011 Alistair Crooks <a...@netbsd.org>
 .\" All rights reserved.
@@ -23,7 +23,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd March 10, 2011
+.Dd March 16, 2011
 .Dt RS 1
 .Os
 .Sh NAME
@@ -32,9 +32,9 @@
 .Sh SYNOPSIS
 .Nm
 .Fl dv
-.Op Fl b Ar data-bytes
+.Op Fl b Ar total-bytes,parity-bytes
 .Op Fl o Ar filename
-.Op Fl p Ar parity-bytes
+.Op Fl p Ar total-bytes,parity-bytes
 .Ar file ...
 .Sh DESCRIPTION
 The
@@ -60,32 +60,26 @@
 data bytes.
 .Pp
 The following options are available:
-.Bl -tag -width parity-bytes-and
+.Bl -tag -width total-bytes-and-data-bytes
 .It Fl d
 decode the file(s) given, or
 .Dv stdin
 if no files were specified.
-.It Fl v
-print the version information on
-.Dv stdout
-and then exit.
-.It Fl b Ar data-bytes
-specifies the number of data bytes to be used in an output packet.
+.It Fl b Ar total-bytes,data-bytes
+.It Fl p Ar total-bytes,data-bytes
+specifies the total number of bytes in an
+.Dq output packet
+as well as the number of data bytes to be used in an output packet.
 If no value is specified,
-.Dv 224
+.Dv 255,223
 is used.
+This will protect against 16 errors in the data.
 .It Fl o Ar output-file
 use the specified file for output.
 By default, output will go to
 .Dv stdout
-.It Fl p Ar parity-bytes
-specifies the number of parity bytes to be used in an output packet.
-If no value is specified,
-.Dv 32
-is used.
-This will protect against 16 errors in the data.
 .It Fl v
-prints the version of
+prints the version information of
 .Nm
 on
 .Dv stdout

Reply via email to