diff options
| author | Jan200101 <sentrycraft123@gmail.com> | 2025-06-07 10:37:02 +0200 |
|---|---|---|
| committer | Jussi Pakkanen <jussi.pakkanen@mailbox.org> | 2025-06-08 23:51:31 +0300 |
| commit | c8432df30edea96557db871d67c731537654afbf (patch) | |
| tree | 8c073d471a4df3f600992f9e54fd2c5519c7088e /test cases | |
| parent | 07cd9bc16b0c2215b5d835d738e48085baa8f251 (diff) | |
| download | meson-c8432df30edea96557db871d67c731537654afbf.tar.gz | |
replace regex implementation for cmake with a parser
cmake does preprocessing in a linear pass through the entire file
this allows recursive variable lookups which cannot be supported
by a basic regex implementation.
Diffstat (limited to 'test cases')
| -rw-r--r-- | test cases/common/14 configure file/config7.h.in | 17 | ||||
| -rw-r--r-- | test cases/common/14 configure file/prog7.c | 12 |
2 files changed, 14 insertions, 15 deletions
diff --git a/test cases/common/14 configure file/config7.h.in b/test cases/common/14 configure file/config7.h.in index edd0bb3fe..5180c2fba 100644 --- a/test cases/common/14 configure file/config7.h.in +++ b/test cases/common/14 configure file/config7.h.in @@ -1,16 +1,11 @@ -/* No escape */ +/* cmake substitions cannot be escaped */ #define MESSAGE1 "${var1}" - -/* Single escape means no replace */ #define MESSAGE2 "\${var1}" - -/* Replace pairs of escapes before '@' or '\@' with escape characters - * (note we have to double number of pairs due to C string escaping) - */ #define MESSAGE3 "\\\\${var1}" - -/* Pairs of escapes and then single escape to avoid replace */ #define MESSAGE4 "\\\\\${var1}" +#define MESSAGE5 "@var1@" +#define MESSAGE6 "\\@var1@" +#define MESSAGE7 "\\\\@var1@" -/* Check escape character outside variables */ -#define MESSAGE5 "\\ ${ \${ \\\\${ \\\\\${" +/* backslash is an invalid variable character */ +#define MESSAGE8 "@var1\@" diff --git a/test cases/common/14 configure file/prog7.c b/test cases/common/14 configure file/prog7.c index 802bc46e5..900522c14 100644 --- a/test cases/common/14 configure file/prog7.c +++ b/test cases/common/14 configure file/prog7.c @@ -3,8 +3,12 @@ int main(void) { return strcmp(MESSAGE1, "foo") - || strcmp(MESSAGE2, "${var1}") - || strcmp(MESSAGE3, "\\foo") - || strcmp(MESSAGE4, "\\${var1}") - || strcmp(MESSAGE5, "\\ ${ ${ \\${ \\${"); + || strcmp(MESSAGE2, "\foo") + || strcmp(MESSAGE3, "\\\\foo") + || strcmp(MESSAGE4, "\\\\\foo") + || strcmp(MESSAGE5, "foo") + || strcmp(MESSAGE6, "\\foo") + || strcmp(MESSAGE7, "\\\\foo") + || strcmp(MESSAGE8, "@var1\@") + || 0; } |
