aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/emacs/cmdargs.texi5
-rw-r--r--doc/lispref/os.texi67
-rw-r--r--etc/NEWS10
-rw-r--r--etc/PROBLEMS8
-rw-r--r--lisp/calendar/solar.el18
-rw-r--r--lisp/emacs-lisp/autoload.el42
-rw-r--r--lisp/gnus/gnus-art.el2
-rw-r--r--lisp/org/org.el2
-rw-r--r--lisp/progmodes/project.el4
-rw-r--r--lisp/vc/add-log.el7
-rw-r--r--src/editfns.c27
-rw-r--r--src/macfont.m6
12 files changed, 116 insertions, 82 deletions
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 646c8da1bb8..444d30527f8 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -641,8 +641,9 @@ to put temporary files (@pxref{Backup}). Emacs tries to use
641@env{TMP}, then @env{TEMP}, and finally @file{c:/temp}. 641@env{TMP}, then @env{TEMP}, and finally @file{c:/temp}.
642@item TZ 642@item TZ
643@vindex TZ, environment variable 643@vindex TZ, environment variable
644This specifies the current time zone and possibly also daylight 644This specifies the default time zone and possibly also daylight
645saving time information. On MS-DOS, if @env{TZ} is not set in the 645saving time information. @xref{Time Zone Rules,,, elisp, The GNU
646Emacs Lisp Reference Manual}. On MS-DOS, if @env{TZ} is not set in the
646environment when Emacs starts, Emacs defines a default value as 647environment when Emacs starts, Emacs defines a default value as
647appropriate for the country code returned by DOS@. On MS-Windows, Emacs 648appropriate for the country code returned by DOS@. On MS-Windows, Emacs
648does not use @env{TZ} at all. 649does not use @env{TZ} at all.
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 03d04ba3cf3..6e0edec2943 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -19,6 +19,7 @@ terminal and the screen.
19* System Environment:: Distinguish the name and kind of system. 19* System Environment:: Distinguish the name and kind of system.
20* User Identification:: Finding the name and user id of the user. 20* User Identification:: Finding the name and user id of the user.
21* Time of Day:: Getting the current time. 21* Time of Day:: Getting the current time.
22* Time Zone Rules:: Rules for time zones and daylight saving time.
22* Time Conversion:: Converting a time from numeric form to 23* Time Conversion:: Converting a time from numeric form to
23 calendrical data and vice versa. 24 calendrical data and vice versa.
24* Time Parsing:: Converting a time from numeric form to text 25* Time Parsing:: Converting a time from numeric form to text
@@ -1259,7 +1260,7 @@ information may some day be added at the end.
1259 1260
1260The argument @var{time}, if given, specifies a time to format, 1261The argument @var{time}, if given, specifies a time to format,
1261instead of the current time. The optional argument @var{zone} 1262instead of the current time. The optional argument @var{zone}
1262defaults to the current time zone rule. 1263defaults to the current time zone rule. @xref{Time Zone Rules}.
1263 1264
1264@example 1265@example
1265@group 1266@group
@@ -1296,26 +1297,9 @@ For example, if @var{time} is a number, @code{(time-to-seconds
1296or rounding errors occur. 1297or rounding errors occur.
1297@end defun 1298@end defun
1298 1299
1299@defun current-time-zone &optional time zone 1300@node Time Zone Rules
1300@cindex time zone, current 1301@section Time Zone Rules
1301This function returns a list describing the time zone that the user is 1302@cindex time zone rules
1302in.
1303
1304The value has the form @code{(@var{offset} @var{name})}. Here
1305@var{offset} is an integer giving the number of seconds ahead of Universal Time
1306(east of Greenwich). A negative value means west of Greenwich. The
1307second element, @var{name}, is a string giving the name of the time
1308zone. Both elements change when daylight saving time begins or ends;
1309if the user has specified a time zone that does not use a seasonal time
1310adjustment, then the value is constant through time.
1311
1312If the operating system doesn't supply all the information necessary to
1313compute the value, the unknown elements of the list are @code{nil}.
1314
1315The argument @var{time}, if given, specifies a time value to
1316analyze instead of the current time. The optional argument @var{zone}
1317defaults to the current time zone rule.
1318@end defun
1319 1303
1320@vindex TZ, environment variable 1304@vindex TZ, environment variable
1321The default time zone is determined by the @env{TZ} environment 1305The default time zone is determined by the @env{TZ} environment
@@ -1324,6 +1308,15 @@ to default to Universal Time with @code{(setenv "TZ" "UTC0")}. If
1324@env{TZ} is not in the environment, Emacs uses system wall clock time, 1308@env{TZ} is not in the environment, Emacs uses system wall clock time,
1325which is a platform-dependent default time zone. 1309which is a platform-dependent default time zone.
1326 1310
1311The set of supported @env{TZ} strings is system-dependent. GNU and
1312many other systems support the tzdata database, e.g.,
1313@samp{"America/New_York"} specifies the time zone and daylight saving
1314time history for locations near New York City. GNU and most other
1315systems support POSIX-style @env{TZ} strings, e.g.,
1316@samp{"EST+5EDT,M4.1.0/2,M10.5.0/2"} specifies the rules used in New
1317York from 1987 through 2006. All systems support the string
1318@samp{"UTC0"} meaning Universal Time.
1319
1327@cindex time zone rule 1320@cindex time zone rule
1328Functions that convert to and from local time accept an optional 1321Functions that convert to and from local time accept an optional
1329@dfn{time zone rule} argument, which specifies the conversion's time 1322@dfn{time zone rule} argument, which specifies the conversion's time
@@ -1334,6 +1327,29 @@ If it is @code{t}, the conversion uses Universal Time. If it is
1334a string, the conversion uses the time zone rule equivalent to setting 1327a string, the conversion uses the time zone rule equivalent to setting
1335@env{TZ} to that string. 1328@env{TZ} to that string.
1336 1329
1330@defun current-time-zone &optional time zone
1331@cindex time zone, current
1332This function returns a list describing the time zone that the user is
1333in.
1334
1335The value has the form @code{(@var{offset} @var{abbr})}. Here
1336@var{offset} is an integer giving the number of seconds ahead of Universal Time
1337(east of Greenwich). A negative value means west of Greenwich. The
1338second element, @var{abbr}, is a string giving an abbreviation for the
1339time zone, e.g., @samp{"CST"} for China Standard Time or for
1340U.S. Central Standard Time. Both elements can change when daylight
1341saving time begins or ends; if the user has specified a time zone that
1342does not use a seasonal time adjustment, then the value is constant
1343through time.
1344
1345If the operating system doesn't supply all the information necessary to
1346compute the value, the unknown elements of the list are @code{nil}.
1347
1348The argument @var{time}, if given, specifies a time value to
1349analyze instead of the current time. The optional argument @var{zone}
1350defaults to the current time zone rule.
1351@end defun
1352
1337@node Time Conversion 1353@node Time Conversion
1338@section Time Conversion 1354@section Time Conversion
1339@cindex calendrical information 1355@cindex calendrical information
@@ -1358,8 +1374,8 @@ as traditional Gregorian years do; for example, the year number
1358@defun decode-time &optional time zone 1374@defun decode-time &optional time zone
1359This function converts a time value into calendrical information. If 1375This function converts a time value into calendrical information. If
1360you don't specify @var{time}, it decodes the current time, and similarly 1376you don't specify @var{time}, it decodes the current time, and similarly
1361@var{zone} defaults to the current time zone rule. The return 1377@var{zone} defaults to the current time zone rule. @xref{Time Zone Rules}.
1362value is a list of nine elements, as follows: 1378The return value is a list of nine elements, as follows:
1363 1379
1364@example 1380@example
1365(@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{utcoff}) 1381(@var{seconds} @var{minutes} @var{hour} @var{day} @var{month} @var{year} @var{dow} @var{dst} @var{utcoff})
@@ -1406,6 +1422,7 @@ to stand for years above 1900, or years above 2000, you must alter them
1406yourself before you call @code{encode-time}. 1422yourself before you call @code{encode-time}.
1407 1423
1408The optional argument @var{zone} defaults to the current time zone rule. 1424The optional argument @var{zone} defaults to the current time zone rule.
1425@xref{Time Zone Rules}.
1409In addition to the usual time zone rule values, it can also be a list 1426In addition to the usual time zone rule values, it can also be a list
1410(as you would get from @code{current-time-zone}) or an integer (as 1427(as you would get from @code{current-time-zone}) or an integer (as
1411from @code{decode-time}), applied without any further alteration for 1428from @code{decode-time}), applied without any further alteration for
@@ -1449,8 +1466,8 @@ corresponding time value.
1449 1466
1450This function converts @var{time} (or the current time, if 1467This function converts @var{time} (or the current time, if
1451@var{time} is omitted) to a string according to 1468@var{time} is omitted) to a string according to
1452@var{format-string}. The conversion uses the time zone rule @var{zone} 1469@var{format-string}. The conversion uses the time zone rule @var{zone}, which
1453(or the current time zone rule, if omitted). The argument 1470defaults to the current time zone rule. @xref{Time Zone Rules}. The argument
1454@var{format-string} may contain @samp{%}-sequences which say to 1471@var{format-string} may contain @samp{%}-sequences which say to
1455substitute parts of the time. Here is a table of what the 1472substitute parts of the time. Here is a table of what the
1456@samp{%}-sequences mean: 1473@samp{%}-sequences mean:
diff --git a/etc/NEWS b/etc/NEWS
index 59f8d086717..00f5aadd856 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2125,11 +2125,11 @@ quotation marks.
2125*** Time conversion functions now accept an optional ZONE argument 2125*** Time conversion functions now accept an optional ZONE argument
2126that specifies the time zone rules for conversion. ZONE is omitted or 2126that specifies the time zone rules for conversion. ZONE is omitted or
2127nil for Emacs local time, t for Universal Time, 'wall' for system wall 2127nil for Emacs local time, t for Universal Time, 'wall' for system wall
2128clock time, or a string as in 'set-time-zone-rule' for a time zone 2128clock time, or a string as in the TZ environment variable. The
2129rule. The affected functions are 'current-time-string', 2129affected functions are 'current-time-string', 'current-time-zone',
2130'current-time-zone', 'decode-time', and 'format-time-string'. The 2130'decode-time', and 'format-time-string'. The function 'encode-time',
2131function 'encode-time', which already accepted a simple time zone rule 2131which already accepted a simple time zone rule argument, has been
2132argument, has been extended to accept all the new forms. 2132extended to accept all the new forms.
2133 2133
2134*** Incompatible change in the third argument of 'format-time-string'. 2134*** Incompatible change in the third argument of 'format-time-string'.
2135Previously, any non-nil argument was interpreted as specifying Universal Time. 2135Previously, any non-nil argument was interpreted as specifying Universal Time.
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 2ccb7711376..4288808f407 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2181,11 +2181,11 @@ month names with consistent widths for some locales on some versions
2181of Windows. This is caused by a deficiency in the underlying system 2181of Windows. This is caused by a deficiency in the underlying system
2182library function. 2182library function.
2183 2183
2184** Problems with set-time-zone-rule function 2184** Non-US time zones.
2185 2185
2186The function set-time-zone-rule gives incorrect results for many 2186Many non-US time zones are implemented incorrectly. This is due to
2187non-US timezones. This is due to over-simplistic handling of 2187over-simplistic handling of daylight savings switchovers by the
2188daylight savings switchovers by the Windows libraries. 2188Windows libraries.
2189 2189
2190** Files larger than 4GB report wrong size in a 32-bit Windows build 2190** Files larger than 4GB report wrong size in a 32-bit Windows build
2191 2191
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index bf8bedd599e..6fec8055319 100644
--- a/lisp/calendar/solar.el
+++ b/lisp/calendar/solar.el
@@ -173,7 +173,7 @@ delta. At present, delta = 0.01 degrees, so the value of the variable
173;;; End of user options. 173;;; End of user options.
174 174
175(defvar solar-sidereal-time-greenwich-midnight nil 175(defvar solar-sidereal-time-greenwich-midnight nil
176 "Sidereal time at Greenwich at midnight (universal time).") 176 "Sidereal time at Greenwich at midnight (Universal Time).")
177 177
178(defvar solar-northern-spring-or-summer-season nil 178(defvar solar-northern-spring-or-summer-season nil
179 "Non-nil if northern spring or summer and nil otherwise. 179 "Non-nil if northern spring or summer and nil otherwise.
@@ -413,8 +413,8 @@ Result is in days. For the years 1800-1987, the maximum error is
413(defun solar-ephemeris-time (time) 413(defun solar-ephemeris-time (time)
414 "Ephemeris Time at moment TIME. 414 "Ephemeris Time at moment TIME.
415TIME is a pair with the first component being the number of Julian centuries 415TIME is a pair with the first component being the number of Julian centuries
416elapsed at 0 Universal Time, and the second component being the universal 416elapsed at 0 Universal Time, and the second component counting Universal Time
417time. For instance, the pair corresponding to November 28, 1995 at 16 UT is 417hours. For instance, the pair corresponding to November 28, 1995 at 16 UT is
418\(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between 418\(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between
419Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. 419Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT.
420 420
@@ -430,7 +430,7 @@ Result is in Julian centuries of ephemeris time."
430 "Right ascension (in hours) and declination (in degrees) of the sun at TIME. 430 "Right ascension (in hours) and declination (in degrees) of the sun at TIME.
431TIME is a pair with the first component being the number of 431TIME is a pair with the first component being the number of
432Julian centuries elapsed at 0 Universal Time, and the second 432Julian centuries elapsed at 0 Universal Time, and the second
433component being the universal time. For instance, the pair 433component counting Universal Time hours. For instance, the pair
434corresponding to November 28, 1995 at 16 UT is (-0.040945 16), 434corresponding to November 28, 1995 at 16 UT is (-0.040945 16),
435-0.040945 being the number of Julian centuries elapsed between 435-0.040945 being the number of Julian centuries elapsed between
436Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. SUNRISE-FLAG is passed 436Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. SUNRISE-FLAG is passed
@@ -444,7 +444,7 @@ to `solar-ecliptic-coordinates'."
444 "Azimuth and height of the sun at TIME, LATITUDE, and LONGITUDE. 444 "Azimuth and height of the sun at TIME, LATITUDE, and LONGITUDE.
445TIME is a pair with the first component being the number of 445TIME is a pair with the first component being the number of
446Julian centuries elapsed at 0 Universal Time, and the second 446Julian centuries elapsed at 0 Universal Time, and the second
447component being the universal time. For instance, the pair 447component counting Universal Time hours. For instance, the pair
448corresponding to November 28, 1995 at 16 UT is (-0.040945 16), 448corresponding to November 28, 1995 at 16 UT is (-0.040945 16),
449-0.040945 being the number of Julian centuries elapsed between 449-0.040945 being the number of Julian centuries elapsed between
450Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. SUNRISE-FLAG 450Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. SUNRISE-FLAG
@@ -476,8 +476,8 @@ Sunrise if DIRECTION =-1 or sunset if =1 at LATITUDE, LONGITUDE, with midday
476being TIME. 476being TIME.
477 477
478TIME is a pair with the first component being the number of Julian centuries 478TIME is a pair with the first component being the number of Julian centuries
479elapsed at 0 Universal Time, and the second component being the universal 479elapsed at 0 Universal Time, and the second component counting Universal Time
480time. For instance, the pair corresponding to November 28, 1995 at 16 UT is 480hours. For instance, the pair corresponding to November 28, 1995 at 16 UT is
481\(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between 481\(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between
482Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. 482Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT.
483 483
@@ -522,8 +522,8 @@ Uses binary search."
522Parameters are the midday TIME and the LATITUDE, LONGITUDE of the location. 522Parameters are the midday TIME and the LATITUDE, LONGITUDE of the location.
523 523
524TIME is a pair with the first component being the number of Julian centuries 524TIME is a pair with the first component being the number of Julian centuries
525elapsed at 0 Universal Time, and the second component being the universal 525elapsed at 0 Universal Time, and the second component counting Universal Time
526time. For instance, the pair corresponding to November 28, 1995 at 16 UT is 526hours. For instance, the pair corresponding to November 28, 1995 at 16 UT is
527\(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between 527\(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between
528Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT. 528Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT.
529 529
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 1b06fb6a51d..14e584df672 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -251,9 +251,22 @@ If a buffer is visiting the desired autoload file, return it."
251 (enable-local-eval nil)) 251 (enable-local-eval nil))
252 ;; We used to use `raw-text' to read this file, but this causes 252 ;; We used to use `raw-text' to read this file, but this causes
253 ;; problems when the file contains non-ASCII characters. 253 ;; problems when the file contains non-ASCII characters.
254 (let ((delay-mode-hooks t)) 254 (let* ((delay-mode-hooks t)
255 (find-file-noselect 255 (file (autoload-generated-file))
256 (autoload-ensure-default-file (autoload-generated-file)))))) 256 (file-missing (not (file-exists-p file))))
257 (when file-missing
258 (autoload-ensure-default-file file))
259 (with-current-buffer
260 (find-file-noselect
261 (autoload-ensure-file-writeable
262 file))
263 ;; block backups when the file has just been created, since
264 ;; the backups will just be the auto-generated headers.
265 ;; bug#23203
266 (when file-missing
267 (setq buffer-backed-up t)
268 (save-buffer))
269 (current-buffer)))))
257 270
258(defun autoload-generated-file () 271(defun autoload-generated-file ()
259 (expand-file-name generated-autoload-file 272 (expand-file-name generated-autoload-file
@@ -374,21 +387,22 @@ not be relied upon."
374;;;###autoload 387;;;###autoload
375(put 'autoload-ensure-writable 'risky-local-variable t) 388(put 'autoload-ensure-writable 'risky-local-variable t)
376 389
390(defun autoload-ensure-file-writeable (file)
391 ;; Probably pointless, but replaces the old AUTOGEN_VCS in lisp/Makefile,
392 ;; which was designed to handle CVSREAD=1 and equivalent.
393 (and autoload-ensure-writable
394 (let ((modes (file-modes file)))
395 (if (zerop (logand modes #o0200))
396 ;; Ignore any errors here, and let subsequent attempts
397 ;; to write the file raise any real error.
398 (ignore-errors (set-file-modes file (logior modes #o0200))))))
399 file)
400
377(defun autoload-ensure-default-file (file) 401(defun autoload-ensure-default-file (file)
378 "Make sure that the autoload file FILE exists, creating it if needed. 402 "Make sure that the autoload file FILE exists, creating it if needed.
379If the file already exists and `autoload-ensure-writable' is non-nil, 403If the file already exists and `autoload-ensure-writable' is non-nil,
380make it writable." 404make it writable."
381 (if (file-exists-p file) 405 (write-region (autoload-rubric file) nil file))
382 ;; Probably pointless, but replaces the old AUTOGEN_VCS in lisp/Makefile,
383 ;; which was designed to handle CVSREAD=1 and equivalent.
384 (and autoload-ensure-writable
385 (let ((modes (file-modes file)))
386 (if (zerop (logand modes #o0200))
387 ;; Ignore any errors here, and let subsequent attempts
388 ;; to write the file raise any real error.
389 (ignore-errors (set-file-modes file (logior modes #o0200))))))
390 (write-region (autoload-rubric file) nil file))
391 file)
392 406
393(defun autoload-insert-section-header (outbuf autoloads load-name file time) 407(defun autoload-insert-section-header (outbuf autoloads load-name file time)
394 "Insert the section-header line, 408 "Insert the section-header line,
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index ca475828642..94ebbdd60c7 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1009,7 +1009,7 @@ on parts -- for instance, adding Vcard info to a database."
1009 1009
1010(defcustom gnus-article-date-headers '(combined-lapsed) 1010(defcustom gnus-article-date-headers '(combined-lapsed)
1011 "A list of Date header formats to display. 1011 "A list of Date header formats to display.
1012Valid formats are `ut' (universal time), `local' (local time 1012Valid formats are `ut' (Universal Time), `local' (local time
1013zone), `english' (readable English), `lapsed' (elapsed time), 1013zone), `english' (readable English), `lapsed' (elapsed time),
1014`combined-lapsed' (both the original date and the elapsed time), 1014`combined-lapsed' (both the original date and the elapsed time),
1015`original' (the original date header), `iso8601' (ISO8601 1015`original' (the original date header), `iso8601' (ISO8601
diff --git a/lisp/org/org.el b/lisp/org/org.el
index d2b48a64e45..231daa9a6a7 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -22674,7 +22674,7 @@ time-range, if possible.
22674 22674
22675The optional ZONE is omitted or nil for Emacs local time, t for 22675The optional ZONE is omitted or nil for Emacs local time, t for
22676Universal Time, `wall' for system wall clock time, or a string as in 22676Universal Time, `wall' for system wall clock time, or a string as in
22677`set-time-zone-rule' for a time zone rule." 22677the TZ environment variable."
22678 (format-time-string 22678 (format-time-string
22679 format 22679 format
22680 (apply 'encode-time 22680 (apply 'encode-time
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index 9c8a88c80fc..82059c91363 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -162,7 +162,7 @@ end it with `/'. DIR must be one of `project-roots' or
162DIRS is a list of absolute directories; it should be some 162DIRS is a list of absolute directories; it should be some
163subset of the project roots and external roots. 163subset of the project roots and external roots.
164 164
165The default implementation uses `find-program'. PROJECT is used 165The default implementation uses `grep-find-program'. PROJECT is used
166to find the list of ignores for each directory." 166to find the list of ignores for each directory."
167 ;; FIXME: Uniquely abbreviate the roots? 167 ;; FIXME: Uniquely abbreviate the roots?
168 (require 'xref) 168 (require 'xref)
@@ -171,7 +171,7 @@ to find the list of ignores for each directory."
171 (lambda (dir) 171 (lambda (dir)
172 (let ((command 172 (let ((command
173 (format "%s %s %s -type f -print0" 173 (format "%s %s %s -type f -print0"
174 find-program 174 grep-find-program
175 dir 175 dir
176 (xref--find-ignores-arguments 176 (xref--find-ignores-arguments
177 (project-ignores project dir) 177 (project-ignores project dir)
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index d6c1fc203db..58a4e77a602 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -583,10 +583,9 @@ Compatibility function for \\[next-error] invocations."
583;; called add-log-time-zone-rule since it's only used from add-log-* code. 583;; called add-log-time-zone-rule since it's only used from add-log-* code.
584(defvaralias 'change-log-time-zone-rule 'add-log-time-zone-rule) 584(defvaralias 'change-log-time-zone-rule 'add-log-time-zone-rule)
585(defvar add-log-time-zone-rule nil 585(defvar add-log-time-zone-rule nil
586 "Time zone used for calculating change log time stamps. 586 "Time zone rule used for calculating change log time stamps.
587It takes the same format as the TZ argument of `set-time-zone-rule'. 587If nil, use local time. If t, use Universal Time.
588If nil, use local time. 588If a string, interpret as the ZONE argument of `format-time-string'.")
589If t, use universal time.")
590(put 'add-log-time-zone-rule 'safe-local-variable 589(put 'add-log-time-zone-rule 'safe-local-variable
591 (lambda (x) (or (booleanp x) (stringp x)))) 590 (lambda (x) (or (booleanp x) (stringp x))))
592 591
diff --git a/src/editfns.c b/src/editfns.c
index a2d5673a257..70285e6d5db 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1969,10 +1969,10 @@ DEFUN ("format-time-string", Fformat_time_string, Sformat_time_string, 1, 3, 0,
1969 doc: /* Use FORMAT-STRING to format the time TIME, or now if omitted. 1969 doc: /* Use FORMAT-STRING to format the time TIME, or now if omitted.
1970TIME is specified as (HIGH LOW USEC PSEC), as returned by 1970TIME is specified as (HIGH LOW USEC PSEC), as returned by
1971`current-time' or `file-attributes'. The obsolete form (HIGH . LOW) 1971`current-time' or `file-attributes'. The obsolete form (HIGH . LOW)
1972is also still accepted. 1972is also still accepted. The optional ZONE is omitted or nil for Emacs
1973The optional ZONE is omitted or nil for Emacs local time, t for 1973local time, t for Universal Time, `wall' for system wall clock time,
1974Universal Time, `wall' for system wall clock time, or a string as in 1974or a string as in the TZ environment variable.
1975`set-time-zone-rule' for a time zone rule. 1975
1976The value is a copy of FORMAT-STRING, but with certain constructs replaced 1976The value is a copy of FORMAT-STRING, but with certain constructs replaced
1977by text that describes the specified date and time in TIME: 1977by text that describes the specified date and time in TIME:
1978 1978
@@ -2087,7 +2087,7 @@ as from `current-time' and `file-attributes', or nil to use the
2087current time. The obsolete form (HIGH . LOW) is also still accepted. 2087current time. The obsolete form (HIGH . LOW) is also still accepted.
2088The optional ZONE is omitted or nil for Emacs local time, t for 2088The optional ZONE is omitted or nil for Emacs local time, t for
2089Universal Time, `wall' for system wall clock time, or a string as in 2089Universal Time, `wall' for system wall clock time, or a string as in
2090`set-time-zone-rule' for a time zone rule. 2090the TZ environment variable.
2091 2091
2092The list has the following nine members: SEC is an integer between 0 2092The list has the following nine members: SEC is an integer between 0
2093and 60; SEC is 60 for a leap second, which only some operating systems 2093and 60; SEC is 60 for a leap second, which only some operating systems
@@ -2152,9 +2152,9 @@ DEFUN ("encode-time", Fencode_time, Sencode_time, 6, MANY, 0,
2152This is the reverse operation of `decode-time', which see. 2152This is the reverse operation of `decode-time', which see.
2153The optional ZONE is omitted or nil for Emacs local time, t for 2153The optional ZONE is omitted or nil for Emacs local time, t for
2154Universal Time, `wall' for system wall clock time, or a string as in 2154Universal Time, `wall' for system wall clock time, or a string as in
2155`set-time-zone-rule' for a time zone rule. It can also be a list (as 2155the TZ environment variable. It can also be a list (as from
2156from `current-time-zone') or an integer (as from `decode-time') 2156`current-time-zone') or an integer (as from `decode-time') applied
2157applied without consideration for daylight saving time. 2157without consideration for daylight saving time.
2158 2158
2159You can pass more than 7 arguments; then the first six arguments 2159You can pass more than 7 arguments; then the first six arguments
2160are used as SECOND through YEAR, and the *last* argument is used as ZONE. 2160are used as SECOND through YEAR, and the *last* argument is used as ZONE.
@@ -2214,7 +2214,7 @@ but this is considered obsolete.
2214 2214
2215The optional ZONE is omitted or nil for Emacs local time, t for 2215The optional ZONE is omitted or nil for Emacs local time, t for
2216Universal Time, `wall' for system wall clock time, or a string as in 2216Universal Time, `wall' for system wall clock time, or a string as in
2217`set-time-zone-rule' for a time zone rule. */) 2217the TZ environment variable. */)
2218 (Lisp_Object specified_time, Lisp_Object zone) 2218 (Lisp_Object specified_time, Lisp_Object zone)
2219{ 2219{
2220 time_t value = lisp_seconds_argument (specified_time); 2220 time_t value = lisp_seconds_argument (specified_time);
@@ -2291,7 +2291,7 @@ instead of using the current time. The argument should have the form
2291`current-time' and from `file-attributes'. SPECIFIED-TIME can also 2291`current-time' and from `file-attributes'. SPECIFIED-TIME can also
2292have the form (HIGH . LOW), but this is considered obsolete. 2292have the form (HIGH . LOW), but this is considered obsolete.
2293Optional second arg ZONE is omitted or nil for the local time zone, or 2293Optional second arg ZONE is omitted or nil for the local time zone, or
2294a string as in `set-time-zone-rule'. 2294a string as in the TZ environment variable.
2295 2295
2296Some operating systems cannot provide all this information to Emacs; 2296Some operating systems cannot provide all this information to Emacs;
2297in this case, `current-time-zone' returns a list containing nil for 2297in this case, `current-time-zone' returns a list containing nil for
@@ -2332,8 +2332,11 @@ the data it can't find. */)
2332 2332
2333DEFUN ("set-time-zone-rule", Fset_time_zone_rule, Sset_time_zone_rule, 1, 1, 0, 2333DEFUN ("set-time-zone-rule", Fset_time_zone_rule, Sset_time_zone_rule, 1, 1, 0,
2334 doc: /* Set the Emacs local time zone using TZ, a string specifying a time zone rule. 2334 doc: /* Set the Emacs local time zone using TZ, a string specifying a time zone rule.
2335If TZ is nil or `wall', use system wall clock time. If TZ is t, use 2335
2336Universal Time. If TZ is an integer, treat it as in `encode-time'. 2336If TZ is nil or `wall', use system wall clock time; this differs from
2337the usual Emacs convention where nil means current local time. If TZ
2338is t, use Universal Time. If TZ is an integer, treat it as in
2339`encode-time'.
2337 2340
2338Instead of calling this function, you typically want something else. 2341Instead of calling this function, you typically want something else.
2339To temporarily use a different time zone rule for just one invocation 2342To temporarily use a different time zone rule for just one invocation
diff --git a/src/macfont.m b/src/macfont.m
index c9082a58415..04456283fa1 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -2373,9 +2373,9 @@ macfont_list (struct frame *f, Lisp_Object spec)
2373 != (spacing >= FONT_SPACING_MONO))) 2373 != (spacing >= FONT_SPACING_MONO)))
2374 continue; 2374 continue;
2375 2375
2376 /* Don't use a color bitmap font unless its family is 2376 /* Don't use a color bitmap font until it is supported on
2377 explicitly specified. */ 2377 free platforms. */
2378 if ((sym_traits & kCTFontTraitColorGlyphs) && NILP (family)) 2378 if (sym_traits & kCTFontTraitColorGlyphs)
2379 continue; 2379 continue;
2380 2380
2381 if (j > 0 2381 if (j > 0