Subject: Re: bug#27041: MacOS 10.6: fix NS build

From: "Charles A. Roelli" <[email-masked]>
Date: Wed, 24 May 2017 20:13:21 +0200

Thanks for your help.

I changed the conditional to this:

#if defined(NS_IMPL_GNUSTEP) || MAC_OS_X_VERSION_MAX_ALLOWED < 
MAC_OS_X_VERSION_10_7
typedef id instancetype;
typedef NSUInteger NSWindowStyleMask;
#endif

And it compiles fine without my previous changes.  Can you verify that 
this still builds with GNUstep?  If not, we can leave the 'int' instead 
of the 'NSUInteger'.

On 23/05/2017 21:49, Alan Third wrote:
> On Tue, May 23, 2017 at 08:57:04PM +0200, Charles A. Roelli wrote:
>> I've changed the source back to compile correctly (see patch).  It comes
>> down to
>> removing the "instancetype" identifiers and reverting an NSWindowStyleMask
>> to an
>> NSUInteger.
> Hi Charles, can you try enabling the two typedefs at ~ line 67 in
> nsterm.h to see if the first batch of errors go away?
>
> I guess it’s possible the second typedef should be an NSUInteger
> instead of a plain int. I just took a guess and that silenced the
> errors when building under GNUstep.
>
>> I also see this warning when compiling macfont.m:
>>
>> macfont.m: In function ‘mac_font_shape_1’:
>> macfont.m:416: warning: ‘NSLayoutManager’ may not respond to
>> ‘-getGlyphsInRange:glyphs:properties:characterIndexes:bidiLevels:’
>> macfont.m:416: warning: (Messages without a matching method signature
>> macfont.m:416: warning: will be assumed to return ‘id’ and accept
>> macfont.m:416: warning: ‘...’ as arguments.)
>>
>> (some new arguments were added in the recent changes).  But this doesn't
>> seem to affect functionality so I've left that change as is.
> Probably we should be using one function for recent macOS’s and
> another for old ones. Yamamoto san had something to say about it, but
> I’ve not had a chance to investigate:
>
> http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00565.html
>