return fake_pair[0];
}
-int main(int argc, const char *const *argv) {
- script = process_opts(argc, argv);
+static void make_executor_argv(const char *const *argv) {
+ #define EACH_NEW_ARGV(EACH) { \
+ if ((arg = interp)) { EACH; } \
+ if ((arg = script)) { EACH; } \
+ const char *const *walk = argv; \
+ while ((arg = *walk++)) { EACH; } \
+ }
+
+ size_t count = 1;
+ MAKE_NEW_ARGV( count++ );
+
+ executor_argv = calloc(count, sizeof(char*));
+ if (!executor_argv) diee("allocate for arguments");
+
+ char **out = executor_argv;
+ MAKE_NEW_ARGV( *out++ = arg );
+ *out++ = 0;
+}
+
+int main(int argc_unused, const char *const *argv) {
+ process_opts(&argv);
+
+ // Now we have
+ // - possibly interp
+ // - possibly script
+ // - remaining args
+ // which ought to be passed on to the actual executor.
+ make_new_argv(argv);
find_socket_path();
FILLZERO(sun);