all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Mattias Engdegård" <mattiase@acm.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Richard Copley <rcopley@gmail.com>,
	eggert@cs.ucla.edu, emacs-devel@gnu.org
Subject: Re: Unbreak build on macOS
Date: Tue, 9 Jul 2019 17:30:22 +0200	[thread overview]
Message-ID: <FF5787D7-360C-4BF6-B390-6DD46B82C5CA@acm.org> (raw)
In-Reply-To: <83h87v5ja2.fsf@gnu.org>

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

9 juli 2019 kl. 17.17 skrev Eli Zaretskii <eliz@gnu.org>:
> 
> No, it's Mattias's fix that broke MS-Windows.

In some sense it was already broken on Windows (and with your fix, still is), but happens to work by chance: font.h and font.c are both compiled with the same unintended redefinition of `open'. Not quite satisfactory.
Here is the rebased renaming patch.


[-- Attachment #2: 0001-Fix-Windows-build-by-renaming-open-open_.patch --]
[-- Type: application/octet-stream, Size: 6631 bytes --]

From 90e44011ee51eb6bd046d69be45a4441172c2571 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mattias=20Engdeg=C3=A5rd?= <mattiase@acm.org>
Date: Tue, 9 Jul 2019 16:44:24 +0200
Subject: [PATCH] Fix Windows build by renaming open -> open_

* src/xftfont.c (xftfont_driver):
* src/xfont.c (xfont_driver):
* src/nsfont.m (nsfont_driver):
* src/macfont.m (macfont_driver):
* src/ftxfont.c (ftxfont_driver):
* src/ftfont.c (ftfont_driver):
* src/ftcrfont.c (ftcrfont_driver):
* src/font.h (struct font_driver):
* src/font.c (font_open_entity):
Rename `open' member to `open_', to avoid clash with preprocessor define
of `open' in lib/fcntl.h and nt/inc/ms-w32.h.  Remove earlier #undef hack.
---
 src/font.c     |  8 +-------
 src/font.h     | 10 +++++-----
 src/ftcrfont.c |  2 +-
 src/ftfont.c   |  2 +-
 src/ftxfont.c  |  2 +-
 src/macfont.m  |  2 +-
 src/nsfont.m   |  2 +-
 src/xfont.c    |  2 +-
 src/xftfont.c  |  2 +-
 9 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/src/font.c b/src/font.c
index ffd5064493..dd77b18cc1 100644
--- a/src/font.c
+++ b/src/font.c
@@ -44,12 +44,6 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 #include TERM_HEADER
 #endif /* HAVE_WINDOW_SYSTEM */
 
-/* Avoid macro definition of `open' in generated lib/fcntl.h to mess up
-   use of it as a struct member.  */
-#ifndef WINDOWSNT
-#undef open
-#endif
-
 #define DEFAULT_ENCODING Qiso8859_1
 
 /* Vector of Vfont_weight_table, Vfont_slant_table, and Vfont_width_table. */
