A possibility for future extension is to tokenise argv[1] as a command line ourselves. This is because, on Linux, only one argument is passed from the shebang line - effectively the shebang line is split once at the first space. Relexec requires an argument and thus "consumes" the available argument.
This behaviour is platform dependent, and the exact semantics of this are debatable, but to preserve the flexibility to pursue this direction, we could simply error out if the relative path argument (argv[1]) contains spaces. This would prevent users depending on a specific interpretation of spaces.
A possibility for future extension is to tokenise
argv[1]as a command line ourselves. This is because, on Linux, only one argument is passed from the shebang line - effectively the shebang line is split once at the first space. Relexec requires an argument and thus "consumes" the available argument.This behaviour is platform dependent, and the exact semantics of this are debatable, but to preserve the flexibility to pursue this direction, we could simply error out if the relative path argument (
argv[1]) contains spaces. This would prevent users depending on a specific interpretation of spaces.