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
|
dnl @ ../doc/m4.texi:4700: 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.
ifdef(`changeword', `', `errprint(` skipping: no changeword support
')m4exit(`77')')dnl
define(`foo
', `bar
')
dnl @result{}
dnl This example wants to recognize changeword, dnl, and `foo\n'.
dnl First, we check that our regexp will match.
regexp(`changeword', `[cd][a-z]*\|foo[
]')
dnl @result{}0
regexp(`foo
', `[cd][a-z]*\|foo[
]')
dnl @result{}0
regexp(`f', `[cd][a-z]*\|foo[
]')
dnl @result{}-1
foo
dnl @result{}foo
changeword(`[cd][a-z]*\|foo[
]')
dnl @result{}
dnl Even though `foo\n' matches, we forgot to allow `f'.
foo
dnl @result{}foo
changeword(`[cd][a-z]*\|fo*[
]?')
dnl @result{}
dnl Now we can call `foo\n'.
foo
dnl @result{}bar
|