30 Jul 1998
filterm - filter terminal input and/or output
filterm INPUT OUTPUT [COMMAND [ARGS]]
Execute the specified COMMAND (default is the shell), filtering terminal input and/or output.
It can help e.g. when our terminal is unable to display non-ASCII characters or to enter them from the keyboard. It also makes writing various terminal filters easier.
INPUT and OUTPUT are names of konwert’s filters - they are passed as the first argument to the konwert(1) program. filterm - OUTPUT filters only output, and filterm INPUT - only input.
The command - executes the shell as a login shell.
It differs from konwert INPUT | COMMAND | konwert OUTPUT in that the command is executed on a pseudo-terminal, so full-screen programs work correctly.
The filters have to output the characters as soon as they receive all necessary input, without buffering. trs(1) scripts are OK, but sed(1) or awk(1) or tr(1) scripts are not. In C you may use read(), getchar(), fread(), and write(), but putchar() and fwrite() only together with fflush(stdout). In C++: cin.get(), cout.put(), and cout <<. In perl: sysread, getc, read, and syswrite, but print only with $| = 1.
The input filter will have set the environment variable FILTERM=in, and the output one - FILTERM=out. This way some filters can slightly alter their behaviour when working for filterm.
|--help||display help and exit|
|--version||output version information and exit|
FILTERS FOR FILTERM
See konwert(1). Additionally the following konwert’s filters are designed only for filterm:
|ASCII with Polish letters shown as bold.|
|Replaces the characters 128..159 shown by the Pine (or another program) as ^À..^ß back to the real 128..159.|
|Changes the mapping of colors in 512-character mode, which restricts the number of colors to eight. The palette is dynamically changed to contain the eight most recently used colors. When more colors are used at once, some of them display incorrectly.|
|Changes the mapping of colors in 512-character mode. Instead of ignoring the intensity, the following colors are available: black, red, green, white, blue, light magenta, light cyan, light gray; others are substituted with approximations. This gives better effect, allowing to show the intensity, with the side-effect of belying the hue of some colors.|
|Keyboard macros. A sequence of keys can be recorded with Esc Ctrl-A SEQUENCE Esc Ctrl-E SHORTCUT - after which, if you press the SHORTCUT, the SEQUENCE will be generated instead. Later such assignment can be deleted with Esc Ctrl-A Esc Ctrl-E SHORTCUT Esc Ctrl-E. Instead of Esc Ctrl- you often may press Ctrl-Alt-. The defined shortcuts, together with the above redefinable key combinations used to define them, are stored in the ~/.kbdmacros file. Note: when you redefine a sequence, all its prefixes will not be passed through immediately, but wait until it can be unambiguously told which sequence was actually input. This includes escape sequences representing some extended keys.|
512bold filter is not perfect. Some escape sequences may be emulated incorrectly. Additionally, colors changed in multiple steps or not used unnecessarily allocate some of the eight colors.
filterm filters terminal input and/or output. It forms part of the konwert package.
Copyright (c) 1998 Marcin ’Qrczak’ Kowalczyk
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA