ack/util/ego/il/il3_aux.c

64 lines
960 B
C

/* I N L I N E S U B S T I T U T I O N
*
* I L 3 _ A U X . C
*/
#include "../share/types.h"
#include "il.h"
#include "../share/debug.h"
#include "../share/alloc.h"
#include "../share/global.h"
#include "il_aux.h"
#include "il3_aux.h"
line_p last_line(lines)
line_p lines;
{
/* Determine the last line of a list */
register line_p l;
assert (lines != (line_p) 0);
for (l = lines; l->l_next != (line_p) 0; l = l->l_next);
return l;
}
app_list(list,l)
line_p list,l;
{
/* Append the list after line l */
line_p llast;
assert(l != (line_p) 0);
assert (list != (line_p) 0);
llast = last_line(list);
llast->l_next = l->l_next;
if (l->l_next != (line_p) 0) {
PREV(l->l_next) = llast;
}
l->l_next = list;
PREV(list) = l;
}
rem_line(l)
line_p l;
{
/* Remove a line from the list */
if (PREV(l) != (line_p) 0) {
PREV(l)->l_next = l->l_next;
}
if (l->l_next != (line_p) 0) {
PREV(l->l_next) = PREV(l);
}
oldline(l);
}