X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/95e8d12b7189d4cd01b8ae8ecebfa5835a1809e6..00255728aae0dcbb657e8a4e145515c673b546a4:/main.c?ds=inline

diff --git a/main.c b/main.c
index 33a2a9a..5efe599 100644
--- a/main.c
+++ b/main.c
@@ -85,6 +85,7 @@ xerrorstart(Display *dsply, XErrorEvent *ee)
 char stext[1024];
 int tsel = DEFTAG;
 int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
+unsigned int ntags;
 Atom wmatom[WMLast], netatom[NetLast];
 Bool running = True;
 Bool issel = True;
@@ -101,9 +102,10 @@ getproto(Window w)
 	int protos = 0;
 	int i;
 	long res;
-	unsigned char *protocols;
+	Atom *protocols;
 
-	res = win_property(w, wmatom[WMProtocols], XA_ATOM, 20L, &protocols);
+	res = win_property(w, wmatom[WMProtocols], XA_ATOM, 20L,
+			((unsigned char **)&protocols));
 	if(res <= 0) {
 		return protos;
 	}
@@ -177,15 +179,14 @@ main(int argc, char *argv[])
 
 	dpy = XOpenDisplay(0);
 	if(!dpy)
-		eprint("dwm: cannot connect X server\n");
+		eprint("dwm: cannot open display\n");
 
 	screen = DefaultScreen(dpy);
 	root = RootWindow(dpy, screen);
 
-	/* check if another WM is already running */
 	otherwm = False;
 	XSetErrorHandler(xerrorstart);
-	/* this causes an error if some other WM is running */
+	/* this causes an error if some other window manager is running */
 	XSelectInput(dpy, root, SubstructureRedirectMask);
 	XSync(dpy, False);
 
@@ -209,6 +210,9 @@ main(int argc, char *argv[])
 	cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
 
 	grabkeys();
+	initrregs();
+
+	for(ntags = 0; tags[ntags]; ntags++);
 
 	/* style */
 	dc.bg = getcolor(BGCOLOR);
@@ -236,6 +240,8 @@ main(int argc, char *argv[])
 
 	dc.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
 	dc.gc = XCreateGC(dpy, root, 0, 0);
+
+	strcpy(stext, "dwm-"VERSION);
 	drawstatus();
 
 	issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask);
@@ -244,10 +250,9 @@ main(int argc, char *argv[])
 	wa.cursor = cursor[CurNormal];
 	XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);
 
-	strcpy(stext, "dwm-"VERSION);
 	scan();
 
-	/* main event loop, reads status text from stdin as well */
+	/* main event loop, also reads status text from stdin */
 	while(running) {
 		FD_ZERO(&rd);
 		if(readin)