Imported Upstream version 1.4.16
[platform/upstream/m4.git] / checks / 223.improved_f
1 dnl @ ../doc/m4.texinfo:8168: Origin of test
2 dnl @ expected status: 0
3 dnl @ extra options: 
4 dnl @ Copyright (C) 2006, 2007, 2008, 2009 Free Software
5 dnl @ Foundation, Inc.
6 dnl @ This file is free software; the Free Software Foundation
7 dnl @ gives unlimited permission to copy and/or distribute it
8 dnl @ with or without modifications, as long as this notice
9 dnl @ is preserved.
10 include(`foreach2.m4')
11 dnl @result{}
12 include(`foreachq2.m4')
13 dnl @result{}
14 dnl 0-element list:
15 foreach(`x', `', `<x>') / foreachq(`x', `', `<x>')
16 dnl @result{} / 
17 dnl 1-element list of empty element
18 foreach(`x', `()', `<x>') / foreachq(`x', ``'', `<x>')
19 dnl @result{}<> / <>
20 dnl 2-element list of empty elements
21 foreach(`x', `(`',`')', `<x>') / foreachq(`x', ``',`'', `<x>')
22 dnl @result{}<><> / <><>
23 dnl 1-element list of a comma
24 foreach(`x', `(`,')', `<x>') / foreachq(`x', ``,'', `<x>')
25 dnl @result{}<,> / <,>
26 dnl 2-element list of unbalanced parentheses
27 foreach(`x', `(`(', `)')', `<x>') / foreachq(`x', ``(', `)'', `<x>')
28 dnl @result{}<(><)> / <(><)>
29 define(`ab', `oops')dnl using defn(`iterator')
30 foreach(`x', `(`a', `b')', `defn(`x')') /dnl
31  foreachq(`x', ``a', `b'', `defn(`x')')
32 dnl @result{}ab / ab
33 define(`active', `ACT, IVE')
34 dnl @result{}
35 traceon(`active')
36 dnl @result{}
37 dnl list of unquoted macros; expansion occurs before recursion
38 foreach(`x', `(active, active)', `<x>
39 ')dnl
40 dnl @error{}m4trace: -4- active -> `ACT, IVE'
41 dnl @error{}m4trace: -4- active -> `ACT, IVE'
42 dnl @result{}<ACT>
43 dnl @result{}<IVE>
44 dnl @result{}<ACT>
45 dnl @result{}<IVE>
46 foreachq(`x', `active, active', `<x>
47 ')dnl
48 dnl @error{}m4trace: -3- active -> `ACT, IVE'
49 dnl @error{}m4trace: -3- active -> `ACT, IVE'
50 dnl @result{}<ACT>
51 dnl @error{}m4trace: -3- active -> `ACT, IVE'
52 dnl @error{}m4trace: -3- active -> `ACT, IVE'
53 dnl @result{}<IVE>
54 dnl @result{}<ACT>
55 dnl @result{}<IVE>
56 dnl list of quoted macros; expansion occurs during recursion
57 foreach(`x', `(`active', `active')', `<x>
58 ')dnl
59 dnl @error{}m4trace: -1- active -> `ACT, IVE'
60 dnl @result{}<ACT, IVE>
61 dnl @error{}m4trace: -1- active -> `ACT, IVE'
62 dnl @result{}<ACT, IVE>
63 foreachq(`x', ``active', `active'', `<x>
64 ')dnl
65 dnl @error{}m4trace: -1- active -> `ACT, IVE'
66 dnl @result{}<ACT, IVE>
67 dnl @error{}m4trace: -1- active -> `ACT, IVE'
68 dnl @result{}<ACT, IVE>
69 dnl list of double-quoted macro names; no expansion
70 foreach(`x', `(``active'', ``active'')', `<x>
71 ')dnl
72 dnl @result{}<active>
73 dnl @result{}<active>
74 foreachq(`x', ```active'', ``active''', `<x>
75 ')dnl
76 dnl @result{}<active>
77 dnl @result{}<active>