summaryrefslogtreecommitdiff
path: root/checks/073.shift
blob: 96d21556314c3b20e1554198a2c883494310f9fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
dnl @ ../doc/m4.texi:2978: Origin of test
dnl @ expected status: 0
dnl @ extra options: 
dnl @ Copyright (C) 2006, 2007, 2008, 2009 Free Software
dnl @ Foundation, Inc.
dnl @ This file is free software; the Free Software Foundation
dnl @ gives unlimited permission to copy and/or distribute it
dnl @ with or without modifications, as long as this notice
dnl @ is preserved.
define(`cond',
`ifelse(`$#', `1', `$1',
        `ifelse($1, `$2', `$3',
                `$0(shift(shift(shift($@))))')')')dnl
define(`side', `define(`counter', incr(counter))$1')dnl
define(`example1',
`define(`counter', `0')dnl
ifelse(side(`$1'), `yes', `one comparison: ',
       side(`$1'), `no', `two comparisons: ',
       side(`$1'), `maybe', `three comparisons: ',
       `side(`default answer: ')')counter')dnl
define(`example2',
`define(`counter', `0')dnl
cond(`side(`$1')', `yes', `one comparison: ',
     `side(`$1')', `no', `two comparisons: ',
     `side(`$1')', `maybe', `three comparisons: ',
     `side(`default answer: ')')counter')dnl
example1(`yes')
dnl @result{}one comparison: 3
example1(`no')
dnl @result{}two comparisons: 3
example1(`maybe')
dnl @result{}three comparisons: 3
example1(`feeling rather indecisive today')
dnl @result{}default answer: 4
example2(`yes')
dnl @result{}one comparison: 1
example2(`no')
dnl @result{}two comparisons: 2
example2(`maybe')
dnl @result{}three comparisons: 3
example2(`feeling rather indecisive today')
dnl @result{}default answer: 4