aboutsummaryrefslogtreecommitdiffstats
path: root/src/mac.c
diff options
context:
space:
mode:
authorKaroly Lorentey2007-01-01 17:38:32 +0000
committerKaroly Lorentey2007-01-01 17:38:32 +0000
commit65e86587ab836aaa86b12ce30b219bcb4fcbaa06 (patch)
tree7e13feee7387635f52df3613cf1bba4414781aab /src/mac.c
parent8c778e28bcf16b4baef6400a124ec2403941e940 (diff)
parent1fc8c92b50100da709c94a0faa47deed5603634f (diff)
downloademacs-65e86587ab836aaa86b12ce30b219bcb4fcbaa06.tar.gz
emacs-65e86587ab836aaa86b12ce30b219bcb4fcbaa06.zip
Merged from emacs@sv.gnu.org.
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-536 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-537 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-538 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-539 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-540 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-541 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-542 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-543 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-544 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-545 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-546 Update from erc--emacs--22 * emacs@sv.gnu.org/emacs--devo--0--patch-547 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-548 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-549 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-550 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-551 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-552 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-553 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-554 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-555 erc-iswitchb: Temporarily enable iswitchb mode * emacs@sv.gnu.org/emacs--devo--0--patch-556 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-557 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-558 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-559 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-560 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-561 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-562 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-563 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-564 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-565 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-566 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-567 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-568 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-569 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-570 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-571 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-572 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-573 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-574 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-575 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-576 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-577 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-578 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-579 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-580 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-581 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-582 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-583 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-584 Fix admin/quick-install-emacs to work with recent versions of autoconf * emacs@sv.gnu.org/gnus--rel--5.10--patch-171 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-172 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-173 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-174 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-175 Update from CVS: lisp/legacy-gnus-agent.el: Add Copyright notice. * emacs@sv.gnu.org/gnus--rel--5.10--patch-176 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-177 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-178 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-179 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-180 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-181 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-182 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-183 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-184 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-185 Merge from emacs--devo--0 git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-590
Diffstat (limited to 'src/mac.c')
-rw-r--r--src/mac.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/mac.c b/src/mac.c
index c4275caa741..7a08d828725 100644
--- a/src/mac.c
+++ b/src/mac.c
@@ -79,6 +79,15 @@ static ComponentInstance as_scripting_component;
79/* The single script context used for all script executions. */ 79/* The single script context used for all script executions. */
80static OSAID as_script_context; 80static OSAID as_script_context;
81 81
82#if TARGET_API_MAC_CARBON
83static int wakeup_from_rne_enabled_p = 0;
84#define ENABLE_WAKEUP_FROM_RNE (wakeup_from_rne_enabled_p = 1)
85#define DISABLE_WAKEUP_FROM_RNE (wakeup_from_rne_enabled_p = 0)
86#else
87#define ENABLE_WAKEUP_FROM_RNE 0
88#define DISABLE_WAKEUP_FROM_RNE 0
89#endif
90
82#ifndef MAC_OSX 91#ifndef MAC_OSX
83static OSErr posix_pathname_to_fsspec P_ ((const char *, FSSpec *)); 92static OSErr posix_pathname_to_fsspec P_ ((const char *, FSSpec *));
84static OSErr fsspec_to_posix_pathname P_ ((const FSSpec *, char *, int)); 93static OSErr fsspec_to_posix_pathname P_ ((const FSSpec *, char *, int));
@@ -2431,6 +2440,7 @@ select (nfds, rfds, wfds, efds, timeout)
2431 BLOCK_INPUT block, in case that some input has already been read 2440 BLOCK_INPUT block, in case that some input has already been read
2432 asynchronously. */ 2441 asynchronously. */
2433 BLOCK_INPUT; 2442 BLOCK_INPUT;
2443 ENABLE_WAKEUP_FROM_RNE;
2434 if (!detect_input_pending ()) 2444 if (!detect_input_pending ())
2435 { 2445 {
2436#if TARGET_API_MAC_CARBON 2446#if TARGET_API_MAC_CARBON
@@ -2461,6 +2471,7 @@ select (nfds, rfds, wfds, efds, timeout)
2461 } 2471 }
2462#endif /* not TARGET_API_MAC_CARBON */ 2472#endif /* not TARGET_API_MAC_CARBON */
2463 } 2473 }
2474 DISABLE_WAKEUP_FROM_RNE;
2464 UNBLOCK_INPUT; 2475 UNBLOCK_INPUT;
2465 2476
2466 if (err == noErr) 2477 if (err == noErr)
@@ -4841,8 +4852,8 @@ DEFUN ("mac-code-convert-string", Fmac_code_convert_string, Smac_code_convert_st
4841 doc: /* Convert STRING from SOURCE encoding to TARGET encoding. 4852 doc: /* Convert STRING from SOURCE encoding to TARGET encoding.
4842The conversion is performed using the converter provided by the system. 4853The conversion is performed using the converter provided by the system.
4843Each encoding is specified by either a coding system symbol, a mime 4854Each encoding is specified by either a coding system symbol, a mime
4844charset string, or an integer as a CFStringEncoding value. Nil for 4855charset string, or an integer as a CFStringEncoding value. An encoding
4845encoding means UTF-16 in native byte order, no byte order mark. 4856of nil means UTF-16 in native byte order, no byte order mark.
4846On Mac OS X 10.2 and later, you can do Unicode Normalization by 4857On Mac OS X 10.2 and later, you can do Unicode Normalization by
4847specifying the optional argument NORMALIZATION-FORM with a symbol NFD, 4858specifying the optional argument NORMALIZATION-FORM with a symbol NFD,
4848NFKD, NFC, NFKC, HFS+D, or HFS+C. 4859NFKD, NFC, NFKC, HFS+D, or HFS+C.
@@ -5023,6 +5034,7 @@ select_and_poll_event (nfds, rfds, wfds, efds, timeout)
5023 BLOCK_INPUT block, in case that some input has already been read 5034 BLOCK_INPUT block, in case that some input has already been read
5024 asynchronously. */ 5035 asynchronously. */
5025 BLOCK_INPUT; 5036 BLOCK_INPUT;
5037 ENABLE_WAKEUP_FROM_RNE;
5026 if (!detect_input_pending ()) 5038 if (!detect_input_pending ())
5027 { 5039 {
5028 EMACS_TIME select_timeout; 5040 EMACS_TIME select_timeout;
@@ -5045,6 +5057,7 @@ select_and_poll_event (nfds, rfds, wfds, efds, timeout)
5045 kEventLeaveInQueue, NULL); 5057 kEventLeaveInQueue, NULL);
5046 } 5058 }
5047 } 5059 }
5060 DISABLE_WAKEUP_FROM_RNE;
5048 UNBLOCK_INPUT; 5061 UNBLOCK_INPUT;
5049 5062
5050 if (r != 0) 5063 if (r != 0)
@@ -5124,6 +5137,7 @@ sys_select (nfds, rfds, wfds, efds, timeout)
5124 BLOCK_INPUT block, in case that some input has already been 5137 BLOCK_INPUT block, in case that some input has already been
5125 read asynchronously. */ 5138 read asynchronously. */
5126 BLOCK_INPUT; 5139 BLOCK_INPUT;
5140 ENABLE_WAKEUP_FROM_RNE;
5127 if (!detect_input_pending ()) 5141 if (!detect_input_pending ())
5128 { 5142 {
5129 int minfd, fd; 5143 int minfd, fd;
@@ -5184,6 +5198,7 @@ sys_select (nfds, rfds, wfds, efds, timeout)
5184 CFRunLoopRemoveSource (runloop, source, kCFRunLoopDefaultMode); 5198 CFRunLoopRemoveSource (runloop, source, kCFRunLoopDefaultMode);
5185 } 5199 }
5186 } 5200 }
5201 DISABLE_WAKEUP_FROM_RNE;
5187 UNBLOCK_INPUT; 5202 UNBLOCK_INPUT;
5188 5203
5189 if (err == noErr || err == eventLoopQuitErr) 5204 if (err == noErr || err == eventLoopQuitErr)
@@ -5385,6 +5400,16 @@ init_mac_osx_environment ()
5385} 5400}
5386#endif /* MAC_OSX */ 5401#endif /* MAC_OSX */
5387 5402
5403#if TARGET_API_MAC_CARBON
5404void
5405mac_wakeup_from_rne ()
5406{
5407 if (wakeup_from_rne_enabled_p)
5408 /* Post a harmless event so as to wake up from
5409 ReceiveNextEvent. */
5410 mac_post_mouse_moved_event ();
5411}
5412#endif
5388 5413
5389void 5414void
5390syms_of_mac () 5415syms_of_mac ()