NAME: loadini PURPOSE: (one line only) Load configuration information file DESCRIPTION: The structure returned is built to support extracting information using the routine, GETVALUE. You provide a section, name, and can retrieve a value. For more information on this step, consult the documentation for getvalue. One important factor implemented in this routine is to read the information in the configuration file and capture it in an anonymous structure for processing. The information is stored in sections demarked with [string] at the start where "string" is the name of the section. Within as section, you have one or more keyword/value pairs separated by '='. This routine does not try to interpret anything in the file. Comments are lines that start with #. Comments and blank lines are ignored by this routine. After reading, every line that is a keyword/value pair is associated with its section. The keyword is set off from the value by =. The first = seen is used to split the line. Obviously, = cannot be included in a keyword. Spaces around this first = are trimmed. Technically, anything other than = can be in the keyword but common use suggests that a keyword be restricted to alphanumeric (no spaces or special characters). The value string is kept as it appears in the file except that multiple spaces are compresssed to a single space and leading and trailing spaces are dropped. There is no formal limit on the length of a value but it's really not intended to be arbitrarily long. CATEGORY: Miscellaneous CALLING SEQUENCE: loadini,info INPUTS: OPTIONAL INPUT PARAMETERS: KEYWORD INPUT PARAMETERS: FILE - Configuration file to read, default='config.ini' OUTPUTS: info - anonymous structure with information read from file type and version are parsed from configurate in section [id] all values are read as strings (multiple blanks are compressed to one). The section, name and value are returned as string arrays. The structure has tages of type, version, section, name, and value. In case of errors reading the file you will get a scalar 0 back KEYWORD OUTPUT PARAMETERS: COMMON BLOCKS: SIDE EFFECTS: RESTRICTIONS: PROCEDURE: MODIFICATION HISTORY: Written by Marc W. Buie, Southwest Research Institute, 2020/06/22 2021/01/04, MWB, added support for comment lines (start with #), and handling empty values (returned as empty strings). 2024/07/26, MWB, changed to be more permissive in characters allowed in the value. In particular, '=' is now allowed.