#!/bin/sh set -eu src="${TMPDIR-/tmp}/mcpu-cpp-macro-$$.c" out="${TMPDIR-/tmp}/mcpu-cpp-macro-$$.out" trap 'rm -f "$src" "$out"' EXIT HUP INT TERM cat > "$src" <<'EOT' #define A B #define B 42 #define EMPTY A x EMPTY y "A B" #define SELF SELF SELF #undef B A #lang "diff" y' = A; #endlang EOT "$MCPU_CPP" --no-config "$src" -o "$out" grep '^42$' "$out" >/dev/null grep '^x y$' "$out" >/dev/null grep '^"A B"$' "$out" >/dev/null grep '^SELF$' "$out" >/dev/null grep '^B$' "$out" >/dev/null grep "y' = B;" "$out" >/dev/null