Various cleanup.
diff --git a/include/draw.h b/include/draw.h
index 0f9ba63..a9ae96a 100644
--- a/include/draw.h
+++ b/include/draw.h
@@ -509,11 +509,22 @@
 extern	int	_compblocksize(Rectangle, int);
 
 /* XXX backwards helps; should go */
-extern	int		log2[];
 extern	u32int	drawld2chan[];
 extern	void		drawsetdebug(int);
 
 /*
+ * Snarf buffer
+ */
+enum
+{
+	SnarfSize = 64*1024,
+};
+char *getsnarf(void);
+void putsnarf(char*);
+
+void drawtopwindow(void);
+
+/*
  * Port magic.
  */
 int	_drawmsgread(Display*, void*, int);
diff --git a/include/lib9.h b/include/lib9.h
index 42f6f44..534efb3 100644
--- a/include/lib9.h
+++ b/include/lib9.h
@@ -176,7 +176,8 @@
 
 /* one of a kind */
 extern void	sysfatal(char*, ...);
-extern int		nrand(int);
+extern int	nrand(int);
+extern long	lrand(void);
 extern void	setmalloctag(void*, ulong);
 extern void	setrealloctag(void*, ulong);
 extern void	*mallocz(ulong, int);
diff --git a/include/memdraw.h b/include/memdraw.h
index 08784ce..2d4f54f 100644
--- a/include/memdraw.h
+++ b/include/memdraw.h
@@ -46,6 +46,7 @@
 	Memlayer	*layer;	/* nil if not a layer*/
 	u32int		flags;
 	void		*X;
+	int		screenref;	/* reference count if this is a screen */
 
 	int		shift[NChan];
 	int		mask[NChan];