comparison src/mac.c @ 82288:d2b18c3b227c

[TARGET_API_MAC_CARBON] (cfdate_to_lisp): Obtain microsec value. Use kCFAbsoluteTimeIntervalSince1970.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Mon, 06 Aug 2007 08:25:06 +0000
parents 286623bef670
children 4a8f2bf9fced 424b655804ca
comparison
equal deleted inserted replaced
82287:f2f7731c3eed 82288:d2b18c3b227c
1125 1125
1126 Lisp_Object 1126 Lisp_Object
1127 cfdate_to_lisp (date) 1127 cfdate_to_lisp (date)
1128 CFDateRef date; 1128 CFDateRef date;
1129 { 1129 {
1130 static const CFGregorianDate epoch_gdate = {1970, 1, 1, 0, 0, 0.0}; 1130 CFTimeInterval sec;
1131 static CFAbsoluteTime epoch = 0.0, sec; 1131 int high, low, microsec;
1132 int high, low; 1132
1133 1133 sec = CFDateGetAbsoluteTime (date) + kCFAbsoluteTimeIntervalSince1970;
1134 if (epoch == 0.0)
1135 epoch = CFGregorianDateGetAbsoluteTime (epoch_gdate, NULL);
1136
1137 sec = CFDateGetAbsoluteTime (date) - epoch;
1138 high = sec / 65536.0; 1134 high = sec / 65536.0;
1139 low = sec - high * 65536.0; 1135 low = sec - high * 65536.0;
1140 1136 microsec = (sec - floor (sec)) * 1000000.0;
1141 return list3 (make_number (high), make_number (low), make_number (0)); 1137
1138 return list3 (make_number (high), make_number (low), make_number (microsec));
1142 } 1139 }
1143 1140
1144 1141
1145 /* CFBoolean to a lisp symbol, `t' or `nil'. */ 1142 /* CFBoolean to a lisp symbol, `t' or `nil'. */
1146 1143