1 /* Structures used for the C_insertpart, C_beginpart, and C_endpart
2 mechanism. Each part consists of a list of chunks. Each chunk is
3 either another part, or a piece of text limited by a begin- and an
7 /* $Id: insert.h,v 1.6 1994/06/24 11:11:18 ceriel Exp $ */
13 #define INCORE /* mechanism implemented incore */
16 typedef struct partofpart {
17 struct partofpart *pp_next;
23 long ppu_begin, ppu_end;
27 #define pp_begin pp_u.ppu_s.ppu_begin
28 #define pp_end pp_u.ppu_s.ppu_end
29 #define pp_id pp_u.ppu_id
33 struct part *p_next; /* next part in hash chain */
36 PartOfPart *p_parts; /* chunks of this part */
37 struct part *p_prevpart; /* implements stack of active parts */
38 int p_id; /* id of this part */
44 C_ontmpfile, C_sequential;
49 *C_current_out, *C_BASE;
50 #define C_opp C_current_out
57 extern int (*C_outpart)(), (*C_swtout)(), (*C_swttmp)();
63 extern char *C_tmpfile;
69 #define put(c) if (C_opp == C_top) C_flush(); *C_opp++ = (c)