From: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Cc: emacs-devel@gnu.org
Subject: Re: #defines and MacOS X
Date: Fri, 28 Oct 2005 11:28:43 +0900 [thread overview]
Message-ID: <wlu0f29xyc.wl%mituharu@math.s.chiba-u.ac.jp> (raw)
In-Reply-To: <FA343646-E9DE-4498-BAFA-40AC02181290@cogsci.ucsd.edu>
>>>>> On Thu, 27 Oct 2005 13:18:31 -0400, Adrian Robert <arobert@cogsci.ucsd.edu> said:
> One issue that comes up is #ifdef constant naming semantics, because
> the both ports have historically assumed they are the only windowing
> system port on the Mac, and therefore used constants like "MAC_OS"
> to delineate their code.
I'm not sure it is a good time to change them for Emacs 22, but their
convention is actually inconsistent.
> In particular, the Carbon port uses:
I think there are some misunderstandings in this part.
First, Mac OS Classic has Carbon and non-Carbon ports. The Carbon
port is almost a superset of the non-Carbon one, but emulation of
synchronous processes is not available on the former. Mac OS X
currently has terminal-only, X11, and Carbon ports. Let me clarify
the current situation using them.
> MAC_OS
> - sometimes relevant to all MacOS, but sometimes just relevant to the
> Carbon port on 8/9 and X
Classic/Carbon || Classic/non-Carbon || OSX/Carbon
> MAC_OSX
> - sometimes relevant to Darwin and/or OS X, but sometimes just
> relevant to Carbon on OS X
OSX/terminal || OSX/X11 || OSX/Carbon
(Bare Darwin is not included.)
> TARGET_API_MAC_CARBON
> - relevant to Carbon port on OS X only
Classic/Carbon || OSX/Carbon
(It is automatically set when Carbon.h or Carbon/Carbon.h is
included.)
> USE_CARBON_EVENTS
> - pertaining to historical use of differing event mechanisms in
> Carbon on OS X
I think it can be eliminated now (i.e., so that TARGET_API_MAC_CARBON
always assumes USE_CARBON_EVENTS).
> I want to change the use of MAC_OS and MAC_OSX to indicate the
> operating system, not the GUI API used on it. Therefore, we would get:
> MAC_OS_8, MAC_OS_9
> - non-graphical code relevant on MacOS 8/9
The current code does not distinguish Mac OS 8 from 9. Maybe
MAC_OS_CLASSIC can be used here.
> DARWIN
> - non-graphical code relevant on MacOS X, as well as other Darwin
> BSD distributions
`DARWIN' should not be defined on Mac OS X because CoreFoundation.h
uses it to distinguish Mac OS X from bare Darwin.
> ---------
> CLASSIC
> - graphical code for MacOS 8/9 only
> CARBON
> - graphical code for MacOS X only
I think the word `CLASSIC' is too general. And CLASSIC and CARBON are
not the concepts at the same layer.
What we'd like to distinguish is:
- Between (Classic/Carbon or OSX/Carbon) and Classic/non-Carbon
- Between OSX/Carbon and Classic/Carbon
I think they can be achieved using standard macros TARGET_API_MAC_OS8,
TARGET_API_MAC_OSX, and TARGET_API_MAC_CARBON. (Note that they can
only be used on Classic/non-Carbon, Classic/Carbon and OSX/Carbon
after a relevant header file is included).
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
next prev parent reply other threads:[~2005-10-28 2:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-27 17:18 #defines and MacOS X Adrian Robert
2005-10-28 2:28 ` YAMAMOTO Mitsuharu [this message]
2005-10-28 15:11 ` Adrian Robert
2005-10-28 8:36 ` Kim F. Storm
2005-10-28 11:22 ` Miles Bader
2005-10-28 11:48 ` Kim F. Storm
2005-10-28 15:22 ` Adrian Robert
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=wlu0f29xyc.wl%mituharu@math.s.chiba-u.ac.jp \
--to=mituharu@math.s.chiba-u.ac.jp \
--cc=emacs-devel@gnu.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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).