# ChainCelsAtHead

Chains together lists of cels.

### Synopsis

`CCB * ChainCelsAtHead (CCB *existingCels, CCB *newCels)`

### Description

Chains together two lists of cels, putting the new list ahead of the existing cels. The return value is a pointer to the first cel in the resulting list. Either pointer can be NULL, eliminating the need for special-case code when iteratively building a list of cels.

For example, the following code will work:

``

    CCB *list = NULL;
    CCB *cels;
    do {     cels = get_next_antialiased_cel();
        list = ChainCelsAtHead(list, cels); }
    while (cels != NULL);

This function works properly with anti-aliased cels and similar constructs where a list of related cels makes up a single logical entity.

### Arguments

existingCels
  Pointer to the existing list of cels; may be NULL.

newCels
  Pointer to the new list of cels to be added ahead of the existing list; may be NULL.

### Return Value

Pointer to the head of the resulting list of cels.

### Implementation

Library call implemented in lib3do.lib.

### Associated Files

lib3do.lib, celutils.h

### See Also

``ChainCelsAtTail``