-- Handlers for shell clients.

NAME -- Handlers for shell clients.


This module is incomplete.

There's no API or calling synopsis at the moment. It's primary purpose is to provide some abstraction, and hopefully data hiding, from the parent Workspace process.

Results may be unpredictable due to the I/O buffering behavior of called programs. Most programs that have line-oriented output should work okay. At this point Workspaces do not understand terminal escape sequences.

The buffers of the child process's STDOUT and STDERR pipes are set to an abnormally high value: 65535 bytes each. Hopefully that will help prevent blocking from either channel. If the programs that you run within the browser create more output than that, then you'd probably want to run them in an xterm, anyway. If your Perl installation doesn't have that much memory available, you can adjust the numbers (the third argument in the setvbuf calls) downward, and be more careful of what programs you run.

Broken pipe errors happen occasionally. The program prints a message to the browser's STDERR (that is, on the terminal, unless you've redirected STDERR from the shell prompt), and goes on, instead of killing the process that's running the browser.

This module is tested under several varieties of Linux, and Solaris. It is untested, and probably unusable, under MS Windoze. -- Handlers for shell clients.