18 aug. 2020 kl. 10.43 skrev Alan Third : >> Presumably this should be utf_16be on big-endian platforms. We still support PowerPC macOS, don't we? > > No, however I imagine we support GNUstep on big endian systems. Well then, it's easy to deal with. >>> + str = [NSString stringWithCharacters: (const unichar *) SDATA (encoded_name) >> >> Is SDATA guaranteed to be 16-bit aligned? Doesn't matter on x86 or >> PowerPC, but strictly speaking... > > I've no idea, I adapted the code from make_multibyte_string in > alloc.c, and one of it's callers (although I can't remember which > right now). I'm expecting Eli to appear and tell me this is the > entirely wrong way of doing this. ;) Data alignment trapping is optional on 64-bit ARM but I'd be surprised if macOS enabled it. It might be hazardous for all the GNUStep-on-MIPS workstations. > Anyway, as I understand it the internal representation of NS strings > are UTF-16, so the conversion through UTF-8 seems a bit of a waste if > we can go direct. Maybe, but the conversion to UTF-16 then has to be done on the Emacs side instead, probably less efficiently than in the NS libs. It's probably a wash. Anyway, here is an alternative patch using your method. Tell us what you think.