+ if (optind < argc) {
+ fprintf(stderr, "%s: ", progname);
+ fprintf(stderr, _("excess command-line arguments:"));
+ for (i = optind; i < argc; i++) {
+ fprintf(stderr, " %s", argv[i]);
+ }
+ fprintf(stderr, "\n");
+ print_usage(stderr);
+ return INIT_EXIT_FAILURE;
+ }
+
+ /* --filename and --execute imply --batch. */
+ if (filename || execute)
+ interactive = false;
+
+ /* --batch implies --quiet */
+ if (interactive && !quiet)
+ print_version();
+
+ /* --execute supersedes --filename */
+ if (filename && !execute) {
+ if (!freopen(filename, "r", stdin)) {
+ print_error("failed to open %s: %s", filename,
+ strerror(errno));
+ return INIT_EXIT_FAILURE;
+ }
+ }
+
+ return execute;
+}
+
+int main(int argc, char **argv)
+{
+ int rc, execute;