{
if (aliases == NULL)
aliases = a;
- else {
- if (aliases->last != NULL)
- aliases->last->next = a;
- else /* if (aliases->next == NULL) */
- aliases->next = a;
- aliases->last = a->last ? a->last : a;
- }
+ else
+ LIST_APPEND(aliases, a);
}
/*
}
if (defaults == NULL)
defaults = defs;
- else {
- if (defaults->last != NULL)
- defaults->last->next = defs;
- else /* if (defaults->next == NULL) */
- defaults->next = defs;
- defaults->last = defs->last ? defs->last : defs;
- }
+ else
+ LIST_APPEND(defaults, defs);
}
/*
u->next = NULL;
if (userspecs == NULL)
userspecs = u;
- else {
- if (userspecs->last != NULL)
- userspecs->last->next = u;
- else /* if (userspecs->next == NULL) */
- userspecs->next = u;
- userspecs->last = u;
- }
+ else
+ LIST_APPEND(userspecs, u);
}
/*
sudolineno = 1;
verbose = !quiet;
}
-#line 679 "gram.c"
+#line 664 "gram.c"
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
#if defined(__cplusplus) || defined(__STDC__)
static int yygrowstack(void)
NEW_MEMBER(yyval.member, yyvsp[0].string, WORD);
}
break;
-#line 1333 "gram.c"
+#line 1318 "gram.c"
}
yyssp -= yym;
yystate = *yyssp;
{
if (aliases == NULL)
aliases = a;
- else {
- if (aliases->last != NULL)
- aliases->last->next = a;
- else /* if (aliases->next == NULL) */
- aliases->next = a;
- aliases->last = a->last ? a->last : a;
- }
+ else
+ LIST_APPEND(aliases, a);
}
/*
}
if (defaults == NULL)
defaults = defs;
- else {
- if (defaults->last != NULL)
- defaults->last->next = defs;
- else /* if (defaults->next == NULL) */
- defaults->next = defs;
- defaults->last = defs->last ? defs->last : defs;
- }
+ else
+ LIST_APPEND(defaults, defs);
}
/*
u->next = NULL;
if (userspecs == NULL)
userspecs = u;
- else {
- if (userspecs->last != NULL)
- userspecs->last->next = u;
- else /* if (userspecs->next == NULL) */
- userspecs->next = u;
- userspecs->last = u;
- }
+ else
+ LIST_APPEND(userspecs, u);
}
/*
} while (0)
/*
- * Append an entry to the tail of a list.
+ * Append a list (or single entry) to the tail of a list.
*/
#define LIST_APPEND(h, e) do { \
if ((h)->last != NULL) \
else /* if ((h)->next == NULL) */ \
(h)->next = (e); \
(h)->last = (e); \
+ (h)->last = (e)->last ? (e)->last : (e); \
} while (0)
/*