- if (command == MAKE_SCRIPT && argc > 1)
- return !!sequencer_make_script(stdout, argc, argv, flags);
+ if (command == MAKE_SCRIPT && argc == 1) {
+ char *revisions = NULL;
+ struct argv_array make_script_args = ARGV_ARRAY_INIT;
+
+ if (!upstream && squash_onto)
+ write_file(path_squash_onto(), "%s\n", squash_onto);
+
+ ret = get_revision_ranges(upstream, onto, &head_hash, &revisions);
+ if (ret)
+ return ret;
+
+ argv_array_pushl(&make_script_args, "", revisions, NULL);
+ if (restrict_revision)
+ argv_array_push(&make_script_args, restrict_revision);
+
+ ret = sequencer_make_script(stdout,
+ make_script_args.argc, make_script_args.argv,
+ flags);
+
+ free(revisions);
+ argv_array_clear(&make_script_args);
+
+ return !!ret;
+ }