slidescript/src/pipe.c

70 lines
1.3 KiB
C
Executable File

/*
SlideScript - minimalistic top-down scripting language.
(C) Copyright 2014-2021 Chris Dorman - some rights reserved (GPLv2)
View README file supplied with this software for more details
*/
#include "inc/deps.h"
#include "inc/vars.h"
#include "inc/pipe.h"
#include "inc/util.h"
void set_cmd(int index, char *cmd)
{
strcpy(spipe[index].command, cmd);
}
int get_cmd_count()
{
int yy;
for(yy = 0; yy < MAX_PIPE_CMDS; yy++)
{
if(strlen(spipe[yy].command) > 0)
{
continue;
}
else
{
return yy;
}
}
return 0;
}
void ss_piping(char *string)
{
char *pipe_tok;
char *stringmem;
for(int vv = 0; vv < MAX_PIPE_CMDS; vv++) bzero(spipe[vv].command,MAX_STRING_LEN);
stringmem = (char *) malloc(strlen(string)+1);
*stringmem = '\0';
if(stringmem == NULL) syn_error("ss:error:memory mapping error...");
sprintf(stringmem, "%s", string);
pipe_tok = strtok(stringmem, "|");
if(pipe_tok == NULL)
{
set_cmd(0, string);
}
else
{
set_cmd(0, pipe_tok);
}
while((pipe_tok = strtok(NULL, "|")) != NULL)
{
int cmdc = get_cmd_count();
set_cmd(cmdc, pipe_tok);
}
free(stringmem);
}