unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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

  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).