version 1.3, 2007/06/12 18:19:46
|
version 1.4, 2008/06/20 17:20:34
|
|
|
for (p = _macros; p; p = p->next) | for (p = _macros; p; p = p->next) |
{ | { |
if (strcmp(p->name, name) == 0) | if (strcmp(p->name, name) == 0) |
|
{ |
return p->value; | return p->value; |
} | } |
|
} |
| |
/* Not found. */ | /* Not found. */ |
return NULL; | return NULL; |
|
|
/* Reject if the macro is already defined. */ | /* Reject if the macro is already defined. */ |
| |
if (FindMacro(name) != NULL) | if (FindMacro(name) != NULL) |
|
{ |
return -1; | return -1; |
|
} |
| |
/* Create new macro. */ | /* Create new macro. */ |
| |
macro = (struct Macro*)malloc(sizeof(struct Macro)); |
if ((macro = (struct Macro*)malloc(sizeof(struct Macro))) == NULL) |
|
{ |
|
return -1; |
|
} |
macro->name = strdup(name); | macro->name = strdup(name); |
macro->value = strdup(value); | macro->value = strdup(value); |
| |
|
|
struct Macro* prev = NULL; | struct Macro* prev = NULL; |
| |
for (p = _macros; p; p = p->next) | for (p = _macros; p; p = p->next) |
|
{ |
prev = p; | prev = p; |
|
} |
| |
if (prev) | if (prev) |
|
{ |
prev->next = macro; | prev->next = macro; |
|
} |
else | else |
|
{ |
_macros = macro; | _macros = macro; |
|
} |
| |
macro->next = NULL; | macro->next = NULL; |
} | } |
|
|
if (strcmp(p->name, name) == 0) | if (strcmp(p->name, name) == 0) |
{ | { |
if (prev) | if (prev) |
|
{ |
prev->next = p->next; | prev->next = p->next; |
|
} |
else | else |
|
{ |
_macros = p->next; | _macros = p->next; |
|
} |
| |
free(p->name); | free(p->name); |
free(p->value); | free(p->value); |
|
|
while (0); | while (0); |
| |
if (status == 0) | if (status == 0) |
|
{ |
DefineMacro(configParam, path); | DefineMacro(configParam, path); |
|
} |
| |
return status; | return status; |
} | } |
|
|
fprintf(outputStream, "===== Macros:\n"); | fprintf(outputStream, "===== Macros:\n"); |
| |
for (p = _macros; p; p = p->next) | for (p = _macros; p; p = p->next) |
|
{ |
fprintf(outputStream, "%s=%s\n", p->name, p->value); | fprintf(outputStream, "%s=%s\n", p->name, p->value); |
|
} |
| |
putc('\n', outputStream); | putc('\n', outputStream); |
} | } |