Example #1
0
static TWindow *exec_script(const char *filename) 
{
	FILE *fp;
	char header[256];
	const char *argv[11];
	char *tok;
	int i, len;

	if ((fp = fopen(filename, "r")) == NULL) {
		perror(filename);
		return NULL;
	}
	if ((len = fread(header, sizeof(char), 256, fp)) > 0)
		header[len - 1] = 0;
	
	fclose(fp);
	if (strchr(header, '\n'))
		*strchr(header, '\n') = 0;
	if (strchr(header, '\r'))
		*strchr(header, '\r') = 0;
	
	argv[0] = strtok_r(header+2, " \t", &tok);
	for (i = 1; i < 10; ++i) {
		if (!(argv[i] = strtok_r(NULL, " \t", &tok)))
			break;
	}
	argv[i] = filename;
	pz_execv(argv[0], (char *const *)argv);
	return NULL;
}
Example #2
0
void pz_exec(const char *file)
{
	const char *const argv[] = {"sh", "-c", file, NULL};
	pz_execv("/bin/sh", (char *const *)argv);
}