summaryrefslogtreecommitdiff
blob: 04cd1807b8a05ca66975cf023ba5d365e079f3b3 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
commit 3ac7ceb0c2dfd023e0e9e944da6825b6bd676568
Author: Eric Blake <ebb9@byu.net>
Date:   Thu Jun 5 15:18:11 2008 -0600

    Fix regression in AT_KEYWORDS([Macro]), from 2007-10-18.
    
    * lib/autotest/general.m4 (AT_KEYWORDS): Expand argument prior to
    converting it to lower case.
    * tests/autotest.at (Keywords and ranges): Test this.
    * NEWS: Document the fix.
    * THANKS: Update.
    Reported by Karsten Hopp.
    
    Signed-off-by: Eric Blake <ebb9@byu.net>

diff --git a/NEWS b/NEWS
index 183d4f1..8b866ad 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,10 @@ GNU Autoconf NEWS - User visible changes.
 ** Two new quadrigraphs have been introduced: @{:@ for (, and @:}@ for ),
    allowing the output of unbalanced parantheses in more contexts.
 
+** AT_KEYWORDS once again performs expansion on its argument, such that
+   AT_KEYWORDS([m4_if([$1], [], [default])]) no longer complains about
+   the possibly unexpanded m4_if [regression introduced in 2.62].
+
 
 * Major changes in Autoconf 2.62 (2008-04-05) [stable]
   Released by Eric Blake, based on git versions 2.61a.*.
diff --git a/THANKS b/THANKS
index 5ec8921..224cdea 100644
--- a/THANKS
+++ b/THANKS
@@ -177,6 +177,7 @@ Justace Clutter             ?
 Jörn Rennecke               amylaar@cygnus.co.uk
 Karl Berry                  karl@cs.umb.edu
 Karl Heuer                  kwzh@gnu.org
+Karsten Hopp                karsten@redhat.com
 Kate Hedstrom               ?
 Kathryn Hargreaves          kathryn@deas.harvard.edu
 Kaveh R. Ghazi              ghazi@caip.rutgers.edu
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index 88d10a3..993dd9f 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -1476,9 +1476,10 @@ m4_case([$1],
 # AT_KEYWORDS(KEYWORDS)
 # ---------------------
 # Declare a list of keywords associated to the current test group.
-# The list is stored in lower case, since the -k option is case-insensitive.
+# Since the -k option is case-insensitive, the list is stored in lower case
+# to avoid duplicates that differ only by case.
 _AT_DEFINE_SETUP([AT_KEYWORDS],
-[m4_append_uniq_w([AT_keywords], m4_tolower([[$1]]))])
+[m4_append_uniq_w([AT_keywords], m4_tolower(m4_dquote(m4_expand([$1]))))])
 
 
 # AT_CAPTURE_FILE(FILE)
diff --git a/tests/autotest.at b/tests/autotest.at
index dc3cfd5..c4c0eda 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -690,7 +690,7 @@ AT_CHECK(:)
 AT_CLEANUP
 AT_SETUP(both) # 04
 AT_KEYWORDS([key1 key2])
-AT_KEYWORDS([key1])
+AT_KEYWORDS([m4@&t@_echo([Key1])])
 AT_CHECK(:)
 AT_CLEANUP
 AT_SETUP(test5) # 05
@@ -713,7 +713,7 @@ AT_CHECK(:)
 AT_CLEANUP
 ]])
 dnl check that AT_KEYWORDS does not duplicate words
-AT_CHECK([grep 'key1.*key1' k], [1])
+AT_CHECK([grep -i 'key1.*key1' k], [1])
 dnl check that -k requires an argument
 AT_CHECK([$CONFIG_SHELL ./k -k], [1], [], [ignore])