Finish 3744

This finishes the great pull request started by @mickaelandrieu in #3744.
not exact the same, since `cat` (and `c`) doesn't require a value.