Gentoo Archives: gentoo-dev

From: Jonathan Callen <abcd@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: use_echo() as a universal '?:' operator-like function
Date: Sun, 12 Sep 2010 02:40:16
Message-Id: 4C8C3D76.1000607@gentoo.org
In Reply to: [gentoo-dev] Re: use_echo() as a universal '?:' operator-like function by Jonathan Callen
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 09/11/2010 02:03 PM, Jonathan Callen wrote:
5 > On 09/08/2010 03:03 PM, MichaB Górny wrote:
6 >> If called with a single arg, it would assume val1=use1.
7 >
8 > Just as a proof-of-concept, here's one implementation of such a
9 > function, allowing for an arbitrary number of arguments:
10 >
11
12 Actually, I forgot to include the single-argument version (which really
13 is the same as usev(), so it's not as useful as you might think):
14
15 > use_echo() {
16 if [[ $# -eq 1 ]]; then
17 usev "$1"
18 return
19 fi
20 > while [[ $# -gt 1 ]]; do
21 > if use "$1"; then
22 > echo "$2"
23 > return
24 > fi
25 > shift 2
26 > done
27 > [[ $# -eq 1 ]] && echo "$1"
28 > }
29
30 Consider this a vote in favor of `use_echo use1 val1 use2 val2 other`
31 instead of `use_echo use1,val1 use2,val2 other` (I think this is more
32 readable, myself).
33
34 - --
35 Jonathan Callen
36 -----BEGIN PGP SIGNATURE-----
37 Version: GnuPG v2.0.16 (GNU/Linux)
38 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
39
40 iQIcBAEBCAAGBQJMjD12AAoJELHSF2kinlg40EQP/Rd9ks2JU9HjtDc7Vgt3fZWg
41 yN08UyhBhYxy4zS7Lijo+J33GyMBB/Qn5iEj5jkpgbol8BmETnC8aKTqc6LDOrnb
42 tahVVsuZNIoX+l8dF53op+qYXwGKDFNqobU02+Yj9lpju7MtpwWhQhHDjg7FtgTz
43 RCc2F712Lw4ncMCT54wlUnJFPX9Xy0WuCMaxUzVG6K9tB5+hyWR1l3oP0kfYkmY+
44 1kDD6uYt/MTH7c3koe9rIM0O1KGdOUJ+tszgmIKUhtlMNOHHIejTCPcZSdQassR7
45 Ff2Lh+WKe0OqNcAEKaFFlXjMBNz/g/uGZbqGWh39kX21oH+G+QOoYaStYuO9nnHV
46 NgpKRNL4eEr/UCvTt7DV52oJm9b6tK/6Z/J10ihhqf3vNBWeN5OMwguLW0iTu0/v
47 /ja16VpdkdFQ6d/kbeQCPWvx4WW+gWuo/QcbhL9drC2VsBV+gJcrQhzECSdxAHeG
48 CmJGrkAH8r6rBuNhzvkGMnNVsf+vwcB+1qGMiXltmboSkv56AcWhTOmeZ9tzfCv4
49 FUDIX4bm7v51xqBfqb/SNLrOgz+Deo3GOtOk2HWHbGfYHsohBPHva4WLAOHwIFcO
50 J4Fb5tNWf74DVKKJGmU5RctWGh5sDgM2mEZmDkTHEzv2R1/0Hp++jhZ5htYXpCRk
51 Ni95j32etVEKNK1a6FvH
52 =2cVl
53 -----END PGP SIGNATURE-----