
                       INI file reading functions v1.00
                       ********************************

                           ivarch@ps.cus.umist.ac.uk
                               16 December 1997

                            (K) All Rites Reversed.
                              Copy what you like

                            (but credit me, fnord?)

What?
^^^^^
This is a little chunk of code to allow you to easily incorporate Windows-style
.INI files into your programming, in the hope that you'll all use this way of
configuring things (sensible and easy to edit) instead of doing odd things like
using the registry (not sensible).

There are 10 functions, but you only really need to know about 3 of them,
perhaps 6 if you're feeling adventurous.


Moo
^^^
Seeing as the first release of this lot is/will be through code written by
someone else, not on its own, I suggest that you go download the newest version
from my home page (address at the bottom) so that you don't have code that lots
of people (mentioning no names, Steve) have messed about with.


Explanations
^^^^^^^^^^^^
You will need to compile "iv_ini.c" and "iv_list.c", and include "iv_ini.h" in
whatever code calls the functions. "iv_list.h" is required by "iv_ini.c".

If you aren't quite sure what the format of a .INI file should be, or what the
terms used below are, consult the "terminology" section below.

The functions are listed and explained in the file "FUNCTIONS", which should
be distributed with this README.


Terminology
^^^^^^^^^^^
A Windows-style INI file MUST be divided into sections for these routines to
read it, even if there is only 1 section.

Section headings are denoted by the section name, in square brackets [], with
no spaces before the [.

A "key" is the name of a tag by which information, the "value", is known to the
program. In general, the keys stay the same, but their values are user
configurable.

Here's an example by way of illustration:

[Section]
Key=Value
Key2=Value2
; This is a comment (semicolon).
# This is also a comment (hashes, an extension for Un*x users).

; Blank lines are allowed.

[Section 2]
Key=Different Value (cos it's a different section)
; ...blah, blah, blah.


More Guff
^^^^^^^^^
To see how all these functions work, have a look at "main.c" supplied with
these files. If you link all the .c files together (just type "make" in UN!X)
you should have a program which reads "test.ini" and displays what the keys are
in there.


Blatant Plugs
^^^^^^^^^^^^^
Visit my home page at .............. http://www.cus.umist.ac.uk/~ivarch/
Look at my Q1/QW server patch at ... http://www.cus.umist.ac.uk/sbf/
Latest version of this code at ..... ftp://ps.cus.umist.ac.uk/pub/ivarch/quake/

Email me and tell me I'm great (or crap) at <ivarch@ps.cus.umist.ac.uk>

/* EOF */
