Module Name:    src
Committed By:   dsl
Date:           Sun Aug 16 20:02:04 UTC 2009

Modified Files:
        src/usr.bin/sort: append.c fsort.c

Log Message:
'depth' is used for the number of bytes into the key that the pointers
reference, when we want to find the record header put the larger value
into 'hdr_off' to avoid any confusion that the code might be changing
'depth'!
There is now no need to save the original value as 'odepth' in append.c.
All an a vague attempt to make this code slightly readable.


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/usr.bin/sort/append.c
cvs rdiff -u -r1.35 -r1.36 src/usr.bin/sort/fsort.c

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

Modified files:

Index: src/usr.bin/sort/append.c
diff -u src/usr.bin/sort/append.c:1.16 src/usr.bin/sort/append.c:1.17
--- src/usr.bin/sort/append.c:1.16	Sun Aug 16 19:53:43 2009
+++ src/usr.bin/sort/append.c	Sun Aug 16 20:02:04 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: append.c,v 1.16 2009/08/16 19:53:43 dsl Exp $	*/
+/*	$NetBSD: append.c,v 1.17 2009/08/16 20:02:04 dsl Exp $	*/
 
 /*-
  * Copyright (c) 2000-2003 The NetBSD Foundation, Inc.
@@ -64,7 +64,7 @@
 #include "sort.h"
 
 #ifndef lint
-__RCSID("$NetBSD: append.c,v 1.16 2009/08/16 19:53:43 dsl Exp $");
+__RCSID("$NetBSD: append.c,v 1.17 2009/08/16 20:02:04 dsl Exp $");
 __SCCSID("@(#)append.c	8.1 (Berkeley) 6/6/93");
 #endif /* not lint */
 
@@ -74,7 +74,7 @@
 #define OUTPUT {							\
 	if ((n = cpos - ppos) > 1) {					\
 		for (; ppos < cpos; ++ppos)				\
-			*ppos -= odepth;				\
+			*ppos -= depth;				\
 		ppos -= n;						\
 		if (stable_sort)					\
 			sradixsort(ppos, n, wts1, REC_D);		\
@@ -95,7 +95,8 @@
     struct field *ftbl)
 {
 	u_char *wts, *wts1;
-	int n, odepth = depth;
+	int n;
+	int hdr_off;
 	const u_char **cpos, **ppos, **lastkey;
 	const u_char *cend, *pend, *start;
 	const struct recheader *crec, *prec;
@@ -110,14 +111,14 @@
 			wts1 = ascii;
 	}
 	lastkey = keylist + nelem;
-	depth += REC_DATA_OFFSET;
+	hdr_off = REC_DATA_OFFSET + depth;
 	if (SINGL_FLD && (UNIQUE || wts1 != wts)) {
 		ppos = keylist;
-		prec = (const RECHEADER *) (*ppos - depth);
+		prec = (const RECHEADER *) (*ppos - hdr_off);
 		if (UNIQUE)
 			put(prec, fp);
 		for (cpos = &keylist[1]; cpos < lastkey; cpos++) {
-			crec = (const RECHEADER *) (*cpos - depth);
+			crec = (const RECHEADER *) (*cpos - hdr_off);
 			if (crec->length  == prec->length) {
 				/*
 				 * Set pend and cend so that trailing NUL and
@@ -150,10 +151,10 @@
 		if (!UNIQUE)  { OUTPUT; }
 	} else if (UNIQUE) {
 		ppos = keylist;
-		prec = (const RECHEADER *) (*ppos - depth);
+		prec = (const RECHEADER *) (*ppos - hdr_off);
 		put(prec, fp);
 		for (cpos = &keylist[1]; cpos < lastkey; cpos++) {
-			crec = (const RECHEADER *) (*cpos - depth);
+			crec = (const RECHEADER *) (*cpos - hdr_off);
 			if (crec->offset == prec->offset) {
 				/*
 				 * Set pend and cend so that trailing NUL and
@@ -178,7 +179,7 @@
 			}
 		}
 	} else for (cpos = keylist; cpos < lastkey; cpos++) {
-		crec = (const RECHEADER *) (*cpos - depth);
+		crec = (const RECHEADER *) (*cpos - hdr_off);
 		put(crec, fp);
 	}
 }

Index: src/usr.bin/sort/fsort.c
diff -u src/usr.bin/sort/fsort.c:1.35 src/usr.bin/sort/fsort.c:1.36
--- src/usr.bin/sort/fsort.c:1.35	Sun Aug 16 19:53:43 2009
+++ src/usr.bin/sort/fsort.c	Sun Aug 16 20:02:04 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: fsort.c,v 1.35 2009/08/16 19:53:43 dsl Exp $	*/
+/*	$NetBSD: fsort.c,v 1.36 2009/08/16 20:02:04 dsl Exp $	*/
 
 /*-
  * Copyright (c) 2000-2003 The NetBSD Foundation, Inc.
@@ -72,7 +72,7 @@
 #include "fsort.h"
 
 #ifndef lint
-__RCSID("$NetBSD: fsort.c,v 1.35 2009/08/16 19:53:43 dsl Exp $");
+__RCSID("$NetBSD: fsort.c,v 1.36 2009/08/16 20:02:04 dsl Exp $");
 __SCCSID("@(#)fsort.c	8.1 (Berkeley) 6/6/93");
 #endif /* not lint */
 
@@ -341,15 +341,16 @@
 	static int histo[256];
 	int *hp;
 	int c;
+	int hdr_off;
 	const u_char **an, *t, **aj;
 	const u_char **ak, *r;
 
 	memset(tsizes, 0, sizeof(tsizes));
-	depth += REC_DATA_OFFSET;
+	hdr_off = REC_DATA_OFFSET + depth;
 	an = &a[n];
 	for (ak = a; ak < an; ak++) {
 		histo[c = tr[**ak]]++;
-		tsizes[c] += ((const RECHEADER *) (*ak -= depth))->length;
+		tsizes[c] += ((const RECHEADER *) (*ak -= hdr_off))->length;
 	}
 
 	bin[0] = a;
@@ -362,7 +363,7 @@
 			continue;
 	}
 	for (aj = a; aj < an; *aj = r, aj = bin[c + 1]) 
-		for (r = *aj; aj < (ak = --top[c = tr[r[depth]]]) ;)
+		for (r = *aj; aj < (ak = --top[c = tr[r[hdr_off]]]) ;)
 			swap(*ak, r, t);
 
 	for (ak = a, c = 0; c < 256; c++) {

Reply via email to