mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-24 07:20:37 +00:00
2002-08-10 Andrew Choi <akochoi@shaw.ca>
* mac.c (sys_select) [MAC_OSX]: New function. * macterm.c (MakeMeTheFrontProcess): New function. (mac_initialize): Call MakeMeTheFrontProcess. * s/darwin.h: Define select to sys_select.
This commit is contained in:
parent
1e7c162fa4
commit
8030369ccb
@ -1,3 +1,12 @@
|
||||
2002-08-10 Andrew Choi <akochoi@shaw.ca>
|
||||
|
||||
* mac.c (sys_select) [MAC_OSX]: New function.
|
||||
|
||||
* macterm.c (MakeMeTheFrontProcess): New function.
|
||||
(mac_initialize): Call MakeMeTheFrontProcess.
|
||||
|
||||
* s/darwin.h: Define select to sys_select.
|
||||
|
||||
2002-08-09 Richard M. Stallman <rms@gnu.org>
|
||||
|
||||
* keyboard.c (make_lispy_event): Test WINDOWSNT, not WINDOWS_NT.
|
||||
|
24
src/mac.c
24
src/mac.c
@ -2745,6 +2745,30 @@ and t is the same as `SECONDARY'. */)
|
||||
return Qnil;
|
||||
}
|
||||
|
||||
#ifdef MAC_OSX
|
||||
#undef select
|
||||
|
||||
extern int inhibit_window_system;
|
||||
|
||||
/* When Emacs is started from the Finder, SELECT always immediately
|
||||
returns as if input is present when file descriptor 0 is polled for
|
||||
input. Strangely, when Emacs is run as a GUI application from the
|
||||
command line, it blocks in the same situation. This `wrapper' of
|
||||
the system call SELECT corrects this discrepancy. */
|
||||
int
|
||||
sys_select (n, rfds, wfds, efds, timeout)
|
||||
int n;
|
||||
SELECT_TYPE *rfds;
|
||||
SELECT_TYPE *wfds;
|
||||
SELECT_TYPE *efds;
|
||||
struct timeval *timeout;
|
||||
{
|
||||
if (!inhibit_window_system && rfds && FD_ISSET (0, rfds))
|
||||
return 1;
|
||||
else
|
||||
return select (n, rfds, wfds, efds, timeout);
|
||||
}
|
||||
#endif /* MAC_OSX */
|
||||
|
||||
void
|
||||
syms_of_mac ()
|
||||
|
@ -366,6 +366,7 @@ extern XrmDatabase x_load_resources P_ ((Display *, char *, char *, char *));
|
||||
|
||||
extern Lisp_Object x_icon_type P_ ((struct frame *));
|
||||
|
||||
extern int inhibit_window_system;
|
||||
|
||||
#if __MRC__
|
||||
QDGlobals qd; /* QuickDraw global information structure. */
|
||||
@ -13405,6 +13406,18 @@ mac_term_init (display_name, xrm_option, resource_name)
|
||||
return dpyinfo;
|
||||
}
|
||||
|
||||
#ifdef MAC_OSX
|
||||
void MakeMeTheFrontProcess ()
|
||||
{
|
||||
ProcessSerialNumber psn;
|
||||
OSErr err;
|
||||
|
||||
err = GetCurrentProcess (&psn);
|
||||
if (err == noErr)
|
||||
(void) SetFrontProcess (&psn);
|
||||
}
|
||||
#endif /* MAC_OSX */
|
||||
|
||||
/* Set up use of X before we make the first connection. */
|
||||
|
||||
static struct redisplay_interface x_redisplay_interface =
|
||||
@ -13514,6 +13527,9 @@ mac_initialize ()
|
||||
#endif
|
||||
|
||||
DisableMenuCommand (NULL, kHICommandQuit);
|
||||
|
||||
if (!inhibit_window_system)
|
||||
MakeMeTheFrontProcess ();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -308,3 +308,10 @@ struct kboard;
|
||||
#define realloc unexec_realloc
|
||||
#define free unexec_free
|
||||
#endif
|
||||
|
||||
/* Reroute calls to SELECT to the version defined in mac.c to fix the
|
||||
problem of Emacs requiring an extra return to be typed to start
|
||||
working when started from the command line. */
|
||||
#if defined (emacs) || defined (temacs)
|
||||
#define select sys_select
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user