view simtool/script.c @ 10:ddd767f6e15b

fc-simtool ported over
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 14 Mar 2021 07:11:25 +0000
parents
children
line wrap: on
line source

/*
 * This module implements the exec command, which is our scripting facility.
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>

extern FILE *open_script_input_file();

cmd_exec(argc, argv)
	char **argv;
{
	FILE *f;
	char linebuf[512], *cp;
	int lineno, retval = 0;

	f = open_script_input_file(argv[1]);
	if (!f) {
		perror(argv[1]);
		return(-1);
	}
	for (lineno = 1; fgets(linebuf, sizeof linebuf, f); lineno++) {
		cp = index(linebuf, '\n');
		if (!cp) {
			fprintf(stderr, "%s line %d: missing newline\n",
				argv[1], lineno);
			fclose(f);
			return(-1);
		}
		*cp = '\0';
		retval = simtool_dispatch_cmd(linebuf, 1);
		if (retval)
			break;
	}
	fclose(f);
	return(retval);
}