summaryrefslogtreecommitdiff
path: root/distrib/miniroot
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2009-04-13 01:59:20 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2009-04-13 01:59:20 +0000
commit32019ae92c1a2dc7fd47715eb293859dddbc3c14 (patch)
treede1b4af192aba6e5176517d52d1e95001dac8395 /distrib/miniroot
parente1b0e990bce86d1a964c330a65172fa0112fd128 (diff)
Print the sets list in 3 columns. Some pathological case handling for
extremely siteXX-stupidlonghostname.tgz files worked out with krw The shell script output is now substantially shorter than it was before and blind people will appreciate this in our next release.
Diffstat (limited to 'distrib/miniroot')
-rw-r--r--distrib/miniroot/install.sub29
1 files changed, 24 insertions, 5 deletions
diff --git a/distrib/miniroot/install.sub b/distrib/miniroot/install.sub
index 1fb551aac24..d678e9d0e89 100644
--- a/distrib/miniroot/install.sub
+++ b/distrib/miniroot/install.sub
@@ -1,4 +1,4 @@
-# $OpenBSD: install.sub,v 1.451 2009/04/13 01:48:05 deraadt Exp $
+# $OpenBSD: install.sub,v 1.452 2009/04/13 01:59:19 deraadt Exp $
# $NetBSD: install.sub,v 1.5.2.8 1996/09/02 23:25:02 pk Exp $
#
# Copyright (c) 1997-2007 Todd Miller, Theo de Raadt, Ken Westerback
@@ -480,7 +480,8 @@ addhostent() {
#
# Set $resp to list of selected sets.
select_sets() {
- local _avail=$1 _selected=$2 _next _f _action
+ local _avail=$1 _selected=$2 _next _f _action _col _p
+ typeset -L16 _l # 16 characters per column
cat <<__EOT
@@ -491,15 +492,33 @@ __EOT
while :; do
_action=
_next=
- echo
+ _col=0
for _f in $_avail; do
if isin $_f $_selected; then
- echo " [X] $_f"
+ _p="[X] $_f"
else
- echo " [ ] $_f"
+ _p="[ ] $_f"
: ${_next:=$_f}
fi
+ if (( _col == 0 )); then
+ echo -n ' '
+ fi
+ if (( ${#_p} > 16 )); then
+ print -n "$_p" # XXX site* is last entry
+ _col=2 # trigger a new line
+ else
+ _l="$_p"
+ print -n "$_l"
+ fi
+ let _col=_col+1
+ if (( _col == 3 )); then
+ echo # end of a column
+ _col=0
+ fi
done
+ if (( _col % 3 )); then
+ echo # complete a partial column
+ fi
: ${_next:=done}
ask "Set name? (or 'done')" "$_next"