Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Mar 2015 00:29:58 +0000 (UTC)
From:      Devin Teske <dteske@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: r279609 - in stable/10/usr.sbin/bsdconfig: includes share share/packages
Message-ID:  <201503050029.t250TxUq081409@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dteske
Date: Thu Mar  5 00:29:58 2015
New Revision: 279609
URL: https://svnweb.freebsd.org/changeset/base/279609

Log:
  MFC r273067:
  Fix awk(1) asorti() implementation to work when called in a loop.

Modified:
  stable/10/usr.sbin/bsdconfig/includes/includes
  stable/10/usr.sbin/bsdconfig/share/device.subr
  stable/10/usr.sbin/bsdconfig/share/packages/index.subr
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/bsdconfig/includes/includes
==============================================================================
--- stable/10/usr.sbin/bsdconfig/includes/includes	Thu Mar  5 00:18:32 2015	(r279608)
+++ stable/10/usr.sbin/bsdconfig/includes/includes	Thu Mar  5 00:29:58 2015	(r279609)
@@ -71,8 +71,10 @@ show_include()
 		-v show_desc=${SHOW_DESC:-0} '
         function asorti(src, dest)
         {
+		k = nitems = 0;
+
 		# Copy src indices to dest and calculate array length
-		nitems = 0; for (i in src) dest[++nitems] = i
+		for (i in src) dest[++nitems] = i
 
 		# Sort the array of indices (dest) using insertion sort method
 		for (i = 1; i <= nitems; k = i++)

Modified: stable/10/usr.sbin/bsdconfig/share/device.subr
==============================================================================
--- stable/10/usr.sbin/bsdconfig/share/device.subr	Thu Mar  5 00:18:32 2015	(r279608)
+++ stable/10/usr.sbin/bsdconfig/share/device.subr	Thu Mar  5 00:29:58 2015	(r279609)
@@ -1118,6 +1118,7 @@ f_device_sort_by_awk='
 # 	-v prop="property"
 function asorti(src, dest)
 {
+	k = nitems = 0
 	for (i in src) dest[++nitems] = i
 	for (i = 1; i <= nitems; k = i++) {
 		idx = dest[i]

Modified: stable/10/usr.sbin/bsdconfig/share/packages/index.subr
==============================================================================
--- stable/10/usr.sbin/bsdconfig/share/packages/index.subr	Thu Mar  5 00:18:32 2015	(r279608)
+++ stable/10/usr.sbin/bsdconfig/share/packages/index.subr	Thu Mar  5 00:29:58 2015	(r279609)
@@ -243,8 +243,10 @@ f_index_read()
 	eval "$( debug= f_getvar "$var_to_get" | awk -F'|' '
 	function asorti(src, dest)
 	{
+		k = nitems = 0
+
 		# Copy src indices to dest and calculate array length
-		nitems = 0; for (i in src) dest[++nitems] = i
+		for (i in src) dest[++nitems] = i
 
 		# Sort the array of indices (dest) using insertion sort method
 		for (i = 1; i <= nitems; k = i++)



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