aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu2006-01-05 08:14:33 +0000
committerYAMAMOTO Mitsuharu2006-01-05 08:14:33 +0000
commit11aa10071e392537155d4b4d8f4e685524ada94e (patch)
tree8117e759a1308e86deff67aadc4c0217908dabaa /src
parentb9f0075cf242e2cb0318c360475f166ef7ce5583 (diff)
downloademacs-11aa10071e392537155d4b4d8f4e685524ada94e.tar.gz
emacs-11aa10071e392537155d4b4d8f4e685524ada94e.zip
(Fx_server_version): Use gestaltSystemVersionMajor,
gestaltSystemVersionMinor, and gestaltSystemVersionBugFix on Mac OS X 10.4 and later.
Diffstat (limited to 'src')
-rw-r--r--src/macfns.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/macfns.c b/src/macfns.c
index 4ede8b7971b..110b697ce5e 100644
--- a/src/macfns.c
+++ b/src/macfns.c
@@ -2880,24 +2880,37 @@ If omitted or nil, that stands for the selected frame's display. */)
2880 (display) 2880 (display)
2881 Lisp_Object display; 2881 Lisp_Object display;
2882{ 2882{
2883 int mac_major_version; 2883 UInt32 response, major, minor, bugfix;
2884 SInt32 response;
2885 OSErr err; 2884 OSErr err;
2886 2885
2887 BLOCK_INPUT; 2886 BLOCK_INPUT;
2888 err = Gestalt (gestaltSystemVersion, &response); 2887 err = Gestalt (gestaltSystemVersion, &response);
2888 if (err == noErr)
2889 if (response >= 0x00001040)
2890 {
2891 err = Gestalt ('sys1', &major); /* gestaltSystemVersionMajor */
2892 if (err == noErr)
2893 err = Gestalt ('sys2', &minor); /* gestaltSystemVersionMinor */
2894 if (err == noErr)
2895 err = Gestalt ('sys3', &bugfix); /* gestaltSystemVersionBugFix */
2896 }
2897 else
2898 {
2899 bugfix = response & 0xf;
2900 response >>= 4;
2901 minor = response & 0xf;
2902 response >>= 4;
2903 /* convert BCD to int */
2904 major = response - (response >> 4) * 6;
2905 }
2889 UNBLOCK_INPUT; 2906 UNBLOCK_INPUT;
2890 2907
2891 if (err != noErr) 2908 if (err != noErr)
2892 error ("Cannot get Mac OS version"); 2909 error ("Cannot get Mac OS version");
2893 2910
2894 mac_major_version = (response >> 8) & 0xff; 2911 return Fcons (make_number (major),
2895 /* convert BCD to int */ 2912 Fcons (make_number (minor),
2896 mac_major_version -= (mac_major_version >> 4) * 6; 2913 Fcons (make_number (bugfix),
2897
2898 return Fcons (make_number (mac_major_version),
2899 Fcons (make_number ((response >> 4) & 0xf),
2900 Fcons (make_number (response & 0xf),
2901 Qnil))); 2914 Qnil)));
2902} 2915}
2903 2916