all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alan Third <alan@idiocy.org>
To: Keith David Bershatsky <esq@lawlist.com>
Cc: "Po Lu" <luangruo@yahoo.com>,
	"Mattias Engdegård" <mattiase@acm.org>,
	"Paul Eggert" <eggert@cs.ucla.edu>,
	emacs-devel@gnu.org
Subject: Re: Emacs 28 on OSX: emacsclient.c:1415: warning: implicit declaration of function 'openat'
Date: Wed, 20 Apr 2022 17:48:49 +0100	[thread overview]
Message-ID: <YmA5cYUPTGt3NvH8@idiocy.org> (raw)
In-Reply-To: <m2r15r3llk.wl%esq@lawlist.com>

[-- Attachment #1: Type: text/plain, Size: 1432 bytes --]

On Wed, Apr 20, 2022 at 06:55:51AM -0700, Keith David Bershatsky wrote:
> Using the most recent patch by Alan permits the build to now proceed to macfont.m, where it stops:
> 
>   CC       macfont.o
> In file included from macfont.m:24:
> lisp.h:2156: warning: declaration does not declare anything
> macfont.m: In function 'mac_font_shape_1':
> macfont.m:425: warning: 'NSLayoutManager' may not respond to '-getGlyphsInRange:glyphs:properties:characterIndexes:bidiLevels:'
> macfont.m:425: warning: (Messages without a matching method signature
> macfont.m:425: warning: will be assumed to return 'id' and accept
> macfont.m:425: warning: '...' as arguments.)

This one is funny since he code's been there since 2017, and according
to Apple the method is supported in 10.6, so I'm leaving it for now
since there's no error.

> macfont.m: In function 'mac_font_create_preferred_family_for_attributes':
> macfont.m:3575: error: 'NSOperatingSystemVersion' undeclared (first use in this function)
> macfont.m:3575: error: (Each undeclared identifier is reported only once
> macfont.m:3575: error: for each function it appears in.)
> macfont.m:3575: error: expected ')' before '{' token
> macfont.m:3576: warning: 'NSProcessInfo' may not respond to '-isOperatingSystemAtLeastVersion:'
> make[1]: *** [macfont.o] Error 1
> make: *** [src] Error 2
> ~/Desktop/emacs $

Please try the attached and let us know what happens.
-- 
Alan Third

[-- Attachment #2: v4-0001-Fix-nsmenu-compilation-under-macOS-10.6.patch --]
[-- Type: text/x-diff, Size: 3776 bytes --]

From 6a778c018f0e444e2ee9b8694ac9dbac8387e32c Mon Sep 17 00:00:00 2001
From: Alan Third <alan@idiocy.org>
Date: Tue, 19 Apr 2022 05:05:17 +0100
Subject: [PATCH v4] Fix nsmenu compilation under macOS 10.6

* src/nsmenu.m ([EmacsMenu fillWithWidgetValue:]): Replace modern
shorthand dictionary and array definitions.
* src/nsterm.h (NSTextAlignmentRight): Redefine if necessary.
* src/macfont.m (mac_font_create_preferred_family_for_attributes):
isOperatingSystemAtLeastVersion is new in macOS 10.10, so it's
probably wrong to use it to check whether we're below 10.9.
---
 src/macfont.m | 11 +++++------
 src/nsmenu.m  | 10 ++++++----
 src/nsterm.h  |  2 +-
 3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/macfont.m b/src/macfont.m
index 34e48afb98..eaac47edb8 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -3570,18 +3570,17 @@ So we use CTFontDescriptorCreateMatchingFontDescriptor (no
 
       if (languages && CFArrayGetCount (languages) > 0)
         {
-          if ([[NSProcessInfo processInfo]
-                isOperatingSystemAtLeastVersion:
-                  ((NSOperatingSystemVersion){
-                    .majorVersion = 10, .minorVersion = 9})])
-            values[num_values++] = CFArrayGetValueAtIndex (languages, 0);
-          else
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 10900
+          if (CTGetCoreTextVersion () < kCTVersionNumber10_9)
             {
               CFCharacterSetRef charset =
                 CFDictionaryGetValue (attributes, kCTFontCharacterSetAttribute);
 
               result = mac_font_copy_default_name_for_charset_and_languages (charset, languages);
             }
+          else
+#endif
+            values[num_values++] = CFArrayGetValueAtIndex (languages, 0);
         }
       if (result == NULL)
         {
diff --git a/src/nsmenu.m b/src/nsmenu.m
index 81d7cd2da1..0f7d1fb98f 100644
--- a/src/nsmenu.m
+++ b/src/nsmenu.m
@@ -649,7 +649,8 @@ - (void)fillWithWidgetValue: (void *)wvptr
      work around it by using tabs to split the title into two
      columns.  */
   NSFont *menuFont = [NSFont menuFontOfSize:0];
-  NSDictionary *font_attribs = @{NSFontAttributeName: menuFont};
+  NSDictionary *font_attribs = [NSDictionary dictionaryWithObjectsAndKeys:
+                                               menuFont, NSFontAttributeName, nil];
   CGFloat maxNameWidth = 0;
   CGFloat maxKeyWidth = 0;
 
@@ -677,11 +678,12 @@ - (void)fillWithWidgetValue: (void *)wvptr
   NSTextTab *tab =
     [[[NSTextTab alloc] initWithTextAlignment: NSTextAlignmentRight
                                      location: maxWidth
-                                      options: @{}] autorelease];
+                                      options: [NSDictionary dictionary]] autorelease];
   NSMutableParagraphStyle *pstyle = [[[NSMutableParagraphStyle alloc] init]
                                       autorelease];
-  [pstyle setTabStops: @[tab]];
-  attributes = @{NSParagraphStyleAttributeName: pstyle};
+  [pstyle setTabStops: [NSArray arrayWithObject:tab]];
+  attributes = [NSDictionary dictionaryWithObjectsAndKeys:
+                               pstyle, NSParagraphStyleAttributeName, nil];
 #endif
 
   /* clear existing contents */
diff --git a/src/nsterm.h b/src/nsterm.h
index 4cba5c0be8..4cb7475235 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -1290,8 +1290,8 @@ #define NSWindowStyleMaskUtilityWindow     NSUtilityWindowMask
 #define NSAlertStyleCritical               NSCriticalAlertStyle
 #define NSControlSizeRegular               NSRegularControlSize
 #define NSCompositingOperationCopy         NSCompositeCopy
+#define NSTextAlignmentRight               NSRightTextAlignment
 
-/* And adds NSWindowStyleMask.  */
 #ifdef __OBJC__
 typedef NSUInteger NSWindowStyleMask;
 #endif
-- 
2.35.1


  reply	other threads:[~2022-04-20 16:48 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-20 13:55 Emacs 28 on OSX: emacsclient.c:1415: warning: implicit declaration of function 'openat' Keith David Bershatsky
2022-04-20 16:48 ` Alan Third [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-04-26  2:56 Keith David Bershatsky
2022-04-26  3:14 ` Po Lu
2022-04-25  5:17 Keith David Bershatsky
2022-04-25  5:43 ` Po Lu
2022-04-25  9:56   ` Alan Third
2022-04-25 10:30     ` Po Lu
2022-04-25 18:07       ` Alan Third
2022-04-26  0:10         ` Po Lu
2022-04-25  3:46 Keith David Bershatsky
2022-04-25  4:13 ` Po Lu
2022-04-25  1:49 Keith David Bershatsky
2022-04-25  3:09 ` Po Lu
2022-04-25  1:35 Keith David Bershatsky
2022-04-25 18:08 ` Alan Third
2022-04-24 17:02 Keith David Bershatsky
2022-04-24 19:22 ` Alan Third
2022-04-24  0:08 Keith David Bershatsky
2022-04-24  9:03 ` Alan Third
2022-04-23  4:33 Keith David Bershatsky
2022-04-23 22:04 ` Alan Third
2022-04-22 21:29 Keith David Bershatsky
2022-04-23 22:13 ` Alan Third
2022-04-22 21:23 Keith David Bershatsky
2022-04-21 22:40 Keith David Bershatsky
2022-04-21 22:44 ` Alan Third
2022-04-21 20:51 Keith David Bershatsky
2022-04-21 22:22 ` Alan Third
2022-04-21 17:52 Keith David Bershatsky
2022-04-21 19:21 ` Alan Third
2022-04-21  2:22 Keith David Bershatsky
2022-04-21  0:51 Keith David Bershatsky
2022-04-21  2:05 ` Po Lu
2022-04-21  5:09 ` Alan Third
2022-04-19  4:36 Keith David Bershatsky
2022-04-19  4:38 ` Po Lu
2022-04-19  1:24 Keith David Bershatsky
2022-04-19  2:35 ` Po Lu
2022-04-19  4:19   ` Alan Third
2022-04-19  4:24     ` Po Lu
2022-04-19  6:04     ` Eli Zaretskii
2022-04-20  1:23     ` Po Lu
2022-04-20  8:07       ` Alan Third
2022-04-19  2:56 ` Paul Eggert
2022-04-18 20:43 Keith David Bershatsky
2022-04-18 19:51 Keith David Bershatsky
2022-04-18 19:54 ` Paul Eggert
2022-04-19  1:00 ` Po Lu
2022-04-18  2:24 Keith David Bershatsky
2022-04-18  2:53 ` Po Lu
2022-04-18  0:38 Keith David Bershatsky
2022-04-18  0:58 ` Paul Eggert
2022-04-18  1:39 ` Po Lu
2022-04-17 21:57 Keith David Bershatsky
2022-04-17 23:21 ` Paul Eggert
2022-04-17 18:45 Keith David Bershatsky
2022-04-17 20:37 ` Alan Third
2022-04-17 20:37 ` Paul Eggert
2022-04-15 19:11 Keith David Bershatsky
2022-04-17  9:01 ` Mattias Engdegård
2022-04-17 17:49   ` Paul Eggert
2022-04-17 19:12     ` Eli Zaretskii
2022-04-17 20:36       ` Paul Eggert
2022-04-18  4:49         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YmA5cYUPTGt3NvH8@idiocy.org \
    --to=alan@idiocy.org \
    --cc=eggert@cs.ucla.edu \
    --cc=emacs-devel@gnu.org \
    --cc=esq@lawlist.com \
    --cc=luangruo@yahoo.com \
    --cc=mattiase@acm.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.