> On Jun 20, 2016, at 3:44 PM, Brent Christian <brent.christ...@oracle.com> > wrote: > > > Alex - thanks for your response. More below... > > On 6/13/16 4:51 PM, Alex Strange wrote: >>> 2. In "setupMacOSXLocale" we simply drop the call to >>> "JRSSetDefaultLocalization" as it appears to be a NOP. According to >>> Apple, that API sets up native bundle locale, so that any access to >>> native Cocoa UI (like FileOpenChooser) uses localized strings. >>> Testing shows that this does not seem to work even in Apple's own >>> JDK (ie. JDK 6), so dropping the call to this SPI here does not >>> result in a regression. An issue was filed to investigate further >>> (8024279, a dup of 8019464) which has since been closed as, "Not an >>> Issue". >> >> This was added a very long time ago so that 'java -jar x.jar' would >> show properly localized menus in the menubar, instead of English >> menus, on a non-English system. It might no longer be a problem. > > OK, thanks. > > 'java -jar x.jar' behavior is unchanged with this patch. (From the bug > report, it hasn't worked since JDK 7).
That's unfortunate, since it probably means I broke it back then. Sorry about that. > >>> 3. In "setOSNameAndVersion", re-implement JRSCopyOSVersion using >>> [NSProcessInfo operatingSystemVersion]. (Use of JRSCopyOSName was >>> already removed by 7178922). >> >> You shouldn't need to use objc_msgSend_stret here. If you're not >> getting a warning when you use @selector in the line above, you >> should just be able to call -operationgSystemVersion directly inside >> the if. >> >> If you are getting a warning, it'd be best to declare the selector >> yourself somewhere higher up: >> >> typedef struct { >> NSInteger majorVersion; >> NSInteger minorVersion; >> NSInteger patchVersion; >> } OSVerStruct; >> >> @interface NSProcessInfo () >> - (OSVerStruct)operatingSystemVersion; >> @end > > Thanks - this works for building w/ the 10.9 SDK (the officially supported > Mac SDK for building JDK). > > But I believe people also build w/ the 10.10 SDK (I've not tried it myself). > Won't this cause problems, since NSProcessInfo already has > "operatingSystemVersion", and it returns an NSOperatingSystemVersion, not an > OSVerStruct ? > > I'd prefer something that can build on SDK 10.9 and 10.10, etc. Once the > official build moves to 10.10/later, objc_msgSend() can be removed and we can > use [NSProcessInfo operatingSystemVersion] directly. Ah, I see. Your way is correct, then. There might be a way to #ifdef it out (not sure), but it's not worth it. > > Thanks, > -Brent