-const char actions_rcs[] = "$Id: actions.c,v 1.10 2001/09/10 10:14:34 oes Exp $";
+const char actions_rcs[] = "$Id: actions.c,v 1.11 2001/09/14 00:17:32 jongfoster Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/actions.c,v $
*
* Revisions :
* $Log: actions.c,v $
+ * Revision 1.11 2001/09/14 00:17:32 jongfoster
+ * Tidying up memory allocation. New function init_action().
+ *
* Revision 1.10 2001/09/10 10:14:34 oes
* Removing unused variable
*
if (src->multi_remove_all[i])
{
/* Remove everything from dest */
- destroy_list(dest->multi_remove[i]);
- destroy_list(dest->multi_add[i]);
+ list_remove_all(dest->multi_remove[i]);
dest->multi_remove_all[i] = 1;
+
list_duplicate(dest->multi_add[i], src->multi_add[i]);
}
else if (dest->multi_remove_all[i])
*
* Remove *ALL*.
*/
- destroy_list(remove);
- destroy_list(add);
+ list_remove_all(remove);
+ list_remove_all(add);
cur_action->multi_remove_all[action->index] = 1;
}
else
unsigned mask = action->mask;
unsigned add = action->add;
char * result = strdup("");
- struct list * lst;
+ struct list_entry * lst;
/* sanity - prevents "-feature +feature" */
mask |= add;
} \
else \
{ \
- lst = action->multi_remove[__index]->next; \
+ lst = action->multi_remove[__index]->first; \
while (lst) \
{ \
result = strsav(result, " -" __name "{"); \
lst = lst->next; \
} \
} \
- lst = action->multi_add[__index]->next; \
+ lst = action->multi_add[__index]->first; \
while (lst) \
{ \
result = strsav(result, " +" __name "{"); \
{
unsigned flags = action->flags;
char * result = strdup("");
- struct list * lst;
+ struct list_entry * lst;
#define DEFINE_ACTION_BOOL(__name, __bit) \
if (flags & __bit) \
}
#define DEFINE_ACTION_MULTI(__name, __index) \
- lst = action->multi[__index]->next; \
+ lst = action->multi[__index]->first; \
if (lst == NULL) \
{ \
result = strsav(result, " -" __name); \
void init_current_action (struct current_action_spec *dest)
{
memset(dest, '\0', sizeof(*dest));
+
dest->flags = ACTION_MOST_COMPATIBLE;
}
{
if (src->multi_remove_all[i])
{
- /* Remove everything from dest */
- destroy_list(dest->multi[i]);
+ /* Remove everything from dest, then add src->multi_add */
list_duplicate(dest->multi[i], src->multi_add[i]);
}
else