A Lisp implemented in AWK

use keywords and abort to allow redirections in system commands to be passed through layers of functions. previously we used symbols for things that should not be shellquoted, such as redirection operators; but these were not self-evaluating, so they turned into nil after a few layers of lexpr evaluation. furthermore, the pipe symbol makes emacs forget which parentheses match which, and :pipe is clearer anyway, so we add letter-based indications of shell redirections in make-safe-shell-command, which turns out to be needed not only for system but also for reading from pipes.

Created by  jaredj  on September 15, 2025
CBEBMHUSOH3BUSNKD2372DXTAZQBF5UPZCOYFSBPDX5J5QV5PMXQC
Change contents