mkaptsrc: Use `local' for tracking paintedness of tags.
[distorted-bits] / expand-list
CommitLineData
f1b539a1
MW
1#! /bin/sh
2###
3### Expand a list of symbolic references to other lists.
4
5expand () {
6 slaves=""
7 for i in "$@"; do
8 case "$i" in
9 :*)
10 name=${i#:}
11 eval found=\${set_$name+t}\${set_$name-nil} set=\${set_$name}
12 case "$found" in
13 nil) echo >&2 "$0: no such set \`$name'"; exit 1 ;;
14 esac
15 slaves="$slaves $set"
16 ;;
17 *)
18 slaves="$slaves $i"
19 ;;
20 esac
21 done
22 echo $slaves
23}
24
25defset () {
26 setname=$1; shift
27 eval set_$setname='$(expand "$@")'
28}
29
30case $# in
31 0 | 1)
32 echo >&2 "Usage: $0 FILE ITEM|:LIST ..."
33 exit 1
34 ;;
35esac
36
37. "$1"; shift
38expand "$@"
39