Hi, i'm using autoconf 2.14a (taken from cvs repository). it appears that it behaves incompatibly with v2.13 WRT option value passing. i'm using standard "sh" from Solaris 7 and AIX 4.2.1 to run configure (with the same results). "bash" behaves differently WRT passing backslashes, but configure should be run correctly in standard "sh" anyway. here is an example: =============================== 1) using autoconf 2.14a: $ ls -l total 4 -rw-r--r-- 1 vvv noc 0 Jun 29 11:32 Makefile.in -rw-r--r-- 1 vvv noc 15 Jun 29 11:25 config.h.in -rw-r--r-- 1 vvv noc 166 Jun 29 11:30 configure.in $ cat config.h.in #undef FEATURE $ cat configure.in AC_INIT(Makefile.in) AC_ARG_ENABLE(feature, [ --enable-feature='STRING'], AC_DEFINE_UNQUOTED(FEATURE,"$enableval")) AC_CONFIG_HEADER(config.h) AC_OUTPUT(Makefile) $ autoconf --version autoconf (GNU autoconf) 2.14a Written by David J. MacKenzie. Copyright (C) 1992, 93, 94, 96, 99, 2000 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ autoconf $ ./configure --enable-feature='abc\\\\nqwe' creating ./config.status creating Makefile creating config.h $ cat config.h /* config.h. Generated automatically by configure. */ #define FEATURE "abc\nqwe" $ ./configure --enable-feature='abc\\nqwe' creating ./config.status creating Makefile creating config.h $ cat config.h /* config.h. Generated automatically by configure. */ #define FEATURE "abc $ 2) using autoconf 2.13: $ ls -l total 4 -rw-r--r-- 1 vvv noc 0 Jun 29 11:32 Makefile.in -rw-r--r-- 1 vvv noc 15 Jun 29 11:25 config.h.in -rw-r--r-- 1 vvv noc 166 Jun 29 11:30 configure.in $ autoconf --version Autoconf version 2.13 $ autoconf $ ./configure --enable-feature='abc\\\\nqwe' creating cache ./config.cache updating cache ./config.cache creating ./config.status creating Makefile creating config.h $ cat config.h /* config.h. Generated automatically by configure. */ #define FEATURE "abc\\nqwe" $ ./configure --enable-feature='abc\\nqwe' loading cache ./config.cache creating ./config.status creating Makefile creating config.h $ cat config.h /* config.h. Generated automatically by configure. */ #define FEATURE "abc\nqwe" $ =============================== As can be seen, * when i pass an option --enable-feature='abc\\nqwe', i get: #define FEATURE "abc\nqwe" for autoconf 2.13 broken result for autoconf 2.14a * when i pass an option --enable-feature='abc\\\\nqwe', i get: #define FEATURE "abc\\nqwe" for autoconf 2.13 #define FEATURE "abc\nqwe" for autoconf 2.13 This different behavior leads to various problems. :-( Also, in both cases passing --enable-feature='abc\nqwe' leads to an error: $ ./configure --enable-feature='abc\nqwe' configure: error: feature qwe: invalid feature name (in case of bash, this works fine). Could you please * make the behavior of autoconf 2.14a WRT passing backslashed chars in strings compatible with 2.13? (in particular, fix a bug with passing --enable-feature='abc\\nqwe' mentioned above) * maybe allow one just to pass --enable-feature='abc\nqwe' and make it work like in bash. Best, v.
