.\" @(#)gpm.6 1.0 93/02/12 .TH GPM 1 "12 Februari 1993" .SH NAME gpm \- general purpose macro filter .SH SYNOPSIS .B /vol/practica/m2/bin/gpm [ .BI -S " stack-size" ] [ .BI -s " 'specials'" ] [ .BI -o " out-file" ] .IR in-file ... .B /vol/practica/m2/bin/gpmdb .SH DESCRIPTION .LP .B gpm is a general purpose filter that replaces .B "gpm macros" in its input with their expansions. .SH USAGE gpm accepts text from a pipeline, through a redirected file or from the keyboard. Additionally, gpm can be given a number of .I in-files which it will process in the order they are listed in. .B gpm sends its output to stdout, so it can be redirected. Alternately, a file can be specified with .RI "-o" " out-file" to which gpm will send its output. .LP .RS .nf .ft B example% gpm < foo.c example% cat foo.c | gpm > foo.gpm example% cat *.c | gpm -o foo.gpm example% gpm -o foo.gpm *.c .ft P .fi .RE .LP .B gpm works with an internal stack. It is possible that deeply nested macros or lengthy recursion will cause the stack to overflow. In that case .B gpm prints an error message and exits. The .B -S flag allows you to specify a specific stack size. The default size is 50000. .LP .RS .nf .ft B example% gpm -S 43000 ; echo Very big stack example% gpm -S 100 ; echo Teeny-Tiny stack .ft P .fi .RE .LP .B gpm understands a certain language which is composed of 8 special characters. These default to .B {|<~>}`\\. The characters can be changed with the .B -s flag. There must be exactly 8 characters in the string after the .B -s flag. These then become the special characters for .B gpm. Note that the special characters should be escaped for the shell. .LP .RS .nf .ft B example% gpm -s \[\,\`\~\'\]\\\& example% gpm -s abcdefgh .ft P .fi .RE .LP .SH BUGS The gpm code itself is ugly as sin. If .B you can understand the error messages, drop me a line. .SH AUTHORS You think anyone's gonna own up to this one? .B NOT! C. Strachey designed and implemented the original .B gpm, this is a completely different implementation. .SH SEE ALSO gpm(5), gpmdb(5) /vol/practica/m2/Public/gpm.dvi or gpm.ps