Drivers can be divided into categories. Drivers are specified by their names, or by the names of the categories that they are contained in. Only certain drivers are enabled each time PSPP is run; by default, these are the drivers in the category `default'. To enable a different set of drivers, use the ‘-o device’ command-line option (see Invocation).
Categories are specified with a line of the form ‘category=driver1 driver2 driver3 ... drivern’. This line specifies that the category category is composed of drivers named driver1, driver2, and so on. There may be any number of drivers in the category, from zero on up.
Categories may also be specified on the command line (see Invocation).
This is all you need to know about categories. If you're still curious, read on.
First of all, the term `categories' is a bit of a misnomer. In fact, the internal representation is nothing like the hierarchy that the term seems to imply: a linear list is used to keep track of the enabled drivers.
When PSPP first begins reading devices, this list contains the name of any drivers or categories specified on the command line, or the single item `default' if none were specified.
Each time a category definition is specified, the list is searched for an item with the value of category. If a matching item is found, it is deleted. If there was a match, the list of drivers (driver1 through drivern) is then appended to the list.
Each time a driver definition line is encountered, the list is searched. If the list contains an item with that driver's name, the driver is enabled and the item is deleted from the list. Otherwise, the driver is not enabled.
It is an error if the list is not empty when the end of devices is reached.