diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2020-07-15 16:27:38 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2020-07-15 16:27:58 -0700 |
commit | 6677262915917e84a2d12775c176ee0c3d2edaf9 (patch) | |
tree | d837a2207ffad502f2bba256e4e95b8a40a4ed86 | |
parent | fc1fe985411216165116520b444cdeaae237b6fb (diff) | |
download | autoconf-6677262915917e84a2d12775c176ee0c3d2edaf9.tar.gz |
Document AC_EGREP* better
From a suggestion by Bruno Haible in:
https://lists.gnu.org/archive/html/bug-autoconf/2017-02/msg00001.html
-rw-r--r-- | doc/autoconf.texi | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/autoconf.texi b/doc/autoconf.texi index a50ab208..379e3c2f 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -9392,6 +9392,8 @@ If the output of running the preprocessor on the system header file @var{header-file} matches the extended regular expression @var{pattern}, execute shell commands @var{action-if-found}, otherwise execute @var{action-if-not-found}. + +See below for some problems involving this macro. @end defmac @anchor{AC_EGREP_CPP} @@ -9403,8 +9405,36 @@ variable, back quote, and backslash substitutions are performed. If the output of running the preprocessor on @var{program} matches the extended regular expression @var{pattern}, execute shell commands @var{action-if-found}, otherwise execute @var{action-if-not-found}. + +See below for some problems involving this macro. @end defmac +@code{AC_EGREP_CPP} and @code{AC_EGREP_HEADER} should be used with care, +as preprocessors can insert line breaks between output tokens. For +example, the preprocessor might transform this: + +@example +#define MAJOR 2 +#define MINOR 23 +Version MAJOR . MINOR +@end example + +@noindent +into this: + +@example +Version + 2 + . + 23 +@end example + +@noindent +Because preprocessors are allowed to insert white space, change escapes +in string contants, insert backlash-newline pairs, or do any of a number +of things that do not change the meaning of the preprocessed program, it +is better to rely on @code{AC_PREPROC_IFELSE} than to resort to +@code{AC_EGREP_CPP} or @code{AC_EGREP_HEADER}. @node Running the Compiler |