emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 7c2c219: Merge from origin/emacs-25


From: Paul Eggert
Subject: [Emacs-diffs] master 7c2c219: Merge from origin/emacs-25
Date: Tue, 12 Apr 2016 15:52:54 +0000

branch: master
commit 7c2c2196fd4be0b656bdf0e0b68f3d7c4a5eca08
Merge: 435da5d ca50981
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Merge from origin/emacs-25
    
    ca50981 Improve time zone documentation
    c23c965 Prevent bootstrap autoload backup files
    9344612 Disable multicolor fonts on OS X since they are not supported...
    c41ce1c Capitalize “Universal Time” in documentation
    10597c9 Don't use 'find-program'
---
 doc/emacs/cmdargs.texi      |    5 ++-
 doc/lispref/os.texi         |   67 +++++++++++++++++++++++++++----------------
 etc/NEWS                    |   10 +++---
 etc/PROBLEMS                |    8 ++--
 lisp/calendar/solar.el      |   18 ++++++------
 lisp/emacs-lisp/autoload.el |   42 ++++++++++++++++++---------
 lisp/gnus/gnus-art.el       |    2 +-
 lisp/org/org.el             |    2 +-
 lisp/progmodes/project.el   |    4 +-
 lisp/vc/add-log.el          |    7 ++--
 src/editfns.c               |   27 +++++++++--------
 src/macfont.m               |    6 ++--
 12 files changed, 116 insertions(+), 82 deletions(-)

diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 646c8da..444d305 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
 @env{TMP}, then @env{TEMP}, and finally @file{c:/temp}.
 @item TZ
 @vindex TZ, environment variable
-This specifies the current time zone and possibly also daylight
-saving time information.  On MS-DOS, if @env{TZ} is not set in the
+This specifies the default time zone and possibly also daylight
+saving time information.  @xref{Time Zone Rules,,, elisp, The GNU
+Emacs Lisp Reference Manual}.  On MS-DOS, if @env{TZ} is not set in the
 environment when Emacs starts, Emacs defines a default value as
 appropriate for the country code returned by address@hidden  On MS-Windows, 
Emacs
 does not use @env{TZ} at all.
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index 03d04ba..6e0edec 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -19,6 +19,7 @@ terminal and the screen.
 * System Environment::  Distinguish the name and kind of system.
 * User Identification:: Finding the name and user id of the user.
 * Time of Day::         Getting the current time.
+* Time Zone Rules::     Rules for time zones and daylight saving time.
 * Time Conversion::     Converting a time from numeric form to
                           calendrical data and vice versa.
 * Time Parsing::        Converting a time from numeric form to text
@@ -1259,7 +1260,7 @@ information may some day be added at the end.
 
 The argument @var{time}, if given, specifies a time to format,
 instead of the current time.  The optional argument @var{zone}
-defaults to the current time zone rule.
+defaults to the current time zone rule.  @xref{Time Zone Rules}.
 
 @example
 @group
@@ -1296,26 +1297,9 @@ For example, if @var{time} is a number, 
@code{(time-to-seconds
 or rounding errors occur.
 @end defun
 
address@hidden current-time-zone &optional time zone
address@hidden time zone, current
-This function returns a list describing the time zone that the user is
-in.
-
-The value has the form @code{(@var{offset} @var{name})}.  Here
address@hidden is an integer giving the number of seconds ahead of Universal 
Time
-(east of Greenwich).  A negative value means west of Greenwich.  The
-second element, @var{name}, is a string giving the name of the time
-zone.  Both elements change when daylight saving time begins or ends;
-if the user has specified a time zone that does not use a seasonal time
-adjustment, then the value is constant through time.
-
-If the operating system doesn't supply all the information necessary to
-compute the value, the unknown elements of the list are @code{nil}.
-
-The argument @var{time}, if given, specifies a time value to
-analyze instead of the current time.  The optional argument @var{zone}
-defaults to the current time zone rule.
address@hidden defun
address@hidden Time Zone Rules
address@hidden Time Zone Rules
address@hidden time zone rules
 
 @vindex TZ, environment variable
 The 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
 @env{TZ} is not in the environment, Emacs uses system wall clock time,
 which is a platform-dependent default time zone.
 
+The set of supported @env{TZ} strings is system-dependent.  GNU and
+many other systems support the tzdata database, e.g.,
address@hidden"America/New_York"} specifies the time zone and daylight saving
+time history for locations near New York City.  GNU and most other
+systems support POSIX-style @env{TZ} strings, e.g.,
address@hidden"EST+5EDT,M4.1.0/2,M10.5.0/2"} specifies the rules used in New
+York from 1987 through 2006.  All systems support the string
address@hidden"UTC0"} meaning Universal Time.
+
 @cindex time zone rule
 Functions that convert to and from local time accept an optional
 @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
 a string, the conversion uses the time zone rule equivalent to setting
 @env{TZ} to that string.
 
