# File slist.c

RCS Header: /home/amb/cxref/RCS/slist.c 1.3 1997/05/11 15:23:11 amb Exp

C Cross Referencing & Documentation tool. Version 1.4.
Handle lists of strings.

## Included Files

- `#include <stdlib.h>`

- `#include <stdio.h>`

- `#include <string.h>`

- `#include "memory.h"`

- `#include "datatype.h"`

- `#include "cxref.h"`
  - `#include "datatype.h"`

## Preprocessor definitions

Control the debugging information from this file.

`#define DEBUG 0`

## Global Function AddToStringList()

Add a string to the string list, the list stores a Malloced copy of str.

`void AddToStringList ( StringList sl, char* str, int alphalist, int uniqlist )`

`StringList sl`
  The string list to add to.
`char* str`
  The string to add.
`int alphalist`
  If true then the list is sorted into alphabetical order.
`int uniqlist`
  If true then duplicated entries are not allowed to be added.

Prototyped in: | cxref.h
Calls: | SafeMalloc() | memory.c
| SafeMallocString() | memory.c
| SafeRealloc() | memory.c
| strcmp()
Called by: | CreateAppendix() | xref.c
| CrossReference() | xref.c
| SeenFunctionProto() | func.c

## Global Function AddToStringList2()

Add a pair of strings to the string list 2, the list stores a Malloced copy of the arguments.

`void AddToStringList2 ( StringList2 sl, char* str1, char* str2, int alphalist, int uniqlist )`

`StringList2 sl`
  The string list 2 to add to.
`char* str1`
  The first string to add.
`char* str2`
  The second string to add.
`int alphalist`
  If true then the list is sorted into alphabetical order of the first string, then second string.
`int uniqlist`
  If true then duplicated entries of the first string are not allowed to be added.

Prototyped in: | cxref.h
Calls: | SafeMalloc() | memory.c
| SafeMallocString() | memory.c
| SafeRealloc() | memory.c
| strcmp()
Called by: | CheckFunctionVariableRef() | func.c
| CreateAppendix() | xref.c
| SeenDefineFunctionArg() | preproc.c
| SeenFunctionArg() | func.c
| SeenFunctionCall() | func.c
| SeenFunctionProto() | func.c
| SeenScopeVariable() | var.c
| SeenTypedefName() | type.c
| check_for_called() | xref.c
| check_for_var() | xref.c
| check_for_var_func() | xref.c

## Global Function DeleteStringList()

Delete a string list.

`void DeleteStringList ( StringList sl )`

`StringList sl`
  The string list to delete.

Prototyped in: | cxref.h
Calls: | SafeFree() | memory.c
Called by: | DeleteFile() | file.c
| DeleteFunctionType() | func.c
| main() | cxref.c

## Global Function DeleteStringList2()

Delete a string list 2.

`void DeleteStringList2 ( StringList2 sl )`

`StringList2 sl`
  The string list 2 to delete.

Prototyped in: | cxref.h
Calls: | SafeFree() | memory.c
Called by: | DeleteDefineType() | preproc.c
| DeleteFile() | file.c
| DeleteFunctionType() | func.c
| DeleteVariableType() | var.c
| DownScope() | var.c
| ResetFunctionAnalyser() | func.c
| ResetTypeAnalyser() | type.c
| ResetVariableAnalyser() | var.c
| main() | cxref.c

## Global Function NewStringList()

Called to initialise a new string list.

`StringList NewStringList ( void )`

`StringList NewStringList`
  Returns an initialised string list.

Prototyped in: | cxref.h
Calls: | SafeCalloc() | memory.c
Called by: | NewFile() | file.c
| NewFunctionType() | func.c
| main() | cxref.c

## Global Function NewStringList2()

Called to initialise a new string list 2.

`StringList2 NewStringList2 ( void )`

`StringList2 NewStringList2`
  Returns an initialised string list 2.

Prototyped in: | cxref.h
Calls: | SafeCalloc() | memory.c
Called by: | NewDefineType() | preproc.c
| NewFile() | file.c
| NewFunctionType() | func.c
| NewVariableType() | var.c
| SeenFunctionProto() | func.c
| SeenTypedefName() | type.c
| UpScope() | var.c
| main() | cxref.c