lab_store, lab_reset, lab_initfile, lab_getmatch, lab_gettext - text label routines for data sets


char    *lab_store(item)
struct item_header *item;

void    lab_reset()

void    lab_initfile(filename)
char    *filename;

char    *lab_getmatch(code)
char    *code;

char    *lab_gettext(history)
char    *history;


These routines provide a simple mechanism for accessing and describing data sets using short codes and textual descriptions rather than the more formal mechanisms of item numbering and item histories. The routines lab_getmatch() and lab_gettext() access a "labels" file where the mappings between "short codes" and "history matches", and the mappings between "history matches" and "text descriptions" are kept, see labels(SFS5).


This routine adds an item history to an internal database of histories for the file. It returns the "expanded history" for the item, which is simply the item history but with all referred items (recursively) expanded. For example if the item list was:

	1.01 inwd
	2.01 inwd(freq=10000)
	3.01 tx(2.01)
	4.01 lxp(1.01,3.01)

then the expanded histories would be:

	1.01 inwd
	2.01 inwd(freq=10000)
	3.01 tx(inwd(freq=10000))
	4.01 lxp(inwd,tx(inwd(freq=10000)))

Notice that to expand the history for an item, lab_store requires to be passed the histories of all earlier items in the file. The expanded histories can be obtained as the file is processed, or they can be set up for the whole file with a simple loop, like:

	fid = sfsopen(filename,"r",NULL);
	while (sfsnextitem(fid,&item)) lab_store(&item);

or with a call to the routine lab_initfile, (below).


This routine resets the internal database of histories, so that another file can be processed within the same program.


This routine scans the items in the given file, and calls lab_store for each item.


This routine takes a short code specifying a type of data set and returns a string match expression that selects appropriate items on the basis of their expanded history. The string match expressions are stored in a "labels" file and expect to be used with the string match function histmatch(SFS3). The routine returns NULL if the code cannot be found. For the structure of the labels file see labels(SFS5).


This routine takes an expanded item history and returns a text description of the item. The text descriptions are stored in the "labels" file, and the first text description is returned which matches the given history. The routine returns NULL if no text desciption can be found. For the structure of the labels file see labels(SFS5).


SFSLABEL Environment variable containing labels file search path. (files separated by ";"). If SFSLABEL is not present, the default file: "SFSBASE/data/labels" is used.


2.0 - Mark Huckvale


Fri Jul 09 14:54:51 2004