9term, win: work around bsd linker nonsense
Change-Id: Ifcef0636ee1e1fd0f9b06a8d1a99d58fae831318
Reviewed-on: https://plan9port-review.googlesource.com/2780
Reviewed-by: Russ Cox <rsc@swtch.com>
diff --git a/include/draw.h b/include/draw.h
index 2bc9b4b..3a01295 100644
--- a/include/draw.h
+++ b/include/draw.h
@@ -525,6 +525,8 @@
extern void _setdrawop(Display*, Drawop);
extern Display *_initdisplay(void(*)(Display*,char*), char*);
+extern void needdisplay(void); /* call instead of initdraw to get (null) variable linked in */
+
#define BGSHORT(p) (((p)[0]<<0) | ((p)[1]<<8))
#define BGLONG(p) ((BGSHORT(p)<<0) | (BGSHORT(p+2)<<16))
#define BPSHORT(p, v) ((p)[0]=(v), (p)[1]=((v)>>8))
diff --git a/src/cmd/9term/bsdpty.c b/src/cmd/9term/bsdpty.c
index fe0367f..3128132 100644
--- a/src/cmd/9term/bsdpty.c
+++ b/src/cmd/9term/bsdpty.c
@@ -77,10 +77,10 @@
ws.ws_col = col;
ws.ws_xpixel = dx;
-
+ needdisplay(); // in case this is 'win' and not 9term
// Leave "is this a hidpi display" in the low bit of the ypixel height for mc.
dy &= ~1;
- if(display->dpi >= DefaultDPI*3/2)
+ if(display != nil && display->dpi >= DefaultDPI*3/2)
dy |= 1;
ws.ws_ypixel = dy;
diff --git a/src/libdraw/init.c b/src/libdraw/init.c
index 452b6da..e5a367f 100644
--- a/src/libdraw/init.c
+++ b/src/libdraw/init.c
@@ -19,6 +19,11 @@
Image *mousesave;
Mouse _drawmouse;
+void
+needdisplay(void)
+{
+}
+
/*
static void
drawshutdown(void)