emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: merging Emacs.app


From: Adrian Robert
Subject: Re: merging Emacs.app
Date: Mon, 10 Mar 2008 10:06:22 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

YAMAMOTO Mitsuharu <mituharu <at> math.s.chiba-u.ac.jp> writes:

> One may think that the two ports mainly differs in the APIs they use,
> but what's really different between them is their fundamental design
> and policy.  (Otherwise I wouldn't have tried to make another
> Cocoa-based port.)
> 
> For example, the latest release of Emacs.app still doesn't quit with
> C-g in certain situations such as `(while t)' or `M-! sleep 30 RET'.
> Of course the Carbon port can quit there, but its strategy is not
> directly applicable to the Cocoa port because of the difference in
> their fundamental design.

It is true that there are design differences btwn the ports, many arising
because NeXTstep is an OO API and the port tried to use those facilities
effectively from the beginning.  (And there are pros and cons of this, since
it causes some code differences to other ports built around non-OO APIs.)
However that is unrelated to this Ctrl-G issue.

The event handling in the Emacs.app is slightly different from the Carbon
code, but in my understanding these shouldn't prevent similar Ctrl-G
sensitivity.  However by default Emacs.app does not define NO_SOCK_SIGIO,
while Carbon does.  Turning it on (add --enable-cocoa-experimental-ctrl- g to
configure args) improves Ctrl-G sensitivity, but brings some undesired side
effects, related to scrolling and multi-frame switching.  It is an open TODO
to address these side effects and also make a few other code changes to bring
the sensitivity fully up to the Carbon level, but I would be surprised if it
needed changes to fundamental design to do this.

BTW, a very closely related improvement needed is to correctly handle input
when GUI and terminal windows are simultaneously active.

-Adrian







reply via email to

[Prev in Thread] Current Thread [Next in Thread]