@@ -2908,7 +2902,7 @@ font_open_entity (struct frame *f, Lisp_Object entity, int pixel_size)
      width and height.  */
   for (psize = pixel_size; ; psize++)
     {
-      font_object = driver_list->driver->open (f, entity, psize);
+      font_object = driver_list->driver->open_ (f, entity, psize);
       if (NILP (font_object))
 	return Qnil;
       font = XFONT_OBJECT (font_object);
diff --git a/src/font.h b/src/font.h
index 3387878ad3..35cc865b28 100644
--- a/src/font.h
+++ b/src/font.h
@@ -58,7 +58,7 @@ INLINE_HEADER_BEGIN
 	Lisp object encapsulating "struct font".  This corresponds to
 	an opened font.
 
-	Note: Only the method `open' of a font-driver can create this
+	Note: Only the method `open_' of a font-driver can create this
 	object, and it should never be modified by Lisp.  */
 
 
@@ -594,9 +594,9 @@ struct font_driver
      :weight, :slant, :width, :size, :dpi, :spacing, :avgwidth.  If
      the font is scalable, :size and :avgwidth must be 0.
 
-     The `open' method of the same font-backend is called with one of
+     The `open_' method of the same font-backend is called with one of
      the returned font-entities.  If the backend needs additional
-     information to be used in `open' method, this method can add any
+     information to be used in `open_' method, this method can add any
      Lispy value using the property :font-entity to the entities.
 
      This and the following `match' are the only APIs that allocate
@@ -623,8 +623,8 @@ struct font_driver
 
   /* Open a font specified by FONT_ENTITY on frame F.  If the font is
      scalable, open it with PIXEL_SIZE.  */
-  Lisp_Object (*open) (struct frame *f, Lisp_Object font_entity,
-                       int pixel_size);
+  Lisp_Object (*open_) (struct frame *f, Lisp_Object font_entity,
+                        int pixel_size);
 
   /* Close FONT.  NOTE: this can be called by GC.  */
   void (*close) (struct font *font);
diff --git a/src/ftcrfont.c b/src/ftcrfont.c
index 9378621216..ef8af1f6b3 100644
--- a/src/ftcrfont.c
+++ b/src/ftcrfont.c
@@ -576,7 +576,7 @@ struct font_driver const ftcrfont_driver =
   .list = ftcrfont_list,
   .match = ftcrfont_match,
   .list_family = ftfont_list_family,
-  .open = ftcrfont_open,
+  .open_ = ftcrfont_open,
   .close = ftcrfont_close,
   .has_char = ftcrfont_has_char,
   .encode_char = ftcrfont_encode_char,
diff --git a/src/ftfont.c b/src/ftfont.c
index a80e2fb5c4..8c619acace 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -3039,7 +3039,7 @@ static struct font_driver const ftfont_driver =
   .list = ftfont_list,
   .match = ftfont_match,
   .list_family = ftfont_list_family,
-  .open = ftfont_open,
+  .open_ = ftfont_open,
   .close = ftfont_close,
   .has_char = ftfont_has_char,
   .encode_char = ftfont_encode_char,
diff --git a/src/ftxfont.c b/src/ftxfont.c
index ae7d1a5a9b..a4818801d9 100644
--- a/src/ftxfont.c
+++ b/src/ftxfont.c
@@ -335,7 +335,7 @@ struct font_driver const ftxfont_driver =
   .list = ftxfont_list,
   .match = ftxfont_match,
   .list_family = ftfont_list_family,
-  .open = ftxfont_open,
+  .open_ = ftxfont_open,
   .close = ftxfont_close,
   .has_char = ftfont_has_char,
   .encode_char = ftfont_encode_char,
diff --git a/src/macfont.m b/src/macfont.m
index 2b7f963fd6..51d503b8f4 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -1663,7 +1663,7 @@ static int macfont_variation_glyphs (struct font *, int c,
   .match = macfont_match,
   .list_family = macfont_list_family,
   .free_entity = macfont_free_entity,
-  .open = macfont_open,
+  .open_ = macfont_open,
   .close = macfont_close,
   .has_char = macfont_has_char,
   .encode_char = macfont_encode_char,
diff --git a/src/nsfont.m b/src/nsfont.m
index e22a954e63..a4d2415f7a 100644
--- a/src/nsfont.m
+++ b/src/nsfont.m
@@ -1491,7 +1491,7 @@ - (void)setIntAttribute: (NSInteger)attributeTag value: (NSInteger)val
   .list = nsfont_list,
   .match = nsfont_match,
   .list_family = nsfont_list_family,
-  .open = nsfont_open,
+  .open_ = nsfont_open,
   .close = nsfont_close,
   .has_char = nsfont_has_char,
   .encode_char = nsfont_encode_char,
diff --git a/src/xfont.c b/src/xfont.c
index 9a8417b12d..c4770d19e4 100644
--- a/src/xfont.c
+++ b/src/xfont.c
@@ -1106,7 +1106,7 @@ struct font_driver const xfont_driver =
   .list = xfont_list,
   .match = xfont_match,
   .list_family = xfont_list_family,
-  .open = xfont_open,
+  .open_ = xfont_open,
   .close = xfont_close,
   .prepare_face = xfont_prepare_face,
   .has_char = xfont_has_char,
diff --git a/src/xftfont.c b/src/xftfont.c
index 74add58007..e917859a49 100644
--- a/src/xftfont.c
+++ b/src/xftfont.c
@@ -643,7 +643,7 @@ struct font_driver const xftfont_driver =
   .list = xftfont_list,
   .match = xftfont_match,
   .list_family = ftfont_list_family,
-  .open = xftfont_open,
+  .open_ = xftfont_open,
   .close = xftfont_close,
   .prepare_face = xftfont_prepare_face,
   .done_face = xftfont_done_face,
-- 
2.20.1 (Apple Git-117)


  reply	other threads:[~2019-07-09 15:30 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-09 11:41 Unbreak build on macOS Mattias Engdegård
2019-07-09 13:51 ` Richard Copley
2019-07-09 14:46   ` Mattias Engdegård
2019-07-09 15:29     ` Eli Zaretskii
2019-07-09 15:44       ` Mattias Engdegård
2019-07-09 16:08       ` Eli Zaretskii
2019-07-09 15:17   ` Eli Zaretskii
2019-07-09 15:30     ` Mattias Engdegård [this message]
2019-07-09 16:19       ` Eli Zaretskii
2019-07-09 16:49         ` Mattias Engdegård
2019-07-09 17:09           ` Eli Zaretskii
2019-07-09 20:20             ` Richard Copley
2019-07-09 15:05 ` 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=FF5787D7-360C-4BF6-B390-6DD46B82C5CA@acm.org \
    --to=mattiase@acm.org \
    --cc=eggert@cs.ucla.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rcopley@gmail.com \
    /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.