Do not expand bare a "shift" keyword that is not immediately followed by
an open parenthesis.
POSIX leaves undefined the behavior of a "shift" keyword that is NOT
immediately followed by an open-parenthesis. GNU m4 conveniently passes
through such uses unexpanded:
GM4: "shift" -> "shift" # A bare "shift" keyword is not expanded.
Prior to this change FreeBSD's M4 would expand a bare "shift" in its
input to the empty string:
Previous FBM4: "shift" -> "" # A bare "shift" keyword is expanded.
which, while technically compatible with POSIX, made FreeBSD M4 harder
to use with plain English text.
After this change the behavior of FreeBSD M4 should match that of
GNU M4:
FBM4: "shift" -> "shift" # A bare keyword is not expanded.
Normal macro invocations (e.g., "shift($*)") continue to work as before.
Reference: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/m4.html