address@hidden current-time-zone &optional time zone
address@hidden time zone, current
+This function returns a list describing the time zone that the user is
+in.
+
+The value has the form @code{(@var{offset} @var{abbr})}.  Here
address@hidden is an integer giving the number of seconds ahead of Universal 
Time
+(east of Greenwich).  A negative value means west of Greenwich.  The
+second element, @var{abbr}, is a string giving an abbreviation for the
+time zone, e.g., @samp{"CST"} for China Standard Time or for
+U.S. Central Standard Time.  Both elements can change when daylight
+saving time begins or ends; if the user has specified a time zone that
+does not use a seasonal time adjustment, then the value is constant
+through time.
+
+If the operating system doesn't supply all the information necessary to
+compute the value, the unknown elements of the list are @code{nil}.
+
+The argument @var{time}, if given, specifies a time value to
+analyze instead of the current time.  The optional argument @var{zone}
+defaults to the current time zone rule.
address@hidden defun
+
 @node Time Conversion
 @section Time Conversion
 @cindex calendrical information
@@ -1358,8 +1374,8 @@ as traditional Gregorian years do; for example, the year 
number
 @defun decode-time &optional time zone
 This function converts a time value into calendrical information.  If
 you don't specify @var{time}, it decodes the current time, and similarly
address@hidden defaults to the current time zone rule.  The return
-value is a list of nine elements, as follows:
address@hidden defaults to the current time zone rule.  @xref{Time Zone Rules}.
+The return value is a list of nine elements, as follows:
 
 @example
 (@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
 yourself before you call @code{encode-time}.
 
 The optional argument @var{zone} defaults to the current time zone rule.
address@hidden Zone Rules}.
 In addition to the usual time zone rule values, it can also be a list
 (as you would get from @code{current-time-zone}) or an integer (as
 from @code{decode-time}), applied without any further alteration for
@@ -1449,8 +1466,8 @@ corresponding time value.
 
 This function converts @var{time} (or the current time, if
 @var{time} is omitted) to a string according to
address@hidden  The conversion uses the time zone rule @var{zone}
-(or the current time zone rule, if omitted).  The argument
address@hidden  The conversion uses the time zone rule @var{zone}, which
+defaults to the current time zone rule.  @xref{Time Zone Rules}.  The argument
 @var{format-string} may contain @samp{%}-sequences which say to
 substitute parts of the time.  Here is a table of what the
 @samp{%}-sequences mean:
diff --git a/etc/NEWS b/etc/NEWS
index 59f8d08..00f5aad 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2125,11 +2125,11 @@ quotation marks.
 *** Time conversion functions now accept an optional ZONE argument
 that specifies the time zone rules for conversion.  ZONE is omitted or
 nil for Emacs local time, t for Universal Time, 'wall' for system wall
-clock time, or a string as in 'set-time-zone-rule' for a time zone
-rule.  The affected functions are 'current-time-string',
-'current-time-zone', 'decode-time', and 'format-time-string'.  The
-function 'encode-time', which already accepted a simple time zone rule
-argument, has been extended to accept all the new forms.
+clock time, or a string as in the TZ environment variable.  The
+affected functions are 'current-time-string', 'current-time-zone',
+'decode-time', and 'format-time-string'.  The function 'encode-time',
+which already accepted a simple time zone rule argument, has been
+extended to accept all the new forms.
 
 *** Incompatible change in the third argument of 'format-time-string'.
 Previously, any non-nil argument was interpreted as specifying Universal Time.
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 2ccb771..4288808 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -2181,11 +2181,11 @@ month names with consistent widths for some locales on 
some versions
 of Windows.  This is caused by a deficiency in the underlying system
 library function.
 
