File: macro.c

package info (click to toggle)
makedepf90 3.0.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 404 kB
  • sloc: ansic: 997; yacc: 356; lex: 224; sh: 153; makefile: 109
file content (67 lines) | stat: -rw-r--r-- 1,522 bytes parent folder | download | duplicates (6)
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/* 
 * Copyright (C) 2000-2005 Erik Edelmann <Erik.Edelmann@iki.fi>
 *
 *     This program is free software;  you  can  redistribute  it
 *     and/or modify it under the terms of the GNU General Public
 *     License version 2 as published  by  the  Free  Software  
 *     Foundation.
 *
 *     This program is distributed in the hope that  it  will  be
 *     useful, but WITHOUT ANY WARRANTY; without even the implied
 *     warranty of MERCHANTABILITY or FITNESS  FOR  A  PARTICULAR
 *     PURPOSE.   See  the  GNU  General  Public License for more
 *     details.
 *
 *     You should have received a copy of the GNU General  Public
 *     License along with this program; if not, write to the Free
 *     Software Foundation, Inc., 59  Temple  Place,  Suite  330,
 *     Boston, MA  02111-1307  USA
 */

#include <string.h>
#include <assert.h>
#include "macro.h"
#include "xmalloc.h"
#include "global.h"


Macro *macro_new ()
{
    Macro *m;

    m = (Macro *) xmalloc (sizeof(Macro));
    m->name = NULL;

    return m;
}


void macro_free (Macro *m)
{
    assert (m);
    if (m->name) free (m->name);
    free (m);
}


void macro_copy (Macro *dst, const Macro *src)
{
    assert (dst);
    assert (src);

    if (dst->name)  free (dst->name);
    dst->name = xstrdup (src->name);
}
    

int macrocmp (const void *m1, const void *m2)
{
    return strcmp (((Macro *)m1)->name, ((Macro *)m2)->name);
}

void macro_setname (Macro *m, const char *n) 
{ 
    if (m->name) free (m->name);
    m->name = xstrdup(n); 
}