Handling pipes Possible combinations: {command} | {command} | {command} In this case simply chain the commands together pumping output into input. {command1} < {file} pump the content of {file} into the command {command} >[>] {file} store/append output into file {command} < {input-file} > {output-file} {command} | {command} ... {command} < {input-file} > {output-file} So... A command line entered command can actually be N commands seperated by '|', however, the command *always* begins at the beginning of the line. The redirection is fairly trivial (assume filename is rooted in $room) but the chaining of output to input is not! Idea - have a 'stdin' buffer area in the VIC process. When processing commands if there was any output, load it into the next VIC in the chain. Pros: simple, fast, flexible Cons: have to read entire output -- have to anyway: sort for example. Idea - Simply pass 'content' of stdout as the stdin to processCommand() call. If it's used well and good, if not, it's junked. Pros: even simpler, seems to be the way unix shells do it. we already have the 'stdout' of the previous command in a reasy-to-use format Cons: still need to read entire output before next command. - but we may not be running in a multitasking environment anyway, so this is a bunk problem.