File: addtolis.c

package info (click to toggle)
icmake 6.22-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,120 kB
  • ctags: 1,045
  • sloc: ansic: 9,241; makefile: 1,138; asm: 126; sh: 124
file content (41 lines) | stat: -rw-r--r-- 916 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
\funcref{addtolist}{VAR\_ addtolist (\params)}
    {
        {VAR\_} {v} {variable holding list to add to}
        {char} {*s} {string to add to list}
    }
    {variable holding expanded list}
    {initvar(), xrealloc(), xstrdup()}
    {inlist(), copylist()}
    {addtolis.c}
    {
        This function adds string {\em s} to the list of variable {\em v}. The
        same variable is returned.

        Variable {\em v} is initialized (if necessary) to accomodate an
        intermediate memory allocation struct and the new element.
    }
*/

#include "icm-exec.h"

VAR_ addtolist (v, s)
VAR_ v;
char *s;
{
    register LIST_
        *list;

    v = initvar (v);

    if (! s || ! *s)
        return (v);

    list = &(v.vu.i->ls.list);
    list->element =
        xrealloc (list->element, (list->size + 1) * sizeof (char *));
    list->element[list->size] = xstrdup (s);
    list->size++;

    return (v);
}