CGI programming support (OMCGI)

The OmniMark CGI library contains one macro and two OmniMark functions to simplify writing CGI programs with OmniMark. The functions allow you to retrieve and decode CGI input data and CGI-related environment variables.

The CRLF macro allows you to easily use %13#%10#, instead of %n, to insert new lines in your CGI programs. Using the CRLF macro instead of %n ensures the portability of your code across platforms. You need to declare the #process-output stream as binary-mode so that all systems will properly interpret the %13#%10# newline sequence.

The OmniMark CGI library consists of a single include file, "omcgi.xin". This file contains the macro and function declarations.

You must also declare the #process-input stream as unbuffered. If you do not, on some systems your CGI program will hang. The #process-input is bound to standard input and used by your CGI program to receive POST data. This leaves #main-input free to receive a filename as an OmniMark command-line name if necessary.

You must include the following code at the beginning of your OmniMark CGI programs:

     declare #process-input has unbuffered
     declare #process-output has unbuffered
  
     include "omcgi.xin"