Copyright (c) 1994, 1995, 2002 Timothy Rue (3seas@threeseas.net) Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the file fdl.html --------------------------------------------------------------------- (OI) Output-to-Input (or Obtain-Input) Brief: OI - get input into variable, with optional tag. OI - Output-to-Input - The concept of Output-to-Input is, for there to be input, there must be output from something to grab as input. Output-to-Input is a reminder of "Connection". Specific: (OI) Obtain-Input - Concept of Obtain-Input is to grab input and place it as the contents of a variable. A very common function but also contained is an optional content tag of the variable as defined by IP tag. Also if the amount of input is larger than a given amount, a file is created to contain the content and the filename is placed as the value of the variable in the OI file. This "OI-file" contains the list of variables, their optional content tags and their values. PK cannot alter the contents of the OI-file, only OI can. But PK can change the OI-file used by OI. Generally, the active OI-file is located in RAM. OI can by-pass the IP setting by directly setting the variable and using command line redirection/pipe. I.E. "PK IP -r1 | OI -c var" Possible OI-file variable data formats: ----------------------------------------------------------- variable-name ;; variable-name ; tag ; variable-name ;; value variable-name ; tag ; value variable-name ; tag ; @OI-filename.varname variable-name ;; @OI-filename.varname ----------------------------------------------------------- Variables: ---------- Variables are handled in the typical shell manner, where using a '$' in front of a variable name i.e. $varname will access the variable content and an escape character '\' to allow the use a '$' as a normal character rather than a special character, i.e. '\$test' will output '$test'. This way it is possible to create a variable having content containing '$variable' or multi-depth variables. OI Commands: ------------ OI returns PK OI line OI -? help on OI OI -oi returns current list of vars & values (including any tags) OI variable gets input from user/device into variable using IP set. If input is greater than 255 characters a file is created to contain the variables content. The filename is set to OI-filename.varname where the "OI-filename" part is the same as the OI-filename and the "varname" is the same as the variable name. The tag, if any, will be kept in the actual OI-file but a pointer '@' to file will follow in place of the variable value i.e. @OI-filename.varname (the '@' symbol indicating "value at".) Access to the value contained in such pointed to files is always through the OI-file variable list. OI -c var cancels variable. OI -c var value creates/changes variable/value. Tags: ----- OI -ct var tag sets variable tag to tag given. OI -rt var returns tag of given variable. OI -ct var cancels variable tag (only the tag).