Updated September 2014; see History
xcall CGIUTL, opcode {,param1, param2 ...}
CGIUTL.SBR contains several utility functions which are very handy when writing CGI programs. The calling format and parameters beyond opcode depend on the value of opcode, so we will consider each case separately, with the value of OPCODE inserted into the syntax examples below. Opcode itself can be any numeric format. See A-Shell as a CGI Engine for more details on using CGIUTL.SBR.
Beginning with A-Shell 6.1.1390 of September 2014, A-Shell provides support for FastCGI.
Opcode |
Value |
Function |
CGIOP_STATUS |
0 |
|
CGIOP_STDIN |
1 |
|
CGIOP_GETPAR |
2 |
|
CGIOP_MRGOUT |
3 |
|
CGIOP_STDOUT |
4 |
|
CGIOP_GETENV |
5 |
|
CGIOP_MRGFIL |
6 |
|
CGIOP_GETPARX |
7 |
|
CGIOP_UNESCAPE |
9 |
|
CGIOP_GETREQ |
10 |
|
CGIOP_GETPARARY |
12 |
|
Definition file: ashell.def |
History
2018 February, A-Shell 6.5.1628: Remove limit on number of subroutine parameters.
2014 September, A-Shell 6.1.1394: Add opcode CGIOP_GETPARARY.
2014 September, A-Shell 6.1.1390: Add support for FastCGI and opcodes CGIOP_UNESCAPE and CGIOP_GETREQ.
2009 March, A-Shell 5.1.1140: The 16K limit on the size of a single expanded line of the template HTML file (using opcode 3 or 6) has been lifted. (It may take some ingenuity to create such long lines, but apparently some A-Shell developers are up to the challenge.) The only limits which remain are that 32K for the length of a template line prior to variable substitution and 256 total substitution variables (which may be distributed over 96 subroutine parameters). Also, increase the default maximum size of the parameter buffer passed by the web server to A-Shell from 4K to 16K (applies only in the case where the web server does not support the CGI standard by defining the CONTENT_LENGTH environment variable; IIS seems to fall into this category.)
2007 September, A-Shell 4.9.995: The previous limit of 1024 on the size of an individual line after variable expansion has been increased to 16K. This is mainly a factor when individual data fields (substitution values) are quite large, since otherwise you could avoid the limit by keeping the input template lines short.