-** Problems with set-time-zone-rule function
+** Non-US time zones.
 
-The function set-time-zone-rule gives incorrect results for many
-non-US timezones.  This is due to over-simplistic handling of
-daylight savings switchovers by the Windows libraries.
+Many non-US time zones are implemented incorrectly.  This is due to
+over-simplistic handling of daylight savings switchovers by the
+Windows libraries.
 
 ** Files larger than 4GB report wrong size in a 32-bit Windows build
 
diff --git a/lisp/calendar/solar.el b/lisp/calendar/solar.el
index bf8bedd..6fec805 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
 ;;; End of user options.
 
 (defvar solar-sidereal-time-greenwich-midnight nil
-  "Sidereal time at Greenwich at midnight (universal time).")
+  "Sidereal time at Greenwich at midnight (Universal Time).")
 
 (defvar solar-northern-spring-or-summer-season nil
   "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
 (defun solar-ephemeris-time (time)
   "Ephemeris Time at moment TIME.
 TIME is a pair with the first component being the number of Julian centuries
-elapsed at 0 Universal Time, and the second component being the universal
-time.  For instance, the pair corresponding to November 28, 1995 at 16 UT is
+elapsed at 0 Universal Time, and the second component counting Universal Time
+hours.  For instance, the pair corresponding to November 28, 1995 at 16 UT is
 \(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between
 Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT.
 
@@ -430,7 +430,7 @@ Result is in Julian centuries of ephemeris time."
   "Right ascension (in hours) and declination (in degrees) of the sun at TIME.
 TIME is a pair with the first component being the number of
 Julian centuries elapsed at 0 Universal Time, and the second
-component being the universal time.  For instance, the pair
+component counting Universal Time hours.  For instance, the pair
 corresponding to November 28, 1995 at 16 UT is (-0.040945 16),
 -0.040945 being the number of Julian centuries elapsed between
 Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT.  SUNRISE-FLAG is passed
@@ -444,7 +444,7 @@ to `solar-ecliptic-coordinates'."
   "Azimuth and height of the sun at TIME, LATITUDE, and LONGITUDE.
 TIME is a pair with the first component being the number of
 Julian centuries elapsed at 0 Universal Time, and the second
-component being the universal time.  For instance, the pair
+component counting Universal Time hours.  For instance, the pair
 corresponding to November 28, 1995 at 16 UT is (-0.040945 16),
 -0.040945 being the number of Julian centuries elapsed between
 Jan 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
 being TIME.
 
 TIME is a pair with the first component being the number of Julian centuries
-elapsed at 0 Universal Time, and the second component being the universal
-time.  For instance, the pair corresponding to November 28, 1995 at 16 UT is
+elapsed at 0 Universal Time, and the second component counting Universal Time
+hours.  For instance, the pair corresponding to November 28, 1995 at 16 UT is
 \(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between
 Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT.
 
@@ -522,8 +522,8 @@ Uses binary search."
 Parameters are the midday TIME and the LATITUDE, LONGITUDE of the location.
 
 TIME is a pair with the first component being the number of Julian centuries
-elapsed at 0 Universal Time, and the second component being the universal
-time.  For instance, the pair corresponding to November 28, 1995 at 16 UT is
+elapsed at 0 Universal Time, and the second component counting Universal Time
+hours.  For instance, the pair corresponding to November 28, 1995 at 16 UT is
 \(-0.040945 16), -0.040945 being the number of Julian centuries elapsed between
 Jan 1, 2000 at 12 UT and November 28, 1995 at 0 UT.
 
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 1b06fb6..14e584d 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."
        (enable-local-eval nil))
     ;; We used to use `raw-text' to read this file, but this causes
     ;; problems when the file contains non-ASCII characters.
-    (let ((delay-mode-hooks t))
-      (find-file-noselect
-       (autoload-ensure-default-file (autoload-generated-file))))))
+    (let* ((delay-mode-hooks t)
+           (file (autoload-generated-file))
+           (file-missing (not (file-exists-p file))))
+      (when file-missing
+        (autoload-ensure-default-file file))
+      (with-current-buffer
+          (find-file-noselect
+           (autoload-ensure-file-writeable
+            file))
+        ;; block backups when the file has just been created, since
+        ;; the backups will just be the auto-generated headers.
+        ;; bug#23203
+        (when file-missing
+          (setq buffer-backed-up t)
+          (save-buffer))
+        (current-buffer)))))
 
 (defun autoload-generated-file ()
   (expand-file-name generated-autoload-file
@@ -374,21 +387,22 @@ not be relied upon."
 ;;;###autoload
 (put 'autoload-ensure-writable 'risky-local-variable t)
 
+(defun autoload-ensure-file-writeable (file)
+  ;; Probably pointless, but replaces the old AUTOGEN_VCS in lisp/Makefile,
+  ;; which was designed to handle CVSREAD=1 and equivalent.
+  (and autoload-ensure-writable
+       (let ((modes (file-modes file)))
+         (if (zerop (logand modes #o0200))
+             ;; Ignore any errors here, and let subsequent attempts
+             ;; to write the file raise any real error.
+             (ignore-errors (set-file-modes file (logior modes #o0200))))))
+  file)
+
 (defun autoload-ensure-default-file (file)
   "Make sure that the autoload file FILE exists, creating it if needed.
 If the file already exists and `autoload-ensure-writable' is non-nil,
 make it writable."
-  (if (file-exists-p file)
-      ;; Probably pointless, but replaces the old AUTOGEN_VCS in lisp/Makefile,
-      ;; which was designed to handle CVSREAD=1 and equivalent.
-      (and autoload-ensure-writable
-          (let ((modes (file-modes file)))
-            (if (zerop (logand modes #o0200))
-                ;; Ignore any errors here, and let subsequent attempts
-                ;; to write the file raise any real error.
-                (ignore-errors (set-file-modes file (logior modes #o0200))))))
-    (write-region (autoload-rubric file) nil file))
-  file)
+  (write-region (autoload-rubric file) nil file))
 
 (defun autoload-insert-section-header (outbuf autoloads load-name file time)
   "Insert the section-header line,
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index ca47582..94ebbdd 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."
 
 (defcustom gnus-article-date-headers '(combined-lapsed)
   "A list of Date header formats to display.
-Valid formats are `ut' (universal time), `local' (local time
+Valid formats are `ut' (Universal Time), `local' (local time
 zone), `english' (readable English), `lapsed' (elapsed time),
 `combined-lapsed' (both the original date and the elapsed time),
 `original' (the original date header), `iso8601' (ISO8601
diff --git a/lisp/org/org.el b/lisp/org/org.el
index d2b48a6..231daa9 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -22674,7 +22674,7 @@ time-range, if possible.
 
 The optional ZONE is omitted or nil for Emacs local time, t for
 Universal Time, `wall' for system wall clock time, or a string as in
-`set-time-zone-rule' for a time zone rule."
+the TZ environment variable."
   (format-time-string
    format
    (apply 'encode-time
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index 9c8a88c..82059c9 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
 DIRS is a list of absolute directories; it should be some
 subset of the project roots and external roots.
 
-The default implementation uses `find-program'.  PROJECT is used
+The default implementation uses `grep-find-program'.  PROJECT is used
 to find the list of ignores for each directory."
   ;; FIXME: Uniquely abbreviate the roots?
   (require 'xref)
@@ -171,7 +171,7 @@ to find the list of ignores for each directory."
          (lambda (dir)
            (let ((command
                   (format "%s %s %s -type f -print0"
-                          find-program
+                          grep-find-program
                           dir
                           (xref--find-ignores-arguments
                            (project-ignores project dir)
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index d6c1fc2..58a4e77 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -583,10 +583,9 @@ Compatibility function for \\[next-error] invocations."
 ;; called add-log-time-zone-rule since it's only used from add-log-* code.
 (defvaralias 'change-log-time-zone-rule 'add-log-time-zone-rule)
 (defvar add-log-time-zone-rule nil
-  "Time zone used for calculating change log time stamps.
-It takes the same format as the TZ argument of `set-time-zone-rule'.
-If nil, use local time.
-If t, use universal time.")
+  "Time zone rule used for calculating change log time stamps.
+If nil, use local time.  If t, use Universal Time.
+If a string, interpret as the ZONE argument of `format-time-string'.")
 (put 'add-log-time-zone-rule 'safe-local-variable
      (lambda (x) (or (booleanp x) (stringp x))))
 
diff --git a/src/editfns.c b/src/editfns.c
index a2d5673..70285e6 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,
        doc: /* Use FORMAT-STRING to format the time TIME, or now if omitted.
 TIME is specified as (HIGH LOW USEC PSEC), as returned by
 `current-time' or `file-attributes'.  The obsolete form (HIGH . LOW)
-is also still accepted.
-The optional ZONE is omitted or nil for Emacs local time, t for
-Universal Time, `wall' for system wall clock time, or a string as in
-`set-time-zone-rule' for a time zone rule.
+is also still accepted.  The optional ZONE is omitted or nil for Emacs
+local time, t for Universal Time, `wall' for system wall clock time,
+or a string as in the TZ environment variable.
+
 The value is a copy of FORMAT-STRING, but with certain constructs replaced
 by text that describes the specified date and time in TIME:
 
@@ -2087,7 +2087,7 @@ as from `current-time' and `file-attributes', or nil to 
use the
 current time.  The obsolete form (HIGH . LOW) is also still accepted.
 The optional ZONE is omitted or nil for Emacs local time, t for
 Universal Time, `wall' for system wall clock time, or a string as in
-`set-time-zone-rule' for a time zone rule.
+the TZ environment variable.
 
 The list has the following nine members: SEC is an integer between 0
 and 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,
 This is the reverse operation of `decode-time', which see.
 The optional ZONE is omitted or nil for Emacs local time, t for
 Universal Time, `wall' for system wall clock time, or a string as in
-`set-time-zone-rule' for a time zone rule.  It can also be a list (as
-from `current-time-zone') or an integer (as from `decode-time')
-applied without consideration for daylight saving time.
+the TZ environment variable.  It can also be a list (as from
+`current-time-zone') or an integer (as from `decode-time') applied
+without consideration for daylight saving time.
 
 You can pass more than 7 arguments; then the first six arguments
 are used as SECOND through YEAR, and the *last* argument is used as ZONE.
@@ -2214,7 +2214,7 @@ but this is considered obsolete.
 
 The optional ZONE is omitted or nil for Emacs local time, t for
 Universal Time, `wall' for system wall clock time, or a string as in
-`set-time-zone-rule' for a time zone rule.  */)
+the TZ environment variable.  */)
   (Lisp_Object specified_time, Lisp_Object zone)
 {
   time_t value = lisp_seconds_argument (specified_time);
@@ -2291,7 +2291,7 @@ instead of using the current time.  The argument should 
have the form
 `current-time' and from `file-attributes'.  SPECIFIED-TIME can also
 have the form (HIGH . LOW), but this is considered obsolete.
 Optional second arg ZONE is omitted or nil for the local time zone, or
-a string as in `set-time-zone-rule'.
+a string as in the TZ environment variable.
 
 Some operating systems cannot provide all this information to Emacs;
 in this case, `current-time-zone' returns a list containing nil for
@@ -2332,8 +2332,11 @@ the data it can't find.  */)
 
 DEFUN ("set-time-zone-rule", Fset_time_zone_rule, Sset_time_zone_rule, 1, 1, 0,
        doc: /* Set the Emacs local time zone using TZ, a string specifying a 
time zone rule.
-If TZ is nil or `wall', use system wall clock time.  If TZ is t, use
-Universal Time.  If TZ is an integer, treat it as in `encode-time'.
+
+If TZ is nil or `wall', use system wall clock time; this differs from
+the usual Emacs convention where nil means current local time.  If TZ
+is t, use Universal Time.  If TZ is an integer, treat it as in
+`encode-time'.
 
 Instead of calling this function, you typically want something else.
 To temporarily use a different time zone rule for just one invocation
diff --git a/src/macfont.m b/src/macfont.m
index c9082a5..0445628 100644
--- a/src/macfont.m
+++ b/src/macfont.m
@@ -2373,9 +2373,9 @@ macfont_list (struct frame *f, Lisp_Object spec)
                   != (spacing >= FONT_SPACING_MONO)))
             continue;
 
-          /* Don't use a color bitmap font unless its family is
-             explicitly specified.  */
-          if ((sym_traits & kCTFontTraitColorGlyphs) && NILP (family))
+          /* Don't use a color bitmap font until it is supported on
+            free platforms.  */
+          if (sym_traits & kCTFontTraitColorGlyphs)
             continue;
 
           if (j > 0



reply via email to

[Prev in Thread] Current Thread [Next in Thread]