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)
next prev parent 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.