client.c
changeset 873 e1af8e712b35
parent 865 018c38468422
child 874 e42bdee29c92
equal deleted inserted replaced
872:c7b4661e8902 873:e1af8e712b35
   363 	XGetTextProperty(dpy, c->win, &name, netatom[NetWMName]);
   363 	XGetTextProperty(dpy, c->win, &name, netatom[NetWMName]);
   364 	if(!name.nitems)
   364 	if(!name.nitems)
   365 		XGetWMName(dpy, c->win, &name);
   365 		XGetWMName(dpy, c->win, &name);
   366 	if(!name.nitems)
   366 	if(!name.nitems)
   367 		return;
   367 		return;
   368 	if(name.encoding == XA_STRING)
   368 	if(name.encoding == XA_STRING) {
   369 		strncpy(c->name, (char *)name.value, sizeof c->name);
   369 		strncpy(c->name, (char *)name.value, sizeof c->name - 1);
       
   370 	}
   370 	else {
   371 	else {
   371 		if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
   372 		if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
   372 		&& n > 0 && *list)
   373 		&& n > 0 && *list)
   373 		{
   374 		{
   374 			strncpy(c->name, *list, sizeof c->name);
   375 			strncpy(c->name, *list, sizeof c->name - 1);
   375 			XFreeStringList(list);
   376 			XFreeStringList(list);
   376 		}
   377 		}
   377 	}
   378 	}
       
   379 	c->name[sizeof c->name - 1] = '\0';
   378 	XFree(name.value);
   380 	XFree(name.value);
   379 }
   381 }
   380 
   382 
   381 void
   383 void
   382 unmanage(Client *c) {
   384 unmanage(Client *c) {