+struct cblock *cfree, *cfreelist;
+int cfreecount, nclist;
+
+#define setquote(cp) \
+ setbit(((char *)((int)(cp)&~CROUND)+sizeof(struct cblock *)), \
+ (int)(cp)&CROUND)
+#define isquote(cp) \
+ isset(((char *)((int)(cp)&~CROUND)+sizeof(struct cblock *)), \
+ (int)(cp)&CROUND)
+#define cbptr(x) ((struct cblock *)(x))
+
+/*
+ * Initialize clist by freeing all character blocks.
+ */
+cinit()
+{
+ register int ccp;
+ register struct cblock *cp;
+
+ ccp = (int) cfree;
+ ccp = (ccp + CROUND) & ~CROUND;
+ for(cp = (struct cblock *) ccp; cp < &cfree[nclist - 1]; cp++) {
+ cp->c_next = cfreelist;
+ cfreelist = cp;
+ cfreecount += CBSIZE;
+ }
+}