On Thu, Mar 6, 2025 at 05:08 Robert Pluim wrote: > >>>>> On Wed, 5 Mar 2025 06:38:05 -0500, Ship Mints > said: > > Ship> #ifdef NS_IMPL_COCOA > Ship> - m->name = ns_screen_name (did); > Ship> + m->name = NULL; > Ship> + if ([s respondsToSelector:@selector(localizedName)]) > Ship> + { > Ship> + NSString *name = [s valueForKey:@"localizedName"]; > Ship> + if (name != NULL) > Ship> + { > Ship> + m->name = xmalloc ([name lengthOfBytesUsingEncoding: > NSUTF8StringEncoding]); > Ship> + strcpy(m->name, [name UTF8String]); > Ship> + } > > The reason it was crashing for me is that the xmalloc doesnʼt account > for the terminating '\0', ie we need > > m->name = xmalloc ([name lengthOfBytesUsingEncoding: > NSUTF8StringEncoding] + 1); > > or just > > m->name = xstrdup ([name UTF8String]); > > Ship> + } > Ship> + /* If necessary, synthesize a name of the following form: > Ship> + %dx%d@%d,%d width height x y. */ > Ship> + if (m->name == NULL) > Ship> + { > Ship> + char buf[25]; /* sufficient for 12345x78901@34567,90123 > */ > Ship> + snprintf (buf, sizeof(buf), "%ux%u@%d,%d", > Ship> + m->work.width, m->work.height, m->work.x, > m->work.y); > Ship> + m->name = xstrdup (buf); > Ship> + } Right. I'd changed the last patch to xstrdup. Do you have a monitor for which macOS has no name that caused the fallback to be invoked?